Add a NavigationActionData object for easy storage of navigation action data
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2014-01-28  Anders Carlsson  <andersca@apple.com>
2
3         Add a NavigationActionData object for easy storage of navigation action data
4         https://bugs.webkit.org/show_bug.cgi?id=127787
5
6         Reviewed by Tim Horton.
7
8         * Scripts/webkit2/messages.py:
9         (struct_or_class):
10         * Shared/NavigationActionData.cpp: Added.
11         (WebKit::NavigationActionData::NavigationActionData):
12         (WebKit::NavigationActionData::encode):
13         (WebKit::NavigationActionData::decode):
14         * Shared/NavigationActionData.h: Added.
15         * UIProcess/WebPageProxy.cpp:
16         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
17         (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
18         * UIProcess/WebPageProxy.h:
19         * UIProcess/WebPageProxy.messages.in:
20         * WebKit2.xcodeproj/project.pbxproj:
21         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
22         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
23         (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
24
25 2014-01-28  Tim Horton  <timothy_horton@apple.com>
26
27         Fix the Mountain Lion build.
28
29         * UIProcess/mac/ViewGestureController.mm:
30         (WebKit::ViewGestureController::beginSwipeGesture):
31         (WebKit::ViewGestureController::removeSwipeSnapshot):
32         * UIProcess/mac/ViewSnapshotStore.mm:
33         (WebKit::ViewSnapshotStore::recordSnapshot):
34
35 2014-01-28  Tim Horton  <timothy_horton@apple.com>
36
37         Fix the iOS build.
38
39         * UIProcess/WebPageProxy.cpp:
40         (WebKit::WebPageProxy::recordNavigationSnapshot):
41         * UIProcess/mac/ViewSnapshotStore.h:
42         * UIProcess/mac/ViewSnapshotStore.mm:
43
44 2014-01-28  Brady Eidson  <beidson@apple.com>
45
46         Remove unneeded “WebCore::” prefixing in two .cpp files.
47
48         Rubberstamped by Alexey Proskuryakov.
49
50         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
51         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
52
53 2014-01-28  Tim Horton  <timothy_horton@apple.com>
54
55         WebKit2 View Gestures (Swipe): Snapshots should be purgeable
56         https://bugs.webkit.org/show_bug.cgi?id=127390
57         <rdar://problem/15876775>
58
59         Reviewed by Anders Carlsson.
60
61         Make snapshots be purgeable, and implement a straightforward
62         (if perhaps expensive, for now) cache eviction strategy to limit the
63         number of snapshots to 20.
64
65         * UIProcess/mac/ViewGestureController.mm:
66         (WebKit::ViewGestureController::beginSwipeGesture):
67         When beginning a gesture, attempt to make the retrieved snapshot
68         non-volatile. If it was purged while volatile, we won't use it, but if it
69         is still valid, we'll go ahead and use it as the swipe layer's contents.
70
71         (WebKit::ViewGestureController::removeSwipeSnapshot):
72         When removing the swipe snapshot, make it volatile once again.
73
74         * UIProcess/mac/ViewSnapshotStore.h:
75         Store a creation time along with the image.
76         Store and return IOSurfaces instead of CGImages.
77         Store snapshots and render tree sizes separately, so that we can
78         throw away snapshots but keep the render tree sizes indefinitely.
79
80         * UIProcess/mac/ViewSnapshotStore.mm:
81         (WebKit::ViewSnapshotStore::pruneSnapshots):
82         Cap the number of snapshots we'll ever have live at 20.
83         Enforce this cap by first trying to remove snapshots farthest
84         from the current back-forward list's current item, falling back
85         to removing the least recently created snapshot if there are no
86         snapshots owned by the current back-forward list.
87
88         (WebKit::createIOSurfaceFromImage):
89         Build an IOSurface from the CGImage snapshot we took, for ease of
90         use of its purgeability API.
91
92         (WebKit::ViewSnapshotStore::recordSnapshot):
93         Bail from taking the snapshot if the image is empty; this can happen
94         if the view is out of the window when the snapshot is taken.
95
96         Mark snapshots as purgeable as soon as they go into the cache.
97
98         (WebKit::ViewSnapshotStore::snapshotAndRenderTreeSize):
99         Return the target render tree size even if there is no snapshot image.
100         Take care not to look up an empty UUID.
101
102 2014-01-27  Alexey Proskuryakov  <ap@apple.com>
103
104         Expose SQL database creation and modification times
105         https://bugs.webkit.org/show_bug.cgi?id=127728
106
107         Reviewed by Brady Eidson.
108
109         * Shared/WebCoreArgumentCoders.cpp:
110         (IPC::ArgumentCoder<DatabaseDetails>::encode):
111         (IPC::ArgumentCoder<DatabaseDetails>::decode):
112         Encode and decode new DatabaseDetails member variables.
113
114         * UIProcess/API/C/WKDatabaseManager.cpp:
115         (WKDatabaseManagerGetDatabaseDetailsCreationTimeKey):
116         (WKDatabaseManagerGetDatabaseDetailsModificationTimeKey):
117         * UIProcess/API/C/WKDatabaseManager.h:
118         Added new keys for database details.
119
120         * UIProcess/WebDatabaseManagerProxy.cpp:
121         (WebKit::WebDatabaseManagerProxy::databaseDetailsCreationTimeKey):
122         (WebKit::WebDatabaseManagerProxy::databaseDetailsModificationTimeKey):
123         (WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
124         * UIProcess/WebDatabaseManagerProxy.h:
125         Set the new keys if times are valid.
126
127 2014-01-28  Tim Horton  <timothy_horton@apple.com>
128
129         WebKit2 View Gestures (Swipe): Use CGSCaptureWindowsContentsToRect for now
130         https://bugs.webkit.org/show_bug.cgi?id=127768
131         <rdar://problem/15923662>
132
133         Reviewed by Simon Fraser.
134
135         * UIProcess/API/mac/WKView.mm:
136         (-[WKView _takeViewSnapshot]):
137         Until <rdar://problem/15709646> is resolved, we'll use
138         CGSCaptureWindowsContentsToRect instead of CGWindowListCreateImage.
139
140 2014-01-28  Mark Rowe  <mrowe@apple.com>
141
142         <https://webkit.org/b/127767> Disable some deprecation warnings to fix the build.
143
144         Reviewed by Ryosuke Niwa.
145
146         * UIProcess/API/mac/WKView.mm:
147         (-[WKView _updateWindowAndViewFrames]):
148         * WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:
149
150 2014-01-28  Adrian Perez de Castro  <aperez@igalia.com>
151
152         [GTK] Add API to allow setting the process model in WebKitWebContext
153         https://bugs.webkit.org/show_bug.cgi?id=125463
154
155         Reviewed by Carlos Garcia Campos.
156
157         Implements accessors in WebKitWebContext for the process model.
158         The default behavior is unchanged, and a single web process is
159         used. Using WEBKIT_PROCESS_MODEL_ONE_SECONDARY_PROCESS_PER_WEB_VIEW
160         as the process model will make use one web process for each
161         WebKitWebView. This also enables the network process. Setting
162         the process model must be done as early as possible, before the
163         very first web process is spawned.
164
165         * UIProcess/API/gtk/WebKitWebContext.cpp:
166         Add accessors in the API to get/set the process model.
167         (webkit_web_context_set_process_model):
168         (webkit_web_context_get_process_model):
169         * UIProcess/API/gtk/WebKitWebContext.h:
170         Define the WebKitProcessModel enum.
171         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
172         Add new public API bits to the documentation.
173
174 2014-01-27  Carlos Garcia Campos  <cgarcia@igalia.com>
175
176         [GTK] Make webkit_uri_scheme_request_get_web_view() work with CustomProtocols
177         https://bugs.webkit.org/show_bug.cgi?id=127614
178
179         Reviewed by Gustavo Noronha Silva.
180
181         * NetworkProcess/RemoteNetworkingContext.h: Remove
182         initiatingPageID() method.
183         * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp: Ditto.
184         * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp:
185         (WebKit::CustomProtocolManagerImpl::send): Create the request with
186         the ResourceRequest constructor that receives a SoupRequest.
187         * Shared/soup/WebCoreArgumentCodersSoup.cpp:
188         (IPC::ArgumentCoder<ResourceRequest>::encodePlatformData): Encode initiatingPageID.
189         (IPC::ArgumentCoder<ResourceRequest>::decodePlatformData): Decode initiatingPageID.
190         * UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
191         (webkitURISchemeRequestCreate): Remove initiatingPageID parameter
192         and get it from the given ResourceRequest.
193         * UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h:
194         * UIProcess/API/gtk/WebKitWebContext.cpp:
195         (webkitWebContextStartLoadingCustomProtocol): Update to
196         webkitURISchemeRequestCreate API change.
197         * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
198         (willSendRequestForFrame): Set the initiatingPageID to the ResourceRequest.
199         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
200         (WebKit::WebFrameNetworkingContext::WebFrameNetworkingContext):
201         Remove initiatingPageID() method.
202         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
203         * WebProcess/soup/WebSoupRequestManager.cpp:
204         (WebKit::WebSoupRequestManager::send): Get the initiatingPageID
205         from the SoupRequest using the ResourceRequest API.
206
207 2014-01-27  Roger Fong  <roger_fong@apple.com>
208
209         WebGLLoadPolicy::WebGLAsk is an unnecessary value.
210         https://bugs.webkit.org/show_bug.cgi?id=127755
211
212         Reviewed by Anders Carlsson.
213
214         * UIProcess/API/C/WKAPICast.h:
215         (WebKit::toWebGLLoadPolicy):
216         * UIProcess/API/C/WKPageLoaderClient.h:
217
218 2014-01-27  Brady Eidson  <beidson@apple.com>
219
220         IDB: Cursor support - Messaging, IPC, Threading plumbing
221         https://bugs.webkit.org/show_bug.cgi?id=127736
222
223         Reviewed by Sam Weinig.
224
225         Pipe three cursor-related calls to the DatabaseProcess, and handle messages
226         from the database process when it is done handling them:
227         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
228         (WebKit::WebIDBServerConnection::didOpenCursor):
229         (WebKit::WebIDBServerConnection::didAdvanceCursor):
230         (WebKit::WebIDBServerConnection::didIterateCursor):
231         (WebKit::WebIDBServerConnection::openCursor):
232         (WebKit::WebIDBServerConnection::cursorAdvance):
233         (WebKit::WebIDBServerConnection::cursorIterate):
234         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
235         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:
236
237         Pipe the calls through to the appropriate UniqueIDBDatabase:
238         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
239         (WebKit::DatabaseProcessIDBConnection::openCursor):
240         (WebKit::DatabaseProcessIDBConnection::cursorAdvance):
241         (WebKit::DatabaseProcessIDBConnection::cursorIterate):
242         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
243         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
244
245         Pass the calls to the backing store thread, then message back to the WebProcess
246         when the requests are complete.
247         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
248         (WebKit::UniqueIDBDatabase::openCursor):
249         (WebKit::UniqueIDBDatabase::cursorAdvance):
250         (WebKit::UniqueIDBDatabase::cursorIterate):
251         (WebKit::UniqueIDBDatabase::openCursorInBackingStore):
252         (WebKit::UniqueIDBDatabase::didOpenCursorInBackingStore):
253         (WebKit::UniqueIDBDatabase::advanceCursorInBackingStore):
254         (WebKit::UniqueIDBDatabase::didAdvanceCursorInBackingStore):
255         (WebKit::UniqueIDBDatabase::iterateCursorInBackingStore):
256         (WebKit::UniqueIDBDatabase::didIterateCursorInBackingStore):
257         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
258
259         * Shared/WebCrossThreadCopier.cpp:
260         (WebCore::Vector<char>>::copy):
261         * Shared/WebCrossThreadCopier.h:
262
263 2014-01-27  Joseph Pecoraro  <pecoraro@apple.com>
264
265         WebKit2: Enable -Wimplicit-fallthrough and add FALLTHROUGH annotation where needed
266         https://bugs.webkit.org/show_bug.cgi?id=127665
267
268         Reviewed by Anders Carlsson.
269
270         * Shared/UserData.cpp:
271         (WebKit::UserData::encode):
272         These look like they should not have fallen through!
273
274         * Configurations/Base.xcconfig:
275         * Shared/mac/ObjCObjectGraphCoders.mm:
276         (WebKit::InjectedBundleObjCObjectGraphEncoderImpl::encode):
277
278 2014-01-27  Andy Estes  <aestes@apple.com>
279
280         [WebKit2] Add SPI to disable the WebCore memory cache
281         https://bugs.webkit.org/show_bug.cgi?id=127747
282
283         Reviewed by Tim Horton.
284
285         * Shared/WebProcessCreationParameters.cpp:
286         (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
287         Initialized memoryCacheDisabled to false.
288         (WebKit::WebProcessCreationParameters::encode):
289         Encoded memoryCacheDisabled.
290         (WebKit::WebProcessCreationParameters::decode):
291         Decoded memoryCacheDisabled.
292         * Shared/WebProcessCreationParameters.h:
293         * UIProcess/API/C/WKContext.cpp:
294         (WKContextSetMemoryCacheDisabled):
295         Called WebContext::setMemoryCacheDisabled().
296         * UIProcess/API/C/WKContextPrivate.h: Declared new SPI.
297         * UIProcess/WebContext.cpp:
298         (WebKit::WebContext::WebContext): Initialized m_memoryCacheDisabled to false.
299         (WebKit::WebContext::createNewWebProcess):
300         Set WebProcessCreationParameters::memoryCacheDisabled to m_memoryCacheDisabled.
301         (WebKit::WebContext::setMemoryCacheDisabled): Set m_memoryCacheDisabled
302         and sent new value to all existing processes.
303         * UIProcess/WebContext.h:
304         * WebProcess/WebProcess.cpp:
305         (WebKit::WebProcess::initializeWebProcess):
306         Called WebProcess::setMemoryCacheDisabled().
307         (WebKit::WebProcess::setMemoryCacheDisabled):
308         Called MemoryCache::setDisabled() if the disabled state changed.
309         * WebProcess/WebProcess.h:
310         * WebProcess/WebProcess.messages.in:
311
312 2014-01-27  Anders Carlsson  <andersca@apple.com>
313
314         Add -[WKWebView loadRequest:] API
315         https://bugs.webkit.org/show_bug.cgi?id=127727
316
317         Reviewed by Dan Bernstein.
318
319         * UIProcess/API/Cocoa/WKWebView.h:
320         * UIProcess/API/Cocoa/WKWebView.mm:
321         (-[WKWebView initWithFrame:configuration:]):
322         (-[WKWebView loadRequest:]):
323
324 2014-01-27  Brady Eidson  <beidson@apple.com>
325
326         IDB: Rename "IDBTransactionIdentifier" to be more general purpose (take 2)
327         https://bugs.webkit.org/show_bug.cgi?id=127717
328
329         Reviewed by Tim Horton.
330
331         Update all related variable names since the type no longer contains the relevant info.
332
333         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
334         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
335         * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
336         * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp:
337         * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h:
338         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
339         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
340         * Shared/WebCrossThreadCopier.cpp:
341
342 2014-01-27  Anders Carlsson  <andersca@apple.com>
343
344         Copy relevant code from the iOS version of WKView to WKWebView
345         https://bugs.webkit.org/show_bug.cgi?id=127721
346
347         Reviewed by Dan Bernstein.
348
349         * UIProcess/API/Cocoa/WKWebView.mm:
350         (-[WKWebView initWithFrame:configuration:]):
351         (-[WKWebView setFrame:]):
352         (-[WKWebView setBounds:]):
353         (-[WKWebView scrollView]):
354         (-[WKWebView browsingContextController]):
355         (-[WKWebView contentView:contentsSizeDidChange:]):
356         (-[WKWebView contentViewDidCommitLoadForMainFrame:]):
357         (-[WKWebView contentViewDidReceiveMobileDocType:]):
358         (-[WKWebView contentView:didChangeViewportArgumentsSize:initialScale:minimumScale:maximumScale:allowsUserScaling:]):
359         (-[WKWebView viewportHandlerDidChangeScales:]):
360         (-[WKWebView viewportHandler:didChangeViewportSize:]):
361         (-[WKWebView viewForZoomingInScrollView:]):
362         (-[WKWebView scrollViewWillBeginZooming:withView:]):
363         (-[WKWebView _didFinishScroll]):
364         (-[WKWebView scrollViewDidEndDragging:willDecelerate:]):
365         (-[WKWebView scrollViewDidEndDecelerating:]):
366         (-[WKWebView scrollViewDidScrollToTop:]):
367         (-[WKWebView scrollViewDidScroll:]):
368         (-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
369         (-[WKWebView _frameOrBoundsChanged]):
370         (-[WKWebView _setDocumentScale:]):
371
372 2014-01-27  Tim Horton  <timothy_horton@apple.com>
373
374         Revert the parts of r162629 that add a new pluginLoadPolicy and the context menu item.
375
376         We're leaving the parts that make us use PDFPlugin instead of showing the blocked
377         plugin indicator intact, though.
378
379         * UIProcess/API/APILoaderClient.h:
380         (API::LoaderClient::pluginLoadPolicy):
381         * UIProcess/API/C/WKPage.cpp:
382         (WKPageSetPageLoaderClient):
383         * UIProcess/API/C/WKPageLoaderClient.h:
384         * UIProcess/WebPageProxy.cpp:
385         (WebKit::WebPageProxy::findPlugin):
386         * UIProcess/WebPageProxy.h:
387         * UIProcess/WebPageProxy.messages.in:
388         * WebProcess/Plugins/PDF/PDFPlugin.h:
389         * WebProcess/Plugins/PDF/PDFPlugin.mm:
390         (WebKit::PDFPlugin::PDFPlugin):
391         (WebKit::PDFPlugin::handleContextMenuEvent):
392         * WebProcess/WebPage/WebPage.cpp:
393         (WebKit::WebPage::createPlugin):
394         (WebKit::WebPage::canPluginHandleResponse):
395
396 2014-01-27  Anders Carlsson  <andersca@apple.com>
397
398         Add a WKContentView initializer that takes a WKWebViewConfiguration
399         https://bugs.webkit.org/show_bug.cgi?id=127718
400
401         Reviewed by Tim Horton.
402
403         This initializer will be used by WKWebView.
404
405         * UIProcess/API/ios/WKContentView.h:
406         * UIProcess/API/ios/WKContentView.mm:
407         (-[WKContentView initWithFrame:configuration:]):
408
409 2014-01-27  Andy Estes  <aestes@apple.com>
410
411         Scrub WebKit API headers of WTF macros
412         https://bugs.webkit.org/show_bug.cgi?id=127706
413
414         Reviewed by David Kilzer.
415
416         * Configurations/FeatureDefines.xcconfig: Added ENABLE_INSPECTOR.
417
418 2014-01-27  Tim Horton  <timothy_horton@apple.com>
419
420         Crashes in RemoteScrollingCoordinatorProxy::rootScrollingNodeID
421
422         Reviewed by Simon Fraser.
423
424         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
425         (WebKit::RemoteScrollingCoordinatorProxy::rootScrollingNodeID):
426         Null-check the root scrolling node, in case something scrolls before
427         we've made the first remote layer/scrolling tree commit.
428
429 2014-01-27  Brady Eidson  <beidson@apple.com>
430
431         IDB: Rename "IDBTransactionIdentifier" to be more general purpose
432         https://bugs.webkit.org/show_bug.cgi?id=127717
433
434         Reviewed by Tim Horton.
435
436         Global rename of IDBTransactionIdentifier to IDBIdentifier.
437
438         * DatabaseProcess/IndexedDB/IDBIdentifier.h: Renamed from Source/WebKit2/DatabaseProcess/IndexedDB/IDBTransactionIdentifier.h.
439
440         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
441
442         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
443         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
444
445         * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.cpp:
446         * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBTransaction.h:
447
448         * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
449         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
450         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
451
452         * Shared/WebCrossThreadCopier.cpp:
453         * Shared/WebCrossThreadCopier.h:
454
455         * WebKit2.xcodeproj/project.pbxproj:
456
457 2014-01-27  Anders Carlsson  <andersca@apple.com>
458
459         Move underlying C++ objects to class extensions
460         https://bugs.webkit.org/show_bug.cgi?id=127716
461
462         Reviewed by Tim Horton.
463
464         This allows us to get at the internals without calling any Obj-C methods.
465
466         * UIProcess/API/Cocoa/WKProcessClass.mm:
467         * UIProcess/API/Cocoa/WKProcessClassInternal.h:
468         * UIProcess/API/ios/WKContentView.mm:
469         * UIProcess/API/ios/WKContentViewInternal.h:
470
471 2014-01-27  Anders Carlsson  <andersca@apple.com>
472
473         Implement the _injectedBundleURL property
474         https://bugs.webkit.org/show_bug.cgi?id=127714
475
476         Reviewed by Tim Horton.
477
478         Properties declared in class categories need to be implemented. Do this
479         for the _injectedBundleURL property.
480
481         * UIProcess/API/Cocoa/WKProcessClassConfiguration.mm:
482         (-[WKProcessClassConfiguration _injectedBundleURL]):
483         (-[WKProcessClassConfiguration _setInjectedBundleURL:]):
484
485 2014-01-27  Brady Eidson  <beidson@apple.com>
486
487         IDB: LevelDB backing store shouldn't know about IDBCursor or IDBCallbacks
488         https://bugs.webkit.org/show_bug.cgi?id=127708
489
490         Reviewed by Tim Horton.
491
492         Update to new callback signatures:
493         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
494         (WebKit::WebIDBServerConnection::cursorAdvance):
495         (WebKit::WebIDBServerConnection::cursorIterate):
496         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
497
498 2014-01-27  Anders Carlsson  <andersca@apple.com>
499
500         Tweak the WKWebView and WKWebViewConfiguration headers
501         https://bugs.webkit.org/show_bug.cgi?id=127705
502
503         Reviewed by Dan Bernstein.
504
505         Add WK_API_CLASS to WKWebView and make WKWebView.h and WKWebViewConfiguration.h public.
506
507         * UIProcess/API/Cocoa/WKWebView.h:
508         * WebKit2.xcodeproj/project.pbxproj:
509
510 2014-01-27  Brady Eidson  <beidson@apple.com>
511
512         IDB: Remove unused concept of "cursor prefetch"
513         https://bugs.webkit.org/show_bug.cgi?id=127700
514
515         Reviewed by Tim Horton.
516
517         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
518         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
519
520 2014-01-27  Tim Horton  <timothy_horton@apple.com>
521
522         Fix the build on case-sensitive filesystems
523
524         * WebProcess/WebPage/ViewGestureGeometryCollector.h:
525
526 2014-01-27  Brady Eidson  <beidson@apple.com>
527
528         IDB: Refactor out the last of the operation callbacks that are called by the LevelDB backing store
529         https://bugs.webkit.org/show_bug.cgi?id=127592
530
531         Reviewed by Tim Horton.
532
533         Update the WebIDBServerConnection to the new callback signatures:
534         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
535         (WebKit::WebIDBServerConnection::openCursor):
536         (WebKit::WebIDBServerConnection::count):
537         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
538
539 2014-01-27  Tim Horton  <timothy_horton@apple.com>
540
541         WebKit2 View Gestures: Fluid back-forward swipe
542         https://bugs.webkit.org/show_bug.cgi?id=127363
543
544         Reviewed by Anders Carlsson.
545
546         Add support for a "back-forward swipe", which allows fluid swiping between
547         items in the back-forward list. Currently disabled by default.
548
549         * Shared/WebPreferencesStore.h:
550         * UIProcess/API/C/WKPreferences.cpp:
551         (WKPreferencesSetViewGestureDebuggingEnabled):
552         (WKPreferencesGetViewGestureDebuggingEnabled):
553         * UIProcess/API/C/WKPreferencesPrivate.h:
554         Add a ViewGestureDebuggingEnabled preference, which currently causes snapshots to be blurred.
555         Additional view gesture debugging features could come in the future.
556
557         * UIProcess/API/Cocoa/WKViewPrivate.h:
558         * UIProcess/API/mac/WKView.mm:
559         (-[WKView _ensureGestureController]):
560         (-[WKView scrollWheel:]):
561         If back-forward navigation gestures are enabled, intercept scrollWheel events
562         on the WKView and let the ViewGestureController take the first crack at them.
563
564         (-[WKView setAllowsBackForwardNavigationGestures:]):
565         (-[WKView allowsBackForwardNavigationGestures]):
566         * UIProcess/API/mac/WKViewInternal.h:
567         Add allowsBackForwardNavigationGesture property, which enables the gesture.
568
569         * UIProcess/mac/ViewGestureController.h:
570         Add swipe-related methods, which will be described below.
571
572         Add an enum for the swipe transition style. Currently only Overlap is accessible,
573         but in the future one could see having API to choose the style.
574         'Overlap' has the outgoing page swipe out to the right (when swiping right)
575         or the incoming page swipe in from the right (when swiping left).
576         'Push' has the pages push each other along in sync, as if all the pages in the
577         back-forward list were oriented from left to right.
578
579         * UIProcess/mac/ViewGestureController.messages.in:
580         * UIProcess/mac/ViewGestureController.mm: Renamed from Source/WebKit2/UIProcess/mac/ViewGestureController.cpp.
581         Use some CAFilter SPI to blur the snapshot if ViewGestureDebuggingEnabled is on.
582
583         (WebKit::ViewGestureController::ViewGestureController):
584         (WebKit::ViewGestureController::~ViewGestureController):
585         (WebKit::ViewGestureController::endMagnificationGesture):
586         Move m_activeGestureType clearing to each end* function instead of one global place,
587         so that each gesture can handle when it ends separately.
588
589         (WebKit::ViewGestureController::handleScrollWheelEvent):
590         If we receive a scroll wheel event which is appropriate for starting a
591         fluid swipe, in a direction where the main frame is pinned to the appropriate
592         edge of the view, start tracking a swipe.
593
594         This should eventually have some hysterisis to avoid stealing scrolls that
595         venture into the wrong direction, but for now it starts tracking immediately.
596
597         Forward events from the tracking loop to {begin, handle, end}SwipeGesture.
598
599         (WebKit::ViewGestureController::beginSwipeGesture):
600         Create a layer with the destination page's snapshot, and set it up.
601
602         (WebKit::ViewGestureController::handleSwipeGesture):
603         Appropriately adjust the position of the root layer and snapshot layer,
604         given the transition style and swipe direction.
605
606         (WebKit::ViewGestureController::endSwipeGesture):
607         When the gesture ends, do the navigation, and tell the WebProcess to
608         inform us when the render tree hits half the size it was when the
609         snapshot was taken (when that happens, we will remove the snapshot
610         and the gesture will be truly complete). Also, start a watchdog timer
611         in case the render tree never hits that size, after which we will
612         also remove the snapshot.
613
614         (WebKit::ViewGestureController::didHitRenderTreeSizeThreshold):
615         (WebKit::ViewGestureController::swipeSnapshotWatchdogTimerFired):
616         (WebKit::ViewGestureController::removeSwipeSnapshot):
617         Tear down the swipe snapshot layer, and mark our current gesture as complete.
618
619         (WebKit::ViewGestureController::endActiveGesture):
620         Simplify endActiveGesture; it only has work to do for a pinch-zoom gesture,
621         as those are the only gestures where the user is directly in control of when they end.
622
623         * WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
624         (WebKit::ViewGestureGeometryCollector::ViewGestureGeometryCollector):
625         (WebKit::ViewGestureGeometryCollector::mainFrameDidLayout):
626         (WebKit::ViewGestureGeometryCollector::renderTreeSizeNotificationTimerFired):
627         * WebProcess/WebPage/ViewGestureGeometryCollector.h:
628         (WebKit::ViewGestureGeometryCollector::setRenderTreeSizeNotificationThreshold):
629         * WebProcess/WebPage/ViewGestureGeometryCollector.messages.in:
630         ViewGestureController pushes a render-tree size threshold to the WebProcess;
631         ViewGestureGeometryCollector (whose name is now more unfortunate than before)
632         monitors render-tree size changes and informs ViewGestureController when
633         it reaches that threshold via the 'DidHitRenderTreeSizeThreshold' message.
634
635         * UIProcess/API/Cocoa/WKViewPrivate.h:
636         * UIProcess/API/ios/PageClientImplIOS.h:
637         * UIProcess/API/ios/PageClientImplIOS.mm:
638         (WebKit::PageClientImpl::acceleratedCompositingRootLayer):
639         * UIProcess/API/mac/PageClientImpl.h:
640         * UIProcess/API/mac/PageClientImpl.mm:
641         (WebKit::PageClientImpl::acceleratedCompositingRootLayer):
642         * UIProcess/API/mac/WKView.mm:
643         (-[WKView _acceleratedCompositingModeRootLayer]):
644         * UIProcess/API/mac/WKViewInternal.h:
645         * UIProcess/PageClient.h:
646         * UIProcess/WebPageProxy.h:
647         * UIProcess/mac/WebPageProxyMac.mm:
648         (WebKit::WebPageProxy::acceleratedCompositingRootLayer):
649         Add a getter for the accelerated compositing root layer.
650
651         * UIProcess/mac/ViewSnapshotStore.mm:
652         (WebKit::ViewSnapshotStore::snapshotAndRenderTreeSize):
653         Don't extract the CGImageRef from a RetainPtr just to put it back in one.
654
655 2014-01-27  Carlos Garcia Campos  <cgarcia@igalia.com>
656
657         [GTK] Implement custom URI schemes with CustomProtocols
658         https://bugs.webkit.org/show_bug.cgi?id=127091
659
660         Reviewed by Gustavo Noronha Silva.
661
662         The old classes are no longer built for GTK+ and should be removed once
663         other ports using soup backend switch to custom protocols implementation.
664
665         * GNUmakefile.am: Remove include path.
666         * GNUmakefile.list.am: Remove files from compilation.
667         * PlatformGTK.cmake: Ditto.
668         * UIProcess/API/gtk/WebKitPrivate.h:
669         * UIProcess/API/gtk/WebKitRequestManagerClient.cpp:
670         (startLoading):
671         (stopLoading):
672         (attachRequestManagerClientToContext):
673         * UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
674         (webkitURISchemeRequestCreate):
675         (webkit_uri_scheme_request_get_web_view):
676         (webkitURISchemeRequestReadCallback):
677         (webkit_uri_scheme_request_finish):
678         (webkit_uri_scheme_request_finish_error):
679         * UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h:
680         * UIProcess/API/gtk/WebKitWebContext.cpp:
681         (createDefaultWebContext):
682         (webkit_web_context_register_uri_scheme):
683         (webkitWebContextGetRequestManager):
684         (webkitWebContextStartLoadingCustomProtocol):
685         (webkitWebContextStopLoadingCustomProtocol):
686         (webkitWebContextDidFinishLoadingCustomProtocol):
687         * UIProcess/API/gtk/WebKitWebContextPrivate.h:
688         * UIProcess/gtk/WebContextGtk.cpp:
689         (WebKit::WebContext::platformInitializeWebProcess):
690         * WebKit2Prefix.h: Enable CustomProtocols unconditionally for the
691         GTK+ port.
692
693 2014-01-27  Carlos Garcia Campos  <cgarcia@igalia.com>
694
695         [SOUP] WebProcess sometimes crashes when a download is cancelled
696         https://bugs.webkit.org/show_bug.cgi?id=127650
697
698         Reviewed by Martin Robinson.
699
700         The problem is that when the download is cancelled, the download
701         manager removes the download from the map and it's deleted. The
702         Download destructor calls platformInvalidate() that cancels the
703         resource handle if there's still one. We set to nullptr the
704         ResourceHandle when the download is cancelled to avoid cancelling
705         it twice, but it's done after calling Download::didCancel(). It
706         should be done before, because at that moment, when the download
707         is deleted, the resource handle pointer is still valid.
708
709         * Shared/Downloads/soup/DownloadSoup.cpp:
710         (WebKit::Download::cancel):
711
712 2014-01-25  Sam Weinig  <sam@webkit.org>
713
714         Remove unused support for DRAGGABLE_REGION
715         https://bugs.webkit.org/show_bug.cgi?id=127642
716
717         Reviewed by Simon Fraser.
718
719         * Configurations/FeatureDefines.xcconfig:
720
721 2014-01-25  Anders Carlsson  <andersca@apple.com>
722
723         Remove an unused FrameLoaderClient function
724         https://bugs.webkit.org/show_bug.cgi?id=127628
725
726         Reviewed by Andreas Kling.
727
728         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
729         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
730
731 2014-01-25  Anders Carlsson  <andersca@apple.com>
732
733         Remove atomicIncrement/atomicDecrement
734         https://bugs.webkit.org/show_bug.cgi?id=127625
735
736         Reviewed by Andreas Kling.
737
738         Replace atomicIncrement/atomicDecrement with std::atomic.
739
740         * Platform/IPC/Connection.cpp:
741         (IPC::Connection::createSyncMessageEncoder):
742         * Shared/mac/SecItemShim.cpp:
743         (WebKit::generateSecItemRequestID):
744         * UIProcess/StatisticsRequest.cpp:
745         (WebKit::StatisticsRequest::addOutstandingRequest):
746
747 2014-01-25  Anders Carlsson  <andersca@apple.com>
748
749         Modernize HashTable threading code
750         https://bugs.webkit.org/show_bug.cgi?id=127621
751
752         Reviewed by Darin Adler.
753
754         Explicitly include headers that used to be brought in by HashTable.h
755
756         * Shared/BlockingResponseMap.h:
757
758 2014-01-25  Zan Dobersek  <zdobersek@igalia.com>
759
760         [GTK] Remove null check for WebPopupMenuProxy::Client in WebPopupMenuProxyGtk::showPopupMenu
761         https://bugs.webkit.org/show_bug.cgi?id=107036
762
763         Reviewed by Andreas Kling.
764
765         * UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
766         (WebKit::WebPopupMenuProxyGtk::showPopupMenu): Don't perform an early return
767         if the client is not available - it always should be. The client is set to null
768         only when the proxy is invalidated. This happens immediately after this function
769         returns, either with the popup being forced to close or being closed by the user
770         with possibly an item being chosen. Rather than the early return, use an ASSERT.
771
772 2014-01-24  Tim Horton  <timothy_horton@apple.com>
773
774         WebKit2 View Gestures (Smart Zoom): Can't double-tap zoom-out on the body
775         https://bugs.webkit.org/show_bug.cgi?id=127602
776
777         Reviewed by Anders Carlsson.
778
779         * UIProcess/mac/ViewGestureController.h:
780         * UIProcess/mac/ViewGestureController.mm:
781         (WebKit::ViewGestureController::ViewGestureController):
782         (WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
783         Use an explicit boolean instead of the emptiness of the renderRect() to determine
784         whether or not the user has already smart-zoomed. renderRect() can be 0x0
785         if our hit-test hits the body element.
786
787 2014-01-24  Jinwoo Song  <jinwoo7.song@samsung.com>
788
789         Fix EFL WebKit2 build.
790
791         * WebProcess/WebPage/efl/WebPageEfl.cpp:
792         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
793
794 2014-01-24  Anders Carlsson  <andersca@apple.com>
795
796         Fix GTK+ WebKit2 build.
797
798         * WebProcess/WebPage/gtk/WebPageGtk.cpp:
799         (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
800
801 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
802
803         Start using the RemoteScrollingCoordinatorProxy on iOS
804         https://bugs.webkit.org/show_bug.cgi?id=127598
805
806         Reviewed by Tim Horton.
807
808         Add a scrollPositionChangedViaDelegatedScrolling() function to
809         ScrollingTree, allowing the ScrollingTree to be informed about
810         external sources of scrolling.
811         
812         Call it from -[WKContentView didScrollTo:] for the root node.
813
814         * UIProcess/API/ios/WKContentView.mm:
815         (-[WKContentView didScrollTo:]):
816         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
817         (WebKit::RemoteScrollingCoordinatorProxy::rootScrollingNodeID):
818         (WebKit::RemoteScrollingCoordinatorProxy::scrollPositionChangedViaDelegatedScrolling):
819         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
820
821 2014-01-24  Anders Carlsson  <andersca@apple.com>
822
823         Try to fix the GTK+ build.
824
825         * GNUmakefile.list.am:
826
827 2014-01-24  Anders Carlsson  <andersca@apple.com>
828
829         Remove back/forward list related functions from Page
830         https://bugs.webkit.org/show_bug.cgi?id=127596
831
832         Reviewed by Andreas Kling.
833
834         * WebProcess/WebPage/mac/WebPageMac.mm:
835         (WebKit::WebPage::performNonEditingBehaviorForSelector):
836
837 2014-01-24  Jinwoo Song  <jinwoo7.song@samsung.com>
838
839         Unreviewed build fix attemp on the EFL after r162728.
840
841         * CMakeLists.txt: Removed WebLoaderClient.cpp
842
843 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
844
845         Prepare scrolling tree to handle > 1 scrolling node
846         https://bugs.webkit.org/show_bug.cgi?id=127590
847
848         Reviewed by Tim Horton.
849         
850         Clean up the code path called after the ScrollingTree has scrolled a node,
851         to prepare for multiple scrolling nodes.
852         
853         Change "updateMainFrameScrollPosition" terminology to "updateScrollPositionAfterAsyncScroll",
854         and pass along the ScrollingNodeID that scrolled.
855
856         * UIProcess/Scrolling/RemoteScrollingTree.cpp:
857         (WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):
858         * UIProcess/Scrolling/RemoteScrollingTree.h:
859         * WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
860         (WebKit::RemoteScrollingCoordinator::scrollPositionChangedForNode):
861
862 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
863
864         #ifdef out handleWheelEventPhase for iOS
865         https://bugs.webkit.org/show_bug.cgi?id=127583
866
867         Reviewed by Tim Horton.
868
869         handleWheelEventPhase() doesn't make any sense for iOS, which
870         has no wheel events.
871
872         * UIProcess/Scrolling/RemoteScrollingTree.cpp:
873         * UIProcess/Scrolling/RemoteScrollingTree.h:
874
875 2014-01-24  Simon Fraser  <simon.fraser@apple.com>
876
877         Push a custom fixed position rect down to the WebProcess in iOS WK2
878         https://bugs.webkit.org/show_bug.cgi?id=127573
879
880         Reviewed by Tim Horton.
881         
882         Make it possible for WKContentView to specify a custom rect
883         used to layout fixed position elements on iOS.
884         
885         This is computed in WKContentView, and pushed down
886         through the RemoteLayerTreeDrawingArea, and eventually
887         pushed onto FrameView.
888
889         * UIProcess/API/ios/WKContentView.mm:
890         (-[WKContentView fixedPositionRectFromExposedRect:scale:]):
891         (-[WKContentView _updateFixedPositionRect]):
892         (-[WKContentView didFinishScrollTo:]):
893         (-[WKContentView didZoomToScale:]):
894         * UIProcess/DrawingAreaProxy.cpp:
895         (WebKit::DrawingAreaProxy::setCustomFixedPositionRect):
896         * UIProcess/DrawingAreaProxy.h:
897         * WebProcess/WebPage/DrawingArea.h:
898         * WebProcess/WebPage/DrawingArea.messages.in:
899         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
900         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
901         (WebKit::RemoteLayerTreeDrawingArea::setCustomFixedPositionRect):
902
903 2014-01-24  Anders Carlsson  <andersca@apple.com>
904
905         Get rid of WebLoaderClient
906         https://bugs.webkit.org/show_bug.cgi?id=127587
907
908         Reviewed by Andreas Kling.
909
910         Move WebLoaderClient into WKPage.cpp.
911
912         * UIProcess/API/C/WKPage.cpp:
913         (WKPageSetPageLoaderClient):
914         * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
915         (-[WKBrowsingContextController setLoadDelegate:]):
916         * UIProcess/WebLoaderClient.cpp: Removed.
917         * UIProcess/WebLoaderClient.h: Removed.
918         * UIProcess/WebPageProxy.h:
919         * WebKit2.xcodeproj/project.pbxproj:
920
921 2014-01-24  Brady Eidson  <beidson@apple.com>
922
923         IDB: Support createIndex/deleteIndex
924         <rdar://problem/15779642> and https://bugs.webkit.org/show_bug.cgi?id=127585
925
926         Reviewed by Tim Horton.
927
928         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
929         (WebKit::UniqueIDBDatabase::createIndex):
930         (WebKit::UniqueIDBDatabase::deleteIndex):
931         (WebKit::UniqueIDBDatabase::createIndexInBackingStore):
932         (WebKit::UniqueIDBDatabase::deleteIndexInBackingStore):
933
934         * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
935         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
936         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteObjectStore): Also drop all associated indexes.
937         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):
938         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::deleteIndex):
939         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
940
941 2014-01-24  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
942
943         [GTK] youtube HTML5 videos in fullscreen, after <Esc>, can't go fullscreen again
944         https://bugs.webkit.org/show_bug.cgi?id=127064
945
946         When pressing <Esc> or <f> at full screen, the WebView shall emit the
947         event webkitfullscreenchange, but wk2gtk does not emit it. This is
948         because the WebView manages directly the exit of the full screen.
949
950         With this patch the WebView calls requestExitFullScreen to the full
951         screen manager, instead of managing directly the exit of the full
952         screen, and the event webkitfullscreenchange will be dispatched
953         correctly.
954
955         Reviewed by Martin Robinson.
956
957         No tests are included because there is a bug in WKTR that prevents the
958         execution of a test for this patch. See
959         https://bugs.webkit.org/show_bug.cgi?id=127348
960
961         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
962         (webkitWebViewBaseKeyPressEvent): Call
963         webkitWebViewBaseRequestExitFullScreen.
964         (webkitWebViewBaseRequestExitFullScreen): Added.
965         * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Ditto.
966
967 2014-01-24  Tim Horton  <timothy_horton@apple.com>
968
969         iOS build fix after r162710.
970
971         This is why these sorts of comments are bad.
972
973         * UIProcess/WebPageProxy.cpp:
974
975 2014-01-24  Anders Carlsson  <andersca@apple.com>
976
977         Use a side table to map WebPageProxy objects to WKBrowsingContextController objects
978         https://bugs.webkit.org/show_bug.cgi?id=127577
979
980         Reviewed by Tim Horton.
981
982         * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
983         (browsingContextControllerMap):
984         (-[WKBrowsingContextController dealloc]):
985         (-[WKBrowsingContextController _initWithPageRef:]):
986         (+[WKBrowsingContextController _browsingContextControllerForPageRef:]):
987         * UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h:
988         * UIProcess/WebPageProxy.h:
989
990 2014-01-24  Tim Horton  <timothy_horton@apple.com>
991
992         iOS build fix after r162710.
993
994         * UIProcess/API/ios/PageClientImplIOS.h:
995         * UIProcess/API/ios/PageClientImplIOS.mm:
996         (WebKit::PageClientImpl::takeViewSnapshot):
997
998 2014-01-24  Enrique Ocaña González  <eocanha@igalia.com>
999
1000         [GTK] Put cache files in XDG_CACHE_HOME
1001         https://bugs.webkit.org/show_bug.cgi?id=123458
1002
1003         Reviewed by Martin Robinson.
1004
1005         * UIProcess/gtk/WebContextGtk.cpp:
1006         (WebKit::WebContext::platformDefaultIconDatabasePath):
1007
1008 2014-01-24  Tim Horton  <timothy_horton@apple.com>
1009
1010         WebKit2 View Gestures (Swipe): Add a simple cache of view snapshots
1011         https://bugs.webkit.org/show_bug.cgi?id=127438
1012
1013         Reviewed by Sam Weinig.
1014
1015         Add a cache of bitmap snapshots of the WKView, taken via OS X's window server
1016         snapshotting mechanism. For now, we store all snapshots; refinements to the
1017         caching strategy (or really having one at all) will come in future patches.
1018
1019         Snapshots are stored in a side map, with a UUID that allows references
1020         to be stored inside WebBackForwardListItem (and serialized along with
1021         the back-forward list when it is copied).
1022
1023         * Shared/WebBackForwardListItem.h:
1024         (WebKit::WebBackForwardListItem::setSnapshotUUID):
1025         (WebKit::WebBackForwardListItem::snapshotUUID):
1026         * UIProcess/cf/WebBackForwardListCF.cpp:
1027         (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
1028         (WebKit::extractBackForwardListEntriesFromArray):
1029         Store and serialize a UUID along with each back-forward list item which
1030         identifies that item's view snapshot in the ViewSnapshotStore.
1031
1032         * UIProcess/cf/WebPageProxyCF.cpp:
1033         Bump the session state data version, as we changed the WebBackForwardList format.
1034
1035         * UIProcess/API/Cocoa/WKViewPrivate.h:
1036         * UIProcess/API/mac/PageClientImpl.h:
1037         * UIProcess/API/mac/PageClientImpl.mm:
1038         (WebKit::PageClientImpl::takeViewSnapshot):
1039
1040         * UIProcess/API/mac/WKView.mm:
1041         (-[WKView _takeViewSnapshot]):
1042         Add _takeViewSnapshot IPI, which is used by ViewSnapshotStore via the PageClient
1043         to take a snapshot of the view.
1044
1045         (-[WKView saveBackForwardSnapshotForCurrentItem]):
1046         Add saveBackForwardSnapshotForCurrentItem SPI, which clients could potentially
1047         use when they know they're about to manipulate the view hierarchy in such a way
1048         that they want the current back-forward item's snapshot to be up to date.
1049
1050         * UIProcess/API/mac/WKViewInternal.h:
1051         * UIProcess/PageClient.h:
1052         * UIProcess/WebPageProxy.cpp:
1053         (WebKit::WebPageProxy::WebPageProxy):
1054         (WebKit::WebPageProxy::recordNavigationSnapshot):
1055         (WebKit::WebPageProxy::goForward):
1056         (WebKit::WebPageProxy::goBack):
1057         (WebKit::WebPageProxy::goToBackForwardItem):
1058         (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
1059         Update the current back-forward item's snapshot immediately before navigating.
1060
1061         * UIProcess/WebPageProxy.h:
1062         (WebKit::WebPageProxy::shouldRecordNavigationSnapshots):
1063         (WebKit::WebPageProxy::setShouldRecordNavigationSnapshots):
1064         Expose the ability to enable taking view snapshots on every navigation.
1065         This is off by default, so we won't be taking any snapshots yet.
1066
1067         * UIProcess/mac/ViewSnapshotStore.h: Added.
1068         (WebKit::ViewSnapshotStore::disableSnapshotting):
1069         (WebKit::ViewSnapshotStore::enableSnapshotting):
1070         * UIProcess/mac/ViewSnapshotStore.mm: Added.
1071         (WebKit::ViewSnapshotStore::ViewSnapshotStore):
1072         (WebKit::ViewSnapshotStore::~ViewSnapshotStore):
1073         (WebKit::ViewSnapshotStore::shared):
1074         (WebKit::ViewSnapshotStore::recordSnapshot):
1075         (WebKit::ViewSnapshotStore::snapshotAndRenderTreeSize):
1076         * UIProcess/mac/WebPageProxyMac.mm:
1077         (WebKit::WebPageProxy::takeViewSnapshot):
1078         * WebKit2.xcodeproj/project.pbxproj:
1079
1080 2014-01-24  Brady Eidson  <beidson@apple.com>
1081
1082         IDB: support createIndex/deleteIndex messaging
1083         https://bugs.webkit.org/show_bug.cgi?id=127546
1084
1085         Reviewed by Tim Horton.
1086
1087         Message create/delete requests over to the DatabaseProcess, and listen to its replies:
1088         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
1089         (WebKit::WebIDBServerConnection::createIndex):
1090         (WebKit::WebIDBServerConnection::didCreateIndex):
1091         (WebKit::WebIDBServerConnection::deleteIndex):
1092         (WebKit::WebIDBServerConnection::didDeleteIndex):
1093         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
1094         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:
1095
1096         Pass create/delete requests to the appropriate unique IDB database:
1097         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
1098         (WebKit::DatabaseProcessIDBConnection::createIndex):
1099         (WebKit::DatabaseProcessIDBConnection::deleteIndex):
1100         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
1101         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
1102
1103         Message the create/delete request to the database thread for the backing store to handle:
1104         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
1105         (WebKit::UniqueIDBDatabase::didCreateIndex):
1106         (WebKit::UniqueIDBDatabase::didDeleteIndex):
1107         (WebKit::UniqueIDBDatabase::createIndex):
1108         (WebKit::UniqueIDBDatabase::deleteIndex):
1109         (WebKit::UniqueIDBDatabase::createIndexInBackingStore):
1110         (WebKit::UniqueIDBDatabase::deleteIndexInBackingStore):
1111         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
1112
1113         * Scripts/webkit2/messages.py:
1114         (struct_or_class):
1115
1116 2014-01-24  Csaba Osztrogonác  <ossy@webkit.org>
1117
1118         [EFL][WK2] Debug buildfix
1119         https://bugs.webkit.org/show_bug.cgi?id=127496
1120
1121         Reviewed by Gyuyoung Kim.
1122
1123         * Shared/SessionTracker.cpp:
1124
1125 2014-01-23  Brady Eidson  <beidson@apple.com>
1126
1127         IDB: Support IDBObjectStore.clear()
1128         https://bugs.webkit.org/show_bug.cgi?id=127541
1129
1130         Reviewed by Anders Carlsson.
1131
1132         Make the WebProcess call out to the DatabaseProcess with a clear request, and handle the
1133         response from the DatabaseProcess:
1134         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
1135         (WebKit::WebIDBServerConnection::clearObjectStore):
1136         (WebKit::WebIDBServerConnection::didClearObjectStore):
1137         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
1138         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:
1139
1140         Pass the clear request to the appropriate UniqueIDBDatabase:
1141         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
1142         (WebKit::DatabaseProcessIDBConnection::clearObjectStore):
1143         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
1144         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
1145
1146         Pass the clear request to the backing store:
1147         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
1148         (WebKit::UniqueIDBDatabase::didClearObjectStore):
1149         (WebKit::UniqueIDBDatabase::clearObjectStore):
1150         (WebKit::UniqueIDBDatabase::clearObjectStoreInBackingStore):
1151         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
1152
1153         Actually drop the records in the database:
1154         * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
1155         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
1156         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::clearObjectStore):
1157         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
1158
1159 2014-01-23  Anders Carlsson  <andersca@apple.com>
1160
1161         Fix crash when opening the inspector
1162         https://bugs.webkit.org/show_bug.cgi?id=127542
1163         <rdar://problem/15899544>
1164
1165         Reviewed by Joseph Pecoraro.
1166
1167         Create default clients so we won't crash if they're never set.
1168
1169         * UIProcess/WebPageProxy.cpp:
1170         (WebKit::WebPageProxy::WebPageProxy):
1171
1172 2014-01-23  Ryuan Choi  <ryuan.choi@samsung.com>
1173
1174         Unreviewed build fix attemp on the EFL and GTK build after r162678
1175
1176         * CMakeLists.txt: Removed WebPolicyClient.cpp
1177         * GNUmakefile.list.am: Removed WebPolicyClient.cpp and WebPolicyClient.h
1178
1179 2014-01-23  Yongjun Zhang  <yongjun_zhang@apple.com>
1180
1181         Support NSInteger argument type for encoding/decoding invocations.
1182         https://bugs.webkit.org/show_bug.cgi?id=127522
1183
1184         Reviewed by Dan Bernstein.
1185
1186         Add support for NSInteger argument type ('q') for remote invocations.
1187
1188         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
1189         (encodeInvocation):
1190         (decodeInvocationArguments):
1191
1192 2014-01-23  Brady Eidson  <beidson@apple.com>
1193
1194         IDB: Implement SQLite backing store 'get' support
1195         https://bugs.webkit.org/show_bug.cgi?id=127502
1196
1197         Reviewed by Tim Horton.
1198
1199         This makes get of a single IDBKey work, and lays the groundwork for getting an IDBKeyRange.
1200
1201         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
1202         (WebKit::UniqueIDBDatabase::getRecordFromBackingStore):
1203         * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
1204
1205         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
1206         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createAndPopulateInitialMetadata): Add custom collation
1207           to the Records table.
1208         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::getOrEstablishMetadata): Install the custom collator.
1209         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRecordFromObjectStore):
1210         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::getKeyRangeRecordFromObjectStore):
1211         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::collate): Collation function to be filled in later.
1212         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
1213
1214 2014-01-23  Jon Honeycutt  <jhoneycutt@apple.com>
1215
1216         Assertion failure in WebCore::PseudoElement::didRecalcStyle()
1217         <https://bugs.webkit.org/show_bug.cgi?id=126761>
1218         <rdar://problem/15793540>
1219
1220         Reviewed by Andy Estes.
1221
1222         * WebProcess/WebPage/ios/WebPageIOS.mm:
1223         (WebKit::WebPage::getPositionInformation):
1224         Check isRenderImage() rather than isImage() before casting to
1225         RenderImage.
1226
1227 2014-01-23  Anders Carlsson  <andersca@apple.com>
1228
1229         Move policy client into WKPage.cpp and get rid of WebPolicyClient files
1230         https://bugs.webkit.org/show_bug.cgi?id=127536
1231
1232         Reviewed by Tim Horton.
1233
1234         * UIProcess/API/C/WKPage.cpp:
1235         (WKPageSetPagePolicyClient):
1236         * UIProcess/WebPolicyClient.cpp: Removed.
1237         * UIProcess/WebPolicyClient.h: Removed.
1238         * WebKit2.xcodeproj/project.pbxproj:
1239
1240 2014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
1241
1242         Web Inspector: Remove recompileAllJSFunctions timer in ScriptDebugServer
1243         https://bugs.webkit.org/show_bug.cgi?id=127409
1244
1245         Reviewed by Geoffrey Garen.
1246
1247         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
1248         (WebKit::WebInspectorFrontendClient::closeWindow):
1249         * WebProcess/WebPage/WebInspector.cpp:
1250         (WebKit::WebInspector::remoteFrontendDisconnected):
1251         Include InspectorDisconnectReason.
1252
1253 2014-01-23  Anders Carlsson  <andersca@apple.com>
1254
1255         Only WKPage should know about WebPolicyClient
1256         https://bugs.webkit.org/show_bug.cgi?id=127535
1257
1258         Reviewed by Andreas Kling.
1259
1260         * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
1261         (setUpPagePolicyClient):
1262         (-[WKBrowsingContextController setPolicyDelegate:]):
1263         * UIProcess/WebInspectorProxy.cpp:
1264         (WebKit::WebInspectorProxy::createInspectorPage):
1265
1266 2014-01-23  Anders Carlsson  <andersca@apple.com>
1267
1268         Simplify API::LoaderClient management
1269         https://bugs.webkit.org/show_bug.cgi?id=127531
1270
1271         Reviewed by Tim Horton.
1272
1273         Add default implementations to API::LoaderClient and change WebPageProxy::setLoaderClient to
1274         always create a policy client, even if the loader client set is null. That way we don't have to null
1275         check the loader client everywhere.
1276
1277         * UIProcess/API/APILoaderClient.h:
1278         (API::LoaderClient::didStartProvisionalLoadForFrame):
1279         (API::LoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
1280         (API::LoaderClient::didFailProvisionalLoadWithErrorForFrame):
1281         (API::LoaderClient::didCommitLoadForFrame):
1282         (API::LoaderClient::didFinishDocumentLoadForFrame):
1283         (API::LoaderClient::didFinishLoadForFrame):
1284         (API::LoaderClient::didFailLoadWithErrorForFrame):
1285         (API::LoaderClient::didSameDocumentNavigationForFrame):
1286         (API::LoaderClient::didReceiveTitleForFrame):
1287         (API::LoaderClient::didFirstLayoutForFrame):
1288         (API::LoaderClient::didFirstVisuallyNonEmptyLayoutForFrame):
1289         (API::LoaderClient::didRemoveFrameFromHierarchy):
1290         (API::LoaderClient::didDisplayInsecureContentForFrame):
1291         (API::LoaderClient::didRunInsecureContentForFrame):
1292         (API::LoaderClient::didDetectXSSForFrame):
1293         (API::LoaderClient::didLayout):
1294         (API::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame):
1295         (API::LoaderClient::didReceiveAuthenticationChallengeInFrame):
1296         (API::LoaderClient::didStartProgress):
1297         (API::LoaderClient::didChangeProgress):
1298         (API::LoaderClient::didFinishProgress):
1299         (API::LoaderClient::processDidBecomeUnresponsive):
1300         (API::LoaderClient::interactionOccurredWhileProcessUnresponsive):
1301         (API::LoaderClient::processDidBecomeResponsive):
1302         (API::LoaderClient::processDidCrash):
1303         (API::LoaderClient::didChangeBackForwardList):
1304         (API::LoaderClient::willGoToBackForwardListItem):
1305         (API::LoaderClient::pluginLoadPolicy):
1306         (API::LoaderClient::didFailToInitializePlugin):
1307         (API::LoaderClient::didBlockInsecurePluginVersion):
1308         (API::LoaderClient::webGLLoadPolicy):
1309         * UIProcess/WebPageProxy.cpp:
1310         (WebKit::WebPageProxy::setLoaderClient):
1311         (WebKit::WebPageProxy::didChangeBackForwardList):
1312         (WebKit::WebPageProxy::willGoToBackForwardListItem):
1313         (WebKit::WebPageProxy::findPlugin):
1314         (WebKit::WebPageProxy::didStartProgress):
1315         (WebKit::WebPageProxy::didChangeProgress):
1316         (WebKit::WebPageProxy::didFinishProgress):
1317         (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
1318         (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
1319         (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
1320         (WebKit::WebPageProxy::didCommitLoadForFrame):
1321         (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
1322         (WebKit::WebPageProxy::didFinishLoadForFrame):
1323         (WebKit::WebPageProxy::didFailLoadForFrame):
1324         (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
1325         (WebKit::WebPageProxy::didReceiveTitleForFrame):
1326         (WebKit::WebPageProxy::didFirstLayoutForFrame):
1327         (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
1328         (WebKit::WebPageProxy::didLayout):
1329         (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
1330         (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
1331         (WebKit::WebPageProxy::didRunInsecureContentForFrame):
1332         (WebKit::WebPageProxy::didDetectXSSForFrame):
1333         (WebKit::WebPageProxy::webGLPolicyForURL):
1334         (WebKit::WebPageProxy::processDidBecomeUnresponsive):
1335         (WebKit::WebPageProxy::interactionOccurredWhileProcessUnresponsive):
1336         (WebKit::WebPageProxy::processDidBecomeResponsive):
1337         (WebKit::WebPageProxy::processDidCrash):
1338         (WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpaceInFrame):
1339         (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):
1340         (WebKit::WebPageProxy::didFailToInitializePlugin):
1341         (WebKit::WebPageProxy::didBlockInsecurePluginVersion):
1342
1343 2014-01-23  Anders Carlsson  <andersca@apple.com>
1344
1345         Simplify API::PolicyClient management
1346         https://bugs.webkit.org/show_bug.cgi?id=127529
1347
1348         Reviewed by Tim Horton.
1349
1350         Add default implementations to API::PolicyClient and change WebPageProxy::setPolicyClient to
1351         always create a policy client, even if the policy object set is null. That way we don't have to null
1352         check the policy client everywhere.
1353
1354         * UIProcess/API/APIPolicyClient.h:
1355         (API::PolicyClient::decidePolicyForNavigationAction):
1356         (API::PolicyClient::decidePolicyForNewWindowAction):
1357         (API::PolicyClient::decidePolicyForResponse):
1358         (API::PolicyClient::unableToImplementPolicy):
1359         * UIProcess/WebPageProxy.cpp:
1360         (WebKit::WebPageProxy::setPolicyClient):
1361         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
1362         (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
1363         (WebKit::WebPageProxy::decidePolicyForResponse):
1364         (WebKit::WebPageProxy::unableToImplementPolicy):
1365
1366 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
1367
1368         Fix GTK.
1369
1370         * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
1371         (webkitWebPageDidReceiveMessage):
1372
1373 2014-01-23  Anders Carlsson  <andersca@apple.com>
1374
1375         Add an APILoaderClient base class
1376         https://bugs.webkit.org/show_bug.cgi?id=127527
1377
1378         Reviewed by Tim Horton.
1379
1380         * UIProcess/API/APILoaderClient.h: Added.
1381         (API::LoaderClient::~LoaderClient):
1382         * UIProcess/API/C/WKPage.cpp:
1383         (WKPageSetPageLoaderClient):
1384         * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
1385         (setUpPageLoaderClient):
1386         (-[WKBrowsingContextController setLoadDelegate:]):
1387         (+[WKBrowsingContextController _browsingContextControllerForPageRef:]):
1388         * UIProcess/WebLoaderClient.cpp:
1389         (WebKit::WebLoaderClient::WebLoaderClient):
1390         * UIProcess/WebLoaderClient.h:
1391         * UIProcess/WebPageProxy.cpp:
1392         (WebKit::WebPageProxy::setLoaderClient):
1393         (WebKit::WebPageProxy::close):
1394         (WebKit::WebPageProxy::didChangeBackForwardList):
1395         (WebKit::WebPageProxy::willGoToBackForwardListItem):
1396         (WebKit::WebPageProxy::findPlugin):
1397         (WebKit::WebPageProxy::didStartProgress):
1398         (WebKit::WebPageProxy::didChangeProgress):
1399         (WebKit::WebPageProxy::didFinishProgress):
1400         (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
1401         (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
1402         (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
1403         (WebKit::WebPageProxy::didCommitLoadForFrame):
1404         (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
1405         (WebKit::WebPageProxy::didFinishLoadForFrame):
1406         (WebKit::WebPageProxy::didFailLoadForFrame):
1407         (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
1408         (WebKit::WebPageProxy::didReceiveTitleForFrame):
1409         (WebKit::WebPageProxy::didFirstLayoutForFrame):
1410         (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
1411         (WebKit::WebPageProxy::didLayout):
1412         (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
1413         (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
1414         (WebKit::WebPageProxy::didRunInsecureContentForFrame):
1415         (WebKit::WebPageProxy::didDetectXSSForFrame):
1416         (WebKit::WebPageProxy::webGLPolicyForURL):
1417         (WebKit::WebPageProxy::processDidBecomeUnresponsive):
1418         (WebKit::WebPageProxy::interactionOccurredWhileProcessUnresponsive):
1419         (WebKit::WebPageProxy::processDidBecomeResponsive):
1420         (WebKit::WebPageProxy::processDidCrash):
1421         (WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpaceInFrame):
1422         (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):
1423         (WebKit::WebPageProxy::didFailToInitializePlugin):
1424         (WebKit::WebPageProxy::didBlockInsecurePluginVersion):
1425         * UIProcess/WebPageProxy.h:
1426         (WebKit::WebPageProxy::loaderClient):
1427         * WebKit2.xcodeproj/project.pbxproj:
1428
1429 2014-01-23  Ryuan Choi  <ryuan.choi@samsung.com>
1430
1431         Build break after r162650
1432         https://bugs.webkit.org/show_bug.cgi?id=127525
1433
1434         Reviewed by Anders Carlsson.
1435
1436         WKPreferences.h was renamed to WKPreferencesRef.
1437
1438         * UIProcess/API/C/WKPreferences.cpp:
1439
1440 2014-01-23  Anders Carlsson  <andersca@apple.com>
1441
1442         Fix a refactoring bug that crept in and is causing the inspector to crash.
1443
1444         * UIProcess/WebPolicyClient.cpp:
1445         (WebKit::WebPolicyClient::decidePolicyForResponse):
1446
1447 2014-01-23  Simon Fraser  <simon.fraser@apple.com>
1448
1449         Make visibleContentRect() return actualVisibleContentRect() on iOS most of the time
1450         https://bugs.webkit.org/show_bug.cgi?id=127456
1451         
1452         Reviewed by Antti Koivisto.
1453         
1454         On iOS, visibleContentRect() returns the entire document rect for historical
1455         reasons, and actualVisibleContentRect() returns what visibleContentRect()
1456         returns on other platforms.
1457         
1458         In addition, actualVisibleContentRect() was returning an empty rect in WK2.
1459         
1460         Reduce the confusion of #ifdefs by making visibleContentRect() behave like
1461         actualVisibleContentRect() by default on iOS. Where it needs the old behavior,
1462         an optional parameter, LegacyIOSDocumentVisibleRect, provides this.
1463         
1464         Achieve this by having the virtual ScrollableArea::visibleContentRectInternal(),
1465         which is called by non-virtual visibleContentRect() and visibleContentRectIncludingScrollbars().
1466         
1467         Similarly clean up visibleHeight/visibleWidth functions by having visibleSize() be virtual,
1468         with non-virtual visibleHeight() and visibleWidth().
1469         
1470         ScrollableArea subclasses override visibleContentRectInternal() and visibleSize() where necessary.
1471         
1472         Mechanically change all the call sites of actualVisibleContentRect() to
1473         use visibleContentRect(), and the call sites of visibleContentRect()
1474         to visibleContentRect(..., LegacyIOSDocumentVisibleRect), adding comments
1475         where this may not be appropriate.
1476         
1477         Change callers of visibleContentRect(IncludeScrollbars...) to visibleContentRectIncludingScrollbars().
1478         
1479         Also add actualScrollPosition(), and clean up some actualScroll* call sites.
1480         
1481         No behavior change.
1482
1483         * WebProcess/Plugins/PDF/PDFPlugin.h:
1484         * WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
1485         (WebKit::ViewGestureGeometryCollector::collectGeometryForMagnificationGesture):
1486         (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
1487         * WebProcess/WebPage/WebFrame.cpp:
1488         (WebKit::WebFrame::visibleContentBounds):
1489         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1490         (WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
1491         (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
1492
1493 2014-01-23  Tim Horton  <timothy_horton@apple.com>
1494
1495         [wk2] Page Overlays: Add API to clear the page overlay (and get rid of its backing store)
1496         https://bugs.webkit.org/show_bug.cgi?id=127518
1497
1498         Reviewed by Anders Carlsson.
1499
1500         Add WKBundlePageOverlayClear, to allow clients of the page overlay API to
1501         manually clear the page overlay's backing store, for memory, power, and performance gains.
1502
1503         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
1504         (WKBundlePageOverlayClear):
1505         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
1506         * WebProcess/WebPage/DrawingArea.h:
1507         (WebKit::DrawingArea::clearPageOverlay):
1508         * WebProcess/WebPage/PageOverlay.cpp:
1509         (WebKit::PageOverlay::clear):
1510         * WebProcess/WebPage/PageOverlay.h:
1511         Add WKBundlePageOverlayClear and plumb it through PageOverlay to the DrawingArea.
1512
1513         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
1514         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
1515         (WebKit::RemoteLayerTreeDrawingArea::clearPageOverlay):
1516         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
1517         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1518         (WebKit::TiledCoreAnimationDrawingArea::clearPageOverlay):
1519         Set the layer to drawsContent=false and give it 0x0 size, effectively
1520         removing its backing store.
1521
1522 2014-01-23  Anders Carlsson  <andersca@apple.com>
1523
1524         Explicitly link XPC services with AppKit
1525         https://bugs.webkit.org/show_bug.cgi?id=127520
1526         <rdar://problem/15759718>
1527
1528         Reviewed by Mark Rowe.
1529
1530         Explicitly link XPC services that use the _NSApplicationMain run loop type with AppKit.
1531
1532         * Configurations/PluginService.32.xcconfig:
1533         * Configurations/PluginService.64.xcconfig:
1534         * Configurations/PluginService.Development.xcconfig:
1535         * Configurations/WebContentService.Development.xcconfig:
1536         * Configurations/WebContentService.xcconfig:
1537
1538 2014-01-23  Anders Carlsson  <andersca@apple.com>
1539
1540         Fix build again.
1541
1542         * UIProcess/API/mac/WKView.mm:
1543         (-[WKView _windowDidChangeBackingProperties:]):
1544
1545 2014-01-23  Anders Carlsson  <andersca@apple.com>
1546
1547         Another 32-bit build fix.
1548
1549         * UIProcess/API/mac/WKView.mm:
1550         (-[WKView _windowDidChangeBackingProperties:]):
1551
1552 2014-01-23  Anders Carlsson  <andersca@apple.com>
1553
1554         Clean up WKView.mm a little
1555         https://bugs.webkit.org/show_bug.cgi?id=127517
1556
1557         Reviewed by Tim Horton.
1558
1559         Remove an unused ivar and migrate to API constants that were added in Lion.
1560
1561         * UIProcess/API/mac/WKView.mm:
1562         (-[WKView setFrameSize:]):
1563         (-[WKView addWindowObserversForWindow:]):
1564         (-[WKView removeWindowObservers]):
1565         (-[WKView viewDidMoveToWindow]):
1566         (-[WKView _windowDidMiniaturize:]):
1567         (-[WKView _windowDidResize:]):
1568         (-[WKView _windowDidChangeBackingProperties:]):
1569
1570 2014-01-23  Anders Carlsson  <andersca@apple.com>
1571
1572         Try to fix the 32-bit build.
1573
1574         * UIProcess/API/Cocoa/WKPreferences.mm:
1575
1576 2014-01-23  Anders Carlsson  <andersca@apple.com>
1577
1578         Remove an unneeded synchronous back/forward message
1579         https://bugs.webkit.org/show_bug.cgi?id=127516
1580
1581         Reviewed by Tim Horton.
1582
1583         * UIProcess/WebLoaderClient.cpp:
1584         * UIProcess/WebLoaderClient.h:
1585         * UIProcess/WebPageProxy.cpp:
1586         (WebKit::WebPageProxy::initializeLoaderClient):
1587         * UIProcess/WebPageProxy.h:
1588         * UIProcess/WebPageProxy.messages.in:
1589         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1590         (WebKit::WebFrameLoaderClient::shouldGoToHistoryItem):
1591         * WebProcess/WebPage/WebPage.cpp:
1592         (WebKit::WebPage::WebPage):
1593         * WebProcess/WebPage/WebPage.h:
1594         * WebProcess/WebPage/WebPage.messages.in:
1595
1596 2014-01-23  Anders Carlsson  <andersca@apple.com>
1597
1598         Rename WKPreferences.h to WKPreferencesRef.h and add a stubbed out WKPreferences class
1599         https://bugs.webkit.org/show_bug.cgi?id=127512
1600
1601         Reviewed by Dan Bernstein.
1602
1603         * UIProcess/API/C/WKAPICast.h:
1604         * UIProcess/API/C/WKPreferencesRef.h: Renamed from Source/WebKit2/UIProcess/API/C/WKPreferences.h.
1605         * UIProcess/API/C/WebKit2_C.h:
1606         * UIProcess/API/Cocoa/WKPreferences.h: Added.
1607         * UIProcess/API/Cocoa/WKPreferences.mm: Added.
1608         * WebKit2.xcodeproj/project.pbxproj:
1609
1610 2014-01-23  Max Vujovic  <mvujovic@adobe.com>
1611
1612         Remove CSS Custom Filters code and tests
1613         https://bugs.webkit.org/show_bug.cgi?id=127382
1614
1615         Reviewed by Simon Fraser.
1616
1617         * CMakeLists.txt:
1618         * Configurations/FeatureDefines.xcconfig:
1619         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
1620         (IPC::ArgumentCoder<WebCore::FilterOperations>::encode):
1621         (IPC::ArgumentCoder<WebCore::FilterOperations>::decode):
1622         (IPC::ArgumentCoder<CoordinatedGraphicsState>::encode):
1623         (IPC::ArgumentCoder<CoordinatedGraphicsState>::decode):
1624         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
1625         * Shared/CoordinatedGraphics/WebCustomFilterProgramProxy.cpp: Removed.
1626         * Shared/CoordinatedGraphics/WebCustomFilterProgramProxy.h: Removed.
1627         * Shared/WebCoreArgumentCoders.cpp:
1628         (IPC::encodeFilterOperation):
1629         (IPC::decodeFilterOperation):
1630         * Shared/WebPreferencesStore.h:
1631         * Shared/mac/RemoteLayerTreeTransaction.mm:
1632         (WebKit::RemoteLayerTreeTextStream::operator<<):
1633         * UIProcess/API/C/WKPreferences.cpp:
1634         * UIProcess/API/C/WKPreferencesPrivate.h:
1635         * WebProcess/InjectedBundle/InjectedBundle.cpp:
1636         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
1637         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
1638         (WebKit::CoordinatedLayerTreeHost::~CoordinatedLayerTreeHost):
1639         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
1640         * WebProcess/WebPage/WebPage.cpp:
1641         (WebKit::WebPage::updatePreferences):
1642         * mac/WebKit2.order:
1643
1644 2014-01-23  Anders Carlsson  <andersca@apple.com>
1645
1646         Add API::PolicyClient base class
1647         https://bugs.webkit.org/show_bug.cgi?id=127509
1648
1649         Reviewed by Tim Horton.
1650
1651         * UIProcess/API/APIPolicyClient.h: Copied from Source/WebKit2/UIProcess/WebPolicyClient.h.
1652         (API::PolicyClient::~PolicyClient):
1653         * UIProcess/API/C/WKPage.cpp:
1654         (WKPageSetPagePolicyClient):
1655         * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
1656         (setUpPagePolicyClient):
1657         (-[WKBrowsingContextController setPolicyDelegate:]):
1658         * UIProcess/WebInspectorProxy.cpp:
1659         (WebKit::WebInspectorProxy::createInspectorPage):
1660         * UIProcess/WebPageProxy.cpp:
1661         (WebKit::WebPageProxy::setPolicyClient):
1662         (WebKit::WebPageProxy::close):
1663         (WebKit::WebPageProxy::decidePolicyForNavigationAction):
1664         (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
1665         (WebKit::WebPageProxy::decidePolicyForResponse):
1666         (WebKit::WebPageProxy::unableToImplementPolicy):
1667         * UIProcess/WebPageProxy.h:
1668         * UIProcess/WebPolicyClient.cpp:
1669         (WebKit::WebPolicyClient::WebPolicyClient):
1670         (WebKit::WebPolicyClient::decidePolicyForNavigationAction):
1671         (WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
1672         (WebKit::WebPolicyClient::decidePolicyForResponse):
1673         * UIProcess/WebPolicyClient.h:
1674         * WebKit2.xcodeproj/project.pbxproj:
1675
1676 2014-01-23  Anders Carlsson  <andersca@apple.com>
1677
1678         Add init methods that create default configurations
1679         https://bugs.webkit.org/show_bug.cgi?id=127503
1680
1681         Reviewed by Dan Bernstein.
1682
1683         * UIProcess/API/Cocoa/WKProcessClass.mm:
1684         (-[WKProcessClass init]):
1685         * UIProcess/API/Cocoa/WKWebView.mm:
1686         (-[WKWebView initWithFrame:]):
1687
1688 2014-01-23  Brady Eidson  <beidson@apple.com>
1689
1690         IDB: Implement cross-thread and IPC plumbing for 'get' support
1691         https://bugs.webkit.org/show_bug.cgi?id=127501
1692
1693         Reviewed by Anders Carlsson.
1694
1695         Make the WebProcess call out to the DatabaseProcess with a get request, and handle the
1696         response from the DatabaseProcess:
1697         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
1698         (WebKit::WebIDBServerConnection::get):
1699         (WebKit::WebIDBServerConnection::didGetRecord):
1700         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
1701         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:
1702
1703         Get the request from the WebProcess and forward it to the appropriate unique IDB database:
1704         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
1705         (WebKit::DatabaseProcessIDBConnection::getRecord):
1706         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
1707         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
1708
1709         Forward the request to the database thread, and response to the result from that thread:
1710         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
1711         (WebKit::UniqueIDBDatabase::getRecord):
1712         (WebKit::UniqueIDBDatabase::getRecordFromBackingStore):
1713         (WebKit::UniqueIDBDatabase::didGetRecordFromBackingStore):
1714         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
1715
1716         IPC and asynchronous request infrastructure:
1717         * Scripts/webkit2/messages.py:
1718         (struct_or_class):
1719
1720         * Shared/AsyncTask.h:
1721         (WebKit::createAsyncTask):
1722
1723         * Shared/WebCoreArgumentCoders.cpp:
1724         (IPC::ArgumentCoder<IDBGetResult>::encode):
1725         (IPC::ArgumentCoder<IDBGetResult>::decode):
1726         (IPC::ArgumentCoder<IDBKeyRangeData>::encode):
1727         (IPC::ArgumentCoder<IDBKeyRangeData>::decode):
1728         * Shared/WebCoreArgumentCoders.h:
1729
1730 2014-01-23  Tim Horton  <timothy_horton@apple.com>
1731
1732         PDFPlugin: Use PDFPlugin even if there's an external plugin installed, if it's blocked
1733         https://bugs.webkit.org/show_bug.cgi?id=127415
1734         <rdar://problem/12482452>
1735
1736         Reviewed by Sam Weinig.
1737
1738         Allow use of PDFPlugin even if an external plugin is installed but blocked.
1739         If an external plugin is installed and not blocked, we will continue to use that.
1740
1741         Inject a context menu item into the PDFPlugin context menu that allows the client
1742         to unblock the plugin and reload the page (via the same mechanism that the
1743         unavailable plugin button uses).
1744
1745         * UIProcess/API/C/WKPageLoaderClient.h:
1746         * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
1747         (setUpPageLoaderClient):
1748         * UIProcess/WebLoaderClient.cpp:
1749         (WebKit::WebLoaderClient::pluginLoadPolicy):
1750         * UIProcess/WebLoaderClient.h:
1751         * UIProcess/WebPageProxy.cpp:
1752         (WebKit::WebPageProxy::findPlugin):
1753         * UIProcess/WebPageProxy.h:
1754         * UIProcess/WebPageProxy.messages.in:
1755         Add a new PluginLoadPolicy callback for the V4 client with
1756         yet another string out-argument, to allow clients to customize the string
1757         that will appear in the PDFPlugin context menu when it is used in place
1758         of a blocked plugin.
1759
1760         * WebProcess/Plugins/PDF/PDFPlugin.h:
1761         Add setUsedInPlaceOfBlockedPlugin(), which determines whether or not
1762         we should include an item in the PDFPlugin context menu that acts identically
1763         to the unavailable plugin button, allowing the client to potentially unblock
1764         the plugin.
1765
1766         * WebProcess/Plugins/PDF/PDFPlugin.mm:
1767         (-[WKPDFPluginContextMenuTarget initWithPDFPlugin:WebKit::]):
1768         (-[WKPDFPluginContextMenuTarget useBlockedPlugin:]):
1769         Added WKPDFPluginContextMenuTarget, which is the Objective-C object that the
1770         aforementioned context menu item targets.
1771
1772         (WebKit::PDFPlugin::PDFPlugin):
1773         By default, we won't show the extra context menu item.
1774
1775         (WebKit::PDFPlugin::handleContextMenuEvent):
1776         If we were used in place of a blocked plugin, inject our additional context
1777         menu item into the menu. If we were handed a custom string via setUsedInPlaceOfBlockedPlugin,
1778         use that. Otherwise, use the generic string from WebCore's localized strings.
1779
1780         (WebKit::PDFPlugin::openWithPlugin):
1781         Pretend that the user clicked the unavailable plugin button when they click
1782         the injected context menu item.
1783
1784         (WebKit::PDFPlugin::setUsedInPlaceOfBlockedPlugin):
1785
1786         * WebProcess/WebPage/WebPage.cpp:
1787         (WebKit::WebPage::createPlugin):
1788         If we end up with a blocked plugin, but could have used PDFPlugin to display
1789         the content, do so instead of showing the unavailable plugin indicator.
1790
1791         Pass PDFPlugin the custom context menu item title acquired from the client.
1792
1793         (WebKit::WebPage::canPluginHandleResponse):
1794
1795 2014-01-23  Tim Horton  <timothy_horton@apple.com>
1796
1797         [iOS] [WK2] WKContentView has a black background
1798         https://bugs.webkit.org/show_bug.cgi?id=127471
1799         <rdar://problem/12287363>
1800
1801         Reviewed by Sam Weinig.
1802
1803         * UIProcess/API/ios/WKContentView.mm:
1804         (-[WKContentView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
1805         Instead of giving it a (black!) background to make hit-testing work, use CALayer SPI
1806         to tell CA that the whole layer should be treated as opaque when it comes to hit-testing.
1807
1808 2014-01-22  Carlos Garcia Campos  <cgarcia@igalia.com>
1809
1810         [GLIB] Use GUniquePtr instead of GOwnPtr
1811         https://bugs.webkit.org/show_bug.cgi?id=127431
1812
1813         Reviewed by Martin Robinson.
1814
1815         GUniquePtr is a template alias of std::unique_ptr with a custom
1816         deleter that replaces GOwnPtr. GOwnPtr is still used for the cases
1817         where the output pointer is needed, but it will also be replaced soon.
1818
1819         * Shared/Downloads/soup/DownloadSoup.cpp:
1820         (WebKit::DownloadClient::didReceiveResponse):
1821         * Shared/NativeWebKeyboardEvent.h:
1822         * Shared/NativeWebMouseEvent.h:
1823         * Shared/NativeWebWheelEvent.h:
1824         * Shared/gtk/ArgumentCodersGtk.cpp:
1825         (IPC::encodeGKeyFile):
1826         (IPC::decodeGKeyFile):
1827         (IPC::encode):
1828         (IPC::decode):
1829         * UIProcess/API/gtk/WebKitContextMenuItem.cpp:
1830         (webkitContextMenuItemSetSubMenuFromGtkMenu):
1831         * UIProcess/API/gtk/WebKitDownload.cpp:
1832         (webkitDownloadDecideDestination):
1833         (webkitDownloadNotifyProgress):
1834         (webkitDownloadFailed):
1835         * UIProcess/API/gtk/WebKitFileChooserRequest.cpp:
1836         (webkit_file_chooser_request_select_files):
1837         * UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
1838         (didReceiveWebViewMessageFromInjectedBundle):
1839         (getInjectedBundleInitializationUserData):
1840         * UIProcess/API/gtk/WebKitLoaderClient.cpp:
1841         (didFailProvisionalLoadWithErrorForFrame):
1842         (didFailLoadWithErrorForFrame):
1843         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
1844         (drawPagesForPrintingCompleted):
1845         * UIProcess/API/gtk/WebKitURIRequest.cpp:
1846         (webkit_uri_request_get_http_headers):
1847         * UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
1848         (webkit_uri_scheme_request_get_scheme):
1849         (webkit_uri_scheme_request_get_path):
1850         * UIProcess/API/gtk/WebKitWebContext.cpp:
1851         (injectedBundleFilename):
1852         (webkit_web_context_set_favicon_database_directory):
1853         * UIProcess/API/gtk/WebKitWebView.cpp:
1854         (webkitWebViewLoadFail):
1855         (webkitWebViewCreateJavaScriptDialog):
1856         (fileChooserDialogResponseCallback):
1857         (webkitWebViewLoadChanged):
1858         (webkitWebViewLoadFailedWithTLSErrors):
1859         (webkitWebViewPopulateContextMenu):
1860         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1861         (webkitWebViewBaseButtonPressEvent):
1862         (webkitWebViewBaseStartDrag):
1863         * UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:
1864         (WebKit::WebInspectorServer::platformResourceForPath):
1865         * UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp:
1866         (WebKit::connectionCallback):
1867         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
1868         (WebKit::ProcessLauncher::launchProcess):
1869         * UIProcess/gtk/WebContextGtk.cpp:
1870         (WebKit::WebContext::platformDefaultApplicationCacheDirectory):
1871         (WebKit::WebContext::platformDefaultDatabaseDirectory):
1872         (WebKit::WebContext::platformDefaultIconDatabasePath):
1873         (WebKit::WebContext::platformDefaultLocalStorageDirectory):
1874         (WebKit::WebContext::platformDefaultDiskCacheDirectory):
1875         * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
1876         (WebKit::contextMenuItemVisibilityChanged):
1877         * UIProcess/gtk/WebInspectorProxyGtk.cpp:
1878         (WebKit::WebInspectorProxy::platformInspectedURLChanged):
1879         * UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
1880         (WebKit::WebPopupMenuProxyGtk::createGtkActionForMenuItem):
1881         * WebProcess/WebPage/gtk/WebInspectorGtk.cpp:
1882         * WebProcess/WebPage/gtk/WebPageGtk.cpp:
1883         (WebKit::WebPage::platformInitialize):
1884         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
1885         * WebProcess/gtk/WebProcessMainGtk.cpp:
1886         * WebProcess/soup/WebSoupRequestManager.cpp:
1887         (WebKit::WebSoupRequestManager::send):
1888
1889 2014-01-22  Simon Fraser  <simon.fraser@apple.com>
1890
1891         Surround fixedVisibleContentRect code with USE(TILED_BACKING_STORE)
1892         https://bugs.webkit.org/show_bug.cgi?id=127461
1893
1894         Reviewed by Andreas Kling.
1895         
1896         The "fixedVisibleContentRect" code path is only used by platforms
1897         which enabled TILED_BACKING_STORE, so to reduce confusion, surround
1898         this code with #if USE(TILED_BACKING_STORE).
1899
1900         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1901         (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
1902
1903 2014-01-22  Benjamin Poulain  <bpoulain@apple.com>
1904
1905         Add a minimalistic SPI to control the layout size outside of WKView
1906         https://bugs.webkit.org/show_bug.cgi?id=127403
1907
1908         Reviewed by Sam Weinig.
1909
1910         The API lets a client of WKView force the layout size. Once the size
1911         is set this way, default update is disabled and the client needs to
1912         update the size systematically as needed. This is done to avoid double
1913         layout or flickering.
1914
1915         * UIProcess/API/Cocoa/WKViewPrivate.h:
1916         * UIProcess/API/ios/WKViewIOS.mm:
1917         (-[WKView _frameOrBoundsChanged]):
1918         (-[WKView overrideMinimumLayoutSize:]):
1919
1920 2014-01-22  Jinwoo Song  <jinwoo7.song@samsung.com>
1921
1922         [EFL][WK2] defaultTextEncodingName should be stored as a member variable of EwkSettings
1923         https://bugs.webkit.org/show_bug.cgi?id=127420
1924
1925         Reviewed by Gyuyoung Kim.
1926
1927         As the defaultTextEncodingName is returned as a local WKEinaSharedString variable, 
1928         the stringshared data is de-refed by eina_stringshare_del().
1929         To maintain the reference counter, the defaultTextEncodingName should be stored 
1930         as a member variable of EwkSettings class.
1931
1932         * UIProcess/API/efl/ewk_settings.cpp:
1933         (ewk_settings_encoding_detector_enabled_get): Reordering.
1934         (ewk_settings_default_text_encoding_name_set):
1935         (ewk_settings_default_text_encoding_name_get):
1936         (EwkSettings::setDefaultTextEncodingName):
1937         (EwkSettings::defaultTextEncodingName):
1938         * UIProcess/API/efl/ewk_settings_private.h:
1939         (EwkSettings::EwkSettings): Add m_defaultTextEncodingName and setter/getter methods.
1940
1941 2014-01-22  Enrica Casucci  <enrica@apple.com>
1942
1943         Support WebSelections in WK2 on iOS.
1944         https://bugs.webkit.org/show_bug.cgi?id=127015
1945         <rdar://problem/15211964>
1946
1947         Reviewed by Benjamin Poulain.
1948
1949         This change adds support for text only (non block mode)
1950         selections in non editable content.
1951         The main changes consist in hooking up the new gesture type
1952         and touches to handle selection creation and interaction.
1953         It also includes changes to the way first responder is handled
1954         which includes the implementation of the isEditable method
1955         to allow iOS to know when to show the keyboard.
1956
1957         * Shared/ios/WKGestureTypes.h:
1958         * UIProcess/API/ios/WKInteractionView.mm:
1959         (-[WKInteractionView isEditable]):
1960         (-[WKInteractionView canBecomeFirstResponder]):
1961         (-[WKInteractionView webSelectionRects]):
1962         (-[WKInteractionView _highlightLongPressRecognized:]):
1963         (-[WKInteractionView _singleTapRecognized:]):
1964         (-[WKInteractionView inputAccessoryView]):
1965         (-[WKInteractionView canPerformAction:withSender:]):
1966         (-[WKInteractionView _showDictionary:]):
1967         (toWKGestureType):
1968         (toUIWKGestureType):
1969         (selectionChangedWithGesture):
1970         (selectionChangedWithTouch):
1971         (-[WKInteractionView selectedTextRange]):
1972         (-[WKInteractionView webSelectionAssistant]):
1973         (-[WKInteractionView _startAssistingNode]):
1974         (-[WKInteractionView _stopAssistingNode]):
1975         (-[WKInteractionView _selectionChanged]):
1976         * WebProcess/WebPage/ios/WebPageIOS.mm:
1977         (WebKit::WebPage::selectWithGesture):
1978         (WebKit::WebPage::updateSelectionWithTouches):
1979
1980 2014-01-22  Anders Carlsson  <andersca@apple.com>
1981
1982         WKBrowsingContextController should not be an API wrapper around WebPageProxy
1983         https://bugs.webkit.org/show_bug.cgi?id=127454
1984
1985         Reviewed by Dan Bernstein.
1986
1987         * Shared/Cocoa/APIObject.mm:
1988         (API::Object::newObject):
1989         * Shared/mac/ObjCObjectGraphCoders.mm:
1990         (WebKit::WebContextObjCObjectGraphDecoderImpl::decode):
1991         * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
1992         (-[WKBrowsingContextController _initWithPageRef:]):
1993         (+[WKBrowsingContextController _browsingContextControllerForPageRef:]):
1994         * UIProcess/API/Cocoa/WKBrowsingContextControllerInternal.h:
1995         * UIProcess/API/Cocoa/WKProcessGroup.mm:
1996         (didNavigateWithNavigationData):
1997         (didPerformClientRedirect):
1998         (didPerformServerRedirect):
1999         (didUpdateHistoryTitle):
2000         * UIProcess/API/ios/WKContentView.mm:
2001         (-[WKContentView browsingContextController]):
2002         * UIProcess/API/mac/WKView.mm:
2003         (-[WKView browsingContextController]):
2004         * UIProcess/ios/WebPageProxyIOS.mm:
2005         (WebKit::WebPageProxy::platformInitialize):
2006         * UIProcess/mac/WebPageProxyMac.mm:
2007         (WebKit::WebPageProxy::platformInitialize):
2008
2009 2014-01-22  Myles C. Maxfield  <mmaxfield@apple.com>
2010
2011         Remove CSS3_TEXT_DECORATION define
2012         https://bugs.webkit.org/show_bug.cgi?id=127333
2013
2014         Reviewed by Simon Fraser.
2015
2016         This is required for unprefixing the text-decoration-* CSS properties.
2017
2018         * Configurations/FeatureDefines.xcconfig:
2019
2020 2014-01-22  Gavin Barraclough  <barraclough@apple.com>
2021
2022         Debug mechanism to override process QoS on Mac
2023         https://bugs.webkit.org/show_bug.cgi?id=127455
2024
2025         Reviewed by Anders Carlsson.
2026
2027         * NetworkProcess/NetworkProcess.messages.in:
2028             - added message.
2029         * PluginProcess/PluginProcess.messages.in:
2030             - added message.
2031         * Shared/ChildProcess.h:
2032         * Shared/mac/ChildProcessMac.mm:
2033         (WebKit::ChildProcess::setQOS):
2034             - Added implementation of new message.
2035         * UIProcess/Plugins/PluginProcessProxy.cpp:
2036         (WebKit::PluginProcessProxy::didFinishLaunching):
2037             - SetQOS for the PluginProcess.
2038         * UIProcess/Plugins/PluginProcessProxy.h:
2039         * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
2040         (WebKit::pluginProcessLatencyQOS):
2041         (WebKit::pluginProcessThroughputQOS):
2042             - read NSUserDefaults.
2043         * UIProcess/WebContext.cpp:
2044         (WebKit::WebContext::ensureNetworkProcess):
2045             - SetQOS for the NetworkProcess.
2046         (WebKit::WebContext::createNewWebProcess):
2047             - SetQOS for the WebProcess.
2048         * UIProcess/WebContext.h:
2049         * UIProcess/mac/WebContextMac.mm:
2050         (WebKit::networkProcessLatencyQOS):
2051         (WebKit::networkProcessThroughputQOS):
2052         (WebKit::webProcessLatencyQOS):
2053         (WebKit::webProcessThroughputQOS):
2054             - read NSUserDefaults.
2055         * WebProcess/WebProcess.messages.in:
2056             - added message.
2057
2058 2014-01-22  David Farler  <dfarler@apple.com>
2059
2060         ASAN builds are broken - missing flags
2061         https://bugs.webkit.org/show_bug.cgi?id=127231
2062
2063         Reviewed by Andy Estes.
2064
2065         Add missing $(ASAN_OTHER_LDFLAGS).
2066         * Configurations/PluginProcessShim.xcconfig:
2067         * Configurations/SecItemShim.xcconfig:
2068         * Configurations/WebKit2.xcconfig:
2069         * Configurations/WebProcessShim.xcconfig:
2070
2071 2014-01-22  Brady Eidson  <beidson@apple.com>
2072
2073         The IDB backing store get() method shouldn't call IDB callbacks directly
2074         https://bugs.webkit.org/show_bug.cgi?id=127453
2075         
2076         Reviewed by Beth Dakin.
2077
2078         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
2079         (WebKit::WebIDBServerConnection::get):
2080         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
2081
2082 2014-01-22  Martin Hock  <mhock@apple.com>
2083
2084         Enable Session API.
2085         https://bugs.webkit.org/show_bug.cgi?id=127255
2086
2087         Reviewed by Alexey Proskuryakov.
2088
2089         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
2090         (WebKit::storageSession):
2091         * NetworkProcess/NetworkResourceLoader.cpp:
2092         (WebKit::NetworkResourceLoader::NetworkResourceLoader):
2093         (WebKit::NetworkResourceLoader::start):
2094         * NetworkProcess/NetworkResourceLoader.h:
2095         * NetworkProcess/RemoteNetworkingContext.h:
2096         * NetworkProcess/mac/RemoteNetworkingContext.mm:
2097         (WebKit::RemoteNetworkingContext::storageSession):
2098         (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
2099         * Shared/Network/NetworkResourceLoadParameters.cpp:
2100         (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
2101         (WebKit::NetworkResourceLoadParameters::encode):
2102         (WebKit::NetworkResourceLoadParameters::decode):
2103         * Shared/Network/NetworkResourceLoadParameters.h:
2104         * Shared/SessionTracker.cpp:
2105         (WebKit::staticSessionMap):
2106         (WebKit::SessionTracker::sessionMap):
2107         (WebKit::SessionTracker::session):
2108         (WebKit::SessionTracker::setSession):
2109         (WebKit::SessionTracker::destroySession):
2110         * Shared/SessionTracker.h:
2111         * UIProcess/API/C/WKPage.cpp:
2112         (WKPageSetSession):
2113         * UIProcess/API/C/WKPage.h:
2114         * UIProcess/API/C/WKSessionRef.cpp:
2115         (WKSessionCreate):
2116         * UIProcess/API/C/WKSessionRef.h:
2117         * UIProcess/WebPageProxy.cpp:
2118         (WebKit::WebPageProxy::WebPageProxy):
2119         (WebKit::WebPageProxy::setSession):
2120         * UIProcess/WebPageProxy.h:
2121         * WebProcess/Network/WebResourceLoadScheduler.cpp:
2122         (WebKit::WebResourceLoadScheduler::scheduleLoad):
2123         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
2124         (WebKit::WebPlatformStrategies::loadResourceSynchronously):
2125         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
2126         (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
2127         (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
2128         (WebKit::WebFrameNetworkingContext::storageSession):
2129         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
2130         (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
2131         * WebProcess/WebPage/WebFrame.cpp:
2132         (WebKit::WebFrame::startDownload):
2133         * WebProcess/WebPage/WebPage.cpp:
2134         (WebKit::WebPage::WebPage):
2135         (WebKit::WebPage::sessionID):
2136         (WebKit::WebPage::updatePreferences):
2137         * WebProcess/WebPage/WebPage.h:
2138         (WebKit::WebPage::setSessionID):
2139         * WebProcess/WebPage/WebPage.messages.in:
2140
2141 2014-01-21  Brady Eidson  <beidson@apple.com>
2142
2143         IDB: "Put" support
2144         <rdar://problem/15779643> and https://bugs.webkit.org/show_bug.cgi?id=127401
2145
2146         Reviewed by Alexey Proskuryakov.
2147
2148         Ship putRecord requests over to the DatabaseProcess, and listen for completion from the DatabaseProcess:
2149         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
2150         (WebKit::WebIDBServerConnection::put):
2151         (WebKit::WebIDBServerConnection::didPutRecord):
2152         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
2153         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:
2154
2155         Pass off the putRecord request to the Unique IDBDatabase:
2156         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.cpp:
2157         (WebKit::DatabaseProcessIDBConnection::putRecord):
2158         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
2159         * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
2160
2161         Pass off the putRecord request to the backing store:
2162         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
2163         (WebKit::UniqueIDBDatabase::putRecord):
2164         (WebKit::UniqueIDBDatabase::putRecordInBackingStore):
2165         (WebKit::UniqueIDBDatabase::didPutRecordInBackingStore):
2166         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
2167
2168         Add backing store methods related to putRecord, though only one is critical right now:
2169         * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
2170         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
2171         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createAndPopulateInitialMetadata):
2172         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::generateKey):
2173         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::keyExistsInObjectStore):
2174         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::putRecord):
2175         (WebKit::UniqueIDBDatabaseBackingStoreSQLite::updateKeyGenerator):
2176         * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
2177
2178         Add the IDBKeyData type to IPC:
2179         * Scripts/webkit2/messages.py:
2180         (struct_or_class):
2181
2182         * Shared/WebCoreArgumentCoders.cpp:
2183         (IPC::ArgumentCoder<IDBKeyData>::encode):
2184         (IPC::ArgumentCoder<IDBKeyData>::decode):
2185         * Shared/WebCoreArgumentCoders.h:
2186
2187         * DatabaseProcess/IndexedDB/IDBSerialization.cpp:
2188         (WebKit::serializeIDBKey):
2189         * DatabaseProcess/IndexedDB/IDBSerialization.h:
2190
2191         Implement more cross-thread copying:
2192         * Shared/WebCrossThreadCopier.cpp:
2193         (WebCore::Vector<uint8_t>>::copy):
2194         (WebCore::Vector<Vector<IDBKeyData>>>::copy):
2195         (WebCore::ASCIILiteral>::copy):
2196         * Shared/WebCrossThreadCopier.h:
2197
2198         Implement more numbers of generic AsyncTask templates:
2199         * Shared/AsyncTask.h:
2200         (WebKit::createAsyncTask):
2201
2202 2014-01-22  Anders Carlsson  <andersca@apple.com>
2203
2204         WKProcessClass should create a WebContext
2205         https://bugs.webkit.org/show_bug.cgi?id=127449
2206         <rdar://problem/15885582>
2207
2208         Reviewed by Dan Bernstein.
2209
2210         * Shared/Cocoa/APIObject.mm:
2211         (API::Object::newObject):
2212         * UIProcess/API/Cocoa/WKBrowsingContextController.h:
2213         * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
2214         * UIProcess/API/Cocoa/WKProcessClass.mm:
2215         (-[WKProcessClass initWithConfiguration:]):
2216         (-[WKProcessClass dealloc]):
2217         (-[WKProcessClass API::]):
2218         * UIProcess/API/Cocoa/WKProcessClassInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKProcessGroupInternal.h.
2219         (WebKit::wrapper):
2220         * UIProcess/API/Cocoa/WKProcessGroup.mm:
2221         (-[WKProcessGroup initWithInjectedBundleURL:]):
2222         * UIProcess/API/ios/WKContentView.mm:
2223         (-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]):
2224         * WebKit2.xcodeproj/project.pbxproj:
2225
2226 2014-01-22  Tim Horton  <timothy_horton@apple.com>
2227
2228         Crashes in DrawingAreaProxy::setExposedRect (null DrawingAreaProxy)
2229         https://bugs.webkit.org/show_bug.cgi?id=127445
2230
2231         Reviewed by Anders Carlsson.
2232
2233         * UIProcess/API/ios/WKContentView.mm:
2234         (-[WKContentView _updateViewExposedRect]):
2235         * UIProcess/API/mac/WKView.mm:
2236         (-[WKView _updateViewExposedRect]):
2237         Null-check.
2238
2239 2014-01-22  Anders Carlsson  <andersca@apple.com>
2240
2241         Add WKWebView class
2242         https://bugs.webkit.org/show_bug.cgi?id=127444
2243         <rdar://problem/15884418>
2244
2245         Reviewed by Dan Bernstein.
2246
2247         * UIProcess/API/Cocoa/WKWebView.h: Added.
2248         * UIProcess/API/Cocoa/WKWebView.mm: Added.
2249         (-[WKWebView initWithFrame:configuration:]):
2250         (-[WKWebView configuration]):
2251         * WebKit2.xcodeproj/project.pbxproj:
2252
2253 2014-01-22  Anders Carlsson  <andersca@apple.com>
2254
2255         Fix 32-bit build.
2256
2257         * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
2258
2259 2014-01-22  Tim Horton  <timothy_horton@apple.com>
2260
2261         [wk2] Scroll pinning state is wrong until the first scroll event
2262         https://bugs.webkit.org/show_bug.cgi?id=127437
2263
2264         Reviewed by Simon Fraser.
2265
2266         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2267         (WebKit::WebFrameLoaderClient::didChangeScrollOffset):
2268         * WebProcess/WebPage/WebPage.cpp:
2269         (WebKit::WebPage::updateMainFrameScrollOffsetPinning):
2270         (WebKit::WebPage::didCommitLoad):
2271         * WebProcess/WebPage/WebPage.h:
2272         Rename WebPage::didChangeScrollOffsetForMainFrame to
2273         updateMainFrameScrollOffsetPinning, which better describes what it
2274         actually does. Call it when a load is committed, so that we have valid
2275         pinning state before the first scroll event comes in.
2276
2277 2014-01-22  Anders Carlsson  <andersca@apple.com>
2278
2279         Add WKWebViewConfiguration class
2280         https://bugs.webkit.org/show_bug.cgi?id=127436
2281         <rdar://problem/15882923>
2282
2283         Reviewed by Tim Horton.
2284
2285         * UIProcess/API/Cocoa/WKWebViewConfiguration.h: Added.
2286         * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: Added.
2287         (-[WKWebViewConfiguration copyWithZone:]):
2288         * WebKit2.xcodeproj/project.pbxproj:
2289
2290 2014-01-22  Alice Barraclough  <alice.liu@apple.com>
2291
2292         [WK2] add cocoa API for private browsing setting
2293         https://bugs.webkit.org/show_bug.cgi?id=127391
2294
2295         Reviewed by Sam Weinig.
2296
2297         * UIProcess/API/Cocoa/WKBrowsingContextGroup.h:
2298         * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm:
2299         (-[WKBrowsingContextGroup privateBrowsingEnabled]):
2300         (-[WKBrowsingContextGroup setPrivateBrowsingEnabled:]):
2301         Adding some API for the private Browsing setting. Reaches through
2302         to the WKPageGroup's preferences.
2303
2304 2014-01-22  Anders Carlsson  <andersca@apple.com>
2305
2306         Add WKProcessClass class
2307         https://bugs.webkit.org/show_bug.cgi?id=127433
2308         <rdar://problem/15882582>
2309
2310         Reviewed by Dan Bernstein.
2311
2312         Add a stubbed out WKProcessClass class.
2313
2314         * Shared/API/Cocoa/WKFoundation.h:
2315         * UIProcess/API/Cocoa/WKProcessClass.h: Added.
2316         * UIProcess/API/Cocoa/WKProcessClass.mm: Added.
2317         (-[WKProcessClass initWithConfiguration:]):
2318         (-[WKProcessClass configuration]):
2319         * UIProcess/API/Cocoa/WKProcessClassConfiguration.mm:
2320         * WebKit2.xcodeproj/project.pbxproj:
2321
2322 2014-01-22  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2323
2324         [EFL][GTK] Get EFL and GTK compiling with ACCESSIBILITY disabled
2325         https://bugs.webkit.org/show_bug.cgi?id=127119
2326
2327         Reviewed by Mario Sanchez Prada.
2328
2329         Guarding ACCESSIBILITY code with HAVE(ACCESSIBILITY).
2330
2331         * WebProcess/WebPage/WebPage.cpp:
2332         (WebKit::WebPage::WebPage):
2333         * WebProcess/WebPage/WebPage.h:
2334         * WebProcess/WebPage/gtk/WebPageGtk.cpp:
2335         (WebKit::WebPage::platformInitialize):
2336
2337 2014-01-22  Martin Robinson  <mrobinson@igalia.com>
2338
2339         [GTK][CMake] Add support for building the NetworkProcess
2340         https://bugs.webkit.org/show_bug.cgi?id=127195
2341
2342         Reviewed by Daniel Bates.
2343
2344         * CMakeLists.txt: Add shared network process build instructions.
2345         * PlatformEfl.cmake: Move build instructions to the platform-independent file.
2346         * PlatformGTK.cmake: Add some files to the source lists.
2347
2348 2014-01-22  Carlos Garcia Campos  <cgarcia@igalia.com>
2349
2350         REGRESSION(r162441): [GTK] ResourceLoader is broken when there aren't user extensions
2351         https://bugs.webkit.org/show_bug.cgi?id=127422
2352
2353         Reviewed by Anders Carlsson.
2354
2355         * WebProcess/gtk/WebGtkExtensionManager.cpp:
2356         (WebKit::WebGtkExtensionManager::initialize): Always create the
2357         WebKitWebExtension object since it's used internally to implement
2358         the ResourceLoader client.
2359
2360 2014-01-22  Jer Noble  <jer.noble@apple.com>
2361
2362         [Mac][WK2] Unable to play video protected by session cookies
2363         https://bugs.webkit.org/show_bug.cgi?id=127207
2364
2365         Reviewed by Sam Weinig.
2366
2367         Recent changes in our underlying media frameworks caused our shimmed methods
2368         in CookieStorageShim to stop being called. Insert an objective-c shim in addition
2369         to our original shim to intercept pulling cookies out of cookie storage.
2370
2371         * Shared/mac/CookieStorageShim.mm: Renamed from Source/WebKit2/Shared/mac/CookieStorageShim.cpp.
2372         (WebKit::CookieStorageShim::initialize): Insert the shim.
2373         (-[WKNSURLSessionLocal _copyCookiesForRequestUsingAllAppropriateStorageSemantics:]):
2374             Pass through to webKitCookieStorageCopyRequestHeaderFieldsForURL().
2375         * WebKit2.xcodeproj/project.pbxproj: Rename CookieStorageShim.cpp -> .mm.
2376
2377 2014-01-22  Yongjun Zhang  <yongjun_zhang@apple.com>
2378
2379         https://bugs.webkit.org/show_bug.cgi?id=127380
2380         Add more methods to WKWebProcessPlugInNodeHandle.
2381
2382         Reviewed by Sam Weinig.
2383
2384         Add a static method that creates a WKWebProcessPlugInNodeHandle from a JSValue* and a JSContext*.  Also
2385         add a method to return the iframe's content frame from a WKWebProcessPlugInNodeHandle.
2386  
2387         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
2388         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
2389         (+[WKWebProcessPlugInNodeHandle nodeHandleWithJSValue:inContext:]):
2390         (-[WKWebProcessPlugInNodeHandle htmlIFrameElementContentFrame]):
2391
2392 2014-01-22  Carlos Garcia Campos  <cgarcia@igalia.com>
2393
2394         Unreviewed. Fix GTK+ build with CUSTOM_PROTOCOL enabled after r162449.
2395
2396         * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.h:
2397         Use override instead of OVERRIDE.
2398
2399 2014-01-22  Koop Mast <kwm@FreeBSD.org>
2400
2401         Build fixes for FreeBSD.
2402         https://bugs.webkit.org/show_bug.cgi?id=126779
2403
2404         Reviewed by Csaba Osztrogonác.
2405
2406         * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
2407         (WebKit::PluginProcessProxy::scanPlugin):
2408
2409 2014-01-22  Jinwoo Song  <jinwoo7.song@samsung.com>
2410
2411         [EFL][WK2] Use std::function in the rest of EFL's WorkQueue implementation
2412         https://bugs.webkit.org/show_bug.cgi?id=127397
2413
2414         Reviewed by Anders Carlsson.
2415
2416         Move to using std::function and move semantics in WorkQueue::registerSocketEventHandler
2417         and DispatchQueue::setSocketEventHandler.
2418
2419         * Platform/IPC/unix/ConnectionUnix.cpp:
2420         (IPC::Connection::open):
2421         * Platform/WorkQueue.h:
2422         * Platform/efl/DispatchQueueEfl.cpp:
2423         (DispatchQueue::setSocketEventHandler):
2424         * Platform/efl/DispatchQueueEfl.h:
2425         * Platform/efl/WorkQueueEfl.cpp:
2426         (WorkQueue::registerSocketEventHandler):
2427
2428 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2429
2430         [wk2] De-.get()ify receivers of Objective-C messages
2431         https://bugs.webkit.org/show_bug.cgi?id=127398
2432
2433         Reviewed by Sam Weinig.
2434
2435         RetainPtr does the right thing when you use it as the
2436         receiver of an Obj-C message, so we don't need .get().
2437
2438         Long and useless file list elided.
2439
2440 2014-01-21  Brady Eidson  <beidson@apple.com>
2441
2442         The IDB backing store put() method shouldn't call IDB callbacks directly
2443         https://bugs.webkit.org/show_bug.cgi?id=127399
2444
2445         Reviewed by Beth Dakin.
2446
2447         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
2448         (WebKit::WebIDBServerConnection::put):
2449         * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
2450
2451 2014-01-21  Anders Carlsson  <andersca@apple.com>
2452
2453         Fix 32-bit build.
2454
2455         * UIProcess/API/Cocoa/WKProcessClassConfiguration.mm:
2456
2457 2014-01-21  Jinwoo Song  <jinwoo7.song@samsung.com>
2458
2459         [EFL][WK2] Use nanoseconds in TimerWorkItem class consistently
2460         https://bugs.webkit.org/show_bug.cgi?id=127263
2461
2462         Reviewed by Gyuyoung Kim.
2463
2464         After r162276 and r162300, TimerWorkItem is getting nanoseconds as parameter.
2465         So it would be better to use nanoseconds in TimerWorkItem for consistency.
2466
2467         * Platform/efl/DispatchQueueEfl.cpp:
2468         (DispatchQueue::performTimerWork):
2469         (DispatchQueue::insertTimerWorkItem):
2470         (DispatchQueue::getNextTimeOut):
2471         * Platform/efl/DispatchQueueWorkItemEfl.h:
2472         (TimerWorkItem::create):
2473         (TimerWorkItem::expirationTimeNanoSeconds):
2474         (TimerWorkItem::hasExpired):
2475         (TimerWorkItem::TimerWorkItem):
2476
2477 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2478
2479         Don't copy ViewGestureGeometryCollector.messages.in into the WebProcess bundle.
2480
2481         Reviewed by Simon Fraser.
2482
2483         * WebKit2.xcodeproj/project.pbxproj:
2484
2485 2014-01-21  Anders Carlsson  <andersca@apple.com>
2486
2487         Add a WKProcessClassConfiguration class
2488         https://bugs.webkit.org/show_bug.cgi?id=127378
2489         <rdar://problem/15875413>
2490
2491         Reviewed by Dan Bernstein.
2492
2493         * UIProcess/API/Cocoa/WKProcessClassConfiguration.h: Added.
2494         * UIProcess/API/Cocoa/WKProcessClassConfiguration.mm: Added.
2495         (-[WKProcessClassConfiguration copyWithZone:]):
2496         * UIProcess/API/Cocoa/WKProcessClassConfigurationPrivate.h: Added.
2497         * WebKit2.xcodeproj/project.pbxproj:
2498
2499 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2500
2501         Make ViewGestureController Obj-C++
2502         https://bugs.webkit.org/show_bug.cgi?id=127385
2503
2504         Reviewed by Dean Jackson.
2505
2506         * UIProcess/mac/ViewGestureController.mm: Renamed from Source/WebKit2/UIProcess/mac/ViewGestureController.cpp.
2507         * WebKit2.xcodeproj/project.pbxproj:
2508
2509 2014-01-21  Anders Carlsson  <andersca@apple.com>
2510
2511         Make all the WebKit2 headers private and move Cocoa UIProcess API headers to a Deprecated group
2512         https://bugs.webkit.org/show_bug.cgi?id=127374
2513
2514         Reviewed by Dan Bernstein.
2515
2516         * WebKit2.xcodeproj/project.pbxproj:
2517
2518 2014-01-21  Commit Queue  <commit-queue@webkit.org>
2519
2520         Unreviewed, rolling out r162452.
2521         http://trac.webkit.org/changeset/162452
2522         https://bugs.webkit.org/show_bug.cgi?id=127366
2523
2524         broke a few tests on all Mac WebKit1 bots (Requested by
2525         thorton on #webkit).
2526
2527         * WebProcess/WebPage/WebPage.cpp:
2528         (WebKit::WebPage::WebPage):
2529         (WebKit::WebPage::setActive):
2530         (WebKit::WebPage::setViewIsVisible):
2531         (WebKit::WebPage::setFocused):
2532         (WebKit::WebPage::setIsInWindow):
2533         (WebKit::WebPage::setViewStateInternal):
2534         (WebKit::WebPage::setIsVisuallyIdle):
2535         * WebProcess/WebPage/WebPage.h:
2536
2537 2014-01-21  Martin Hock  <mhock@apple.com>
2538
2539         Trivial Session API cleanup.
2540         https://bugs.webkit.org/show_bug.cgi?id=127356
2541
2542         Reviewed by Alexey Proskuryakov.
2543
2544         * UIProcess/API/C/WKSessionRef.cpp:
2545         (WKSessionIsEphemeral):
2546         * UIProcess/API/C/WKSessionRef.h:
2547
2548 2014-01-16  Simon Fraser  <simon.fraser@apple.com>
2549
2550         Log an error for a common cause of WebProcess early launch crashing in misconfigured development builds
2551         https://bugs.webkit.org/show_bug.cgi?id=127121
2552
2553         Reviewed by Anders Carlsson.
2554         
2555         A common cause of early WebProcess crashes during development is a null return
2556         from CFBundleGetValueForInfoDictionaryKey(), so log and return an error in
2557         this case rather than passing a null C string to dlsym().
2558
2559         * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessMain.mm:
2560         (WebKit::BootstrapMain):
2561
2562 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2563
2564         Sort headers after the rename that happened in r162454.
2565
2566         * UIProcess/mac/RemoteLayerTreeHost.mm:
2567         * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
2568
2569 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2570
2571         Address late review naming comments after r162453.
2572
2573         * UIProcess/API/mac/WKView.mm:
2574         And, fix the build by adding an include I accidentally missed.
2575
2576         * UIProcess/mac/RemoteLayerTreeHost.mm:
2577         * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
2578
2579 2014-01-21  Tim Horton  <timothy_horton@apple.com>
2580
2581         Keep CALayer implicit animation disabling code in a single place
2582         https://bugs.webkit.org/show_bug.cgi?id=127355
2583
2584         Reviewed by Simon Fraser.
2585
2586         * Shared/mac/RemoteLayerTreePropertyApplier.h:
2587         * Shared/mac/RemoteLayerTreePropertyApplier.mm:
2588         Remove disableActionsForLayer.
2589
2590         * UIProcess/API/mac/WKView.mm:
2591         (-[WKView _rootLayer]):
2592         Disable actions on the root layer. It doesn't need them, and currently
2593         isn't affected by implicit animations, but future patches which animate
2594         the root layer will benefit from this.
2595
2596         * UIProcess/mac/RemoteLayerTreeHost.mm:
2597         (WebKit::RemoteLayerTreeHost::createLayer):
2598         Use web_disableAllActions instead of disableActionsForLayer.
2599
2600         * WebKit2.xcodeproj/project.pbxproj:
2601         * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm: Renamed from Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.cpp.
2602         (PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
2603         (PlatformCALayerRemoteCustom::~PlatformCALayerRemoteCustom):
2604         (PlatformCALayerRemoteCustom::hostingContextID):
2605         Use web_disableAllActions instead of disableActionsForLayer.
2606         This requires making this file Obj-C++ but that's OK since it's Mac/iOS only.
2607
2608 2014-01-21  Gavin Barraclough  <barraclough@apple.com>
2609
2610         Change Page, FocusController to use ViewState
2611         https://bugs.webkit.org/show_bug.cgi?id=126533
2612
2613         Reviewed by Tim Horton.
2614
2615         These classes currently maintain a set of separate fields to represent the view state;
2616         combine these into a single field, and allow WebPage to send the combined update rather
2617         than individual changes.
2618
2619         Maintain existing interface for WebKit1 clients.
2620
2621         * WebProcess/WebPage/WebPage.cpp:
2622         (WebKit::WebPage::WebPage):
2623             - Combined separate calls to Page::setViewState.
2624         (WebKit::WebPage::updateIsInWindow):
2625             - Simplied from setIsInWindow.
2626         (WebKit::WebPage::setViewState):
2627             - Combined separate calls to Page::setViewState.
2628         * WebProcess/WebPage/WebPage.h:
2629             - Declare updateIsInWindow.
2630
2631 2014-01-21  Carlos Garcia Campos  <cgarcia@igalia.com>
2632
2633         [SOUP] Implement CUSTOM PROTOCOLS
2634         https://bugs.webkit.org/show_bug.cgi?id=125583
2635
2636         Reviewed by Anders Carlsson.
2637
2638         Add new classes to implement CustomProtocols for soup. The
2639         implementation is the same, but using the CustomProtocol API and
2640         messages. The current implementation can be removed once all ports
2641         using soup switch to using CustomProtocols.
2642
2643         * GNUmakefile.am: Add new include paths.
2644         * GNUmakefile.list.am: Add new files to compilation.
2645         * PlatformGTK.cmake: Add new files to compilation.
2646         * Shared/API/c/soup/WKBaseSoup.h:
2647         * Shared/APIObject.h:
2648         * Shared/Network/CustomProtocols/CustomProtocolManager.h:
2649         * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp: Added.
2650         (WebKit::generateCustomProtocolID):
2651         (WebKit::WebSoupRequestAsyncData::WebSoupRequestAsyncData):
2652         (WebKit::WebSoupRequestAsyncData::~WebSoupRequestAsyncData):
2653         (WebKit::WebSoupRequestAsyncData::requestFailed):
2654         (WebKit::WebSoupRequestAsyncData::releaseTask):
2655         (WebKit::CustomProtocolManagerImpl::CustomProtocolManagerImpl):
2656         (WebKit::CustomProtocolManagerImpl::~CustomProtocolManagerImpl):
2657         (WebKit::CustomProtocolManagerImpl::registerScheme):
2658         (WebKit::CustomProtocolManagerImpl::supportsScheme):
2659         (WebKit::CustomProtocolManagerImpl::didFailWithError):
2660         (WebKit::CustomProtocolManagerImpl::didLoadData):
2661         (WebKit::CustomProtocolManagerImpl::didReceiveResponse):
2662         (WebKit::CustomProtocolManagerImpl::didFinishLoading):
2663         (WebKit::CustomProtocolManagerImpl::send):
2664         (WebKit::CustomProtocolManagerImpl::finish):
2665         * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h: Added.
2666         * Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp:
2667         (WebKit::CustomProtocolManager::CustomProtocolManager):
2668         (WebKit::CustomProtocolManager::initialize):
2669         (WebKit::CustomProtocolManager::registerScheme):
2670         (WebKit::CustomProtocolManager::supportsScheme):
2671         (WebKit::CustomProtocolManager::didFailWithError):
2672         (WebKit::CustomProtocolManager::didLoadData):
2673         (WebKit::CustomProtocolManager::didReceiveResponse):
2674         (WebKit::CustomProtocolManager::didFinishLoading):
2675         * Shared/WebProcessCreationParameters.cpp:
2676         (WebKit::WebProcessCreationParameters::encode):
2677         (WebKit::WebProcessCreationParameters::decode):
2678         * Shared/WebProcessCreationParameters.h:
2679         * UIProcess/API/C/soup/WKAPICastSoup.h:
2680         * UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.cpp: Copied from Source/WebKit2/UIProcess/soup/WebContextSoup.cpp.
2681         (WKSoupCustomProtocolRequestManagerGetTypeID):
2682         (WKSoupCustomProtocolRequestManagerSetClient):
2683         * UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.h: Added.
2684         * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
2685         * UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:
2686         (WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy):
2687         * UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp:
2688         (WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy):
2689         (WebKit::CustomProtocolManagerProxy::startLoading):
2690         (WebKit::CustomProtocolManagerProxy::stopLoading):
2691         * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp: Added.
2692         (WebKit::WebSoupCustomProtocolRequestManager::supplementName):
2693         (WebKit::WebSoupCustomProtocolRequestManager::create):
2694         (WebKit::WebSoupCustomProtocolRequestManager::WebSoupCustomProtocolRequestManager):
2695         (WebKit::WebSoupCustomProtocolRequestManager::~WebSoupCustomProtocolRequestManager):
2696         (WebKit::WebSoupCustomProtocolRequestManager::initializeClient):
2697         (WebKit::WebSoupCustomProtocolRequestManager::contextDestroyed):
2698         (WebKit::WebSoupCustomProtocolRequestManager::processDidClose):
2699         (WebKit::WebSoupCustomProtocolRequestManager::refWebContextSupplement):
2700         (WebKit::WebSoupCustomProtocolRequestManager::derefWebContextSupplement):
2701         (WebKit::WebSoupCustomProtocolRequestManager::registerSchemeForCustomProtocol):
2702         (WebKit::WebSoupCustomProtocolRequestManager::unregisterSchemeForCustomProtocol):
2703         (WebKit::WebSoupCustomProtocolRequestManager::startLoading):
2704         (WebKit::WebSoupCustomProtocolRequestManager::stopLoading):
2705         (WebKit::WebSoupCustomProtocolRequestManager::didReceiveResponse):
2706         (WebKit::WebSoupCustomProtocolRequestManager::didLoadData):
2707         (WebKit::WebSoupCustomProtocolRequestManager::didFailWithError):
2708         (WebKit::WebSoupCustomProtocolRequestManager::didFinishLoading):
2709         * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.h: Added.
2710         (WebKit::WebSoupCustomProtocolRequestManager::registeredSchemesForCustomProtocols):
2711         * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp: Added.
2712         (WebKit::WebSoupCustomProtocolRequestManagerClient::startLoading):
2713         (WebKit::WebSoupCustomProtocolRequestManagerClient::stopLoading):
2714         * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.h: Added.
2715         * UIProcess/Network/NetworkProcessProxy.cpp:
2716         (WebKit::NetworkProcessProxy::NetworkProcessProxy):
2717         * UIProcess/WebContext.cpp:
2718         (WebKit::WebContext::WebContext):
2719         * UIProcess/WebPageProxy.cpp:
2720         * UIProcess/WebPageProxy.h:
2721         * UIProcess/WebPageProxy.messages.in:
2722         * UIProcess/WebProcessProxy.cpp:
2723         (WebKit::WebProcessProxy::WebProcessProxy):
2724         * UIProcess/gtk/WebContextGtk.cpp:
2725         (WebKit::WebContext::platformInitializeWebProcess):
2726         * UIProcess/soup/WebContextSoup.cpp:
2727         (WebKit::WebContext::platformInitializeNetworkProcess):
2728         * WebProcess/WebProcess.cpp:
2729         (WebKit::WebProcess::WebProcess):
2730         * WebProcess/soup/WebKitSoupRequestGeneric.cpp:
2731         (webkitSoupRequestGenericSendAsync):
2732         (webkitSoupRequestGenericSendFinish):
2733         * WebProcess/soup/WebKitSoupRequestGeneric.h:
2734         * WebProcess/soup/WebProcessSoup.cpp:
2735         (WebKit::WebProcess::platformInitializeWebProcess):
2736
2737 2014-01-21  Adrian Perez de Castro  <aperez@igalia.com>
2738
2739         [GTK] Allow passing extra data to web extensions
2740         https://bugs.webkit.org/show_bug.cgi?id=125990
2741
2742         Reviewed by Carlos Garcia Campos.
2743
2744         Allow passing additional information to the injected bundle. On top
2745         of the string containing the path to the web extensions directory,
2746         a GVariant can be set with additional data using
2747         webkit_web_context_set_web_extensions_initialization_user_data().
2748         Also, a new initialize-web-extensions signal is emitted before
2749         launching a new WebProcess to allow setting different user data
2750         for each process. The GVariant is serialized as a string, passed
2751         to the injected bundle, and the injected bundle deserializes back
2752         the data, which is passed to web extensions which define the
2753         webkit_web_extension_initialize_with_user_data() function (for
2754         backwards compatibility, webkit_web_extension_initialize() is
2755         used as a fallback.)
2756
2757         * UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
2758         (getInjectedBundleInitializationUserData): Define new callback
2759         function which causes emission of the initialize-web-extensions
2760         signal, and serializes the data to be passed to the web process.
2761         (attachInjectedBundleClientToContext): Set the
2762         getInjectedBundleInitializationUserData() callback.
2763         * UIProcess/API/gtk/WebKitWebContext.cpp:
2764         (webkit_web_context_class_init): Define the
2765         initialize-web-extensions signal.
2766         (webkit_web_context_set_web_extensions_directory):
2767         Web extensions directory as now member of WebKitWebContextPrivate,
2768         to be able to retrieve it later.
2769         (webkit_web_context_set_web_extensions_initialization_user_data):
2770         New API method to set the user data passed to the web extensions
2771         when initialized.
2772         (webkitWebContextInitializeWebExtensions): Private function used
2773         to trigger emission of the initialize-web-extensions signal.
2774         * UIProcess/API/gtk/WebKitWebContext.h:
2775         Added prototype for new API method
2776         webkit_web_context_set_web_extensions_initialization_user_data().
2777         * UIProcess/API/gtk/WebKitWebContextPrivate.h:
2778         Prototype of the new private function.
2779         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
2780         Add new public API bits to the documentation.
2781         * WebProcess/gtk/WebGtkExtensionManager.cpp:
2782         (WebKit::WebGtkExtensionManager::initialize):
2783         Deserialize the data received from the UI process and pass it to
2784         webkit_web_extension_initialize_with_user_data() if available,
2785         keeping webkit_web_extension_initialize() as fallback.
2786
2787 2014-01-20  Ryuan Choi  <ryuan.choi@samsung.com>
2788
2789         [EFL][WK2] Move isEwkViewEvasObject back to ewk_view.cpp
2790         https://bugs.webkit.org/show_bug.cgi?id=127261
2791
2792         Reviewed by Gyuyoung Kim.
2793
2794         isEwkViewEvasObject is general check routine of EFL and mainly used in
2795         ewk_view.cpp but it was in EwkView.cpp since separated EwkView.cpp from ewk_view.cpp
2796
2797         This patch moves it to EwkView.h as inline function with small refactoring.
2798         In addition, this patch added EINA_UNLIKELY keyword in cold paths.
2799
2800         * UIProcess/API/efl/EwkView.cpp:
2801         (defaultSmartClassInstance):
2802         (toSmartData):
2803         (toEwkView): Moved it from bottom not to expose it to header file.
2804         * UIProcess/API/efl/EwkView.h:
2805         * UIProcess/API/efl/ewk_view.cpp:
2806         (isEwkViewEvasObject):
2807         (toEwkViewChecked):
2808
2809 2014-01-20  Eunmi Lee  <eunmi15.lee@samsung.com>
2810
2811         [EFL][WK2] Amount of scrolling is different from movement of touch when device pixel ratio is not 1.
2812         https://bugs.webkit.org/show_bug.cgi?id=127268
2813
2814         Reviewed by Gyuyoung Kim.
2815
2816         Amount of scrolling should be same with movement of touch even though
2817         device pixel ratio is not 1, so apply device pixel ratio to the new
2818         position of scrollBy().
2819
2820         * UIProcess/API/efl/EwkView.cpp:
2821         (EwkView::scrollBy):
2822
2823 2014-01-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
2824
2825         [WK2] Setting m_pageScaleFactor directly in WebPageProxy::scalePage
2826         https://bugs.webkit.org/show_bug.cgi?id=127090
2827
2828         Reviewed by Simon Fraser.
2829
2830         When the client side sets the scale factor, the UIProcess will send the message to WebProcess and only after
2831         WebPageProxy::pageScaleFactorDidChange is called the desired scale factor is returned correctly by
2832         WebPageProxy::pageScaleFactor.
2833         This will avoid the client side retrieve a wrong scale factor while UIProcess and WebProcess gets synchronized.
2834
2835         * UIProcess/WebPageProxy.cpp:
2836         (WebKit::WebPageProxy::scalePage):
2837
2838 2014-01-20  Zan Dobersek  <zdobersek@igalia.com>
2839
2840         [GTK][WK2] Move the rest of GTK's WorkQueue implementation to std::function
2841         https://bugs.webkit.org/show_bug.cgi?id=127273
2842
2843         Reviewed by Anders Carlsson.
2844
2845         Move to using std::function and move semantics in WorkQueue::registerSocketEventHandler
2846         and WorkQueue::SocketEventSource.
2847
2848         * Platform/IPC/unix/ConnectionUnix.cpp:
2849         (IPC::Connection::open):
2850         * Platform/WorkQueue.h:
2851         * Platform/gtk/WorkQueueGtk.cpp:
2852         (WorkQueue::SocketEventSource::SocketEventSource):
2853         (WorkQueue::registerSocketEventHandler):
2854         (WorkQueue::dispatchOnSource): Use std::move instead of std::forward<T>.
2855         (WorkQueue::dispatch): Ditto.
2856         (WorkQueue::dispatchAfter): Ditto.
2857
2858 2014-01-20  Zan Dobersek  <zdobersek@igalia.com>
2859
2860         Unreviewed. Additional build fixes after r162276 and r163304.
2861
2862         * Platform/WorkQueue.h:
2863         * Platform/gtk/WorkQueueGtk.cpp:
2864         (WorkQueue::EventSource::EventSource):
2865         (WorkQueue::dispatchOnSource):
2866         (WorkQueue::dispatch):
2867         (WorkQueue::dispatchAfter):
2868
2869 2014-01-19  Zan Dobersek  <zdobersek@igalia.com>
2870
2871         Unreviewed GTK build fix after r162276.
2872
2873         Updating the WorkQueue implementation to use std::function and std::chrono.
2874
2875         * Platform/WorkQueue.h:
2876         * Platform/gtk/WorkQueueGtk.cpp:
2877         (WorkQueue::dispatchOnSource):
2878         (WorkQueue::dispatch):
2879         (WorkQueue::dispatchAfter):
2880
2881 2014-01-19  Jinwoo Song  <jinwoo7.song@samsung.com>
2882
2883         Unreviewed debug build fix on EFL port after r162300.
2884
2885         * Platform/efl/DispatchQueueWorkItemEfl.h:
2886         (TimerWorkItem::create):
2887
2888 2014-01-19  Jinwoo Song  <jinwoo7.song@samsung.com>
2889
2890         [EFL][WK2] build fix after r162276
2891         https://bugs.webkit.org/show_bug.cgi?id=127259
2892
2893         Reviewed by Anders Carlsson.
2894
2895         * Platform/efl/DispatchQueueEfl.cpp:
2896         (DispatchQueue::performTimerWork):
2897         (DispatchQueue::getNextTimeOut):
2898         * Platform/efl/DispatchQueueWorkItemEfl.h:
2899         (WorkItem::create):
2900         (WorkItem::WorkItem):
2901         (TimerWorkItem::create):
2902         (TimerWorkItem::TimerWorkItem):
2903         * Platform/efl/WorkQueueEfl.cpp:
2904         (WorkQueue::dispatch):
2905         (WorkQueue::dispatchAfter):
2906
2907 2014-01-18  Anders Carlsson  <andersca@apple.com>
2908
2909         Replace a couple of uses of WTF::Function with std::function
2910         https://bugs.webkit.org/show_bug.cgi?id=127218
2911
2912         Reviewed by Andreas Kling.
2913
2914         * Platform/IPC/mac/ConnectionMac.cpp:
2915         (IPC::createDataAvailableSource):
2916         * Platform/WorkQueue.h:
2917         * Platform/mac/WorkQueueMac.cpp:
2918         (WorkQueue::dispatch):
2919         (WorkQueue::dispatchAfter):
2920         * Shared/ChildProcess.cpp:
2921         (WebKit::didCloseOnConnectionWorkQueue):
2922         * UIProcess/Storage/LocalStorageDatabase.cpp:
2923         (WebKit::LocalStorageDatabase::scheduleDatabaseUpdate):
2924         * WebProcess/WebPage/DrawingArea.cpp:
2925         (WebKit::DrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
2926         * WebProcess/WebPage/DrawingArea.h:
2927         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2928         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
2929         (WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
2930
2931 2014-01-18  Martin Hock  <mhock@apple.com>
2932
2933         Flesh out session APIs (still not enabled at API level).
2934         https://bugs.webkit.org/show_bug.cgi?id=126918
2935
2936         Reviewed by Alexey Proskuryakov.
2937
2938         * CMakeLists.txt:
2939         * GNUmakefile.list.am:
2940         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
2941         (WebKit::storageSession):
2942         (WebKit::NetworkConnectionToWebProcess::startDownload):
2943         (WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
2944         (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
2945         (WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
2946         (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
2947         (WebKit::NetworkConnectionToWebProcess::getRawCookies):
2948         (WebKit::NetworkConnectionToWebProcess::deleteCookie):
2949         * NetworkProcess/NetworkConnectionToWebProcess.h:
2950         * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
2951         * NetworkProcess/NetworkProcess.cpp:
2952         (WebKit::NetworkProcess::initializeNetworkProcess):
2953         (WebKit::NetworkProcess::ensurePrivateBrowsingSession):
2954         (WebKit::NetworkProcess::destroyPrivateBrowsingSession):
2955         * NetworkProcess/NetworkProcess.h:
2956         * NetworkProcess/NetworkProcess.messages.in:
2957         * NetworkProcess/RemoteNetworkingContext.h:
2958         * NetworkProcess/mac/RemoteNetworkingContext.mm:
2959         (WebKit::RemoteNetworkingContext::storageSession):
2960         (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
2961         * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
2962         (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
2963         * Shared/SessionTracker.cpp: Copied from Source/WebKit2/UIProcess/APISession.cpp.
2964         (WebKit::sessionMap):
2965         (WebKit::identifierBase):
2966         (WebKit::SessionTracker::getSessionMap):
2967         (WebKit::SessionTracker::getIdentifierBase):
2968         (WebKit::SessionTracker::session):
2969         (WebKit::SessionTracker::destroySession):
2970         (WebKit::SessionTracker::setIdentifierBase):
2971         * Shared/SessionTracker.h: Copied from Source/WebKit2/UIProcess/APISession.h.
2972         (WebKit::SessionTracker::isEphemeralID):
2973         * Shared/mac/CookieStorageShim.cpp:
2974         (WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):
2975         * UIProcess/APISession.cpp:
2976         (API::generateID):
2977         (API::Session::defaultSession):
2978         (API::Session::legacyPrivateSession):
2979         (API::Session::Session):
2980         (API::Session::create):
2981         (API::Session::isEphemeral):
2982         (API::Session::getID):
2983         * UIProcess/APISession.h:
2984         * UIProcess/WebContext.cpp:
2985         (WebKit::WebContext::setAnyPageGroupMightHavePrivateBrowsingEnabled):
2986         (WebKit::WebContext::createNewWebProcess):
2987         (WebKit::WebContext::createWebPage):
2988         * UIProcess/WebContext.h:
2989         * UIProcess/WebPageProxy.cpp:
2990         (WebKit::WebPageProxy::create):
2991         (WebKit::WebPageProxy::WebPageProxy):
2992         * UIProcess/WebPageProxy.h:
2993         (WebKit::WebPageProxy::sessionID):
2994         * UIProcess/WebProcessProxy.cpp:
2995         (WebKit::WebProcessProxy::createWebPage):
2996         * UIProcess/WebProcessProxy.h:
2997         * WebKit2.xcodeproj/project.pbxproj:
2998         * WebProcess/InjectedBundle/InjectedBundle.cpp:
2999         (WebKit::InjectedBundle::setPrivateBrowsingEnabled):
3000         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
3001         (WebKit::legacySessionID):
3002         (WebKit::WebPlatformStrategies::cookiesForDOM):
3003         (WebKit::WebPlatformStrategies::setCookiesFromDOM):
3004         (WebKit::WebPlatformStrategies::cookiesEnabled):
3005         (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
3006         (WebKit::WebPlatformStrategies::getRawCookies):
3007         (WebKit::WebPlatformStrategies::deleteCookie):
3008         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
3009         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
3010         (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
3011         (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
3012         (WebKit::WebFrameNetworkingContext::storageSession):
3013         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
3014         (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
3015         (WebKit::WebFrameNetworkingContext::storageSession):
3016         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
3017         * WebProcess/WebProcess.cpp:
3018         (WebKit::WebProcess::initializeWebProcess):
3019         (WebKit::WebProcess::ensurePrivateBrowsingSession):
3020         (WebKit::WebProcess::destroyPrivateBrowsingSession):
3021         * WebProcess/WebProcess.h:
3022         * WebProcess/WebProcess.messages.in:
3023
3024 2014-01-18  Brian Burg  <bburg@apple.com>
3025
3026         Web Inspector: Page should use std::unique_ptr for InspectorController
3027         https://bugs.webkit.org/show_bug.cgi?id=127068
3028
3029         Reviewed by Joseph Pecoraro.
3030
3031         Convert call sites to use a InspectorController reference.
3032
3033         * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
3034         (WebKit::WebInspectorClient::drawRect):
3035         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
3036         (WebKit::WebInspectorFrontendClient::WebInspectorFrontendClient):
3037         (WebKit::WebInspectorFrontendClient::closeWindow):
3038         * WebProcess/WebPage/WebInspector.cpp:
3039         (WebKit::WebInspector::createInspectorPage):
3040         (WebKit::WebInspector::show):
3041         (WebKit::WebInspector::close):
3042         (WebKit::WebInspector::evaluateScriptForTest):
3043         (WebKit::WebInspector::showConsole):
3044         (WebKit::WebInspector::showResources):
3045         (WebKit::WebInspector::showMainResourceForFrame):
3046         (WebKit::WebInspector::startJavaScriptDebugging):
3047         (WebKit::WebInspector::stopJavaScriptDebugging):
3048         (WebKit::WebInspector::setJavaScriptProfilingEnabled):
3049         (WebKit::WebInspector::startJavaScriptProfiling):
3050         (WebKit::WebInspector::stopJavaScriptProfiling):
3051         (WebKit::WebInspector::startPageProfiling):
3052         (WebKit::WebInspector::stopPageProfiling):
3053         (WebKit::WebInspector::dispatchMessageFromRemoteFrontend):
3054         (WebKit::WebInspector::remoteFrontendConnected):
3055         (WebKit::WebInspector::remoteFrontendDisconnected):
3056
3057 2014-01-18  Anders Carlsson  <andersca@apple.com>
3058
3059         Remove ENABLE_THREADED_HTML_PARSER defines everywhere
3060         https://bugs.webkit.org/show_bug.cgi?id=127225
3061
3062         Reviewed by Andreas Kling.
3063
3064         This concludes the removal of over 8.8 million lines of threaded parser code.
3065
3066         * Configurations/FeatureDefines.xcconfig:
3067
3068 2014-01-18  Yongjun Zhang  <yongjun_zhang@apple.com>
3069
3070         Make WKRenderingProgressEvents a shareable API.
3071         https://bugs.webkit.org/show_bug.cgi?id=127213
3072
3073         Reviewed by Dan Bernstein.
3074
3075         Move WKRenderingProgressEvents from UIProcess to Shared, so that an inject bundle
3076         could also use this enum when listening to layout milestones.
3077
3078         * Shared/API/Cocoa/WKRenderingProgressEvents.h: Added.
3079         (NS_OPTIONS):
3080         * Shared/API/Cocoa/WKRenderingProgressEventsInternal.h: Added.
3081         (renderingProgressEvents):
3082         * UIProcess/API/Cocoa/WKBrowsingContextController.h: Move WKRenderingProgressEvents to Shared/API/Cocoa/WKRenderingProgressEvents.h.
3083         * UIProcess/API/Cocoa/WKBrowsingContextController.mm: Move renderingProgressEvents() to WKRenderingProgressEventsInternal.h.
3084         * WebKit2.xcodeproj/project.pbxproj:
3085         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h: Add
3086             webProcessPlugInBrowserContextController:renderingProgressDidChange: to load delegate.
3087         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
3088         (didLayout):
3089         (setUpPageLoaderClient): Also listen to didLayout callback for layout milestones.
3090
3091 2014-01-17  Commit Queue  <commit-queue@webkit.org>
3092
3093         Unreviewed, rolling out r162237 and r162241.
3094         http://trac.webkit.org/changeset/162237
3095         http://trac.webkit.org/changeset/162241
3096         https://bugs.webkit.org/show_bug.cgi?id=127216
3097
3098         Broke lots of API tests (Requested by ap on #webkit).
3099
3100         * CMakeLists.txt:
3101         * GNUmakefile.list.am:
3102         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
3103         (WebKit::storageSession):
3104         (WebKit::NetworkConnectionToWebProcess::startDownload):
3105         (WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
3106         (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
3107         (WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
3108         (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
3109         (WebKit::NetworkConnectionToWebProcess::getRawCookies):
3110         (WebKit::NetworkConnectionToWebProcess::deleteCookie):
3111         * NetworkProcess/NetworkConnectionToWebProcess.h:
3112         * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
3113         * NetworkProcess/NetworkProcess.cpp:
3114         (WebKit::NetworkProcess::initializeNetworkProcess):
3115         (WebKit::NetworkProcess::ensurePrivateBrowsingSession):
3116         (WebKit::NetworkProcess::destroyPrivateBrowsingSession):
3117         * NetworkProcess/NetworkProcess.h:
3118         * NetworkProcess/NetworkProcess.messages.in:
3119         * NetworkProcess/RemoteNetworkingContext.h:
3120         * NetworkProcess/mac/RemoteNetworkingContext.mm:
3121         (WebKit::privateBrowsingStorageSession):
3122         (WebKit::RemoteNetworkingContext::storageSession):
3123         (WebKit::RemoteNetworkingContext::privateBrowsingSession):
3124         (WebKit::privateBrowsingStorageSessionIdentifierBase):
3125         (WebKit::RemoteNetworkingContext::setPrivateBrowsingStorageSessionIdentifierBase):
3126         (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
3127         (WebKit::RemoteNetworkingContext::destroyPrivateBrowsingSession):
3128         * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
3129         (WebKit::RemoteNetworkingContext::setPrivateBrowsingStorageSessionIdentifierBase):
3130         (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
3131         (WebKit::RemoteNetworkingContext::destroyPrivateBrowsingSession):
3132         (WebKit::RemoteNetworkingContext::privateBrowsingSession):
3133         * Shared/SessionTracker.cpp: Removed.
3134         * Shared/SessionTracker.h: Removed.
3135         * UIProcess/APISession.cpp:
3136         (API::Session::Session):
3137         (API::Session::create):
3138         (API::Session::isEphemeral):
3139         * UIProcess/APISession.h:
3140         * UIProcess/WebContext.cpp:
3141         (WebKit::WebContext::setAnyPageGroupMightHavePrivateBrowsingEnabled):
3142         (WebKit::WebContext::createNewWebProcess):
3143         (WebKit::WebContext::createWebPage):
3144         * UIProcess/WebContext.h:
3145         * UIProcess/WebPageProxy.cpp:
3146         (WebKit::WebPageProxy::create):
3147         (WebKit::WebPageProxy::WebPageProxy):
3148         * UIProcess/WebPageProxy.h:
3149         * UIProcess/WebProcessProxy.cpp:
3150         (WebKit::WebProcessProxy::createWebPage):
3151         * UIProcess/WebProcessProxy.h:
3152         * WebKit2.xcodeproj/project.pbxproj:
3153         * WebProcess/InjectedBundle/InjectedBundle.cpp:
3154         (WebKit::InjectedBundle::setPrivateBrowsingEnabled):
3155         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
3156         (WebKit::WebPlatformStrategies::cookiesForDOM):
3157         (WebKit::WebPlatformStrategies::setCookiesFromDOM):
3158         (WebKit::WebPlatformStrategies::cookiesEnabled):
3159         (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
3160         (WebKit::WebPlatformStrategies::getRawCookies):
3161         (WebKit::WebPlatformStrategies::deleteCookie):
3162         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
3163         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
3164         (WebKit::privateSession):
3165         (WebKit::identifierBase):
3166         (WebKit::WebFrameNetworkingContext::setPrivateBrowsingStorageSessionIdentifierBase):
3167         (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
3168         (WebKit::WebFrameNetworkingContext::destroyPrivateBrowsingSession):
3169         (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
3170         (WebKit::WebFrameNetworkingContext::storageSession):
3171         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
3172         (WebKit::privateSession):
3173         (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
3174         (WebKit::WebFrameNetworkingContext::destroyPrivateBrowsingSession):
3175         (WebKit::WebFrameNetworkingContext::storageSession):
3176         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
3177         * WebProcess/WebProcess.cpp:
3178         (WebKit::WebProcess::initializeWebProcess):
3179         (WebKit::WebProcess::ensurePrivateBrowsingSession):
3180         (WebKit::WebProcess::destroyPrivateBrowsingSession):
3181         * WebProcess/WebProcess.h:
3182         * WebProcess/WebProcess.messages.in:
3183
3184 2014-01-17  Ryuan Choi  <ryuan.choi@samsung.com>
3185
3186         Unreviewed build fix on EFL port after r162237
3187
3188         The EFL port disabled NETWORK_PROCESS yet and use -Werror=unused-function.
3189
3190         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
3191         Guarded legacySessionID with ENABLE(NETWORK_PROCESS)
3192
3193 2014-01-17  Martin Hock  <mhock@apple.com>
3194
3195         Flesh out session APIs (still not enabled at API level).
3196         https://bugs.webkit.org/show_bug.cgi?id=126918
3197
3198         Reviewed by Alexey Proskuryakov.
3199
3200         * CMakeLists.txt:
3201         * GNUmakefile.list.am:
3202         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
3203         (WebKit::storageSession):
3204         (WebKit::NetworkConnectionToWebProcess::startDownload):
3205         (WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
3206         (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
3207         (WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
3208         (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
3209         (WebKit::NetworkConnectionToWebProcess::getRawCookies):
3210         (WebKit::NetworkConnectionToWebProcess::deleteCookie):
3211         * NetworkProcess/NetworkConnectionToWebProcess.h:
3212         * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
3213         * NetworkProcess/NetworkProcess.cpp:
3214         (WebKit::NetworkProcess::initializeNetworkProcess):
3215         (WebKit::NetworkProcess::ensurePrivateBrowsingSession):
3216         (WebKit::NetworkProcess::destroyPrivateBrowsingSession):
3217         * NetworkProcess/NetworkProcess.h:
3218         * NetworkProcess/NetworkProcess.messages.in:
3219         * NetworkProcess/RemoteNetworkingContext.h:
3220         * NetworkProcess/mac/RemoteNetworkingContext.mm:
3221         (WebKit::RemoteNetworkingContext::storageSession):
3222         (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
3223         * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
3224         (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
3225         * Shared/SessionTracker.cpp: Copied from Source/WebKit2/UIProcess/APISession.cpp.
3226         (WebKit::sessionMap):
3227         (WebKit::identifierBase):
3228         (WebKit::SessionTracker::getSessionMap):
3229         (WebKit::SessionTracker::getIdentifierBase):
3230         (WebKit::SessionTracker::session):
3231         (WebKit::SessionTracker::destroySession):
3232         (WebKit::SessionTracker::setIdentifierBase):
3233         * Shared/SessionTracker.h: Copied from Source/WebKit2/UIProcess/APISession.h.
3234         (WebKit::SessionTracker::isEphemeralID):
3235         * UIProcess/APISession.cpp:
3236         (API::generateID):
3237         (API::Session::defaultSession):
3238         (API::Session::legacyPrivateSession):
3239         (API::Session::Session):
3240         (API::Session::create):
3241         (API::Session::isEphemeral):
3242         (API::Session::getID):
3243         * UIProcess/APISession.h:
3244         * UIProcess/WebContext.cpp:
3245         (WebKit::WebContext::setAnyPageGroupMightHavePrivateBrowsingEnabled):
3246         (WebKit::WebContext::createNewWebProcess):
3247         (WebKit::WebContext::createWebPage):
3248         * UIProcess/WebContext.h:
3249         * UIProcess/WebPageProxy.cpp:
3250         (WebKit::WebPageProxy::create):
3251         (WebKit::WebPageProxy::WebPageProxy):
3252         * UIProcess/WebPageProxy.h:
3253         (WebKit::WebPageProxy::sessionID):
3254         * UIProcess/WebProcessProxy.cpp:
3255         (WebKit::WebProcessProxy::createWebPage):
3256         * UIProcess/WebProcessProxy.h:
3257         * WebKit2.xcodeproj/project.pbxproj:
3258         * WebProcess/InjectedBundle/InjectedBundle.cpp:
3259         (WebKit::InjectedBundle::setPrivateBrowsingEnabled):
3260         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
3261         (WebKit::legacySessionID):
3262         (WebKit::WebPlatformStrategies::cookiesForDOM):
3263         (WebKit::WebPlatformStrategies::setCookiesFromDOM):
3264         (WebKit::WebPlatformStrategies::cookiesEnabled):
3265         (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
3266         (WebKit::WebPlatformStrategies::getRawCookies):
3267         (WebKit::WebPlatformStrategies::deleteCookie):
3268         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h:
3269         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
3270         (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
3271         (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts):
3272         (WebKit::WebFrameNetworkingContext::storageSession):
3273         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
3274         (WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
3275         (WebKit::WebFrameNetworkingContext::storageSession):
3276         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
3277         * WebProcess/WebProcess.cpp:
3278         (WebKit::WebProcess::initializeWebProcess):
3279         (WebKit::WebProcess::ensurePrivateBrowsingSession):
3280         (WebKit::WebProcess::destroyPrivateBrowsingSession):
3281         * WebProcess/WebProcess.h:
3282         * WebProcess/WebProcess.messages.in:
3283
3284 2014-01-17  Andreas Kling  <akling@apple.com>
3285
3286         Remove unused TOUCH_ADJUSTMENT code.
3287         <https://webkit.org/b/127181>
3288
3289         Reviewed by Anders Carlsson.
3290
3291         * WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp:
3292         (WebKit::WebPage::findZoomableAreaForPoint):
3293
3294 2014-01-17  Anders Carlsson  <andersca@apple.com>
3295
3296         Fix build.
3297
3298         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3299         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
3300
3301 2014-01-17  Anders Carlsson  <andersca@apple.com>
3302
3303         Remove FrameLoaderClient::didPerformFirstNavigation()
3304         https://bugs.webkit.org/show_bug.cgi?id=127191
3305
3306         Reviewed by Dan Bernstein.
3307
3308         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3309         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
3310
3311 2014-01-17  Manuel Rego Casasnovas  <rego@igalia.com>
3312
3313         [GTK] Add CSS Grid Layout as experimental feature
3314         https://bugs.webkit.org/show_bug.cgi?id=127089
3315
3316         Reviewed by Martin Robinson.
3317
3318         Allow CSS Grid Layout to be enabled through the environment variable WEBKITGTK_EXPERIMENTAL_FEATURES.
3319
3320         Example: WEBKITGTK_EXPERIMENTAL_FEATURES="CSS_GRID_LAYOUT=1"
3321
3322         * UIProcess/API/gtk/WebKitSettings.cpp:
3323         (webKitSettingsConstructed): Use new experimental feature to enable or disable CSS Grid Layout.
3324         * UIProcess/gtk/ExperimentalFeatures.cpp: Add new experimental feature.
3325         * UIProcess/gtk/ExperimentalFeatures.h: Ditto.
3326
3327 2014-01-17  Enrica Casucci  <enrica@apple.com>
3328
3329         Support WebSelections in WK2 on iOS.
3330         https://bugs.webkit.org/show_bug.cgi?id=127015
3331         <rdar://problem/15843090>
3332
3333         Reviewed by Dan Bernstein.
3334
3335         Removing unused variable in selectWithGesture that
3336         causes Release build to fail after r162103.
3337
3338         * WebProcess/WebPage/ios/WebPageIOS.mm:
3339         (WebKit::WebPage::selectWithGesture):
3340
3341 2014-01-17  Yongjun Zhang  <yongjun_zhang@apple.com>
3342
3343         https://bugs.webkit.org/show_bug.cgi?id=127138
3344         Add more delegate callback methods to WKWebProcessPlugInLoadDelegate.
3345
3346         Reviewed by Sam Weinig.
3347
3348         Add more WKWebProcessPlugInLoadDelegate callback methods so that a injected
3349         bundle can listen/react to more frame loading events.
3350
3351         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h: Add more delegate callback methods for
3352             WKWebProcessPlugInLoadDelegate.
3353         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
3354         (didCommitLoadForFrame):
3355         (didFinishDocumentLoadForFrame):
3356         (didFailLoadWithErrorForFrame):
3357         (didSameDocumentNavigationForFrame): 
3358         (didLayoutForFrame):
3359         (setUpPageLoaderClient):
3360
3361 2014-01-16  Carlos Garcia Campos  <cgarcia@igalia.com>
3362
3363         [SOUP] Add stubs for CustomProtocol classes
3364         https://bugs.webkit.org/show_bug.cgi?id=126343
3365
3366         Reviewed by Gustavo Noronha Silva.
3367
3368         * CMakeLists.txt:
3369         * GNUmakefile.am:
3370         * GNUmakefile.list.am:
3371         * PlatformGTK.cmake:
3372         * Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp: Added.
3373         (WebKit::generateCustomProtocolID):
3374         (WebKit::WebSoupRequestAsyncData::WebSoupRequestAsyncData):
3375         (WebKit::WebSoupRequestAsyncData::~WebSoupRequestAsyncData):
3376         (WebKit::WebSoupRequestAsyncData::requestFailed):
3377         (WebKit::WebSoupRequestAsyncData::releaseTask):
3378         (WebKit::CustomProtocolManager::supplementName):
3379         (WebKit::CustomProtocolManager::CustomProtocolManager):
3380         (WebKit::CustomProtocolManager::initializeConnection):
3381         (WebKit::CustomProtocolManager::initialize):
3382         * Shared/Network/NetworkProcessCreationParameters.cpp:
3383         (WebKit::NetworkProcessCreationParameters::encode): Move
3384         urlSchemesRegisteredForCustomProtocols encoding out of platform
3385         ifdefs, since it's already guarded by ENABLE(CUSTOM_PROTOCOLS).
3386         (WebKit::NetworkProcessCreationParameters::decode): Ditto.
3387         * Shared/Network/NetworkProcessCreationParameters.h: Ditto.
3388         * UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp: Added.
3389         (WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy):
3390         (WebKit::CustomProtocolManagerProxy::startLoading):
3391         (WebKit::CustomProtocolManagerProxy::stopLoading):
3392
3393 2014-01-16  Tim Horton  <timothy_horton@apple.com>
3394
3395         On iOS, zooming in with a TileController-backed main frame makes hundreds of tiles
3396         https://bugs.webkit.org/show_bug.cgi?id=126531
3397         <rdar://problem/15745862>
3398
3399         Reviewed by Anders Carlsson.
3400
3401         * UIProcess/API/ios/WKContentView.mm:
3402         (-[WKContentView _updateViewExposedRect]):
3403         (-[WKContentView setViewportSize:]):
3404         (-[WKContentView didFinishScrollTo:]):
3405         (-[WKContentView didScrollTo:]):
3406         (-[WKContentView didZoomToScale:]):
3407         Because zooming is performed by the UIScrollView, we need to transform
3408         the exposedRect's offset in order to get it in FrameView-relative coordinates.
3409
3410         * UIProcess/ios/WebPageProxyIOS.mm:
3411         (WebKit::WebPageProxy::didFinishZooming):
3412         Save the pageScaleFactor when it changes.
3413
3414 2014-01-16  Carlos Garcia Campos  <cgarcia@igalia.com>
3415
3416         [GTK] Remove the weak pointer added to the web view in WebKitPrintOperation
3417         https://bugs.webkit.org/show_bug.cgi?id=127098
3418
3419         Reviewed by Martin Robinson.
3420
3421         If the print operation finishes and the web view is still alive,
3422         the weak pointer added to the view should be removed.
3423
3424         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
3425         (_WebKitPrintOperationPrivate::~_WebKitPrintOperationPrivate):
3426
3427 2014-01-15  Sam Weinig  <sam@webkit.org>
3428
3429         TextBreakIterator's should support Latin-1 for all iterator types (Part 3)
3430         https://bugs.webkit.org/show_bug.cgi?id=126856
3431
3432         Reviewed by Ryosuke Niwa.
3433
3434         Change all the TextBreakIterator creation functions to take StringViews. Remove a few
3435         now unnecessary up-conversions to UTF-16 in the process.
3436
3437         * UIProcess/efl/TextCheckerEfl.cpp:
3438         (WebKit::nextWordOffset):
3439         (WebKit::TextChecker::checkTextOfParagraph):
3440
3441 2014-01-16  Eunmi Lee  <eunmi15.lee@samsung.com>
3442
3443         [EFL][WK2] EwkView can not be shown without re-sizing once it is hidden.
3444         https://bugs.webkit.org/show_bug.cgi?id=127084
3445
3446         Reviewed by Gyuyoung Kim.
3447
3448         Visibility of EwkView can not be controlled by evas_object_show/hide
3449         because EwkView can be shown only if re-sizing is requested, so modify
3450         codes to show EwkView directly if we do not wait for re-sizing.
3451         Additionally, we have to set default value of m_pendingSurfaceResize
3452         to true for accelerated mode to prevent to show black empty view for
3453         the first request to show.
3454
3455         * UIProcess/API/efl/EwkView.cpp:
3456         (EwkView::EwkView):
3457         (EwkView::handleEvasObjectShow):
3458
3459 2014-01-16  Andy Estes  <aestes@apple.com>
3460
3461         Build Fix: Use standard architectures when building for iOS
3462
3463         Even though we don't use the plug-in services on iOS, we still need
3464         them to build (we won't install them). Be sure we specify valid iOS
3465         architectures when doing so.
3466
3467         * Configurations/PluginService.32.xcconfig:
3468         * Configurations/PluginService.64.xcconfig:
3469
3470 2014-01-16  Enrica Casucci  <enrica@apple.com>
3471
3472         Crash when destroying WKInteractionView.
3473         https://bugs.webkit.org/show_bug.cgi?id=127153
3474         <rdar://problem/15840761>
3475
3476         Reviewed by Anders Carlsson.
3477
3478         UIWKSelectionAssistant is a RetainPtr and it is being 
3479         deallocated after the view and its gesture recognizers
3480         have been destroyed.
3481         The parent class UIWebSelectionAssistant assumes to be
3482         deallocated before the view is gone.
3483         We deallocate the interaction assistants explicitly to
3484         fix the problem.
3485
3486         * UIProcess/API/ios/WKInteractionView.mm:
3487         (-[WKInteractionView dealloc]):
3488
3489 2014-01-16  Brady Eidson  <beidson@apple.com>
3490
3491         IDB: delete object store support
3492         <rdar://problem/15779641> and https://bugs.webkit.org/show_bug.cgi?id=127123
3493
3494         Reviewed by Alexey Proskuryakov.
3495
3496         Pipe through Web -> Database -> Web process messaging for delete object store.
3497         Perform dropping the object store in the