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