Implement encoding of arrays of objects
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2013-11-08  Anders Carlsson  <andersca@apple.com>
2
3         Implement encoding of arrays of objects
4         https://bugs.webkit.org/show_bug.cgi?id=124091
5
6         Reviewed by Beth Dakin.
7
8         Add a new array stack and push and pop from it accordingly.
9
10         * Shared/cf/KeyedEncoder.cpp:
11         (WebKit::KeyedEncoder::~KeyedEncoder):
12         (WebKit::KeyedEncoder::encodeBytes):
13         (WebKit::KeyedEncoder::encodeUInt32):
14         (WebKit::KeyedEncoder::encodeInt32):
15         (WebKit::KeyedEncoder::encodeInt64):
16         (WebKit::KeyedEncoder::encodeFloat):
17         (WebKit::KeyedEncoder::beginArray):
18         (WebKit::KeyedEncoder::beginArrayElement):
19         (WebKit::KeyedEncoder::endArrayElement):
20         (WebKit::KeyedEncoder::endArray):
21         * Shared/cf/KeyedEncoder.h:
22
23 2013-11-08  Tim Horton  <timothy_horton@apple.com>
24
25         Remote Layer Tree: RemoteLayerBackingStore partial repaint is broken for the tile cache
26         https://bugs.webkit.org/show_bug.cgi?id=123944
27
28         Reviewed by Simon Fraser.
29
30         Rework RemoteLayerBackingStore painting to fix some rounding issues
31         that would cause pixel cracks upon repaint, and to speed it up a bit.
32
33         * Shared/mac/RemoteLayerBackingStore.h:
34         Redefine RepaintRectList because we can't include WebLayer.h here yet.
35         Remove createBackingStore, which was never implemented.
36         Remove mapToContentCoordinates, because we don't need it on Mac.
37
38         (WebKit::RemoteLayerBackingStore::paintingRects): Added.
39
40         * Shared/mac/RemoteLayerBackingStore.mm:
41         (RemoteLayerBackingStore::setNeedsDisplay):
42         (RemoteLayerBackingStore::display):
43         Stop using mapToContentCoordinates.
44
45         (RemoteLayerBackingStore::drawInContext):
46         Use clipping instead of painting the image multiple times.
47         Never repaint more than the dirty region's bounds.
48         Don't waste time with all of the drawNativeImage code, just use CG.
49         Unindent the switch's cases.
50         Store the rects we're painting so that enumerateRectsBeingDrawn can get them.
51         Pixel-snap the rects we're painting.
52         Clip the context before going to paint.
53
54         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
55         (PlatformCALayerRemote::enumerateRectsBeingDrawn):
56         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
57         Retrieve the rects currently being painted from our backing store, and
58         transform them (mostly) according to the CTM, to match the transformation
59         that will have occurred underneath wkCALayerEnumerateRectsBeingDrawnWithBlock.
60
61 2013-11-08  Anders Carlsson  <andersca@apple.com>
62
63         Implement more KeyedEncoder functionality
64         https://bugs.webkit.org/show_bug.cgi?id=124089
65
66         Reviewed by Beth Dakin.
67
68         * Shared/cf/KeyedEncoder.cpp:
69         (WebKit::KeyedEncoder::encodeBytes):
70         (WebKit::KeyedEncoder::encodeInt32):
71         (WebKit::KeyedEncoder::encodeFloat):
72         * Shared/cf/KeyedEncoder.h:
73
74 2013-11-08  Anders Carlsson  <andersca@apple.com>
75
76         KeyedEncoder should be able to encoder objects
77         https://bugs.webkit.org/show_bug.cgi?id=124085
78
79         Reviewed by Sam Weinig.
80
81         Add a dictionary stack to KeyedEncoder that's pushed and popped by
82         beginObject/endObject.
83
84         * Shared/cf/KeyedEncoder.cpp:
85         (WebKit::KeyedEncoder::KeyedEncoder):
86         (WebKit::KeyedEncoder::~KeyedEncoder):
87         (WebKit::KeyedEncoder::encodeUInt32):
88         (WebKit::KeyedEncoder::encodeString):
89         (WebKit::KeyedEncoder::beginObject):
90         (WebKit::KeyedEncoder::endObject):
91         * Shared/cf/KeyedEncoder.h:
92
93 2013-11-08  Alexandru Chiculita  <achicu@adobe.com>
94
95         Web Inspector: It should be possible to debug the Inspector code
96         https://bugs.webkit.org/show_bug.cgi?id=124065
97
98         Reviewed by Timothy Hatcher.
99
100         When the script is paused, the debugger will pause all the pages in the same PageGroup.
101         All the Inspector windows were created in the same PageGroup, so pausing one debugger
102         would stop the other too.
103
104         Added WebInspectorPageGroups to manage the PageGroups created for the Inspectors.
105         The WebInspectors will now use the inspection "level" to figure out which PageGroup to use.
106         The inspector that debugs the main page will use "__WebInspectorPageGroupLevel1__",
107         the second inspector (that debugs the first inspector) will use "__WebInspectorPageGroupLevel2__" ...
108
109         * UIProcess/WebInspectorProxy.cpp:
110         (WebKit::WebInspectorPageGroups::shared):
111         (WebKit::WebInspectorPageGroups::inspectorLevel):
112         (WebKit::WebInspectorPageGroups::isInspectorPageGroup):
113         (WebKit::WebInspectorPageGroups::inspectorPageGroupLevel):
114         (WebKit::WebInspectorPageGroups::inspectorPageGroupForLevel):
115         (WebKit::WebInspectorPageGroups::createInspectorPageGroup):
116         (WebKit::WebInspectorProxy::WebInspectorProxy):
117         (WebKit::WebInspectorProxy::inspectorPageGroup):
118         (WebKit::WebInspectorProxy::isInspectorPage):
119         (WebKit::WebInspectorProxy::canAttach):
120         * UIProcess/WebInspectorProxy.h:
121
122 2013-11-08  Anders Carlsson  <andersca@apple.com>
123
124         Begin stubbing out a KeyedEncoder class in WebCore
125         https://bugs.webkit.org/show_bug.cgi?id=124079
126
127         Reviewed by Sam Weinig.
128
129         * Shared/KeyedEncoder.h: Removed.
130         * Shared/cf/KeyedCodingValueCF.cpp: Removed.
131         * Shared/cf/KeyedEncoder.cpp: Added.
132         Remove old keyed encoders.
133
134         (WebKit::createDictionary):
135         Helper function to create a mutable dictionary.
136         (WebKit::KeyedEncoder::KeyedEncoder):
137         Create the root dictionary.
138
139         (WebKit::KeyedEncoder::encodeUInt32):
140         Create a CFNumberRef and add it to the dictionary.
141
142         * Shared/cf/KeyedEncoder.h: Added.
143         * WebKit2.xcodeproj/project.pbxproj:
144         Add new files.
145
146         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
147         (WebKit::updateBackForwardItem):
148         Create a KeyedEncoder and encode the history tree.
149
150 2013-11-08  Brady Eidson  <beidson@apple.com>
151
152         Merge IDBTransactionBackendInterface and IDBTransactionBackendImpl
153         https://bugs.webkit.org/show_bug.cgi?id=124077
154
155         Reviewed by Alexey Proskuryakov.
156
157         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
158         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
159
160 2013-11-08  Brady Eidson  <beidson@apple.com>
161
162         Merge IDBCursorBackendInterface and IDBCursorBackendImpl
163         https://bugs.webkit.org/show_bug.cgi?id=124068
164
165         Reviewed by Anders Carlsson.
166
167         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
168         (WebKit::WebIDBFactoryBackend::createCursorBackend):
169         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
170
171 2013-11-08  Anders Carlsson  <andersca@apple.com>
172
173         Remove a workaround for a bug in malloc on Symbian
174         https://bugs.webkit.org/show_bug.cgi?id=124069
175
176         Reviewed by Sam Weinig.
177
178         * Platform/CoreIPC/ArgumentDecoder.cpp:
179         (CoreIPC::ArgumentDecoder::~ArgumentDecoder):
180         (CoreIPC::ArgumentDecoder::initialize):
181         * Platform/CoreIPC/ArgumentDecoder.h:
182
183 2013-11-08  Anders Carlsson  <andersca@apple.com>
184
185         More build fixes.
186
187         * UIProcess/API/mac/WKBrowsingContextController.mm:
188         * UIProcess/API/mac/WKConnection.mm:
189         (didReceiveMessage):
190
191 2013-11-08  Anders Carlsson  <andersca@apple.com>
192
193         More build fixes.
194
195         * UIProcess/API/mac/WKConnection.h:
196         * UIProcess/API/mac/WKConnection.mm:
197         (didReceiveMessage):
198
199 2013-11-08  Anders Carlsson  <andersca@apple.com>
200
201         Try to fix the 32-bit build.
202
203         * Shared/API/Cocoa/WKBrowsingContextHandleInternal.h:
204
205 2013-11-08  Anders Carlsson  <andersca@apple.com>
206
207         Replace __alignof with alignof.
208
209         Rubber-stamped by Beth Dakin.
210
211         * Platform/CoreIPC/ArgumentCoders.cpp:
212         (CoreIPC::::encode):
213         (CoreIPC::decodeStringText):
214         * Platform/CoreIPC/ArgumentCoders.h:
215         (CoreIPC::SimpleArgumentCoder::encode):
216         (CoreIPC::SimpleArgumentCoder::decode):
217         * Platform/CoreIPC/ArgumentDecoder.h:
218         (CoreIPC::ArgumentDecoder::bufferIsLargeEnoughToContain):
219         * WebProcess/WebPage/DecoderAdapter.cpp:
220         (WebKit::DecoderAdapter::decodeString):
221         * WebProcess/WebPage/EncoderAdapter.cpp:
222         (WebKit::EncoderAdapter::encodeString):
223
224 2013-11-08  Anders Carlsson  <andersca@apple.com>
225
226         Add a way to get a WKWebProcessPlugInBrowserContextController from a handle
227         https://bugs.webkit.org/show_bug.cgi?id=124063
228
229         Reviewed by Beth Dakin.
230
231         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
232         (+[WKWebProcessPlugInBrowserContextController lookUpBrowsingContextFromHandle:]):
233         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
234
235 2013-11-08  Anders Carlsson  <andersca@apple.com>
236
237         More work on WKBrowsingContextHandle
238         https://bugs.webkit.org/show_bug.cgi?id=124060
239
240         Reviewed by Beth Dakin.
241
242         Implement -hash and -isEqual: and add -[WKWebProcessPlugInBrowserContextController handle].
243
244         * Shared/API/Cocoa/WKBrowsingContextHandle.mm:
245         (-[WKBrowsingContextHandle hash]):
246         (-[WKBrowsingContextHandle isEqual:]):
247         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
248         (decodeInvocation):
249         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
250         (-[WKWebProcessPlugInBrowserContextController mainFrameDocument]):
251         (-[WKWebProcessPlugInBrowserContextController selectedRange]):
252         (-[WKWebProcessPlugInBrowserContextController handle]):
253         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerInternal.h:
254         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
255
256 2013-11-08  Anders Carlsson  <andersca@apple.com>
257
258         Add A WKBrowsingContextHandle class
259         https://bugs.webkit.org/show_bug.cgi?id=124058
260
261         Reviewed by Sam Weinig.
262
263         The WKBrowsingContextHandle class represents a browsing context and can be sent across process boundaries.
264
265         * Shared/API/Cocoa/WKBrowsingContextHandle.h: Added.
266         * Shared/API/Cocoa/WKBrowsingContextHandle.mm: Added.
267         (-[WKBrowsingContextHandle _initWithPageID:]):
268         (-[WKBrowsingContextHandle encodeWithCoder:]):
269         (-[WKBrowsingContextHandle initWithCoder:]):
270         (+[WKBrowsingContextHandle supportsSecureCoding]):
271         * Shared/API/Cocoa/WKBrowsingContextHandleInternal.h: Added.
272         * UIProcess/API/mac/WKBrowsingContextController.mm:
273         (-[WKBrowsingContextController handle]):
274         * UIProcess/API/mac/WKBrowsingContextControllerInternal.h:
275         * UIProcess/API/mac/WKBrowsingContextControllerPrivate.h:
276         (NS_ENUM):
277         * WebKit2.xcodeproj/project.pbxproj:
278
279 2013-11-08  Anders Carlsson  <andersca@apple.com>
280
281         Add WKRemoteObjectRegistry to WKConnection
282         https://bugs.webkit.org/show_bug.cgi?id=124054
283
284         Reviewed by Sam Weinig.
285
286         * UIProcess/API/mac/WKConnection.h:
287         * UIProcess/API/mac/WKConnection.mm:
288         (-[WKConnection delegate]):
289         (-[WKConnection setDelegate:]):
290         (-[WKConnection remoteObjectRegistry]):
291         (didReceiveMessage):
292
293 2013-11-08  Anders Carlsson  <andersca@apple.com>
294
295         Encode and decode NSURLRequests using NSCoder
296         https://bugs.webkit.org/show_bug.cgi?id=124051
297
298         Reviewed by Sam Weinig.
299
300         * Shared/mac/WebCoreArgumentCodersMac.mm:
301         (CoreIPC::archiveAndEncodeObject):
302         (CoreIPC::decodeAndUnarchiveObject):
303         (CoreIPC::::encodePlatformData):
304         (CoreIPC::::decodePlatformData):
305
306 2013-11-07  Anders Carlsson  <andersca@apple.com>
307
308         Encode and decode NSURLResponse objects using NSCoder
309         https://bugs.webkit.org/show_bug.cgi?id=124028
310
311         Reviewed by Andreas Kling.
312
313         * Shared/mac/WebCoreArgumentCodersMac.mm:
314         (CoreIPC::::encodePlatformData):
315         (CoreIPC::::decodePlatformData):
316
317 2013-11-07  Anders Carlsson  <andersca@apple.com>
318
319         Move m_destinationID to MessageDecoder
320         https://bugs.webkit.org/show_bug.cgi?id=124026
321
322         Reviewed by Andreas Kling.
323
324         * Platform/CoreIPC/ArgumentDecoder.h:
325         * Platform/CoreIPC/MessageDecoder.h:
326         (CoreIPC::MessageDecoder::destinationID):
327
328 2013-11-07  Anders Carlsson  <andersca@apple.com>
329
330         Get rid of the out-of-line memory attachment type
331         https://bugs.webkit.org/show_bug.cgi?id=124023
332
333         Reviewed by Andreas Kling.
334
335         We're only using out-of-line memory for when the message body is too big, so
336         isolate that code in Connection and get rid of the out of line attachment type.
337
338         * Platform/CoreIPC/Attachment.cpp:
339         (CoreIPC::Attachment::Attachment):
340         * Platform/CoreIPC/Attachment.h:
341         (CoreIPC::Attachment::port):
342         (CoreIPC::Attachment::disposition):
343         * Platform/CoreIPC/mac/ConnectionMac.cpp:
344         (CoreIPC::Connection::sendOutgoingMessage):
345         (CoreIPC::createMessageDecoder):
346
347 2013-11-07  Simon Fraser  <simon.fraser@apple.com>
348
349         Lots of layers get solid color but transparent contents layers now
350         https://bugs.webkit.org/show_bug.cgi?id=123537
351
352         Reviewed by Tim Horton.
353         
354         Add some properties to the list of things not to implicitly animate.
355
356         * Shared/mac/RemoteLayerTreePropertyApplier.mm:
357         (WebKit::RemoteLayerTreePropertyApplier::disableActionsForLayer):
358
359 2013-11-07  Anders Carlsson  <andersca@apple.com>
360
361         Remove more dead code
362         https://bugs.webkit.org/show_bug.cgi?id=124016
363
364         Reviewed by Beth Dakin.
365
366         We're always layer backed now so we never scroll using the PageClient.
367
368         * UIProcess/API/mac/PageClientImpl.mm:
369         (WebKit::PageClientImpl::canScrollView):
370         (WebKit::PageClientImpl::scrollView):
371
372 2013-11-07  Anders Carlsson  <andersca@apple.com>
373
374         Don't repaint the view when the web process crashes
375         https://bugs.webkit.org/show_bug.cgi?id=124013
376
377         Reviewed by Dan Bernstein.
378
379         It's up to each individual port to decide whether the view should be repainted when the web process crashes.
380
381         * UIProcess/API/mac/PageClientImpl.mm:
382         (WebKit::PageClientImpl::setViewNeedsDisplay):
383         (WebKit::PageClientImpl::displayView):
384         * UIProcess/WebPageProxy.cpp:
385         (WebKit::WebPageProxy::resetStateAfterProcessExited):
386
387 2013-11-07  Tamas Gergely  <gertom@inf.u-szeged.hu>
388
389         Report error on unknown template class usage.
390         https://bugs.webkit.org/show_bug.cgi?id=123096
391
392         Reviewed by Darin Adler.
393
394         Report error when template class is not found in the dictionary.
395
396         * Scripts/webkit2/messages.py:
397         (class_template_headers):
398         (class_template_headers.template):
399
400 2013-11-07  Denis Nomiyama  <d.nomiyama@samsung.com>
401
402         [GTK] Glyphs in vertical text tests are rotated 90 degrees clockwise
403         https://bugs.webkit.org/show_bug.cgi?id=50619
404
405         Reviewed by Martin Robinson.
406
407         Added WebCore/platform/graphics/opentype to the include path.
408
409         * PlatformEfl.cmake:
410         * PlatformGTK.cmake:
411
412 2013-11-07  Brendan Long  <b.long@cablelabs.com>
413
414         [Gtk] Remove old takeFocus() method from PageClientImpl and mark methods as OVERRIDE
415         https://bugs.webkit.org/show_bug.cgi?id=123919
416
417         Reviewed by Carlos Garcia Campos.
418
419         * UIProcess/API/gtk/PageClientImpl.cpp: Remove takeFocus().
420         * UIProcess/API/gtk/PageClientImpl.h: Remove takeFocus() and mark methods as OVERRIDE.
421
422 2013-11-06  Dan Bernstein  <mitz@apple.com>
423
424         Moved UIProcess/Cocoa to UIProcess/API/Cocoa.
425
426         Rubber-stamped by Anders Carlsson.
427
428         * UIProcess/API/Cocoa: Copied from Source/WebKit2/UIProcess/Cocoa.
429         * UIProcess/Cocoa: Removed.
430         * UIProcess/Cocoa/WKBackForwardList.h: Removed.
431         * UIProcess/Cocoa/WKBackForwardList.mm: Removed.
432         * UIProcess/Cocoa/WKBackForwardListInternal.h: Removed.
433         * UIProcess/Cocoa/WKBackForwardListItem.h: Removed.
434         * UIProcess/Cocoa/WKBackForwardListItem.mm: Removed.
435         * UIProcess/Cocoa/WKBackForwardListItemInternal.h: Removed.
436         * UIProcess/Cocoa/WKBrowsingContextHistoryDelegate.h: Removed.
437         * UIProcess/Cocoa/WKNavigationData.h: Removed.
438         * UIProcess/Cocoa/WKNavigationData.mm: Removed.
439         * UIProcess/Cocoa/WKNavigationDataInternal.h: Removed.
440         * WebKit2.xcodeproj/project.pbxproj:
441
442 2013-11-06  Brendan Long  <b.long@cablelabs.com>
443
444         [Gtk][EFL] Fix build after r158759
445         https://bugs.webkit.org/show_bug.cgi?id=123910
446
447         Reviewed by Gyuyoung Kim.
448
449         * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
450         (WebKit::CoordinatedDrawingAreaProxy::incorporateUpdate): Remove call to flashBackingStoreUpdates().
451
452 2013-11-06  Tim Horton  <timothy_horton@apple.com>
453
454         Remote Layer Tree: RemoteLayerTreeDrawingArea doesn't make layers for fixedpos elements
455         https://bugs.webkit.org/show_bug.cgi?id=123943
456
457         Reviewed by Simon Fraser.
458
459         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
460         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
461         (WebKit::RemoteLayerTreeDrawingArea::updatePreferences):
462         Make fixed position elements create compositing layers and stacking contexts
463         in the RemoteLayerTreeDrawingArea just like they do in TiledCoreAnimationDrawingArea.
464
465         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
466         (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
467         Fix the comment, since we have long since achieved this goal.
468
469 2013-11-06  Anders Carlsson  <andersca@apple.com>
470
471         Implement enough functionality so that NSURLRequest objects can be decoded
472         https://bugs.webkit.org/show_bug.cgi?id=123942
473
474         Reviewed by Andreas Kling.
475
476         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
477         (-[WKRemoteObjectEncoder requiresSecureCoding]):
478         Add new method. Return YES.
479
480         (-[WKRemoteObjectDecoder decodeValueOfObjCType:at:]):
481         Add new method. This currently only handles 'i', but we'll add more variants as needed.
482
483         (-[WKRemoteObjectDecoder decodeBoolForKey:]):
484         Get a WebBoolean from the dictionary and return its value.
485
486 2013-11-06  Anders Carlsson  <andersca@apple.com>
487
488         Encoded object stream should be sequential
489         https://bugs.webkit.org/show_bug.cgi?id=123939
490
491         Reviewed by Andreas Kling.
492
493         Reserve space in the object stream for objects that are to be encoded, otherwise
494         the object stream will not be sequential.
495
496         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
497         (encodeToObjectStream):
498         * Shared/ImmutableArray.h:
499         (WebKit::ImmutableArray::entries):
500
501 2013-11-06  Anders Carlsson  <andersca@apple.com>
502
503         Allow property list classes to exist in containers
504         https://bugs.webkit.org/show_bug.cgi?id=123938
505
506         Reviewed by Andreas Kling.
507
508         * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
509         (isContainerClass):
510         Return whether a given class is a container class.
511
512         (propertyListClasses):
513         Return the set of property list classes.
514
515         (allowedArgumentClassesForMethod):
516         Allow all property list classes for container type arguments.
517
518 2013-11-06  Daniel Bates  <dabates@apple.com>
519
520         [iOS] Upstream Letterpress effect
521         https://bugs.webkit.org/show_bug.cgi?id=123932
522
523         Reviewed by Sam Weinig.
524
525         Add feature define ENABLE_LETTERPRESS disabled by default. We only enable
526         letterpress on iOS.
527
528         * Configurations/FeatureDefines.xcconfig:
529
530 2013-11-06  Dan Bernstein  <mitz@apple.com>
531
532         Fixed multiple API test failures after r158764.
533
534         Reviewed by Sam Weinig.
535
536         * UIProcess/API/mac/WKBrowsingContextController.mm:
537         (setUpPagePolicyClient): If the delegate isn’t set or doesn’t respond to a selector, respond
538         with WKFramePolicyListenerUse().
539
540 2013-11-06  Anders Carlsson  <andersca@apple.com>
541
542         Move allowed classes handling to decodeObject
543         https://bugs.webkit.org/show_bug.cgi?id=123930
544
545         Reviewed by Andreas Kling.
546
547         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
548         (decodeObjectFromObjectStream):
549         Pass allowed classes through to decodeObject.
550
551         (decodeObject):
552         Update to take an NSSet of allowed classes. If the set is nil, use the current set.
553
554         (-[WKRemoteObjectDecoder decodeObjectOfClasses:forKey:]):
555         Pass classes to decodeObject.
556
557 2013-11-06  Sergio Correia  <sergio.correia@openbossa.org>
558
559         Fix EFL build after r158753
560         https://bugs.webkit.org/show_bug.cgi?id=123923
561
562         r158753 renamed WKNavigationData.h as WKNavigationDataRef.h, so
563         update it in UIProcess/API/efl/ewk_navigation_data_private.h.
564
565         Reviewed by Csaba Osztrogonác.
566
567         * UIProcess/API/efl/ewk_navigation_data_private.h:
568
569 2013-11-06  Anders Carlsson  <andersca@apple.com>
570
571         Implement more decoding methods
572         https://bugs.webkit.org/show_bug.cgi?id=123922
573
574         Reviewed by Dan Bernstein.
575
576         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
577         (-[WKRemoteObjectDecoder decodeObjectForKey:]):
578         Call decodeObjectOfClasses:forKey: passing nil as the classes set.
579
580         (-[WKRemoteObjectDecoder decodeInt64ForKey:]):
581         Try to get a WebUInt64 and return its value.
582
583         (-[WKRemoteObjectDecoder decodeDoubleForKey:]):
584         Try to get a WebDouble and return its value.
585
586         (-[WKRemoteObjectDecoder decodeBytesForKey:returnedLength:]):
587         Move this method next to the other decoding methods.
588
589         (-[WKRemoteObjectDecoder requiresSecureCoding]):
590         Ditto.
591
592 2013-11-06  Brendan Long  <b.long@cablelabs.com>
593
594         [Gtk][EFL] Fix build after r158759
595         https://bugs.webkit.org/show_bug.cgi?id=123910
596
597         Reviewed by Gustavo Noronha Silva.
598
599         * UIProcess/API/gtk/PageClientImpl.cpp: Remove flashBackingStoreUpdates().
600         * UIProcess/API/gtk/PageClientImpl.h: Same.
601         * UIProcess/CoordinatedGraphics/WebView.cpp: Same.
602         * UIProcess/CoordinatedGraphics/WebView.h: Same.
603         * UIProcess/DrawingAreaProxyImpl.cpp:
604         (WebKit::DrawingAreaProxyImpl::incorporateUpdate): Don't call flashBackingStoreUpdates().
605
606 2013-11-06  Jer Noble  <jer.noble@apple.com>
607
608         Unreviewed Mac build fix; include ResourceResponse.
609
610         * Shared/WebNavigationDataStore.h:
611
612 2013-11-06  Anders Carlsson  <andersca@apple.com>
613
614         Decode invocation arguments
615         https://bugs.webkit.org/show_bug.cgi?id=123917
616
617         Reviewed by Sam Weinig.
618
619         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
620         (-[WKRemoteObjectDecoder initWithInterface:rootObjectDictionary:WebKit::]):
621         Initialize the object stream.
622
623         (decodeObjectFromObjectStream):
624         Check that we're not reading past the end of the stream, then decode the object.
625
626         (decodeInvocationArguments):
627         Decode arguments from the object stream.
628
629         (decodeInvocation):
630         Call decodeInvocationArguments and set up the selector argument.
631         
632         * Shared/ImmutableArray.h:
633         (WebKit::ImmutableArray::at):
634         (WebKit::ImmutableArray::size):
635         (WebKit::ImmutableArray::entries):
636         Constify.
637
638 2013-11-06  Dan Bernstein  <mitz@apple.com>
639
640         [Cocoa] Add -[WKNavigationData response]
641         https://bugs.webkit.org/show_bug.cgi?id=123918
642
643         Reviewed by Sam Weinig.
644
645         * Shared/WebNavigationDataStore.h: Added a ResourceResponse data member.
646         (WebKit::WebNavigationDataStore::encode): Encode the response.
647         (WebKit::WebNavigationDataStore::decode): Decode the response.
648         * UIProcess/Cocoa/WKNavigationData.h: Declared new property.
649         * UIProcess/Cocoa/WKNavigationData.mm:
650         (-[WKNavigationData response]): Added.
651         * UIProcess/WebNavigationData.h:
652         (WebKit::WebNavigationData::response): Added.
653         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
654         (WebKit::WebFrameLoaderClient::updateGlobalHistory): Set the response in the data store.
655
656 2013-11-06  Sam Weinig  <sam@webkit.org>
657
658         Fix the 32-bit build.
659
660         * UIProcess/API/mac/WKBrowsingContextController.h:
661         * UIProcess/API/mac/WKBrowsingContextController.mm:
662         (-[WKBrowsingContextController dealloc]):
663         (-[WKBrowsingContextController _initWithPageRef:]):
664
665 2013-11-06  Dan Bernstein  <mitz@apple.com>
666
667         [Cocoa] Add -[WKBrowsingContextController unreachableURL]
668         https://bugs.webkit.org/show_bug.cgi?id=123909
669
670         Reviewed by Anders Carlsson.
671
672         * UIProcess/API/mac/WKBrowsingContextController.h: Declared unreachableURL property.
673         * UIProcess/API/mac/WKBrowsingContextController.mm:
674         (-[WKBrowsingContextController unreachableURL]): Added.
675         * UIProcess/WebPageProxy.cpp:
676         (WebKit::WebPageProxy::unreachableURL): Added.
677         * UIProcess/WebPageProxy.h:
678
679 2013-11-06  Anders Carlsson  <andersca@apple.com>
680
681         Encode parameters as objects
682         https://bugs.webkit.org/show_bug.cgi?id=123912
683
684         Reviewed by Beth Dakin.
685
686         We want to ensure that the objects have the right types when decoded, so just encode them as objects.
687
688         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
689         (encodeInvocation):
690         (-[WKRemoteObjectEncoder encodeValueOfObjCType:at:]):
691
692 2013-11-06  Sam Weinig  <sam@webkit.org>
693
694         Add WKBrowsingContextPolicyDelegate
695         https://bugs.webkit.org/show_bug.cgi?id=123904
696
697         Reviewed by Anders Carlsson.
698
699         * UIProcess/API/mac/WKBrowsingContextController.h:
700         * UIProcess/API/mac/WKBrowsingContextController.mm:
701         Implement a WKPagePolicyClient in terms of the new WKBrowsingContextPolicyDelegate protocol.
702         
703         * UIProcess/API/mac/WKBrowsingContextPolicyDelegate.h: 
704         Added.
705
706         * UIProcess/API/mac/WebKit2.h:
707         Add new #include of WKBrowsingContextPolicyDelegate.h
708
709         * WebKit2.xcodeproj/project.pbxproj:
710         Add new file.
711
712 2013-11-06  Anders Carlsson  <andersca@apple.com>
713
714         WKRemoteObjectInterface should keep track of allowed decodable classes
715         https://bugs.webkit.org/show_bug.cgi?id=123903
716
717         Reviewed by Sam Weinig.
718
719         * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
720         (allowedArgumentClassesForMethod):
721         Helper function that returns a vector of sets of allowed classes for each method argument.
722
723         (initializeAllowedArgumentClasses):
724         Iterate over the methods in the protocol, get the extended method type encoding and create an
725         NSMethodSignature from it. Finally, pass the signature to allowedArgumentClassesForMethod.
726
727         (initializeAllowedArgumentClasses):
728         Call the other initializeAllowedArgumentClasses twice, once for required methods,
729         and once for optional methods.
730
731         (-[WKRemoteObjectInterface initWithProtocol:identifier:]):
732         Call initializeAllowedArgumentClasses.
733
734         (-[WKRemoteObjectInterface _allowedArgumentClassesForSelector:]):
735         Add new getter.
736
737         * Shared/API/Cocoa/WKRemoteObjectInterfaceInternal.h:
738
739 2013-11-06  Anders Carlsson  <andersca@apple.com>
740
741         Remove dead code
742         https://bugs.webkit.org/show_bug.cgi?id=123902
743
744         Reviewed by Tim Horton.
745
746         Remove the PageClient::containingWindowGraphicsContext() as well as the
747         WKPageSetDebugPaintFlags and WKPageGetDebugPaintFlags API functions.
748
749         * UIProcess/API/C/WKPage.cpp:
750         * UIProcess/API/mac/PageClientImpl.h:
751         * UIProcess/API/mac/PageClientImpl.mm:
752         * UIProcess/PageClient.h:
753         * UIProcess/WebPageProxy.cpp:
754         * UIProcess/WebPageProxy.h:
755         * UIProcess/mac/WebPageProxyMac.mm:
756         (WebKit::WebPageProxy::searchTheWeb):
757
758 2013-11-06  Dan Bernstein  <mitz@apple.com>
759
760         Promoted WKBrowsingContextHistoryDelegate.h to private.
761
762         Rubber-stamped by Sam Weinig.
763
764         * WebKit2.xcodeproj/project.pbxproj:
765
766 2013-11-06  Dan Bernstein  <mitz@apple.com>
767
768         [Cocoa] History delegate
769         https://bugs.webkit.org/show_bug.cgi?id=123837
770
771         Reviewed by Sam Weinig.
772
773         * Shared/Cocoa/APIObject.mm:
774         (WebKit::APIObject::newObject): Allocate a WKNavigationData if the object is a
775         WebNavigationData.
776
777         * Shared/Cocoa/WKNSString.h:
778         (WebKit::wrapper): Added. Returns a WebString’s wrapper as an NSString.
779
780         * Shared/Cocoa/WKNSURL.h:
781         (WebKit::wrapper): Added. Returns a WebURL’s wrapper as an NSURL.
782
783         * UIProcess/API/C/WKNavigationData.cpp: Renamed.
784         * UIProcess/API/C/WKNavigationData.h: Renamed.
785         * UIProcess/API/C/WKNavigationDataRef.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKNavigationData.cpp.
786         * UIProcess/API/C/WKNavigationDataRef.h: Copied from Source/WebKit2/UIProcess/API/C/WKNavigationData.h.
787
788         * UIProcess/API/mac/WKBrowsingContextController.h: Declared historyDelegate property.
789
790         * UIProcess/API/mac/WKProcessGroup.mm:
791         (didNavigateWithNavigationData): Added history client callback that calls the browsing
792         context’s history delegate.
793         (didPerformClientRedirect): Ditto.
794         (didPerformServerRedirect): Ditto.
795         (didUpdateHistoryTitle): Ditto.
796         (setUpHistoryClient): Added.
797         (-[WKProcessGroup initWithInjectedBundleURL:]): Added call to setUpHistoryClient.
798         (-[WKProcessGroup dealloc]): Clear the history client.
799
800         * UIProcess/Cocoa/WKBrowsingContextHistoryDelegate.h: Added.
801
802         * UIProcess/Cocoa/WKNavigationData.h: Added.
803         * UIProcess/Cocoa/WKNavigationData.mm: Added.
804         (-[WKNavigationData dealloc]): Calls the WebNavigationData destructor.
805         (-[WKNavigationData title]): Added.
806         (-[WKNavigationData originalRequest]): Added.
807         (-[WKNavigationData destinationURL]): Added.
808         (-[WKNavigationData _apiObject]): Returns the wrapped WebNavigationData.
809         * UIProcess/Cocoa/WKNavigationDataInternal.h: Added.
810         (WebKit::wrapper): Added. Returns a WebNavigationData’s wrapper as a WKNavigationData.
811         * WebKit2.xcodeproj/project.pbxproj: Updated for renames and additions.
812
813 2013-11-05  Anders Carlsson  <andersca@apple.com>
814
815         Begin work on decoding invocations
816         https://bugs.webkit.org/show_bug.cgi?id=123838
817
818         Reviewed by Dan Bernstein.
819
820         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
821         (encodeInvocation):
822         Declare the type string and selector keys as constants.
823
824         (encodeObject):
825         Make sure to encode the class name for NSInvocations as well.
826
827         (decodeInvocation):
828         Figure out the local and remove method signatures and make sure that they are equal.
829
830         * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
831         (methodArgumentTypeEncodingForSelector):
832         Helper function that returns the type encoding for a given selector.
833
834         (-[WKRemoteObjectInterface _methodSignatureForSelector:]):
835         Helper function that returns a method signature for the method with the name referred to by selector.
836
837         * Shared/API/Cocoa/WKRemoteObjectInterfaceInternal.h: Added.
838         Add internal header.
839
840         * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
841         (-[WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]):
842         Pass the right object to the WKRemoteObjectDecoder initializer and decode the invocation.
843
844         * WebKit2.xcodeproj/project.pbxproj:
845         Add internal header.
846
847 2013-11-05  Anders Carlsson  <andersca@apple.com>
848
849         WKRemoteObjectDecoder should know which interface it's decoding for
850         https://bugs.webkit.org/show_bug.cgi?id=123833
851
852         Reviewed by Andreas Kling.
853
854         Move the interface identifier out into the root object body dictionary and make 
855         the encoded invocation a sibling of it. That way we can look up the interface before
856         creating the decoder.
857         
858         Also, manage exported objects and interfaces in a separate hash map.
859
860         * Shared/API/Cocoa/WKRemoteObjectCoder.h:
861         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
862         (-[WKRemoteObjectDecoder initWithInterface:rootObjectDictionary:WebKit::]):
863         (decodeInvocation):
864         (decodeObject):
865         * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
866         (-[WKRemoteObjectRegistry registerExportedObject:interface:]):
867         (-[WKRemoteObjectRegistry unregisterExportedObject:interface:]):
868         (-[WKRemoteObjectRegistry _sendInvocation:interface:]):
869         (-[WKRemoteObjectRegistry _handleMessageWithName:body:]):
870         (-[WKRemoteObjectRegistry _invokeMessageWithInterfaceIdentifier:encodedInvocation:]):
871
872 2013-11-05  Anders Carlsson  <andersca@apple.com>
873
874         Add support for decoding NSStrings
875         https://bugs.webkit.org/show_bug.cgi?id=123829
876
877         Reviewed by Andreas Kling.
878
879         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
880         (encodeObject):
881         (-[WKRemoteObjectDecoder allowsKeyedCoding]):
882         Always return YES.
883
884         (-[WKRemoteObjectDecoder containsValueForKey:]):
885         Look up the key in the current dictionary.
886
887         (-[WKRemoteObjectDecoder decodeBytesForKey:returnedLength:]):
888         Try to get the WebData object and return its data + size.
889
890         (-[WKRemoteObjectDecoder requiresSecureCoding]):
891         Return YES.
892
893         (checkIfClassIsAllowed):
894         Check if the class or any of its superclasses are are allowed.
895
896         (validateClass):
897         Call checkIfClassIsAllowed and validate that the class conforms to NSSecureCoding.
898
899         (decodeObject):
900         Get the class name, verify that the class exists and is allowed. 
901         Allocate and initialize an object using initWithCoder:.
902
903         (-[WKRemoteObjectDecoder decodeObjectOfClasses:forKey:]):
904         Set the allowed classes, look up the object in _currentDictionary and call decodeObject.
905
906         (-[WKRemoteObjectDecoder allowedClasses]):
907         Return _allowedClasses.
908
909         * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
910         (-[WKRemoteObjectRegistry _sendInvocation:interface:]):
911         Declare interfaceIdentifier as a constant.
912
913         (-[WKRemoteObjectRegistry _invokeMessageWithBody:]):
914         Decode the interface identifier.
915
916         * Shared/ImmutableDictionary.h:
917         (WebKit::ImmutableDictionary::get):
918         (WebKit::ImmutableDictionary::size):
919         (WebKit::ImmutableDictionary::map):
920         Make member functions const.
921
922 2013-11-05  Benjamin Poulain  <benjamin@webkit.org>
923
924         Fix Mountain Lion Debug bot after r158689
925
926         Unreviewed.
927
928         It looks like WebGeolocationManagerProxy::stopUpdating() and WebGeolocationManagerProxy::processDidClose()
929         are racing in some cases, causing the assertion to fail.
930
931         That case is handled properly in the last if() branch of WebGeolocationManagerProxy::removeRequester().
932         This patch remove the overzealous assertion.
933
934         * UIProcess/WebGeolocationManagerProxy.cpp:
935         (WebKit::WebGeolocationManagerProxy::removeRequester):
936
937 2013-11-05  Tim Horton  <timothy_horton@apple.com>
938
939         Remote Layer Tree: Apply layer changes to LayerTypeCustom layers to the custom layer in the Web process, not to the CALayerHost
940         https://bugs.webkit.org/show_bug.cgi?id=123818
941
942         Reviewed by Anders Carlsson.
943
944         Changes to the properties of a PlatformCALayer of type LayerTypeCustom are intended
945         to affect the custom CALayer; however, we were bundling them up with the transaction
946         and applying them to the CALayerHost, leading to important properties being lost.
947
948         Instead, apply them to the Web-process-side CALayer when building the transaction.
949
950         * Shared/mac/RemoteLayerTreePropertyApplier.h: Added.
951         * Shared/mac/RemoteLayerTreePropertyApplier.mm: Added.
952         (WebKit::cgColorFromColor):
953         (WebKit::toCAFilterType):
954         (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
955         (WebKit::RemoteLayerTreePropertyApplier::disableActionsForLayer):
956         Move code to apply LayerProperties to a CALayer from RemoteLayerTreeHost.
957         Move code to disable actions on a CALayer from RemoteLayerTreeHost.
958
959         * UIProcess/mac/RemoteLayerTreeHost.mm:
960         (WebKit::RemoteLayerTreeHost::commit):
961         (WebKit::RemoteLayerTreeHost::createLayer):
962         Use RemoteLayerTreePropertyApplier.
963         Hand it a map of LayerID->CALayer so that it can look up related layers
964         for children and mask layers.
965
966         * WebKit2.xcodeproj/project.pbxproj:
967         Add RemoteLayerTreePropertyApplier.{h,mm}
968
969         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
970         (PlatformCALayerRemote::recursiveBuildTransaction):
971         Upon commit, apply changes to LayerTypeCustom layers to the platform layer.
972         Setting children or maskLayer won't work, since we don't know about other raw CALayers.
973         This is OK, since nothing uses those properties on custom layers.
974
975         * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.cpp:
976         (PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
977         Disable actions on the root custom layer.
978
979 2013-11-05  Anders Carlsson  <andersca@apple.com>
980
981         Begin work on a WKRemoteObjectDecoder object
982         https://bugs.webkit.org/show_bug.cgi?id=123819
983
984         Reviewed by Dan Bernstein.
985
986         * Shared/API/Cocoa/WKRemoteObjectCoder.h:
987         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
988         (-[WKRemoteObjectDecoder initWithRootObjectDictionary:]):
989         Add designated initializer.
990
991         * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
992         (-[WKRemoteObjectRegistry _handleMessageWithName:body:]):
993         If the message has the expected name and body type, pass it along to -_invokeMessageWithBody:.
994
995         (-[WKRemoteObjectRegistry _invokeMessageWithBody:]):
996         Create a decoder.
997
998 2013-11-05  Benjamin Poulain  <benjamin@webkit.org>
999
1000         [WK2] Add a WebKit2 API for Geolocation's highAccuracy
1001         https://bugs.webkit.org/show_bug.cgi?id=123786
1002
1003         Reviewed by Darin Adler.
1004
1005         This adds support for highAccuracy Geolocation with WebKit2.
1006
1007         The key is to track which page/requester need what kind of geolocation
1008         in order to change between high and low accuracy as pages run and disappear.
1009
1010         WebGeolocationManager and WebGeolocationManagerProxy have very similar roles
1011         but for different sources:
1012         -WebGeolocationManager tracks which live page require high accuracy geolocation.
1013          When the state changes, it forward the information to the UIProcess.
1014         -WebGeolocationManagerProxy tracks which WebContent processes needs high accuracy.
1015
1016         * Shared/APIClientTraits.cpp:
1017         * Shared/APIClientTraits.h:
1018         * UIProcess/API/C/WKGeolocationManager.h:
1019         * UIProcess/WebGeolocationManagerProxy.cpp:
1020         (WebKit::WebGeolocationManagerProxy::startUpdating):
1021         (WebKit::WebGeolocationManagerProxy::removeRequester):
1022         (WebKit::WebGeolocationManagerProxy::setEnableHighAccuracy):
1023         * UIProcess/WebGeolocationManagerProxy.h:
1024         (WebKit::WebGeolocationManagerProxy::isUpdating):
1025         (WebKit::WebGeolocationManagerProxy::isHighAccuracyEnabled):
1026         * UIProcess/WebGeolocationManagerProxy.messages.in:
1027         * UIProcess/WebGeolocationProvider.cpp:
1028         (WebKit::WebGeolocationProvider::setEnableHighAccuracy):
1029         * UIProcess/WebGeolocationProvider.h:
1030         * WebProcess/Geolocation/WebGeolocationManager.cpp:
1031         (WebKit::WebGeolocationManager::registerWebPage):
1032         (WebKit::WebGeolocationManager::unregisterWebPage):
1033         (WebKit::WebGeolocationManager::setEnableHighAccuracyForPage):
1034         * WebProcess/Geolocation/WebGeolocationManager.h:
1035         (WebKit::WebGeolocationManager::isUpdating):
1036         (WebKit::WebGeolocationManager::isHighAccuracyEnabled):
1037         * WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
1038         (WebKit::WebGeolocationClient::setEnableHighAccuracy):
1039
1040 2013-11-05  Anders Carlsson  <andersca@apple.com>
1041
1042         Implement more NSCoder methods
1043         https://bugs.webkit.org/show_bug.cgi?id=123815
1044
1045         Reviewed by Dan Bernstein.
1046
1047         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
1048         (encodeObject):
1049         Assert that object is not nil.
1050
1051         (createEncodedObject):
1052         Handle nil objects.
1053
1054         (-[WKRemoteObjectEncoder encodeValueOfObjCType:at:]):
1055         Call the right object stream encoding function based on the object type.
1056
1057         (-[WKRemoteObjectEncoder encodeBool:forKey:]):
1058         (-[WKRemoteObjectEncoder encodeInt64:forKey:]):
1059         (-[WKRemoteObjectEncoder encodeDouble:forKey:]):
1060         Create APIObjects and add them to the current dictionary.
1061
1062 2013-11-05  Anders Carlsson  <andersca@apple.com>
1063
1064         Encode the class name
1065         https://bugs.webkit.org/show_bug.cgi?id=123813
1066
1067         Reviewed by Dan Bernstein.
1068
1069         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
1070         (encodeObject):
1071         Get the Class using -[NSObject classForCoder] and encode its name in the object dictionary.
1072
1073 2013-11-05  Anders Carlsson  <andersca@apple.com>
1074
1075         Clean up the WKRemoteObjectEncoder code
1076         https://bugs.webkit.org/show_bug.cgi?id=123811
1077
1078         Reviewed by Dan Bernstein.
1079
1080         Add a new object stream array to be used for the non-keyed encoding values
1081         and free functions for encoding values to the object stream. Simplify object encoding
1082         by moving the dictionary creation out into a separate function and ditching the block based methods.
1083
1084         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
1085         (ensureObjectStream):
1086         Add helper function to create an object stream.
1087
1088         (encodeToObjectStream):
1089         Add overloads for encoding values into the object streams.
1090
1091         (encodeInvocation):
1092         Add helper function for encoding an NSInvocation.
1093
1094         (encodeObject):
1095         Call encodeInvocation if needed, otherwise just use encodeWithCoder:.
1096
1097         (createEncodedObject):
1098         Helper function that sets up a dictionary, encodes the object into the dictionary and then returns the dictionary.
1099
1100         (-[WKRemoteObjectEncoder encodeObject:forKey:]):
1101         Call createEncodedObject.    
1102
1103 2013-11-04  Brady Eidson  <beidson@apple.com>
1104
1105         IDB: Split backend Cursors and Transactions into their own files
1106         https://bugs.webkit.org/show_bug.cgi?id=123789
1107
1108         Reviewed by Alexey Proskuryakov.
1109
1110         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
1111         (WebKit::WebIDBFactoryBackend::createCursorBackend):
1112         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
1113
1114 2013-11-04  Alexey Proskuryakov  <ap@apple.com>
1115
1116         DumpRenderTree should reset its preferences file on launch
1117         https://bugs.webkit.org/show_bug.cgi?id=29751
1118
1119         Reviewed by Dan Bernstein.
1120
1121         * UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
1122         (-[WKFullKeyboardAccessWatcher retrieveKeyboardUIModeFromPreferences:]):
1123         Further fix reading of AppleKeyboardUIMode - reading it from kCFPreferencesAnyApplication
1124         domain meant that current application's domain was explcitly ignored, and the only
1125         way to override the setting in WTR was through argument domain.
1126
1127 2013-11-04  Tim Horton  <timothy_horton@apple.com>
1128
1129         Remote Layer Tree: Make LayerTypeCustom remote-host CALayers from the Web process
1130         https://bugs.webkit.org/show_bug.cgi?id=123766
1131
1132         Reviewed by Anders Carlsson.
1133
1134         Put each LayerTypeCustom layer into a CAContext, so that we can
1135         host small CALayer trees (for video, plugins, etc.) from the Web process
1136         to the UI process without proxying their (more complex) content.
1137
1138         * Shared/mac/RemoteLayerTreeTransaction.h:
1139         * Shared/mac/RemoteLayerTreeTransaction.mm:
1140         (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode):
1141         (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
1142         (WebKit::RemoteLayerTreeTransaction::dump):
1143         Store, encode, and dump the CAContext ID of custom layers.
1144
1145         * UIProcess/mac/RemoteLayerTreeHost.mm:
1146         (WebKit::RemoteLayerTreeHost::createLayer):
1147         Create a CALayerHost with the CAContext ID from the Web process.
1148
1149         * WebKit2.xcodeproj/project.pbxproj:
1150         Add PlatformCALayerRemoteCustom.
1151
1152         * WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
1153         (WebKit::GraphicsLayerCARemote::createPlatformCALayer):
1154         Call the newly-added custom-layer constructor.
1155
1156         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
1157         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
1158         (PlatformCALayerRemote::create):
1159         (PlatformCALayerRemote::PlatformCALayerRemote):
1160         Move the call to layerWasCreated() out to ::create(), so that all of
1161         the constructors for this class and all subclasses have completed
1162         before we call it (so that layerWasCreated() can store the context ID
1163         in the created layer properties object).
1164
1165         (WebKit::PlatformCALayerRemote::hostingContextID):
1166         Should never be reached on the base class, only PlatformCALayerRemoteCustom.
1167
1168         * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.cpp: Added.
1169         (PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
1170         (PlatformCALayerRemoteCustom::~PlatformCALayerRemoteCustom):
1171         (PlatformCALayerRemoteCustom::hostingContextID):
1172         * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.h: Added.
1173         Add PlatformCALayerRemoteCustom, which owns a LayerHostingContext
1174         which it will use to share a custom CALayer tree with the UI process.
1175
1176         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
1177         Drive-by remove an unnecessary include.
1178
1179         * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
1180         (WebKit::RemoteLayerTreeContext::layerWasCreated):
1181         Store the CAContext ID with the layer creation properties so it can
1182         be used to create a CALayerHost upon commit in the UI process.
1183
1184 2013-11-04  Tim Horton  <timothy_horton@apple.com>
1185
1186         Remove PlatformCALayer::playerLayer
1187         https://bugs.webkit.org/show_bug.cgi?id=123764
1188
1189         Reviewed by Sam Weinig.
1190
1191         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
1192         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
1193         Remove playerLayer().
1194
1195 2013-11-04  Anders Carlsson  <andersca@apple.com>
1196
1197         WKRemoteObjectEncoder should escape keys
1198         https://bugs.webkit.org/show_bug.cgi?id=123761
1199
1200         Reviewed by Tim Horton.
1201
1202         Keys that start with $ will be reserved for use by the coder, so prepend an extra
1203         $ to keys that already start with $ to avoid clashes.
1204
1205         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
1206         (escapeKey):
1207         (-[WKRemoteObjectEncoder encodeBytes:length:forKey:]):
1208         (-[WKRemoteObjectEncoder _encodeObjectForKey:usingBlock:]):
1209
1210 2013-11-04  Benjamin Poulain  <bpoulain@apple.com>
1211
1212         [WK2] Update WebGeolocationManager to support multiple WebContent processes
1213         https://bugs.webkit.org/show_bug.cgi?id=123658
1214
1215         Reviewed by Anders Carlsson.
1216
1217         Change WebGeolocationManagerProxy to track which WebProcessProxy needs geolocation.
1218
1219         * UIProcess/WebContext.cpp:
1220         (WebKit::WebContext::disconnectProcess):
1221         WebContext::disconnectProcess does not handle ContextSupplement yet when using multiple
1222         WebContent processes. Add an explicit call for WebGeolocationManagerProxy as a temporary
1223         solution.
1224
1225         * UIProcess/WebGeolocationManagerProxy.cpp:
1226         (WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
1227         (WebKit::WebGeolocationManagerProxy::contextDestroyed):
1228         (WebKit::WebGeolocationManagerProxy::processDidClose):
1229         (WebKit::WebGeolocationManagerProxy::startUpdating):
1230         (WebKit::WebGeolocationManagerProxy::stopUpdating):
1231         (WebKit::WebGeolocationManagerProxy::removeRequester):
1232         * UIProcess/WebGeolocationManagerProxy.h:
1233         * UIProcess/WebGeolocationManagerProxy.messages.in:
1234
1235 2013-11-01  Jer Noble  <jer.noble@apple.com>
1236
1237         [PluginProxy] Add a setting to disable video plugin proxy support in HTMLMediaElement.
1238         https://bugs.webkit.org/show_bug.cgi?id=123621
1239
1240         Reviewed by Eric Carlson.
1241
1242         Add WebKit2 functions for setting then new isVideoPluginProxyEnabled preference.
1243
1244         * Shared/WebPreferencesStore.h:
1245         * UIProcess/API/C/WKPreferences.cpp:
1246         (WKPreferencesSetVideoPluginProxyEnabled):
1247         (WKPreferencesGetVideoPluginProxyEnabled):
1248         * UIProcess/API/C/WKPreferences.h:
1249         * WebProcess/WebPage/WebPage.cpp:
1250         (WebKit::WebPage::updatePreferences):
1251
1252 2013-11-04  Anders Carlsson  <andersca@apple.com>
1253
1254         More WKRemoteObjectRegistry work
1255         https://bugs.webkit.org/show_bug.cgi?id=123754
1256
1257         Reviewed by Dan Bernstein.
1258
1259         * Shared/API/Cocoa/WKRemoteObjectCoder.h:
1260         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
1261         (-[WKRemoteObjectEncoder rootObjectDictionary]):
1262         Add a getter for the root object dictionary.
1263
1264         * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
1265         (-[WKRemoteObjectRegistry _sendInvocation:interface:]):
1266         Call _sendMessageWithBody:.
1267         (-[WKRemoteObjectRegistry _sendMessageWithBody:]):
1268         Call WebConnection::postMessage.
1269
1270 2013-11-03  Dan Bernstein  <mitz@apple.com>
1271
1272         [Cocoa] Wrappers' -copyWithZone: should copy if the collection is mutable
1273         https://bugs.webkit.org/show_bug.cgi?id=123707
1274
1275         Reviewed by Geoff Garen and Anders Carlsson.
1276
1277         * Shared/Cocoa/WKNSArray.mm:
1278         (-[WKNSArray copyWithZone:]): If the array is mutable, make a copy.
1279         * Shared/Cocoa/WKNSDictionary.mm:
1280         (-[WKNSDictionary copyWithZone:]): If the dictionary is mutable, make a copy.
1281         * Shared/ImmutableArray.h:
1282         (WebKit::ImmutableArray::entries): Added this accessor.
1283
1284 2013-11-03  Dan Bernstein  <mitz@apple.com>
1285
1286         Reverted r158538.
1287
1288         * Shared/Cocoa/WKNSArray.mm:
1289         (-[WKNSArray copyWithZone:]):
1290         * Shared/Cocoa/WKNSDictionary.mm:
1291         (-[WKNSDictionary copyWithZone:]):
1292         * Shared/ImmutableArray.h:
1293
1294 2013-11-03  Dan Bernstein  <mitz@apple.com>
1295
1296         [Cocoa] Wrappers' -copyWithZone: should copy if the collection is mutable
1297         https://bugs.webkit.org/show_bug.cgi?id=123707
1298
1299         Reviewed by Geoff Garen.
1300
1301         * Shared/Cocoa/WKNSArray.mm:
1302         (-[WKNSArray copyWithZone:]): If the array is mutable, make a copy.
1303         * Shared/Cocoa/WKNSDictionary.mm:
1304         (-[WKNSDictionary copyWithZone:]): If the dictionary is mutable, make a copy.
1305         * Shared/ImmutableArray.h:
1306         (WebKit::ImmutableArray::entries): Added this accessor.
1307
1308 2013-11-02  Dan Bernstein  <mitz@apple.com>
1309
1310         [Cocoa] Wrappers mishandle NULL values in arrays and dictionaries
1311         https://bugs.webkit.org/show_bug.cgi?id=123671
1312
1313         Reviewed by Darin Adler.
1314
1315         * Shared/Cocoa/WKNSArray.mm:
1316         (-[WKNSArray objectAtIndex:]): Represent a NULL object as NSNull.
1317         * Shared/Cocoa/WKNSDictionary.mm:
1318         (-[WKNSDictionary objectForKey:]): Represent a NULL value as NSNull.
1319         * Shared/ImmutableDictionary.h:
1320         (WebKit::ImmutableDictionary::get): Added this overload that returns whether the key exists.
1321
1322 2013-11-02  Dan Bernstein  <mitz@apple.com>
1323
1324         Fixed release builds.
1325
1326         * Shared/Cocoa/WKNSDictionary.mm:
1327         (-[WKNSDictionary initWithObjects:forKeys:count:]):
1328
1329 2013-11-02  Dan Bernstein  <mitz@apple.com>
1330
1331         [Cocoa] Add WKNSDictionary
1332         https://bugs.webkit.org/show_bug.cgi?id=123660
1333
1334         Reviewed by Anders Carlsson.
1335
1336         * Shared/Cocoa/APIObject.mm:
1337         (WebKit::APIObject::newObject): Allocate a WKNSDictionary if the APIObject is a dictionary.
1338         * Shared/Cocoa/WKNSDictionary.h: Added.
1339         (WebKit::wrapper):  Added. Returns an ImmutableDictionary’s wrapper as an NSDictionary.
1340         * Shared/Cocoa/WKNSDictionary.mm: Added.
1341         (-[WKNSDictionary dealloc]): Calls the ImmutableDictionary destructor.
1342         (-[WKNSDictionary count]): Added.
1343         (-[WKNSDictionary objectForKey:]): Added.
1344         (-[WKNSDictionary keyEnumerator]): Added.
1345         (-[WKNSDictionary copyWithZone:]): Retains self.
1346         (-[WKNSDictionary _apiObject]): Returns the wrapped ImmutableDictionary.
1347         * WebKit2.xcodeproj/project.pbxproj: Added references to new files.
1348
1349 2013-11-02  Tim Horton  <timothy_horton@apple.com>
1350
1351         Address some review comments noted in r158463
1352         https://bugs.webkit.org/show_bug.cgi?id=123646
1353
1354         Reviewed by Darin Adler.
1355
1356         * Shared/mac/RemoteLayerBackingStore.mm:
1357         Put our __has_include ifs all on one line.
1358
1359         (createIOSurface):
1360         IOSurfaceAlignProperty returns size_t, not unsigned long.
1361
1362         (RemoteLayerBackingStore::display):
1363         (RemoteLayerBackingStore::drawInContext):
1364         Create the frontImage in display() and hand it to drawInContext().
1365
1366         Use the GraphicsContext API instead of CG itself for clearRect().
1367
1368         When using ShareableBitmap, replace m_frontBuffer instead of
1369         having a backBuffer local; the CGImageRef will retain the
1370         ShareableBitmap it references.
1371
1372         Duplicate our drawInContext() calls so we don't have to allocate
1373         a GraphicsContext on the heap in the IOSurface case.
1374
1375         Don't bother clearing frontContext; it'll happen for us at
1376         the appropriate time. Instead, assert that it's still alive after
1377         we drop our reference to the frontImage created from it.
1378
1379 2013-11-02  Zan Dobersek  <zdobersek@igalia.com>
1380
1381         [GTK] invalid use of incomplete type 'class WTF::PassOwnPtr<WTF::Vector<unsigned char> >'
1382         https://bugs.webkit.org/show_bug.cgi?id=123601
1383
1384         Reviewed by Carlos Garcia Campos.
1385
1386         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp: Explicitly include the PassOwnPtr.h header
1387         as certain configurations on the GTK port don't ensure that the header is included indirectly.
1388
1389 2013-11-02  Vitaly Katunin  <vkatunin@luxoft.com>
1390
1391         [GTK] invalid application of 'sizeof' to incomplete type
1392         https://bugs.webkit.org/show_bug.cgi?id=123502
1393
1394         Reviewed by Carlos Garcia Campos.
1395
1396         * Shared/WebCoreArgumentCoders.cpp:
1397
1398 2013-11-01  Tim Horton  <timothy_horton@apple.com>
1399
1400         Remote Layer Tree: Crashes allocating incredibly large backing store for tiled backing layers
1401         https://bugs.webkit.org/show_bug.cgi?id=123651
1402
1403         Reviewed by Simon Fraser.
1404
1405         * Shared/mac/RemoteLayerBackingStore.mm:
1406         (RemoteLayerBackingStore::display):
1407         (RemoteLayerBackingStore::drawInContext):
1408         We can't dirty the whole layer if we have no existing front buffer if
1409         we have no paints, because that will lead to layers which were never
1410         setNeedsDisplay()'d getting backing store. Added back an assertion
1411         that will catch this, too.
1412
1413 2013-11-01  Dan Bernstein  <mitz@apple.com>
1414
1415         [Cocoa] WKObject seems to be initializing its target in a thread-safe manner, but really is not
1416         https://bugs.webkit.org/show_bug.cgi?id=123640
1417
1418         Reviewed by Darin Adler.
1419
1420         * Shared/Cocoa/WKObject.mm:
1421         (initializeTargetIfNeeded): Removed misleading incorrect code.
1422
1423 2013-11-01  Benjamin Poulain  <benjamin@webkit.org>
1424
1425         [WK2] Create a unique identifier for WebPageGroup if the input name is empty
1426         https://bugs.webkit.org/show_bug.cgi?id=123606
1427
1428         Reviewed by Andreas Kling.
1429
1430         Strengthen the "public" API of page group.
1431         If someone uses WKBrowsingContextGroup with a nil or empty string, the related WKString
1432         would be empty, and all the WKBrowsingContextGroup end up with the same identifier.
1433
1434         * UIProcess/WebPageGroup.cpp:
1435         (WebKit::WebPageGroup::WebPageGroup):
1436
1437 2013-11-01  Dan Bernstein  <mitz@apple.com>
1438
1439         [Cocoa] Avoid some double-wrapping of strings and URLs
1440         https://bugs.webkit.org/show_bug.cgi?id=123632
1441
1442         Reviewed by Anders Carlsson.
1443
1444         * Shared/API/c/cf/WKStringCF.cpp: Removed.
1445         * Shared/API/c/cf/WKStringCF.mm: Copied from Source/WebKit2/Shared/API/c/cf/WKStringCF.cpp.
1446         (wkNSStringClass): Added this helper.
1447         (WKStringCreateWithCFString): If the passed-in CFString is already wrapping a WebString,
1448         then retain it and return it.
1449         * Shared/API/c/cf/WKURLCF.cpp: Removed.
1450         * Shared/API/c/cf/WKURLCF.mm: Copied from Source/WebKit2/Shared/API/c/cf/WKURLCF.cpp.
1451         (wkNSURLClass): Added this helper.
1452         (WKURLCreateWithCFURL): If the passed-in CFURL is already wrapping a WebURL, then retain it
1453         and return it.
1454         * WebKit2.xcodeproj/project.pbxproj: Updated for renames.
1455
1456 2013-11-01  Anders Carlsson  <andersca@apple.com>
1457
1458         Begin work on encoding argument types
1459         https://bugs.webkit.org/show_bug.cgi?id=123631
1460
1461         Reviewed by Dan Bernstein.
1462
1463         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
1464         (-[WKRemoteObjectEncoder _encodeInvocation:forKey:]):
1465         Encode argument types in an array.
1466
1467         (-[WKRemoteObjectEncoder _encodedObjectUsingBlock:]):
1468         Add new helper method that encodes an object and returns the dictionary.
1469
1470         (-[WKRemoteObjectEncoder _encodeObjectForKey:usingBlock:]):
1471         Implement this in terms of _encodedObjectUsingBlock:.
1472
1473         * Shared/MutableArray.cpp:
1474         (WebKit::MutableArray::append):
1475         * Shared/MutableArray.h:
1476         Change append to take a PassRefPtr.
1477
1478 2013-10-31  Gavin Barraclough  <barraclough@apple.com>
1479
1480         Rename InWindowState -> ViewState
1481         https://bugs.webkit.org/show_bug.cgi?id=123584
1482
1483         Rubber stamped by Sam Weinig.
1484
1485         WebPageProxy::setViewState offers the option to wait for a reply. Previously this option
1486         was only available via setIsInWindow, hence the mechanism to wait to the update has
1487         'InWindowState' in method and variable names (i.e.
1488         'WebPageProxy::waitForDidUpdateInWindowState'). Since the mechanism is now applicable to
1489         all ViewState changes, rename to reflect this.
1490
1491         * UIProcess/API/mac/WKView.mm:
1492         (-[WKView endDeferringViewInWindowChangesSync]):
1493         * UIProcess/WebPageProxy.cpp:
1494         (WebKit::WebPageProxy::WebPageProxy):
1495         (WebKit::WebPageProxy::waitForDidUpdateViewState):
1496         (WebKit::WebPageProxy::resetStateAfterProcessExited):
1497         * UIProcess/WebPageProxy.h:
1498         (WebKit::WebPageProxy::didUpdateViewState):
1499         * UIProcess/WebPageProxy.messages.in:
1500         * WebProcess/WebPage/WebPage.cpp:
1501         (WebKit::WebPage::WebPage):
1502         (WebKit::WebPage::didUpdateViewStateTimerFired):
1503         (WebKit::WebPage::setViewState):
1504         * WebProcess/WebPage/WebPage.h:
1505         * WebProcess/WebPage/WebPage.messages.in:
1506         * WebProcess/WebPage/mac/WebPageMac.mm:
1507         (WebKit::WebPage::didUpdateViewStateTimerFired):
1508
1509 2013-11-01  Tim Horton  <timothy_horton@apple.com>
1510
1511         Remote Layer Tree: Move RemoteLayerBackingStore to Shared/
1512         https://bugs.webkit.org/show_bug.cgi?id=123646
1513
1514         Reviewed by Darin Adler.
1515
1516         Move RemoteLayerBackingStore to Shared/, since it is
1517         used on both the UI and Web process side of things.
1518
1519         * Shared/mac/RemoteLayerBackingStore.h: Renamed from Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerBackingStore.h.
1520         * Shared/mac/RemoteLayerBackingStore.mm: Renamed from Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerBackingStore.mm.
1521         * WebKit2.xcodeproj/project.pbxproj:
1522
1523 2013-11-01  Tim Horton  <timothy_horton@apple.com>
1524
1525         Remote Layer Tree: Vend layer contents via IOSurfaces
1526         https://bugs.webkit.org/show_bug.cgi?id=123600
1527
1528         Reviewed by Anders Carlsson.
1529
1530         Address some review comments from Darin (and subsequently Anders).
1531
1532         * WebProcess/WebPage/mac/RemoteLayerBackingStore.h:
1533         (WebKit::RemoteLayerBackingStore::surface):
1534         No need for .get() here.
1535
1536         * WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
1537         (RemoteLayerBackingStore::ensureBackingStore):
1538         All on one line for readability.
1539
1540         (createIOSurfaceContext):
1541         This 'if' is meaningless.
1542
1543         (createIOSurface):
1544         No need for a RetainPtr here, the dictionary is autoreleased.
1545
1546         (RemoteLayerBackingStore::display):
1547         Snuggle 'context' up next to the other declarations.
1548
1549 2013-11-01  Anders Carlsson  <andersca@apple.com>
1550
1551         Don't use the C API in WKRemoteObjectCoder
1552         https://bugs.webkit.org/show_bug.cgi?id=123627
1553
1554         Reviewed by Dan Bernstein.
1555
1556         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
1557         (-[WKRemoteObjectEncoder init]):
1558         (-[WKRemoteObjectEncoder encodeBytes:length:forKey:]):
1559         (-[WKRemoteObjectEncoder _encodeObjectForKey:usingBlock:]):
1560         * Shared/ImmutableDictionary.h:
1561         * Shared/MutableDictionary.cpp:
1562         (WebKit::MutableDictionary::add):
1563         (WebKit::MutableDictionary::set):
1564         * Shared/MutableDictionary.h:
1565
1566 2013-11-01  Emilio Pozuelo Monfort  <pochu27@gmail.com>
1567
1568         Fix build on non-linux platforms
1569         https://bugs.webkit.org/show_bug.cgi?id=123622
1570
1571         Reviewed by Darin Adler.
1572
1573         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
1574
1575 2013-11-01  Brian Holt  <brian.holt@samsung.com>
1576
1577         [GTK] [WK2] Crash in webkitWebViewLoadFailedWithTLSErrors
1578         https://bugs.webkit.org/show_bug.cgi?id=123618
1579
1580         Reviewed by Mario Sanchez Prada.
1581
1582         The GOwnPtrSoup header was not included which meant that the
1583         specialization for GOwnPtr<SoupURI> was not used and instead the
1584         default freeOwnedGPtr which calls g_free is used and crashes.
1585
1586         * UIProcess/API/gtk/WebKitWebView.cpp:
1587
1588 2013-10-31  Tim Horton  <timothy_horton@apple.com>
1589
1590         Fix a typo/review comment from Dan, in http://trac.webkit.org/changeset/158413
1591
1592         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
1593
1594 2013-10-31  Tim Horton  <timothy_horton@apple.com>
1595
1596         Remote Layer Tree: Vend layer contents via IOSurfaces
1597         https://bugs.webkit.org/show_bug.cgi?id=123600
1598
1599         Reviewed by Anders Carlsson.
1600
1601         * Configurations/WebKit2.xcconfig:
1602         Link WebKit2 against IOSurface.
1603
1604         * Shared/mac/RemoteLayerTreeTransaction.mm:
1605         (WebKit::dumpChangedLayers):
1606         Dump the size of the backing store instead of the pointer of its
1607         SharedBitmap, because that's slightly more useful.
1608
1609         * UIProcess/mac/RemoteLayerTreeHost.mm:
1610         (WebKit::RemoteLayerTreeHost::commit):
1611         If a layer's backing store uses accelerated drawing, hand the IOSurface
1612         to the CALayer for display.
1613
1614         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
1615         (PlatformCALayerRemote::PlatformCALayerRemote):
1616         Initialize contentsScale to 1 to match CA. Other properties will follow.
1617
1618         (PlatformCALayerRemote::ensureBackingStore):
1619         Instead of replacing the RemoteLayerBackingStore when its properties
1620         change, allow it to update them on the fly. Replacing them caused
1621         us to throw away repaint rects when the accelerated drawing
1622         flag was flipped.
1623
1624         (PlatformCALayerRemote::acceleratesDrawing):
1625         (PlatformCALayerRemote::setAcceleratesDrawing):
1626         Store the accelerated drawing flag and mark it dirty when it changes.
1627
1628         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
1629         * WebProcess/WebPage/mac/RemoteLayerBackingStore.h:
1630         (WebKit::RemoteLayerBackingStore::image):
1631         Rename bitmap() to image() and have it create a CGImageRef from
1632         the ShareableBitmap, ready for direct application to a CALayer.
1633
1634         (WebKit::RemoteLayerBackingStore::surface):
1635         Return a IOSurface ready for direct application to a CALayer.
1636
1637         (WebKit::RemoteLayerBackingStore::acceleratesDrawing):
1638         (WebKit::RemoteLayerBackingStore::hasFrontBuffer):
1639         Return whether or not we have a front buffer/surface.
1640
1641         * WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
1642         Forward-declare some CGIOSurface SPI.
1643
1644         (RemoteLayerBackingStore::RemoteLayerBackingStore):
1645         (RemoteLayerBackingStore::ensureBackingStore):
1646         Throw away our front image and reset flags if needed.
1647
1648         (RemoteLayerBackingStore::encode):
1649         (RemoteLayerBackingStore::decode):
1650         En/decode the front surface instead of the ShareableBitmap if needed,
1651         using CoreIPC::MachPort. Destroy the port on receipt.
1652
1653         (createIOSurfaceContext):
1654         Create a CGIOSurfaceContext from an IOSurface.
1655
1656         (createIOSurface):
1657         Create an IOSurface of the given size.
1658
1659         (RemoteLayerBackingStore::image):
1660         Return a CGImageRef, if we're not using accelerated drawing.
1661         Moved from the header.
1662
1663         (RemoteLayerBackingStore::display):
1664         (RemoteLayerBackingStore::drawInContext):
1665         If using accelerated drawing, create and paint into an IOSurface.
1666         Reorganize some code to make the copying-from-the-front-image code
1667         work for both software and IOSurfaces.
1668         Flush the context when completed, to ensure that any asynchronous
1669         painting is complete before we vend the surface to the UI process.
1670
1671 2013-10-31  Anders Carlsson  <andersca@apple.com>
1672
1673         Begin stubbing out the WKRemoteObjectCoder NSCoder subclass
1674         https://bugs.webkit.org/show_bug.cgi?id=123596
1675
1676         Reviewed by Tim Horton.
1677
1678         * Shared/API/Cocoa/WKRemoteObject.mm:
1679         (-[WKRemoteObject forwardInvocation:]):
1680         Call through to the WKRemoteObjectRegistry.
1681
1682         * Shared/API/Cocoa/WKRemoteObjectCoder.h: Added.
1683         * Shared/API/Cocoa/WKRemoteObjectCoder.mm: Added.
1684         (-[WKRemoteObjectEncoder init]):
1685         Create a root WKDictionary.
1686
1687         (-[WKRemoteObjectEncoder dealloc]):
1688         Assert that the current dictionary is the root dictionary; that we're back where we started.
1689
1690         (-[WKRemoteObjectEncoder allowsKeyedCoding]):
1691         Return YES.
1692
1693         (-[WKRemoteObjectEncoder encodeObject:forKey:]):
1694         Check that the object is valid and then encode it.
1695
1696         (-[WKRemoteObjectEncoder _encodeInvocation:forKey:]):
1697         Encode the method type string and invocation selector.
1698
1699         (-[WKRemoteObjectEncoder encodeBytes:length:forKey:]):
1700         Create a WKDataRef and add it to the dictionary.
1701
1702         (-[WKRemoteObjectEncoder _encodeObjectForKey:usingBlock:]):
1703         Create a new dictionary and call the block.
1704
1705         * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
1706         (-[WKRemoteObjectRegistry _sendInvocation:interface:]):
1707         Create an encoder and encode the invocation and interface.
1708
1709         * Shared/API/Cocoa/WKRemoteObjectRegistryInternal.h: Added.
1710         Add IPI header.
1711
1712         * WebKit2.xcodeproj/project.pbxproj:
1713         Add new files.
1714
1715 2013-10-31  Anders Carlsson  <andersca@apple.com>
1716
1717         Address review comments.
1718
1719         * Shared/API/Cocoa/WKRemoteObject.h:
1720         * Shared/API/Cocoa/WKRemoteObject.mm:
1721         (-[WKRemoteObject conformsToProtocol:]):
1722
1723 2013-10-31  Anders Carlsson  <andersca@apple.com>
1724
1725         Add a WKRemoteObject class
1726         https://bugs.webkit.org/show_bug.cgi?id=123586
1727
1728         Reviewed by Dan Bernstein.
1729
1730         * Shared/API/Cocoa/WKRemoteObject.h: Added.
1731         * Shared/API/Cocoa/WKRemoteObject.mm: Added.
1732         (-[WKRemoteObject _initWithObjectRegistry:interface:]):
1733         Add designated initializer.
1734
1735         (-[WKRemoteObject conformsToProtocol:]):
1736         Check if the interface protocol conforms to our protocol.
1737
1738         (methodArgumentTypeEncodingForSelector):
1739         Helper function that looks up a method in a given protocol and returns its type encoding.
1740
1741         (-[WKRemoteObject methodSignatureForSelector:]):
1742         Try to find the method argument type encoding for the given selector and return its NSMethodSignature.
1743
1744         (-[WKRemoteObject forwardInvocation:]):
1745         Add stub.
1746
1747         * Shared/API/Cocoa/WKRemoteObjectInterface.mm:
1748         Remove a newline.
1749
1750         * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
1751         (-[WKRemoteObjectRegistry remoteObjectProxyWithInterface:]):
1752         Establish a mapping between interface identifiers and remote object proxies.
1753
1754         * WebKit2.xcodeproj/project.pbxproj:
1755
1756 2013-10-31  Alexey Proskuryakov  <ap@apple.com>
1757
1758         Enable WebCrypto on Mac
1759         https://bugs.webkit.org/show_bug.cgi?id=123587
1760
1761         Reviewed by Anders Carlsson.
1762
1763         * Configurations/FeatureDefines.xcconfig: Do it.
1764
1765 2013-10-31  Sergio Correia  <sergio.correia@openbossa.org>
1766
1767         [WK2] Convert SeccompFilters to using unique_ptr instead of OwnPtr/PassOwnPtr
1768         https://bugs.webkit.org/show_bug.cgi?id=122883
1769
1770         Reviewed by Darin Adler.
1771
1772         * Shared/linux/SeccompFilters/OpenSyscall.cpp:
1773         (WebKit::OpenSyscall::createFromOpenatContext):
1774         (WebKit::OpenSyscall::createFromCreatContext):
1775         (WebKit::OpenSyscall::execute):
1776         * Shared/linux/SeccompFilters/OpenSyscall.h:
1777         * Shared/linux/SeccompFilters/SeccompBroker.cpp:
1778         (WebKit::SIGSYSHandler):
1779         (WebKit::SeccompBrokerClient::dispatch):
1780         (WebKit::SeccompBroker::runLoop):
1781         * Shared/linux/SeccompFilters/SigactionSyscall.cpp:
1782         (WebKit::SigactionSyscall::createFromContext):
1783         * Shared/linux/SeccompFilters/SigactionSyscall.h:
1784         * Shared/linux/SeccompFilters/SigprocmaskSyscall.cpp:
1785         (WebKit::SigprocmaskSyscall::createFromContext):
1786         * Shared/linux/SeccompFilters/SigprocmaskSyscall.h:
1787         * Shared/linux/SeccompFilters/Syscall.cpp:
1788         (WebKit::Syscall::createFromContext):
1789         (WebKit::Syscall::createFromDecoder):
1790         (WebKit::SyscallResult::createFromDecoder):
1791         * Shared/linux/SeccompFilters/Syscall.h:
1792         * Shared/linux/SeccompFilters/SyscallPolicy.cpp:
1793
1794 2013-10-31  Gavin Barraclough  <barraclough@apple.com>
1795
1796         Change WebPage, WebPageProxy, WebPageCreationParameters to use ViewState
1797         https://bugs.webkit.org/show_bug.cgi?id=123379
1798
1799         Reviewed by Darin Adler.
1800
1801         Visibility state of the Page should be stored and communicated consistently.
1802
1803         Remove individual visibility flags from WebPageProxy, WebPageCreationParameters,
1804         and replace them with a ViewState, and add a ViewState member to WebPage.
1805         Merge together all messages that convey and individual aspect of the ViewState.
1806
1807         Restructure WebPageProxy::viewStateDidChange to break the operation down into
1808         three steps: 1) update m_viewState, 2) send the new ViewState to the WebProcess,
1809         and 3) perform any further work necessary in the UIProcess.
1810
1811         This patch fixes a problem that if the web process crashes m_isVisible &
1812         m_isInWindow in WebPageProxy were not updated, and could have held stale values
1813         on reattach.
1814
1815         In WebPage, add a new message to update the entire ViewState - diff the prior
1816         value against the new one to detect changes, call existing methods accordingly.
1817
1818         * Shared/ViewState.h:
1819             - Add constants 'Reset', 'AllFlags'
1820         * Shared/WebPageCreationParameters.cpp:
1821         (WebKit::WebPageCreationParameters::encode):
1822         (WebKit::WebPageCreationParameters::decode):
1823         * Shared/WebPageCreationParameters.h:
1824             - Removed boolean visibility flags, added viewState.
1825         * UIProcess/WebPageProxy.cpp:
1826         (WebKit::WebPageProxy::WebPageProxy):
1827             - Constructor calls updateViewState to initialize m_viewState.
1828         (WebKit::WebPageProxy::reattachToWebProcess):
1829             - ViewStaet is not updated while detatched; recalculate.
1830         (WebKit::WebPageProxy::initializeWebPage):
1831             - m_isVisible -> isViewVisible()
1832         (WebKit::WebPageProxy::updateViewState):
1833             - Added, update m_viewState by querying the page client.
1834         (WebKit::WebPageProxy::viewStateDidChange):
1835             - Restructured to use m_viewState, reordered to combine messages.
1836         (WebKit::WebPageProxy::creationParameters):
1837             - Removed boolean visibility flags, added viewState.
1838         * UIProcess/WebPageProxy.h:
1839         (WebKit::WebPageProxy::isInWindow):
1840         (WebKit::WebPageProxy::isViewVisible):
1841             - Removed boolean visibility flags, added viewState.
1842         * WebProcess/WebPage/WebPage.cpp:
1843         (WebKit::WebPage::WebPage):
1844             - initial state now passed as a ViewState.
1845         (WebKit::WebPage::setIsInWindow):
1846             - Remove code to send reply (this is handled by setViewState).
1847         (WebKit::WebPage::setViewState):
1848             - Set m_viewState - diff from prior & call methods to update.
1849         * WebProcess/WebPage/WebPage.h:
1850             - Added setViewState, m_viewState.
1851         * WebProcess/WebPage/WebPage.messages.in:
1852             - Add SetViewState, remove individual messages.
1853         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1854         (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
1855             - initial state now passed as a ViewState.
1856
1857 2013-10-30  Gavin Barraclough  <barraclough@apple.com>
1858
1859         WebPageCreationParameters should be consistent in Window.open
1860         https://bugs.webkit.org/show_bug.cgi?id=123557
1861
1862         Reviewed by Sam Weinig.
1863
1864         When Window.open in called in WebKit2 the WebProcess sends a synchronous request to open
1865         a page (WebPageProxy::createNewPage). The UIProcess creates a WebpageProxy, and responds
1866         with instructions to the WebProcess to create the WebPage. The initial creation state of
1867         the WebPage is communicated to the WebProcess via two routes (firstly an asynchronous
1868         WebProcess::CreateWebPage message, and secondly in the synchronous response from
1869         WebPageProxy::createNewPage). Unfortunately these responses are inconsistent with each
1870         other. The creationParameters() for the page are calculated twice, and since the WKView
1871         will be added to a window between the async message being sent and the synchronous reply
1872         being returned the visibility state of the page can change.
1873
1874         To fix the inconsistency we can set the creation parameters at the point that the
1875         WebPageProxy is instantiated. This will result in a functional change that is web
1876         visible, since the page will initially be opened in a hidden/blurred state, and may
1877         later become visible/focussed. This change is consistent with the direction we want to
1878         evolve in. Whilst we will still probably require a synchronous message from the
1879         WebProcess to the UIProcess on Window.open, we'll probably make this return much earlier
1880         – having just created the WebPageProxy, but avoiding blocking the WebProcess over the
1881         client delegate callback that opens the new window.
1882
1883         This fix results in a layout test result change, due to the change in behavior (page is
1884         created blurred, and becomes focussed, resulting in a focus event being fired – rather
1885         than the window opening directly into a focussed state). This is reported as a
1886         progression (test is broken in WebKit1, fixed in WebKit2 after this change). In reality
1887         the test is actually slightly broken in DRT/test-runner – the test runs differently than
1888         in browser, since there is is no visible main window. In-browser this patch results in
1889         no change in behavior on dom/Window/mozilla-focus-blur.html (the affected test).
1890
1891         * UIProcess/WebPageProxy.cpp:
1892         (WebKit::WebPageProxy::initializeWebPage):
1893             - call initializeCreationParameters
1894         (WebKit::WebPageProxy::initializeCreationParameters):
1895             - calculate m_creationParameters
1896         * UIProcess/WebPageProxy.h:
1897         (WebKit::WebPageProxy::creationParameters):
1898             - Added m_creationParameters, initializeCreationParameters,
1899               creationParameters returns m_creationParameters
1900
1901 2013-10-31  Philippe Normand  <pnormand@igalia.com>
1902
1903         [WK2][GTK] enable-media-stream Setting
1904         https://bugs.webkit.org/show_bug.cgi?id=123145
1905
1906         Reviewed by Anders Carlsson.
1907
1908         * Shared/WebPreferencesStore.h: New MediaStreamEnabled boolean preference.
1909         * UIProcess/API/C/WKPreferences.cpp: MediaStreamEnabled getter and
1910         setter functions.
1911         (WKPreferencesSetMediaStreamEnabled):
1912         (WKPreferencesGetMediaStreamEnabled):
1913         * UIProcess/API/C/WKPreferences.h:
1914         * UIProcess/API/gtk/WebKitSettings.cpp: Add a enable-media-stream
1915         property to the GTK WebKitSettings class. It will act as a facade
1916         to the MediaStreamEnabled preference.
1917         (webKitSettingsSetProperty):
1918         (webKitSettingsGetProperty):
1919         (webkit_settings_class_init):
1920         (webkit_settings_get_enable_media_stream):
1921         (webkit_settings_set_enable_media_stream):
1922         * UIProcess/API/gtk/WebKitSettings.h:
1923         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
1924         * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
1925         (testWebKitSettings): Test enable-media-stream websetting.
1926         * WebProcess/InjectedBundle/InjectedBundle.cpp:
1927         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
1928         Allow WKTR to override the MediaStreamEnabled preference.
1929         * WebProcess/WebPage/WebPage.cpp:
1930         (WebKit::WebPage::updatePreferences): Update MediaStreamEnabled
1931         along with the other settings.
1932
1933 2013-10-30  Brady Eidson  <beidson@apple.com>
1934
1935         IDB Database versions are uint64_t, not int64_t
1936         https://bugs.webkit.org/show_bug.cgi?id=123556
1937
1938         Reviewed by Alexey Proskuryakov.
1939
1940         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
1941         (WebKit::WebIDBFactoryBackend::open):
1942         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
1943
1944         * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
1945         (WebKit::WebProcessIDBDatabaseBackend::openConnection):
1946         * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
1947
1948 2013-10-30  Dan Bernstein  <mitz@apple.com>
1949
1950         Fixed a potential race condition around the initializtion of WKObject’s target.
1951
1952         Reviewed by Mark Rowe.
1953
1954         * Shared/Cocoa/WKObject.mm:
1955         (initializeTargetIfNeeded): Removed the early return if _target is non-nil. As Mark pointed
1956         out, when stores are reordered relative to other stores, it is possible for the early return
1957         to occur while the object _target is pointing to is not yet valid.
1958
1959 2013-10-30  Ryosuke Niwa  <rniwa@webkit.org>
1960
1961         Remove code for Mac Lion
1962         https://bugs.webkit.org/show_bug.cgi?id=123542
1963
1964         Reviewed by Anders Carlsson.
1965
1966
1967         * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
1968         * UIProcess/API/mac/WKView.mm:
1969         (-[WKView viewWillMoveToWindow:]):
1970         * WebProcess/com.apple.WebProcess.sb.in:
1971
1972 2013-10-30  Dan Bernstein  <mitz@apple.com>
1973
1974         Try to fix the !WK_API_ENABLED Mac build.
1975
1976         * Shared/Cocoa/APIObject.mm:
1977
1978 2013-10-30  Dan Bernstein  <mitz@apple.com>
1979
1980         [Cocoa] Make all API objects have Cocoa wrappers, and delegate refcounting to those wrappers
1981         https://bugs.webkit.org/show_bug.cgi?id=123394
1982
1983         Reviewed by Darin Adler.
1984
1985         All wrappers conform to a new WKObject protocol and contain the wrapped object inline.
1986         APIObject-derived classes override operator new to call newObject, which allocates the
1987         wrapper and returns a pointer to the inline API object.
1988
1989         There are three kinds of wrapper classes: (a) classes that inherit directly from NSObject
1990         and implement their API by calling the wrapped object (example: WKBackForwardList),
1991         (b) internal classes that inherit from a class cluster, and implement the primitive methods
1992         of the class cluster by calling the wrapped object (example: WKNSArray), and (c) internal
1993         classes that inerit from the new WKObject class, and proxy to an object of some public type,
1994         which is created from the wrapped object (example: WKNSURL).
1995
1996         * Shared/APIObject.h:
1997         (WebKit::APIObject::wrapper): Added this getter.
1998         (WebKit::TypedAPIObject::operator new): Added override that calls newObject.
1999         * Shared/Cocoa/APIObject.mm: Added.
2000         (WebKit::APIObject::ref): Retains the wrapper.
2001         (WebKit::APIObject::deref): Releases the wrapper. When the wrapper is deallocated, it calls
2002         the API object destructor.
2003         (WebKit::APIObject::newObject): Allocates the wrapper and returns a pointer to the API
2004         object inside the wrapper.
2005
2006         * Shared/Cocoa/WKNSArray.h:
2007         (WebKit::wrapper): Added. Returns an ImmutableArray’s wrapper as an NSArray.
2008         Replaced the RefPtr<ImmutableArray> ivar with space for an ImmutableArray to live inside
2009         the wrapper.
2010         (-[WKNSArray dealloc]): Calls the ImmutableArray destructor.
2011         (-[WKNSArray count]): Updated for ivar change.
2012         (-[WKNSArray objectAtIndex:]): Ditto.
2013         (-[WKNSArray _apiObject]): Returns the wrapped ImmutableArray.
2014
2015         * Shared/Cocoa/WKNSObjectExtras.h: Removed.
2016         * Shared/Cocoa/WKNSObjectExtras.mm: Removed.
2017
2018         * Shared/Cocoa/WKNSString.h: Added.
2019         * Shared/Cocoa/WKNSString.mm: Added.
2020         (-[WKNSString _web_createTarget]): Override this WKObject method to create an NSString from
2021         the WebString.
2022         (-[WKNSString copyWithZone:]): Retains self.
2023
2024         * Shared/Cocoa/WKNSURL.h: Added.
2025         * Shared/Cocoa/WKNSURL.mm: Added.
2026         (-[WKNSURL _web_createTarget]): Override this WKObject method to create an NSURL from
2027         the WebURL.
2028         (-[WKNSURL copyWithZone:]): Retains self.
2029
2030         * Shared/Cocoa/WKObject.h: Added.
2031         * Shared/Cocoa/WKObject.mm: Added.
2032         (-[WKObject dealloc]): Calls the destructor of the wrapped object and releases the target
2033         object.
2034         (initializeTargetIfNeeded): Helper function. Tries to create the target exactly once.
2035         (-[WKObject isEqual:]): NSObject override that creates and compares to the target
2036         object if necessary.
2037         (-[WKObject hash]): NSObject override that creates and hashes the target object if
2038         there is one.
2039         (-[WKObject isKindOfClass:]): NSObject override that delegates to the target object.
2040         (-[WKObject isMemberOfClass:]): Ditto.
2041         (-[WKObject respondsToSelector:]): NSObject override that creates the target object if
2042         necessary and returns whether it or self responds to the selector.
2043         (-[WKObject conformsToProtocol:]): Similarly for protocols.
2044         (-[WKObject forwardingTargetForSelector:]): NSObject override that creates the target object
2045         if necessary and returns it as the target.
2046         (-[WKObject description]): NSObject override that creates the target object if necessary and
2047         forwards to it.
2048         (-[WKObject _web_createTarget]): Added. The base implementation returns nil.
2049         (-[WKObject _apiObject]): Returns the wrapped object.
2050
2051         * UIProcess/API/mac/WKBrowsingContextController.mm:
2052         (-[WKBrowsingContextController backForwardList]): Changed to return the existing wrapper.
2053         (didChangeBackForwardList): Changed to use existing wrappers.
2054
2055         Replaced the RefPtr<WebBackForwardList> ivar with space for a WebBackForwardList to live
2056         inside the wrapper.
2057         (-[WKBackForwardList dealloc]): Call the WebBackForwardList destructor.
2058         (toWKBackForwardListItem): Changed to us the existing wrapper.
2059         (-[WKBackForwardList currentItem]): Updated for ivar change.
2060         (-[WKBackForwardList backItem]): Ditto.
2061         (-[WKBackForwardList forwardItem]): Ditto.
2062         (-[WKBackForwardList itemAtIndex:]): Ditto.
2063         (-[WKBackForwardList backListCount]): Ditto.
2064         (-[WKBackForwardList forwardListCount]): Ditto,
2065         (-[WKBackForwardList backListWithLimit:]): Ditto, and also changed to use the
2066         ImmutableArray’s existing wrapper.
2067         (-[WKBackForwardList forwardListWithLimit:]): Ditto.
2068         (-[WKBackForwardList _apiObject]): Returns the WebBackForwardListItem.
2069         * UIProcess/Cocoa/WKBackForwardListInternal.h:
2070         (WebKit::wrapper): Added. Returns a WebBackForwardList’s wrapper as a WKBackForwardList.
2071
2072         * UIProcess/Cocoa/WKBackForwardListItem.mm:
2073         Replaced the RefPtr<WebBackForwardListItem> ivar with space for a WebBackForwardListItem to
2074         live inside the wrapper.
2075         (-[WKBackForwardListItem dealloc]): Call the WebBackForwardListItem destructor.
2076         (-[WKBackForwardListItem URL]): Updated for ivar change, and changed to make an NSURL
2077         directly instead of going through a wrapper.
2078         (-[WKBackForwardListItem title]): Updated for ivar change, and changed to use
2079         String’s operator NSString*.
2080         (-[WKBackForwardListItem originalURL]): Updated for ivar change, and changed to make an
2081         NSURL directly instead of going through a wrapper.
2082         (-[WKBackForwardListItem _apiObject]): Returns the WebBackForwardListItem.
2083         (-[WKBackForwardListItem _item]): Ditto.
2084         * UIProcess/Cocoa/WKBackForwardListItemInternal.h:
2085         (WebKit::wrapper): Added. Returns a WebBackForwardListItem’s wrapper as a
2086         WKBackForwardListItem.
2087
2088         * UIProcess/WebColorPickerResultListenerProxy.h: Changed into a TypedAPIObject.
2089
2090         * UIProcess/WebFormSubmissionListenerProxy.h:
2091         (WebKit::WebFormSubmissionListenerProxy::operator new): Override to call newObject.
2092
2093         * UIProcess/WebFramePolicyListenerProxy.h:
2094         (WebKit::WebFramePolicyListenerProxy::operator new): Ditto.
2095
2096         * WebKit2.xcodeproj/project.pbxproj: Updated for file additions and removals.
2097
2098 2013-10-30  Anders Carlsson  <andersca@apple.com>
2099
2100         Begin fleshing out an API test for WKRemoteObjectRegistry
2101         https://bugs.webkit.org/show_bug.cgi?id=123531
2102
2103         Reviewed by Andreas Kling.
2104
2105         * Shared/API/Cocoa/WKRemoteObjectInterface.h:
2106         Add WK_API_CLASS annotation.
2107
2108         * Shared/API/Cocoa/WKRemoteObjectRegistry.h:
2109         Add WK_API_CLASS annotation.
2110
2111         * Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
2112         Add a WebConnection ivar.
2113
2114         (-[WKRemoteObjectRegistry _initWithConnectionRef:]):
2115         Add SPI to create an WKRemoteObjectRegistry object with an existing WKConnectionRef.
2116
2117         (-[WKRemoteObjectRegistry _handleMessageWithName:body:]):
2118         Add SPI that will be used to process incoming messages from an existing WKConnectionRef.
2119
2120         * Shared/API/Cocoa/WKRemoteObjectRegistryPrivate.h: Added.
2121         Add SPI header.
2122
2123         * WebKit2.xcodeproj/project.pbxproj:
2124         Add new files.
2125
2126 2013-10-30  Tim Horton  <timothy_horton@apple.com>
2127
2128         Remote Layer Tree: Lots of ASSERT(m_children.isEmpty()); on Poster Circle
2129         https://bugs.webkit.org/show_bug.cgi?id=123517
2130
2131         Reviewed by Simon Fraser.
2132
2133         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
2134         (PlatformCALayerRemote::setSublayers):
2135         When setting our list of sublayers, remove all of the new layers from
2136         their parents first.
2137
2138 2013-10-30  Antti Koivisto  <antti@apple.com>
2139
2140         Add debug settings for simple line layout
2141         https://bugs.webkit.org/show_bug.cgi?id=123514
2142
2143         Reviewed by Andreas Kling.
2144         
2145         Expose debug settings.
2146
2147         * Shared/WebPreferencesStore.h:
2148         * UIProcess/API/C/WKPreferences.cpp:
2149         (WKPreferencesSetSimpleLineLayoutEnabled):
2150         (WKPreferencesGetSimpleLineLayoutEnabled):
2151         (WKPreferencesSetSimpleLineLayoutDebugBordersEnabled):
2152         (WKPreferencesGetSimpleLineLayoutDebugBordersEnabled):
2153         * UIProcess/API/C/WKPreferencesPrivate.h:
2154         * WebProcess/WebPage/WebPage.cpp:
2155         (WebKit::WebPage::updatePreferences):
2156
2157 2013-10-30  Anders Carlsson  <andersca@apple.com>
2158
2159         Add stubbed out WKRemoteObjectRegistry class
2160         https://bugs.webkit.org/show_bug.cgi?id=123512
2161
2162         Reviewed by Andreas Kling.
2163
2164         Also add a WKRemoteObjectInterface class that represents a remote object interface.
2165
2166         * Shared/API/Cocoa/WKRemoteObjectInterface.h: Added.
2167         * Shared/API/Cocoa/WKRemoteObjectInterface.mm: Added.
2168         (-[WKRemoteObjectInterface initWithProtocol:identifier:]):
2169         (+[WKRemoteObjectInterface remoteObjectInterfaceWithProtocol:]):
2170         * Shared/API/Cocoa/WKRemoteObjectRegistry.h: Added.
2171         * Shared/API/Cocoa/WKRemoteObjectRegistry.mm: Added.
2172         (-[WKRemoteObjectRegistry registerExportedObject:interface:]):
2173         (-[WKRemoteObjectRegistry unregisterExportedObject:interface:]):
2174         (-[WKRemoteObjectRegistry remoteObjectProxyWithInterface:]):
2175         * WebKit2.xcodeproj/project.pbxproj:
2176
2177 2013-10-30  Carlos Garcia Campos  <cgarcia@igalia.com>
2178
2179         [GTK] webkit_web_context_allow_tls_certificate_for_host doc is missing Since tag
2180         https://bugs.webkit.org/show_bug.cgi?id=123499
2181
2182         Reviewed by Philippe Normand.
2183
2184         * UIProcess/API/gtk/WebKitWebContext.cpp: Add Since: 2.4.
2185
2186 2013-10-29  Alexey Proskuryakov  <ap@apple.com>
2187
2188         Result of focus-option-control-on-page.html depends on system preferences
2189         https://bugs.webkit.org/show_bug.cgi?id=123304
2190
2191         Reviewed by Simon Fraser.
2192
2193         * UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
2194         (-[WKFullKeyboardAccessWatcher retrieveKeyboardUIModeFromPreferences:]):
2195         Read the preference from its correct domain. This doesn't affect behavior in practice
2196         and isn't part of the fix, but it's a good opportunity to correct this code.
2197
2198 2013-10-29  Brady Eidson  <beidson@apple.com>
2199
2200         Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface
2201         https://bugs.webkit.org/show_bug.cgi?id=123483
2202
2203         Reviewed by Andreas Kling.
2204
2205         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
2206         (WebKit::WebIDBFactoryBackend::createCursorBackend): Stubbed out.
2207         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
2208
2209         * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
2210         (WebKit::WebProcessIDBDatabaseBackend::factoryBackend): Stubbed out.
2211         * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
2212
2213 2013-10-29  Jer Noble  <jer.noble@apple.com>
2214
2215         [MSE] [Mac] Enable MediaSource on the Mac
2216         https://bugs.webkit.org/show_bug.cgi?id=122484
2217
2218         Reviewed by Darin Adler.
2219
2220         Enable ENABLE_MEDIA_SOURCE.
2221
2222         * Configurations/FeatureDefines.xcconfig:
2223
2224 2013-10-29  Tim Horton  <timothy_horton@apple.com>
2225
2226         More correct build fix after 158223.
2227
2228         Only fails in release because it's inline.
2229         Include the relevant header to get the function.
2230
2231         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
2232
2233 2013-10-29  Tim Horton  <timothy_horton@apple.com>
2234
2235         Remote Layer Tree: Support tiled drawing and use it for the main frame
2236         https://bugs.webkit.org/show_bug.cgi?id=123422
2237
2238         Reviewed by Simon Fraser.
2239
2240         Add a PlatformCALayerRemote subclass that behaves similarly to
2241         WebTiledBackingLayer, forwarding relevant things (setNeedsDisplay, etc.)
2242         to the TileController which it owns.
2243
2244         Teach the remote layer tree code enough to proxy these layers across,
2245         and paint them in a manner similar to WebSimpleLayer (just calling
2246         straight back to the TileController to paint).
2247
2248         * Shared/mac/RemoteLayerTreeTransaction.h:
2249         * Shared/mac/RemoteLayerTreeTransaction.mm:
2250         (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
2251         (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
2252         (WebKit::dumpChangedLayers):
2253         * UIProcess/mac/RemoteLayerTreeHost.mm:
2254         (WebKit::RemoteLayerTreeHost::commit):
2255         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
2256         (PlatformCALayerRemote::setEdgeAntialiasingMask):
2257         Add support for adjusting/encoding/decoding/dumping/applying edgeAntialiasingMask.
2258
2259         (WebKit::RemoteLayerTreeTransaction::dump):
2260         Drive-by fix dumping of created layers to have one layer per line.
2261
2262         * UIProcess/mac/RemoteLayerTreeHost.mm:
2263         (WebKit::RemoteLayerTreeHost::createLayer):
2264         Create CALayers for Simple, TiledBacking, PageTiledBacking, and TiledBackingTile layers.
2265
2266         * WebKit2.xcodeproj/project.pbxproj:
2267         Add PlatformCALayerRemoteTiledBacking.{h, cpp}.
2268
2269         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
2270         (PlatformCALayerRemote::create):
2271         Create a PlatformCALayerRemoteTiledBacking for TiledBacking and PageTiledBacking layers.
2272
2273         (PlatformCALayerRemote::removeAllSublayers):
2274         Fix removeAllSublayers to make a copy of the PlatformCALayerList before
2275         mutating it, to avoid crashes when iterating a mutated list.
2276
2277         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2278         Definalize PlatformCALayerRemote so we can have PlatformCALayerRemoteTiledBacking.
2279         Note that we will use a tiled backing layer in some cases.
2280         Make the constructor protected, not private, so our subclass can use it.
2281
2282         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp: Added.
2283         (PlatformCALayerRemoteTiledBacking::PlatformCALayerRemoteTiledBacking):
2284         (PlatformCALayerRemoteTiledBacking::~PlatformCALayerRemoteTiledBacking):
2285         (PlatformCALayerRemoteTiledBacking::setNeedsDisplay):
2286         (PlatformCALayerRemoteTiledBacking::customSublayers):
2287         (PlatformCALayerRemoteTiledBacking::setBounds):
2288         (PlatformCALayerRemoteTiledBacking::isOpaque):
2289         (PlatformCALayerRemoteTiledBacking::setOpaque):
2290         (PlatformCALayerRemoteTiledBacking::acceleratesDrawing):
2291         (PlatformCALayerRemoteTiledBacking::setAcceleratesDrawing):
2292         (PlatformCALayerRemoteTiledBacking::setContentsScale):
2293         (PlatformCALayerRemoteTiledBacking::setBorderWidth):
2294         (PlatformCALayerRemoteTiledBacking::setBorderColor):
2295         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h: Added.
2296         Add a subclass of PlatformCALayerRemote which forwards operations
2297         to TileController, very similar to what WebTiledBackingLayer does.
2298         It also owns the TileController, and overrides customSublayers() and
2299         tiledBacking() to return the right thing.
2300
2301         * WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
2302         (RemoteLayerBackingStore::display):
2303         Teach RemoteLayerBackingStore about how to paint different kinds of layers.
2304         Simple layers and Tile layers will call paintContents directly,
2305         WebLayers will do what WebLayer does and use drawLayerContents.
2306         Other kinds of layers won't paint at all right now.
2307         I would like to centralize this behavior (and get rid of our CALayer
2308         subclasses entirely, moving all that behavior to be shared between Mac,
2309         Windows, and the remote layer tree), but that is a patch for another day.
2310
2311         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
2312         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
2313         (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
2314         (WebKit::RemoteLayerTreeDrawingArea::shouldUseTiledBackingForFrameView):
2315         Force accelerated compositing on always when using the remote layer tree.
2316         Use a TiledBacking for the main frame.
2317
2318         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2319         Drive-by OVERRIDE.
2320
2321 2013-10-29  Brady Eidson  <beidson@apple.com>
2322
2323         Get IDBTransactionBackendLevelDBOperations *almost* ready to go cross platform.
2324         https://bugs.webkit.org/show_bug.cgi?id=123451
2325
2326         Reviewed by Andreas Kling.
2327
2328         Stub out more pure virtual methods.
2329
2330         * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
2331         (WebKit::WebProcessIDBDatabaseBackend::backingStore):
2332         (WebKit::WebProcessIDBDatabaseBackend::id):
2333         (WebKit::WebProcessIDBDatabaseBackend::addObjectStore):
2334         (WebKit::WebProcessIDBDatabaseBackend::removeObjectStore):
2335         (WebKit::WebProcessIDBDatabaseBackend::addIndex):
2336         (WebKit::WebProcessIDBDatabaseBackend::removeIndex):
2337         (WebKit::WebProcessIDBDatabaseBackend::metadata):
2338         (WebKit::WebProcessIDBDatabaseBackend::setCurrentVersion):
2339         (WebKit::WebProcessIDBDatabaseBackend::hasPendingSecondHalfOpen):
2340         (WebKit::WebProcessIDBDatabaseBackend::setPendingSecondHalfOpen):
2341         * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
2342
2343 2013-10-29  Gavin Barraclough  <barraclough@apple.com>
2344
2345         SessionState.h should not include WebBackForwardList.h
2346         https://bugs.webkit.org/show_bug.cgi?id=123454
2347
2348         Reviewed by Geoff Garen.
2349
2350         WebBackForwardList is a UIProcess type, SessionState is in shared code.
2351         Also, WebBackForwardListItemVector should be in WebBackForwardListItem.h, not WebBackForwardList.h
2352         (the vector type is used in the WebProcess, the item header is shared but the list type is in the UIProcess).
2353
2354         * Shared/SessionState.cpp:
2355             - fixed includes
2356         * Shared/SessionState.h:
2357             - WebBackForwardList.h -> WebBackForwardListItem.h
2358         * Shared/WebBackForwardListItem.h:
2359             - Moved WebBackForwardListVector from WebBackForwardList.h
2360         * Shared/WebPageCreationParameters.h:
2361             - fixed includes
2362         * UIProcess/WebBackForwardList.h:
2363             - Moved WebBackForwardListVector to WebBackForwardListItem.h
2364         * WebProcess/WebPage/DrawingArea.cpp:
2365             - fixed includes
2366         * WebProcess/WebPage/WebPage.cpp:
2367             - fixed includes
2368
2369 2013-10-29  Zan Dobersek  <zdobersek@igalia.com>
2370
2371         Unreviewed Mac debug build fix after r158183.
2372         Remove the duplicated << overloaded operator from RemoteLayerTreeTextStream for printing out
2373         a given FloatSize object. The RemoteLayerTreeTextStream inherits from TextStream, which already
2374         provides that overloaded operator. Format of the output is a bit different so hopefully nothing
2375         breaks further.
2376
2377         * Shared/mac/RemoteLayerTreeTransaction.mm:
2378         (WebKit::RemoteLayerTreeTextStream::operator<<):
2379
2380 2013-10-28  Brady Eidson  <beidson@apple.com>
2381
2382         Refactor IDB factory creation.
2383         https://bugs.webkit.org/show_bug.cgi?id=123347
2384
2385         Reviewed by Andreas Kling.
2386
2387         - Rework how database directory location is passed around.
2388         - Make (some) SecurityOrigin arguments be references instead of pointers.
2389         - Add two SecurityOrigin arguments to opening databases for future use.
2390
2391         * Shared/Databases/IndexedDB/IDBUtilities.cpp:
2392         (WebKit::uniqueDatabaseIdentifier):
2393         * Shared/Databases/IndexedDB/IDBUtilities.h:
2394
2395         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
2396         (WebKit::WebIDBFactoryBackend::WebIDBFactoryBackend):
2397         (WebKit::WebIDBFactoryBackend::open):
2398         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
2399         (WebKit::WebIDBFactoryBackend::create):
2400
2401         * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.cpp:
2402         (WebKit::WebProcessIDBDatabaseBackend::WebProcessIDBDatabaseBackend):
2403         * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
2404
2405         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
2406         (WebKit::WebPlatformStrategies::createIDBFactoryBackend):
2407         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2408
2409 2013-10-28  Tim Horton  <timothy_horton@apple.com>
2410
2411         Make TileController create the appropriate PlatformCALayer subclasses
2412         https://bugs.webkit.org/show_bug.cgi?id=123418
2413
2414         Reviewed by Simon Fraser.
2415
2416         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
2417         (PlatformCALayerRemote::createCompatibleLayer):
2418         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2419         Add createCompatibleLayer and implement it in the subclasses.
2420
2421 2013-10-28  Benjamin Poulain  <benjamin@webkit.org>
2422
2423         Rename applyPageScaleFactorInCompositor to delegatesPageScaling
2424         https://bugs.webkit.org/show_bug.cgi?id=123417
2425
2426         Reviewed by Simon Fraser.
2427
2428         * WebProcess/WebPage/WebPage.cpp:
2429         (WebKit::WebPage::setUseFixedLayout):
2430
2431 2013-10-28  Myles C. Maxfield  <mmaxfield@apple.com>
2432
2433         Parsing support for -webkit-text-decoration-skip: ink
2434         https://bugs.webkit.org/show_bug.cgi?id=123358
2435
2436         Reviewed by Dean Jackson.
2437
2438         Adding ENABLE(CSS3_TEXT_DECORATION)
2439
2440         * Configurations/FeatureDefines.xcconfig:
2441
2442 2013-10-28  Tim Horton  <timothy_horton@apple.com>
2443
2444         Make TileController manipulate PlatformCALayers instead of CALayers
2445         https://bugs.webkit.org/show_bug.cgi?id=123279
2446
2447         Reviewed by Simon Fraser.
2448
2449         * Shared/mac/RemoteLayerTreeTransaction.mm:
2450         (WebKit::RemoteLayerTreeTransaction::dump):
2451         Support the new LayerTypes.
2452
2453         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
2454         (PlatformCALayerRemote::setEdgeAntialiasingMask):
2455         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2456         Add an empty implementation of setEdgeAntialiasingMask.
2457
2458         * WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
2459         (RemoteLayerBackingStore::display):
2460         Removed a parameter from drawLayerContents.
2461
2462         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
2463         (WebKit::TiledCoreAnimationDrawingArea::updateDebugInfoLayer):
2464         TiledCoreAnimationDrawingArea still operates in terms of CALayers, so
2465         grab the PlatformLayer out from TileController's indicator.
2466
2467 2013-10-28  Bastien Nocera <hadess@hadess.net>
2468
2469         Name all the GLib timeout sources
2470         https://bugs.webkit.org/show_bug.cgi?id=123229
2471
2472         Reviewed by Anders Carlsson.
2473
2474         Give a name to GLib timeout sources, this is helpful when
2475         profiling WebKitGTK applications.
2476
2477 2013-10-28  Carlos Garcia Campos  <cgarcia@igalia.com>
2478
2479         Unreviewed. Fix make distcheck.
2480
2481         * GNUmakefile.am: Add messages.in files in
2482         UIProcess/Network/CustomProtocols/ to EXTRA_DIST.
2483         * GNUmakefile.list.am: Remove
2484         WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp from
2485         compilation because it depends on code generated only when
2486         database process is enabled.
2487
2488 2013-10-28  Alberto Garcia  <berto@igalia.com>
2489
2490         [WK2] [GTK] Allow running the web process with an arbitrary prefix command
2491         https://bugs.webkit.org/show_bug.cgi?id=123201
2492
2493         Reviewed by Carlos Garcia Campos.
2494
2495         Launch the web process using WEB_PROCESS_CMD_PREFIX as a
2496         prefix. Useful for debugging the web process with gdb, valgrind,
2497         etc.
2498
2499         * UIProcess/Launcher/ProcessLauncher.h:
2500         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
2501         (WebKit::ProcessLauncher::launchProcess):
2502         * UIProcess/gtk/WebProcessProxyGtk.cpp:
2503         (WebKit::WebProcessProxy::platformGetLaunchOptions):
2504
2505 2013-10-27  Brady Eidson  <beidson@apple.com>
2506
2507         WebIconDatabase can miss private browsing state changes.
2508         <rdar://problem/15322318> and https://bugs.webkit.org/show_bug.cgi?id=123375
2509
2510         Reviewed by Alexey Proskuryakov.
2511
2512         * UIProcess/WebContext.cpp:
2513         (WebKit::WebContext::willStartUsingPrivateBrowsing): Call setAnyPageGroupMightHavePrivateBrowsingEnabled(true) on each context.
2514         (WebKit::WebContext::willStopUsingPrivateBrowsing): Call setAnyPageGroupMightHavePrivateBrowsingEnabled(false) on each context.
2515         (WebKit::WebContext::setPrivateBrowsingEnabled): In addition to notifying other processes about private browsing
2516           sessions, notify the context’s WebIconDatabase about the change in value.
2517         * UIProcess/WebContext.h:
2518
2519         * UIProcess/WebIconDatabase.cpp:
2520         (WebKit::WebIconDatabase::setDatabasePath): Prime the IconDatabase with an initial private browsing value.
2521         (WebKit::WebIconDatabase::setAnyPageGroupMightHavePrivateBrowsingEnabled):
2522         * UIProcess/WebIconDatabase.h:
2523
2524 2013-10-26  Tim Horton  <timothy_horton@apple.com>
2525
2526         [mac] Remove WebTiledLayer
2527         https://bugs.webkit.org/show_bug.cgi?id=123395
2528
2529         Reviewed by Anders Carlsson.
2530
2531         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
2532         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2533         Remove synchronouslyDisplayTilesInRect.
2534
2535 2013-10-26  Dan Bernstein  <mitz@apple.com>
2536
2537         [Cocoa] -[WKBackForwardList forwardItem] returns the back item
2538         https://bugs.webkit.org/show_bug.cgi?id=123391
2539
2540         Reviewed by Mark Rowe.
2541
2542         * UIProcess/Cocoa/WKBackForwardList.mm:
2543         (-[WKBackForwardList forwardItem]): Changed back to forward.
2544
2545 2013-10-26  Commit Queue  <commit-queue@webkit.org>
2546
2547         Unreviewed, rolling out r158075.
2548         http://trac.webkit.org/changeset/158075
2549         https://bugs.webkit.org/show_bug.cgi?id=123389
2550
2551         Broke WebKit2.PrivateBrowsingPushStateNoHistoryCallback API
2552         test (Requested by ap on #webkit).
2553
2554         * UIProcess/WebContext.cpp:
2555         (WebKit::WebContext::willStartUsingPrivateBrowsing):
2556         (WebKit::WebContext::willStopUsingPrivateBrowsing):
2557         * UIProcess/WebContext.h:
2558         * UIProcess/WebIconDatabase.cpp:
2559         * UIProcess/WebIconDatabase.h:
2560
2561 2013-10-26  Jae Hyun Park  <jae.park@company100.net>
2562
2563         Remove Coordinated Graphics bits from DrawingAreaProxyImpl
2564         https://bugs.webkit.org/show_bug.cgi?id=123382
2565
2566         Reviewed by Anders Carlsson.
2567
2568         As of r156861, Coordinated Graphics does not use DrawingAreaProxyImpl.
2569         So, Coordinated Graphics bits should be removed from DrawingAreaProxyImpl.
2570
2571         * UIProcess/DrawingAreaProxyImpl.h:
2572
2573 2013-10-26  Dan Bernstein  <mitz@apple.com>
2574
2575         [Cocoa] clang static analyzer warns about object being autoreleased too many times in +[WKNSArray web_arrayWithImmutableArray:]
2576         https://bugs.webkit.org/show_bug.cgi?id=123384
2577
2578         Reviewed by Mark Rowe.
2579
2580         * Shared/Cocoa/WKNSArray.h: Annotated -web_initWithImmutableArray: as an init method.
2581
2582 2013-10-25  Csaba Osztrogonác  <ossy@webkit.org>
2583
2584         Fix the ENABLE(CSS_FILTERS) && USE(COORDINATED_GRAPHICS) build after r157803
2585         https://bugs.webkit.org/show_bug.cgi?id=123330
2586
2587         Reviewed by Darin Adler.
2588
2589         * Shared/WebCoreArgumentCoders.cpp:
2590         * Shared/WebCoreArgumentCoders.h:
2591
2592 2013-10-25  Brady Eidson  <beidson@apple.com>
2593
2594         WebIconDatabase can miss private browsing state changes.
2595         <rdar://problem/15322318> and https://bugs.webkit.org/show_bug.cgi?id=123375
2596
2597         Reviewed by Beth Dakin.
2598
2599         * UIProcess/WebContext.cpp:
2600         (WebKit::WebContext::willStartUsingPrivateBrowsing): Call setPrivateBrowsingEnabled(true) on each context.
2601         (WebKit::WebContext::willStopUsingPrivateBrowsing): Call setPrivateBrowsingEnabled(false) on each context.
2602         (WebKit::WebContext::setPrivateBrowsingEnabled): In addition to notifying other processes, notify WebIconDatabase.
2603         * UIProcess/WebContext.h:
2604
2605         * UIProcess/WebIconDatabase.cpp:
2606         (WebKit::WebIconDatabase::setPrivateBrowsingEnabled):
2607         * UIProcess/WebIconDatabase.h:
2608
2609 2013-10-25  Joseph Pecoraro  <pecoraro@apple.com>
2610
2611         Upstream ENABLE(REMOTE_INSPECTOR) and enable on iOS and Mac
2612         https://bugs.webkit.org/show_bug.cgi?id=123111
2613
2614         Reviewed by Timothy Hatcher.
2615
2616         * Configurations/FeatureDefines.xcconfig:
2617
2618 2013-10-25  Gavin Barraclough  <barraclough@apple.com>
2619
2620         Merge viewInWindowStateDidChange into viewStateDidChange
2621         https://bugs.webkit.org/show_bug.cgi?id=123351
2622
2623         Reviewed by Tim Horton.
2624
2625         * UIProcess/API/mac/WKView.mm:
2626         (-[WKView endDeferringViewInWindowChanges]):
2627         (-[WKView endDeferringViewInWindowChangesSync]):
2628             - viewInWindowStateDidChange -> viewStateDidChange
2629         * UIProcess/WebPageProxy.cpp:
2630         (WebKit::WebPageProxy::viewStateDidChange):
2631             - removed viewInWindowStateDidChange, renamed parameter to viewStateDidChange
2632         * UIProcess/WebPageProxy.h:
2633             - removed viewInWindowStateDidChange, named parameter to viewStateDidChange
2634
2635 2013-10-25  Csaba Osztrogonác  <ossy@webkit.org>
2636
2637         One more URTBF for GTK after r158028.
2638
2639         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
2640         (webkitWebViewBaseMap):
2641         (webkitWebViewBaseUnmap):
2642
2643 2013-10-25  Csaba Osztrogonác  <ossy@webkit.org>
2644
2645         URTBF for non-Mac platforms after r158028.
2646
2647         * GNUmakefile.list.am:
2648         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
2649         (toplevelWindowFocusInEvent):
2650         (toplevelWindowFocusOutEvent):
2651         (toplevelWindowVisibilityEvent):
2652         (webkitWebViewBaseSetToplevelOnScreenWindow):
2653         (webkitWebViewBaseSetFocus):
2654         * UIProcess/CoordinatedGraphics/WebView.cpp:
2655         (WebKit::WebView::setActive):
2656         (WebKit::WebView::setFocused):
2657         (WebKit::WebView::setVisible):
2658
2659 2013-10-25  Gavin Barraclough  <barraclough@apple.com>
2660
2661         Move ViewStateFlags out of WebPageProxy
2662         https://bugs.webkit.org/show_bug.cgi?id=123323
2663
2664         Reviewed by Sam Weinig.
2665
2666         WebPageProxy contains an enum and typedef that provide a bitfield
2667         of flags describing the visibility of the view containing the page.
2668         We're going to want to use this bitfield in a message to the
2669         WebProcess, so moving out from the UIProcess to shared code.
2670         Creating struct 'ViewState' to scope the enum and typedef.
2671         Renamed ViewStateFlags to ViewState::Flags, and removed redundant
2672         'View' from enum entries.
2673
2674         * Shared/ViewState.h: Added.
2675         * UIProcess/API/mac/WKView.mm:
2676         (-[WKView becomeFirstResponder]):
2677         (-[WKView resignFirstResponder]):
2678         (-[WKView viewDidMoveToWindow]):
2679         (-[WKView _windowDidBecomeKey:]):
2680         (-[WKView _windowDidResignKey:]):
2681         (-[WKView _windowDidMiniaturize:]):
2682         (-[WKView _windowDidDeminiaturize:]):
2683         (-[WKView _windowDidOrderOffScreen:]):
2684         (-[WKView _windowDidOrderOnScreen:]):
2685         (-[WKView _windowDidChangeOcclusionState:]):
2686         (-[WKView viewDidHide]):
2687         (-[WKView viewDidUnhide]):
2688         (-[WKView _activeSpaceDidChange:]):
2689         * UIProcess/WebPageProxy.cpp:
2690         (WebKit::WebPageProxy::viewStateDidChange):
2691         * UIProcess/WebPageProxy.h:
2692         * WebKit2.xcodeproj/project.pbxproj:
2693
2694 2013-10-25  Gavin Barraclough  <barraclough@apple.com>
2695
2696         Move ViewStateFlags out of WebPageProxy
2697         https://bugs.webkit.org/show_bug.cgi?id=123323
2698
2699         Unreviewed
2700
2701         Rolling out 158026 - landed extra chnages!
2702
2703         * Shared/ViewState.h: Removed.
2704         * UIProcess/API/mac/WKView.mm:
2705         (-[WKView becomeFirstResponder]):
2706         (-[WKView resignFirstResponder]):
2707         (-[WKView viewDidMoveToWindow]):
2708         (-[WKView _windowDidBecomeKey:]):
2709         (-[WKView _windowDidResignKey:]):
2710         (-[WKView _windowDidMiniaturize:]):
2711         (-[WKView _windowDidDeminiaturize:]):
2712         (-[WKView _windowDidOrderOffScreen:]):
2713         (-[WKView _windowDidOrderOnScreen:]):
2714         (-[WKView _windowDidChangeOcclusionState:]):
2715         (-[WKView viewDidHide]):
2716         (-[WKView viewDidUnhide]):
2717         (-[WKView _activeSpaceDidChange:]):
2718         (-[WKView endDeferringViewInWindowChanges]):
2719         (-[WKView endDeferringViewInWindowChangesSync]):
2720         * UIProcess/WebPageProxy.cpp:
2721         (WebKit::WebPageProxy::viewInWindowStateDidChange):
2722         (WebKit::WebPageProxy::viewStateDidChange):
2723         * UIProcess/WebPageProxy.h:
2724         * WebKit2.xcodeproj/project.pbxproj:
2725
2726 2013-10-24  Gavin Barraclough  <barraclough@apple.com>
2727
2728         Move ViewStateFlags out of WebPageProxy
2729         https://bugs.webkit.org/show_bug.cgi?id=123323
2730
2731         Reviewed by Sam Weinig.
2732
2733         WebPageProxy contains an enum and typedef that provide a bitfield
2734         of flags describing the visibility of the view containing the page.
2735         We're going to want to use this bitfield in a message to the
2736         WebProcess, so moving out from the UIProcess to shared code.
2737         Creating struct 'ViewState' to scope the enum and typedef.
2738         Renamed ViewStateFlags to ViewState::Flags, and removed redundant
2739         'View' from enum entries.
2740
2741         * Shared/ViewState.h: Added.
2742         * UIProcess/API/mac/WKView.mm:
2743         (-[WKView becomeFirstResponder]):
2744         (-[WKView resignFirstResponder]):
2745         (-[WKView viewDidMoveToWindow]):
2746         (-[WKView _windowDidBecomeKey:]):
2747         (-[WKView _windowDidResignKey:]):
2748         (-[WKView _windowDidMiniaturize:]):
2749         (-[WKView _windowDidDeminiaturize:]):
2750         (-[WKView _windowDidOrderOffScreen:]):
2751         (-[WKView _windowDidOrderOnScreen:]):
2752         (-[WKView _windowDidChangeOcclusionState:]):
2753         (-[WKView viewDidHide]):
2754         (-[WKView viewDidUnhide]):
2755         (-[WKView _activeSpaceDidChange:]):
2756         * UIProcess/WebPageProxy.cpp:
2757         (WebKit::WebPageProxy::viewStateDidChange):
2758         * UIProcess/WebPageProxy.h:
2759         * WebKit2.xcodeproj/project.pbxproj:
2760
2761 2013-10-25  Sergio Villar Senin  <svillar@igalia.com>
2762
2763         [GTK][WK2] Build break after r157967 and r157972
2764         https://bugs.webkit.org/show_bug.cgi?id=123325
2765
2766         Reviewed by Carlos Garcia Campos.
2767
2768         DrawingArea::visibilityDidChange was removed in favour of a new
2769         message called SetIsVisible which is sent to the WebPage. This
2770         means that {suspend|resume}Paiting are now implemented in a
2771         cross-platform way in WebPage and do not require specific code
2772         from the DrawingArea implementations.
2773
2774         This means that we have to track the toplevel window visibility
2775         and notify the WebPage appropriately about its changes.
2776
2777         * UIProcess/API/gtk/PageClientImpl.cpp:
2778         (WebKit::PageClientImpl::isWindowVisible):
2779         * UIProcess/API/gtk/PageClientImpl.h:
2780         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
2781         (toplevelWindowVisibilityEvent):
2782         (webkitWebViewBaseSetToplevelOnScreenWindow):
2783         (webkitWebViewBaseIsWindowVisible):
2784         * UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
2785         * UIProcess/DrawingAreaProxyImpl.cpp:
2786         * UIProcess/DrawingAreaProxyImpl.h:
2787         * WebProcess/WebPage/DrawingAreaImpl.cpp:
2788         (WebKit::DrawingAreaImpl::suspendPainting):
2789         (WebKit::DrawingAreaImpl::resumePainting):
2790         * WebProcess/WebPage/WebPage.cpp:
2791         (WebKit::WebPage::windowAndWebPageAreFocused):
2792
2793 2013-10-25  Anton Obzhirov  <a.obzhirov@samsung.com>
2794
2795         [GTK] [WebKit2] CanHandleRequest API test fails
2796         https://bugs.webkit.org/show_bug.cgi?id=88453
2797
2798         Reviewed by Martin Robinson.
2799
2800         Make WebPage::platformCanHandleRequest return false by default 
2801         for unknown schemes.
2802
2803         * WebProcess/WebPage/gtk/WebPageGtk.cpp:
2804         (WebKit::WebPage::platformCanHandleRequest):
2805
2806 2013-10-25  Ryuan Choi  <ryuan.choi@samsung.com>
2807
2808         [EFL][WK2] Build break after r157967 and r157972
2809         https://bugs.webkit.org/show_bug.cgi?id=123324
2810
2811         Reviewed by Tim Horton.
2812
2813         Since r157967 and r157972, visibilityDidChange was removed from DrawingAreaProxy.
2814
2815         * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:
2816         (WebKit::CoordinatedDrawingAreaProxy::visibilityDidChange):
2817         Removed common logic which r157967 moved to WebProcess.
2818         * UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h:
2819         Make visibilityDidChange to public method.
2820         * UIProcess/CoordinatedGraphics/WebView.cpp:
2821         (WebKit::WebView::setVisible):
2822         (WebKit::WebView::isWindowVisible): Added.
2823         * UIProcess/CoordinatedGraphics/WebView.h:
2824         * WebProcess/WebPage/WebPage.cpp:
2825         (WebKit::WebPage::WebPage):
2826         (WebKit::WebPage::setWindowIsVisible):
2827         * WebProcess/WebPage/WebPage.h:
2828         Moved m_windowIsVisible to use at all WK2 based port.
2829         (WebKit::WebPage::windowIsVisible):
2830         * WebProcess/WebPage/WebPage.messages.in:
2831         Moved SetWindowIsVisible message to use at all WK2 based port.
2832
2833 2013-10-24  Mark Rowe  <mrowe@apple.com>
2834
2835         Remove references to OS X 10.7 from Xcode configuration settings.
2836
2837         Now that we're not building for OS X 10.7 they're no longer needed.
2838
2839         Reviewed by Anders Carlsson.
2840
2841         * Configurations/Base.xcconfig:
2842         * Configurations/BaseXPCService.xcconfig:
2843         * Configurations/DebugRelease.xcconfig:
2844         * Configurations/FeatureDefines.xcconfig:
2845         * Configurations/Version.xcconfig:
2846         * Configurations/WebContentProcess.xcconfig:
2847
2848 2013-10-24  Gavin Barraclough  <barraclough@apple.com>
2849
2850         Coalesce calls to viewStateDidChange
2851         https://bugs.webkit.org/show_bug.cgi?id=123307
2852
2853         Reviewed by Tim Horton.
2854
2855         * UIProcess/API/mac/WKView.mm:
2856         (-[WKView viewDidMoveToWindow]):
2857         (-[WKView _windowDidOrderOffScreen:]):
2858         (-[WKView _windowDidOrderOnScreen:]):
2859             - coalesce calls to viewStateDidChange
2860         * UIProcess/WebPageProxy.cpp:
2861         (WebKit::WebPageProxy::viewStateDidChange):
2862             - handle changes to view visibility & active state in correct order.
2863
2864 2013-10-24  Mark Rowe  <mrowe@apple.com>
2865
2866         <rdar://problem/15312643> Prepare for the mysterious future.
2867
2868         Reviewed by David Kilzer.
2869
2870         * Configurations/Base.xcconfig:
2871         * Configurations/BaseXPCService.xcconfig:
2872         * Configurations/DebugRelease.xcconfig:
2873         * Configurations/FeatureDefines.xcconfig:
2874         * Configurations/Version.xcconfig:
2875         * Configurations/WebContentProcess.xcconfig:
2876
2877 2013-10-24  Gavin Barraclough  <barraclough@apple.com>
2878
2879         Fold updateWindowIsVisible into viewStateDidChange
2880         https://bugs.webkit.org/show_bug.cgi?id=123305
2881
2882         Reviewed by Simon Fraser.
2883
2884         * UIProcess/API/mac/PageClientImpl.h:
2885         * UIProcess/API/mac/PageClientImpl.mm:
2886         (WebKit::PageClientImpl::isWindowVisible):
2887             - Added accessor to check if window is visible
2888         * UIProcess/API/mac/WKView.mm:
2889         (-[WKView viewDidMoveToWindow]):
2890         (-[WKView _windowDidMiniaturize:]):
2891         (-[WKView _windowDidDeminiaturize:]):
2892         (-[WKView _windowDidOrderOffScreen:]):
2893         (-[WKView _windowDidOrderOnScreen:]):
2894             - _updateWindowVisibility -> viewStateDidChange
2895         * UIProcess/PageClient.h:
2896             - Added accessor to check if winow is visible
2897         * UIProcess/WebPageProxy.cpp:
2898         (WebKit::WebPageProxy::viewStateDidChange):
2899             - handle WindowIsVisible
2900         * UIProcess/WebPageProxy.h:
2901             - added WindowIsVisible
2902         * UIProcess/mac/WebPageProxyMac.mm:
2903             - removed updateWindowIsVisible
2904
2905 2013-10-24  Anders Carlsson  <andersca@apple.com>
2906
2907         Stop bringing in the std namespace
2908         https://bugs.webkit.org/show_bug.cgi?id=123273
2909
2910         Reviewed by Andreas Kling.
2911
2912         * WebProcess/mac/WebProcessMac.mm:
2913         (WebKit::WebProcess::platformSetCacheModel):
2914
2915 2013-10-24  Gavin Barraclough  <barraclough@apple.com>
2916
2917         Simplify window occlusion detection code
2918         https://bugs.webkit.org/show_bug.cgi?id=123300
2919
2920         Reviewed by Tim Horton.
2921
2922         Currently the WKView tries to maintain a copy of the window's occluded state,
2923         but forced to NO when occlusion detection is disabled (and capable of handling
2924         dectection being dynamically toggled). Simpler to just rely on the actual value
2925         from the window, && the enabled setting. Cleaning this up revealed that we're
2926         not sending a viewStateDidChange to the WebPageProxy when the occlusion state
2927         changes, which we probably should be.
2928
2929         * UIProcess/API/mac/PageClientImpl.mm:
2930         (WebKit::PageClientImpl::isViewVisible):
2931             - check the real value of occlusion state from the window.
2932         * UIProcess/API/mac/WKView.mm:
2933         (-[WKView viewDidMoveToWindow]):
2934             - don't update cached value.
2935         (-[WKView _windowDidChangeOcclusionState:]):
2936             - don't update cached value, but do send viewStateDidChange to the WebPageProxy.
2937         (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
2938             - removed _isWindowOccluded.
2939         (-[WKView windowOcclusionDetectionEnabled]):
2940         (-[WKView setWindowOcclusionDetectionEnabled:]):
2941             - Just toggle the flag - no cached state to update any more.
2942         * UIProcess/API/mac/WKViewInternal.h:
2943             - removed _isWindowOccluded.
2944
2945 2013-10-24  Gavin Barraclough  <barraclough@apple.com>
2946
2947         SetIsVisible message should be sent to WebPage
2948         https://bugs.webkit.org/show_bug.cgi?id=123296
2949
2950         Reviewed by Tim Horton.
2951
2952         * UIProcess/DrawingAreaProxy.h:
2953             - remove visibilityDidChange - WebPageProxy now mesages WebPage.
2954         * UIProcess/WebPageProxy.cpp:
2955         (WebKit::WebPageProxy::viewStateDidChange):
2956             - Send view visibility updates to the WebPage, not the drawing area.
2957         * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
2958         * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
2959             - remove visibilityDidChange - WebPageProxy now mesages WebPage.
2960         * WebProcess/WebPage/DrawingArea.h:
2961         (WebKit::DrawingArea::suspendPainting):
2962         (WebKit::DrawingArea::resumePainting):
2963         * WebProcess/WebPage/DrawingArea.messages.in:
2964             - Instead of suspendPainting/resumePainting being private in the WebProcess but avaialble to the UIProcess,
2965               make them private to the WebProcess but accessible from WebPage.
2966         * WebProcess/WebPage/WebPage.cpp:
2967         (WebKit::WebPage::setViewIsVisible):
2968         * WebProcess/WebPage/WebPage.h:
2969         * WebProcess/WebPage/WebPage.messages.in:
2970             - Added SetViewIsVisible message.
2971         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2972             - Instead of suspendPainting/resumePainting being private in the WebProcess but avaialble to the UIProcess,
2973               make them private to the WebProcess but accessible from WebPage.
2974         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
2975         (WebKit::TiledCoreAnimationDrawingArea::suspendPainting):
2976         (WebKit::TiledCoreAnimationDrawingArea::resumePainting):
2977             - Moved animation suspend code out to WebPage.
2978
2979 2013-10-24  Dan Bernstein  <mitz@apple.com>
2980
2981         Tried to fix the Mountain Lion build.
2982
2983         * Shared/API/Cocoa/WKFoundation.h:
2984
2985 2013-10-24  Dan Bernstein  <mitz@apple.com>
2986
2987         [Cocoa] Add -[WKBrowsingContextController goToBackForwardItem:]
2988         https://bugs.webkit.org/show_bug.cgi?id=123289
2989
2990         Reviewed by Sam Weinig.
2991
2992         * Shared/API/Cocoa/WKFoundation.h: Defined WK_API_CLASS.
2993         * UIProcess/API/mac/WKBrowsingContextController.h: Declared -goToBackForwardListItem:.
2994         * UIProcess/API/mac/WKBrowsingContextController.mm:
2995         (-[WKBrowsingContextController goToBackForwardListItem:]): Added.
2996         * UIProcess/Cocoa/WKBackForwardList.h: Deployed WK_API_CLASS to make the class exported.
2997         * UIProcess/Cocoa/WKBackForwardListItem.h: Ditto.
2998         * UIProcess/Cocoa/WKBackForwardListItem.mm:
2999         (-[WKBackForwardListItem _item]): Added. Returns the underlying WebBackForwardListItem.
3000         * UIProcess/Cocoa/WKBackForwardListItemInternal.h: Declared _item.
3001
3002 2013-10-23  ChangSeok Oh  <changseok.oh@collabora.com>
3003
3004         Unreviewed build fix since r157823.
3005         FilterOperation::getOperationType() is renamed FilterOperation::type().
3006
3007         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
3008         (CoreIPC::::encode):
3009         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
3010         (WebKit::CoordinatedLayerTreeHost::checkCustomFilterProgramProxies):
3011
3012 2013-10-23  Tibor Meszaros  <tmeszaros@inf.u-szeged.hu>
3013
3014         Web Inspector: Make WebKitEFL port work with chromedevtools
3015         https://bugs.webkit.org/show_bug.cgi?id=123017
3016
3017         Reviewed by Gustavo Noronha Silva.
3018
3019         Added /json path and extended the returned JSON format
3020         with the required extra informations
3021
3022         * UIProcess/InspectorServer/efl/WebInspectorServerEfl.cpp:
3023         (WebKit::WebInspectorServer::platformResourceForPath):
3024         (WebKit::WebInspectorServer::buildPageList):
3025
3026 2013-10-23  Anders Carlsson  <andersca@apple.com>
3027
3028         Remove HAVE_XPC
3029         https://bugs.webkit.org/show_bug.cgi?id=123226
3030
3031         Reviewed by Dan Bernstein.
3032
3033         HAVE_XPC has been true on Mac since Lion, so remove it.
3034
3035         * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:
3036         (DatabaseServiceInitializer):
3037         * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
3038         (NetworkServiceInitializer):
3039         * Platform/CoreIPC/Connection.h:
3040         (CoreIPC::Connection::Identifier::Identifier):
3041         * Platform/CoreIPC/mac/ConnectionMac.cpp:
3042         (CoreIPC::Connection::platformInvalidate):
3043         (CoreIPC::Connection::platformInitialize):
3044         * Platform/WorkQueue.h:
3045         * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
3046         (PluginServiceInitializer):
3047         * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
3048         * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
3049         * UIProcess/Databases/mac/DatabaseProcessProxyMac.mm:
3050         (WebKit::shouldUseXPC):
3051         (WebKit::DatabaseProcessProxy::platformGetLaunchOptions):
3052         * UIProcess/Launcher/ProcessLauncher.cpp:
3053         (WebKit::ProcessLauncher::didFinishLaunchingProcess):
3054         * UIProcess/Launcher/ProcessLauncher.h:
3055         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
3056         (WebKit::setUpTerminationNotificationHandler):
3057         (WebKit::ProcessLauncher::launchProcess):
3058         * UIProcess/Network/mac/NetworkProcessProxyMac.mm:
3059         (WebKit::shouldUseXPC):
3060         (WebKit::NetworkProcessProxy::platformGetLaunchOptions):
3061         * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
3062         (WebKit::shouldUseXPC):
3063         (WebKit::PluginProcessProxy::platformGetLaunchOptions):
3064         * UIProcess/mac/WebProcessProxyMac.mm:
3065         (WebKit::shouldUseXPC):
3066         (WebKit::WebProcessProxy::platformGetLaunchOptions):
3067         * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
3068         (WebContentServiceInitializer):
3069
3070 2013-10-23  Tim Horton  <timothy_horton@apple.com>
3071
3072         Remove the ifdef to exclude remote layer tree transaction logging
3073         on Lion and before.
3074
3075         Rubber-stamped by Anders Carlsson.
3076
3077         * Shared/mac/RemoteLayerTreeTransaction.h:
3078         * Shared/mac/RemoteLayerTreeTransaction.mm:
3079         * UIProcess/mac/RemoteLayerTreeHost.mm:
3080         (WebKit::RemoteLayerTreeHost::commit):
3081
3082 2013-10-23  Brady Eidson  <beidson@apple.com>
3083
3084         Make IDBDatabaseBackendLevelDB.cpp be cross platform
3085         https://bugs.webkit.org/show_bug.cgi?id=123027
3086
3087         Attentively reviewed by Dean Jackson.
3088
3089         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
3090         (WebKit::WebIDBFactoryBackend::maybeCreateTransactionBackend):
3091         * WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:
3092
3093 2013-10-23  Dan Bernstein  <mitz@apple.com>
3094
3095         Fixed a typo.
3096
3097         * UIProcess/API/mac/WKBrowsingContextController.mm:
3098         (didChangeBackForwardList):
3099         * UIProcess/API/mac/WKBrowsingContextLoadDelegate.h:
3100
3101 2013-10-23  Anton Obzhirov  <a.obzhirov@samsung.com>
3102
3103         [GTK] Enable respect image orientation by default
3104         https://bugs.webkit.org/show_bug.cgi?id=122120
3105
3106         Reviewed by Gustavo Noronha Silva.
3107
3108         Add enable respect image orientation by default in GTK port.
3109
3110         * UIProcess/API/gtk/WebKitSettings.cpp:
3111         (webKitSettingsConstructed):
3112
3113 2013-10-23  Brian Holt  <brian.holt@samsung.com>
3114
3115         [GTK] Add WebKit2 API for TLS errors
3116         https://bugs.webkit.org/show_bug.cgi?id=120160
3117
3118         Reviewed by Mario Sanchez Prada.
3119
3120         Revert back to using PlatformCertificateInfo following the rollout
3121         of https://bugs.webkit.org/show_bug.cgi?id=118520.
3122
3123         * Shared/soup/PlatformCertificateInfo.cpp:
3124         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
3125         * Shared/soup/PlatformCertificateInfo.h:
3126         * UIProcess/API/gtk/WebKitCertificateInfo.cpp:
3127         (webkitCertificateInfoGetCertificateInfo):
3128         * UIProcess/API/gtk/WebKitCertificateInfoPrivate.h:
3129
3130 2013-10-23  Tim Horton  <timothy_horton@apple.com>
3131
3132         Remote Layer Tree: Implement superlayer, removeFromSuperlayer, replaceSublayer, and adoptSublayers
3133         https://bugs.webkit.org/show_bug.cgi?id=123130
3134
3135         Reviewed by Anders Carlsson.
3136
3137         Implement the remaining layer-hierarchy-manipulation methods.
3138
3139         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
3140         (PlatformCALayerRemote::PlatformCALayerRemote):
3141         (PlatformCALayerRemote::~PlatformCALayerRemote):
3142         Null out the superlayer back-pointer on our sublayers.
3143
3144         (PlatformCALayerRemote::recursiveBuildTransaction):
3145         Ensure that our children all have us as their superlayer.
3146
3147         (PlatformCALayerRemote::superlayer):
3148         Return the stored superlayer pointer.
3149
3150         (PlatformCALayerRemote::removeFromSuperlayer):
3151         Call removeSublayer on our superlayer, if we have one.
3152
3153         (PlatformCALayerRemote::removeSublayer):
3154         Remove the given layer if it's in our list of sublayers, clear its
3155         reference to us, and note that we'll need to commit hierarchy changes.
3156
3157         (PlatformCALayerRemote::setSublayers):
3158         removeAllSublayers() before setting the new list, to clear superlayer
3159         back-pointers. Children will be protected by the PlatformCALayerList.
3160         Update the new layers' superlayers.
3161
3162         (PlatformCALayerRemote::removeAllSublayers):
3163         Remove each sublayer from its superlayer, then clear our list of children.
3164
3165         (PlatformCALayerRemote::appendSublayer):
3166         (PlatformCALayerRemote::insertSublayer):
3167         Protect the layer from deletion, so that we can remove it from its prior
3168         superlayer before appending or inserting it.
3169
3170         (PlatformCALayerRemote::replaceSublayer):
3171         Find the reference sublayer, if it exists, and replace it with the new one.
3172
3173         (PlatformCALayerRemote::adoptSublayers):
3174         adoptSublayers is really just "set sublayers to this other layer's sublayers".
3175         Since setSublayers already removes layers from the existing superlayer,
3176         we can just go ahead and call it.
3177
3178         (PlatformCALayerRemote::addAnimationForKey):
3179         (PlatformCALayerRemote::removeAnimationForKey):
3180         (PlatformCALayerRemote::animationForKey):
3181         Add some ASSERT_NOT_REACHEDs in animation code.
3182         We ought not get here because we've disabled hardware animations
3183         in GraphicsLayerCARemote.
3184
3185         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
3186         Add m_superlayer and removeSublayer().
3187
3188 2013-10-22  Ryuan Choi  <ryuan.choi@samsung.com>
3189
3190         Unreviewed build fix attempt on Soup based port after r157842.
3191
3192         WebCore::CertificateInfo was reverted to WebKit::PlatformCertificateInfo.
3193
3194         * UIProcess/WebContext.cpp:
3195         (WebKit::WebContext::allowSpecificHTTPSCertificateForHost):
3196         * WebProcess/WebProcess.h:
3197         * WebProcess/WebProcess.messages.in:
3198         * WebProcess/soup/WebProcessSoup.cpp:
3199         (WebKit::WebProcess::allowSpecificHTTPSCertificateForHost):
3200
3201 2013-10-22  Ryuan Choi  <ryuan.choi@samsung.com>
3202
3203         Unreviewed build fix attempt on EFL port after r157842.
3204
3205         * Shared/soup/PlatformCertificateInfo.h: Removed message of merge confliction.
3206
3207 2013-10-22  Mark Rowe  <mrowe@apple.com>
3208
3209         Fix build failures after r157842.
3210
3211         * WebProcess/WebProcess.h: Don't try to #include a file that was deleted.
3212         It won't work.
3213
3214 2013-10-22  Brady Eidson  <beidson@apple.com>
3215
3216         Get rid of IDBObjectStoreBackendLevelDB
3217         https://bugs.webkit.org/show_bug.cgi?id=123174
3218
3219         Reviewed by Tim Horton.
3220
3221         * WebProcess/Databases/IndexedDB/WebProcessIDBDatabaseBackend.h:
3222
3223 2013-10-22  Dean Jackson  <dino@apple.com>
3224
3225         [WebGL] Implement a software rendering option on Mac
3226         https://bugs.webkit.org/show_bug.cgi?id=123177
3227
3228         Reviewed by Tim Horton.
3229
3230         Implement a way to force software OpenGL rendering
3231         for WebGL, via a Setting/Preference.
3232
3233         * Shared/WebPreferencesStore.h: New ForceSoftwareWebGLRendering entry.
3234         * UIProcess/API/C/WKPreferences.cpp:
3235         (WKPreferencesSetForceSoftwareWebGLRendering):
3236         (WKPreferencesGetForceSoftwareWebGLRendering):
3237         * UIProcess/API/C/WKPreferencesPrivate.h:
3238         * WebProcess/WebPage/WebPage.cpp:
3239         (WebKit::WebPage::updatePreferences):
3240         * mac/WebKit2.order:
3241
3242 2013-10-22  Anders Carlsson  <andersca@apple.com>
3243
3244         Revert r157445 since it broke certificates on Mac.
3245         <rdar://problem/15246926&15254017&15269117>
3246
3247         * GNUmakefile.list.am:
3248         * NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
3249         (WebKit::AsynchronousNetworkLoaderClient::didReceiveResponse):
3250         * NetworkProcess/NetworkProcess.h:
3251         * NetworkProcess/NetworkProcess.messages.in:
3252         * NetworkProcess/NetworkResourceLoader.cpp:
3253         * NetworkProcess/mac/NetworkProcessMac.mm:
3254         (WebKit::NetworkProcess::allowSpecificHTTPSCertificateForHost):
3255         * PlatformEfl.cmake:
3256         * PlatformGTK.cmake:
3257         * Shared/API/c/mac/WKCertificateInfoMac.mm:
3258         (WKCertificateInfoCreateWithCertficateChain):
3259         (WKCertificateInfoGetCertificateChain):
3260         * Shared/Authentication/AuthenticationManager.cpp:
3261         (WebKit::AuthenticationManager::tryUsePlatformCertificateInfoForChallenge):
3262         (WebKit::AuthenticationManager::useCredentialForChallenge):
3263         * Shared/Authentication/AuthenticationManager.h:
3264         * Shared/Authentication/AuthenticationManager.messages.in:
3265         * Shared/Authentication/mac/AuthenticationManager.mac.mm:
3266         (WebKit::AuthenticationManager::tryUsePlatformCertificateInfoForChallenge):
3267         * Shared/UserMessageCoders.h:
3268         (WebKit::UserMessageEncoder::baseEncode):
3269         (WebKit::UserMessageDecoder::baseDecode):
3270         * Shared/WebCertificateInfo.h:
3271         (WebKit::WebCertificateInfo::create):
3272         (WebKit::WebCertificateInfo::platformCertificateInfo):
3273         (WebKit::WebCertificateInfo::WebCertificateInfo):
3274         * Shared/WebCoreArgumentCoders.cpp:
3275         * Shared/WebCoreArgumentCoders.h:
3276         * Shared/mac/PlatformCertificateInfo.h: Renamed from Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp.
3277         (WebKit::PlatformCertificateInfo::certificateChain):
3278         * Shared/mac/PlatformCertificateInfo.mm: Renamed from Source/WebCore/platform/network/mac/CertificateInfoMac.mm.
3279         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
3280         (WebKit::PlatformCertificateInfo::encode):
3281         (WebKit::PlatformCertificateInfo::decode):
3282         (WebKit::PlatformCertificateInfo::dump):
3283         * Shared/mac/WebCoreArgumentCodersMac.mm:
3284         (CoreIPC::::encodePlatformData):
3285         (CoreIPC::::decodePlatformData):
3286         * Shared/soup/PlatformCertificateInfo.cpp: Added.
3287         (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
3288         (WebKit::PlatformCertificateInfo::~PlatformCertificateInfo):
3289         (WebKit::PlatformCertificateInfo::encode):
3290         (WebKit::PlatformCertificateInfo::decode):
3291         * Shared/soup/PlatformCertificateInfo.h: Renamed from Source/WebCore/platform/network/CertificateInfo.h.
3292         (WebKit::PlatformCertificateInfo::certificate):
3293         (WebKit::PlatformCertificateInfo::tlsErrors):
3294         * Shared/soup/WebCoreArgumentCodersSoup.cpp:
3295         (CoreIPC::::encodePlatformData):
3296         (CoreIPC::::decodePlatformData):
3297         * UIProcess/API/gtk/WebKitWebView.cpp:
3298         (webkit_web_view_get_tls_info):
3299         * UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
3300         (WebKit::AuthenticationChallengeProxy::useCredential):
3301         * UIProcess/WebContext.cpp:
3302         (WebKit::WebContext::allowSpecificHTTPSCertificateForHost):
3303         * UIProcess/WebFrameProxy.cpp:
3304         (WebKit::WebFrameProxy::didCommitLoad):
3305         * UIProcess/WebFrameProxy.h:
3306         * UIProcess/WebPageProxy.cpp:
3307         (WebKit::WebPageProxy::didCommitLoadForFrame):
3308         * UIProcess/WebPageProxy.h:
3309         * UIProcess/WebPageProxy.messages.in:
3310         * WebKit2.xcodeproj/project.pbxproj:
3311         * WebProcess/Network/WebResourceLoader.cpp:
3312         (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
3313         * WebProcess/Network/WebResourceLoader.h:
3314         * WebProcess/Network/WebResourceLoader.messages.in:
3315         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3316         (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
3317
3318 2013-10-22  Tim Horton  <timothy_horton@apple.com>
3319
3320         Remote Layer Tree: Disable threaded scrolling for RemoteLayerTreeDrawingArea
3321         https://bugs.webkit.org/show_bug.cgi?id=123187
3322
3323         Reviewed by Dean Jackson.
3324
3325         * WebProcess/WebPage/DrawingArea.h:
3326         (WebKit::DrawingArea::supportsThreadedScrolling):
3327         * WebProcess/WebPage/WebPage.cpp:
3328         (WebKit::WebPage::WebPage):
3329         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
3330         Threaded scrolling doesn't work with remote layer trees yet.
3331         Let the DrawingArea subclass tell WebPage if it supports threaded
3332         scrolling, and make TiledCoreAnimationDrawingArea say that it does.
3333
3334 2013-10-22  Ryuan Choi  <ryuan.choi@samsung.com>
3335
3336         Unreviewed build fix on EFL port after r157823
3337
3338         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
3339         (CoreIPC::::encode): renamed getOperationType() to type().
3340
3341 2013-10-22  Tim Horton  <timothy_horton@apple.com>
3342
3343         {ClipPathOperation, FilterOperation}::getOperationType() should not include 'get'
3344         https://bugs.webkit.org/show_bug.cgi?id=123172
3345
3346         Reviewed by Simon Fraser.
3347
3348         * Shared/WebCoreArgumentCoders.cpp:
3349         (CoreIPC::encodeFilterOperation):
3350         * Shared/mac/RemoteLayerTreeTransaction.mm:
3351         (WebKit::RemoteLayerTreeTextStream::operator<<):
3352         Adopt the new name.
3353
3354 2013-10-22  Csaba Osztrogonác  <ossy@webkit.org>
3355
3356         URTBF after r157803 for !ENABLE(CSS_FILTERS) platforms.
3357
3358         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
3359         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
3360         * Shared/WebCoreArgumentCoders.cpp:
3361
3362 2013-10-22  Tim Horton  <timothy_horton@apple.com>
3363
3364         Remote Layer Tree: Support hardware accelerated filters
3365         https://bugs.webkit.org/show_bug.cgi?id=123139
3366
3367         Reviewed by Anders Carlsson.
3368
3369         * Shared/WebCoreArgumentCoders.cpp:
3370         (CoreIPC::ArgumentCoder<Length>::encode):
3371         (CoreIPC::ArgumentCoder<Length>::decode):
3372         Add simple coders for Length.
3373
3374         (CoreIPC::encodeFilterOperation):
3375         (CoreIPC::decodeFilterOperation):
3376         Serialize and deserialize FilterOperations, except for CUSTOM and VALIDATED_CUSTOM.
3377
3378         (CoreIPC::ArgumentCoder<Length>::encode):
3379         (CoreIPC::ArgumentCoder<Length>::decode):
3380         Add coders for FilterOperations that delegate to {en,de}codeFilterOperation
3381         for each operation in the list.
3382
3383         * Shared/WebCoreArgumentCoders.h:
3384         Drive-by fix indentation.
3385         Expose the Length and FilterOperations coders.
3386
3387         * Shared/mac/RemoteLayerTreeTransaction.h:
3388         Add FiltersChanged and LayerProperties::filters.
3389
3390         * Shared/mac/RemoteLayerTreeTransaction.mm:
3391         (WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
3392         (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
3393         Encode and decode our FilterOperations.
3394
3395         (WebKit::dumpChangedLayers):
3396         Dump information about the layers' filters.
3397
3398         * UIProcess/mac/RemoteLayerTreeHost.mm:
3399         (WebKit::RemoteLayerTreeHost::commit):
3400         Use PlatformCAFilters code to apply a FilterOperations object to our CALayer.
3401
3402         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
3403         (PlatformCALayerRemote::setFilters):
3404         Replace existing filters with our new set, and note that they've changed.
3405
3406         (PlatformCALayerRemote::copyFiltersFrom):
3407         Not yet implemented. Not critical for this feature, either.
3408
3409         (PlatformCALayerRemote::filtersCanBeComposited):
3410         For now, this is the same as the Mac version.
3411
3412 2013-10-22  Brian Holt  <brian.holt@samsung.com>
3413
3414         [GTK] Add WebKit2 API for TLS errors
3415         https://bugs.webkit.org/show_bug.cgi?id=120160
3416
3417         Reviewed by Carlos Garcia Campos.
3418
3419         Add a new signal load-failed-with-tls-errors that is emitted with
3420         a WebKitCertificateInfo boxed type to allow users to deal with TLS
3421         errors. A new API is exposed in WebKitWebContext to allow
3422         exceptions for TLS errors on a given host.
3423
3424         * GNUmakefile.list.am:
3425         * PlatformGTK.cmake:
3426         * UIProcess/API/gtk/WebKitCertificateInfo.cpp: Added.
3427         (webkitCertificateInfoGetCertificateInfo):
3428         (webkit_certificate_info_copy):
3429         (webkit_certificate_info_free):
3430         (webkit_certificate_info_get_tls_certificate):
3431         (webkit_certificate_info_get_tls_errors):
3432         * UIProcess/API/gtk/WebKitCertificateInfo.h: Added.
3433         * UIProcess/API/gtk/WebKitCertificateInfoPrivate.h: Added.
3434         (_WebKitCertificateInfo::_WebKitCertificateInfo):
3435         * UIProcess/API/gtk/WebKitWebContext.cpp:
3436         (webkit_web_context_allow_tls_certificate_for_host): Support TLS
3437         exceptions for a given host.
3438         * UIProcess/API/gtk/WebKitWebContext.h:
3439         * UIProcess/API/gtk/WebKitWebView.cpp:
3440         (webkit_web_view_class_init): Added new signal.
3441         (webkitWebViewLoadFailedWithTLSErrors): Emit new signal with
3442         WebKitCertificateInfo and host.
3443         * UIProcess/API/gtk/WebKitWebView.h:
3444         * UIProcess/API/gtk/WebKitWebViewPrivate.h:
3445         * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
3446         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
3447         * UIProcess/API/gtk/docs/webkit2gtk.types:
3448         * UIProcess/API/gtk/tests/TestSSL.cpp:
3449         (testLoadFailedWithTLSErrors):
3450         (httpsServerCallback):
3451         (beforeAll): Added new test.
3452         * UIProcess/API/gtk/webkit2.h:
3453         * UIProcess/API/gtk/webkit2marshal.list:
3454         * UIProcess/WebContext.cpp:
3455         (WebKit::WebContext::allowSpecificHTTPSCertificateForHost): Send
3456         message to WebProcess to allow a certificate and host pair.
3457         * WebProcess/WebProcess.h:
3458         * WebProcess/WebProcess.messages.in: New message to tell
3459         WebProcess to allow a specific TLS certificate for a given host.
3460         * WebProcess/soup/WebProcessSoup.cpp:
3461         (WebKit::WebProcess::allowSpecificHTTPSCertificateForHost): Allow
3462         certificate and host pair.
3463
3464 2013-10-22  Dan Bernstein  <mitz@apple.com>
3465
3466         Try to make the 32-bit Mac build happy.
3467
3468         * UIProcess/API/mac/WKBrowsingContextLoadDelegate.h:
3469
3470 2013-10-21  Dan Bernstein  <mitz@apple.com>
3471
3472         Try to make the 32-bit Mac build happy.
3473
3474         * UIProcess/API/mac/WKBrowsingContextController.mm:
3475         (setUpPageLoaderClient):
3476
3477 2013-10-21  Dan Bernstein  <mitz@apple.com>
3478
3479         [Cocoa] Add load delegate method for didChangeBackForwardList
3480         https://bugs.webkit.org/show_bug.cgi?id=123136
3481
3482         Reviewed by Anders Carlsson.
3483
3484         * UIProcess/API/mac/WKBrowsingContextController.mm:
3485         (didChangeBackForwardList): Added. Calls new delegate method.
3486         (setUpPageLoaderClient):  Hook up new client function.
3487         * UIProcess/API/mac/WKBrowsingContextLoadDelegate.h: Declare new delegate method.
3488
3489 2013-10-21  Mark Rowe  <mrowe@apple.com>
3490
3491         Add a version of WebKitSystemInterface for Mavericks.
3492
3493         Reviewed by Ryosuke Niwa.
3494
3495         * Configurations/DebugRelease.xcconfig:
3496
3497 2013-10-21  Dan Bernstein  <mitz@apple.com>
3498
3499         Try to fix the Mac 32-bit build.
3500
3501         * UIProcess/API/mac/WKBrowsingContextController.h:
3502         * UIProcess/API/mac/WKBrowsingContextController.mm:
3503
3504 2013-10-21  Tim Horton  <timothy_horton@apple.com>
3505
3506         Give up on building RemoteLayerTreeTransaction::dump on Lion, it just won't work.
3507
3508         This definitely ought to fix the build.
3509
3510         * Shared/mac/RemoteLayerTreeTransaction.h:
3511         * Shared/mac/RemoteLayerTreeTransaction.mm:
3512         * UIProcess/mac/RemoteLayerTreeHost.mm:
3513         (WebKit::RemoteLayerTreeHost::commit):
3514
3515 2013-10-21  Tim Horton  <timothy_horton@apple.com>
3516
3517         Maybe a Lion build fix after r157731, part 2.
3518
3519         * Shared/mac/RemoteLayerTreeTransaction.mm:
3520         (WebKit::RemoteLayerTreeTextStream::operator<<):
3521
3522 2013-10-21  Dan Bernstein  <mitz@apple.com>
3523
3524     &n