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