b7a237e6a015e6cb1218dcbaaeb5849069495eb0
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2015-05-27  Carlos Garcia Campos  <cgarcia@igalia.com>
2
3         [SOUP] Network Cache: Handle the case when we fail to create the IO stream
4         https://bugs.webkit.org/show_bug.cgi?id=145406
5
6         Reviewed by Sergio Villar Senin.
7
8         We were asserting in that case, but it can happen that we
9         fail to create the stream. It happened to me after r184690, that
10         changed the NetworkCache::Key hash. Since this was not expected to
11         happen, the async operation never finished and the completion
12         handler never called, leaving resources loading forever. We
13         should make sure we call the completion handler with an error
14         code, so that the load finishes and the entry is silently removed
15         from the cache.
16
17         * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
18         (WebKit::NetworkCache::IOChannel::read):
19         (WebKit::NetworkCache::IOChannel::readSync):
20         (WebKit::NetworkCache::IOChannel::write):
21
22 2015-05-26  Carlos Garcia Campos  <cgarcia@igalia.com>
23
24         Network Cache: Add cache capacity to the totals of JSON file
25         https://bugs.webkit.org/show_bug.cgi?id=145246
26
27         Reviewed by Antti Koivisto.
28
29         * NetworkProcess/cache/NetworkCache.cpp:
30         (WebKit::NetworkCache::Cache::dumpContentsToFile):
31         * NetworkProcess/cache/NetworkCacheStorage.h:
32         (WebKit::NetworkCache::Storage::capacity):
33
34 2015-05-26  Anders Carlsson  <andersca@apple.com>
35
36         Add a symlink for every file inside /S/L/F/WebKit.framework to the PrivateFrameworks mirror.
37
38         rdar://problem/21111232.
39
40         Reviewed by Dan Bernstein.
41
42         * WebKit2.xcodeproj/project.pbxproj:
43
44 2015-05-26  Hunseop Jeong  <hs85.jeong@samsung.com>
45
46         [EFL] webview should be updated from (0,0) when using the evasGL.
47         https://bugs.webkit.org/show_bug.cgi?id=137948
48
49         Reviewed by Gyuyoung Kim.
50
51         Changed the point of the start position to update the evasObject
52         correctly when using the evasGL for graphics backend.
53
54         * UIProcess/API/efl/EwkView.cpp:
55         (EwkView::displayTimerFired):
56
57 2015-05-26  Dan Bernstein  <mitz@apple.com>
58
59         <rdar://problem/21104551> Update build settings
60
61         Reviewed by Anders Carlsson.
62
63         * Configurations/DebugRelease.xcconfig:
64         * Configurations/FeatureDefines.xcconfig:
65         * Configurations/Version.xcconfig:
66         * Configurations/WebContentService.Development.xcconfig:
67         * Configurations/WebContentService.xcconfig:
68
69 2015-05-26  Milan Crha  <mcrha@redhat.com>
70
71         [GTK] Expand wildcards inside generate-inspector-gresource-manifest.py
72         https://bugs.webkit.org/show_bug.cgi?id=138134
73
74         Reviewed by Žan Doberšek.
75
76         * PlatformGTK.cmake: Command line with expanded resources exceeds 32KB, which
77         is a limit on Windows. It's better to expand wildcards inside the python script.
78
79 2015-05-25  Dan Bernstein  <mitz@apple.com>
80
81         ASSERT_MAIN_THREAD and DOM_ASSERT_MAIN_THREAD are unnecessary no-ops
82         https://bugs.webkit.org/show_bug.cgi?id=145372
83
84         Reviewed by Sam Weinig.
85
86         * Configurations/Base.xcconfig: Removed DISABLE_THREAD_CHECK from DEBUG_DEFINES.
87
88 2015-05-25  Carlos Garcia Campos  <cgarcia@igalia.com>
89
90         [GTK] Add construct property to WebKitWebContext to set the IndexedDB database directory
91         https://bugs.webkit.org/show_bug.cgi?id=140882
92
93         Reviewed by Gustavo Noronha Silva.
94
95         Add WebKitWebContext:indexed-db-database-directory construct only property.
96
97         * UIProcess/API/gtk/WebKitWebContext.cpp:
98         (webkitWebContextGetProperty):
99         (webkitWebContextSetProperty):
100         (webkitWebContextConstructed):
101         (webkit_web_context_class_init):
102
103 2015-05-24  Sam Weinig  <sam@webkit.org>
104
105         Crash when using a removed ScriptMessageHandler
106         <rdar://problem/20888499>
107         https://bugs.webkit.org/show_bug.cgi?id=145359
108
109         Reviewed by Dan Bernstein.
110
111         * WebProcess/UserContent/WebUserContentController.cpp:
112         (WebKit::WebUserMessageHandlerDescriptorProxy::~WebUserMessageHandlerDescriptorProxy):
113         Invalidate the descriptor when the message handler client (as implemented by WebUserMessageHandlerDescriptorProxy)
114         goes away. This will happen if a script message handler is removed at the API level or the WebUserContentController
115         is destroyed (which will happen if all the pages get destroyed).
116
117 2015-05-23  Dan Bernstein  <mitz@apple.com>
118
119         <rdar://problem/21090327> /S/L/PrivateFrameworks/WebKit.framework is missing Headers and PrivateHeaders symlinks
120         https://bugs.webkit.org/show_bug.cgi?id=145354
121
122         Reviewed by David Kilzer.
123
124         * WebKit2.xcodeproj/project.pbxproj: Create Headers and PrivateHeaders symlinks alongside
125         the dylib symlink.
126
127 2015-05-23  Sungmann Cho  <sungmann.cho@navercorp.com>
128
129         Rename ShareableResource::create(Handle&) to map(Handle&) to match SharedMemory.
130         https://bugs.webkit.org/show_bug.cgi?id=145288
131
132         Reviewed by Sam Weinig.
133
134         * Shared/ShareableResource.cpp:
135         (WebKit::ShareableResource::Handle::tryWrapInSharedBuffer):
136         (WebKit::ShareableResource::map):
137         (WebKit::ShareableResource::create): Deleted.
138         * Shared/ShareableResource.h:
139
140 2015-05-22  Jon Lee  <jonlee@apple.com>
141
142         Rename MediaPlaybackAllowsInline
143         https://bugs.webkit.org/show_bug.cgi?id=145315
144
145         Reviewed by Eric Carlson.
146
147         Our API uses allowsInlineMediaPlayback. Our symbols should reflect the same.
148
149         * Shared/WebPreferencesDefinitions.h:
150         * UIProcess/API/C/WKPreferences.cpp:
151         (WKPreferencesSetMediaPlaybackAllowsInline): Update the call to preferences.
152         The C API will not change in a future patch.
153         (WKPreferencesGetMediaPlaybackAllowsInline): Ditto.
154         * UIProcess/API/Cocoa/WKWebView.mm:
155         (-[WKWebView initWithFrame:configuration:]): Update the name of the key.
156         * WebProcess/WebPage/WebPage.cpp:
157         (WebKit::WebPage::updatePreferences): Ditto.
158
159         * UIProcess/API/gtk/WebKitSettings.cpp: Update the call.
160         (webkit_settings_get_media_playback_allows_inline):
161         (webkit_settings_set_media_playback_allows_inline):
162
163 2015-05-22  Jon Lee  <jonlee@apple.com>
164
165         Rename MediaPlaybackAllowsAirPlay
166         https://bugs.webkit.org/show_bug.cgi?id=145316
167
168         Reviewed by Eric Carlson.
169
170         In preparation for an API rename, update internal symbols from mediaPlaybackAllowsAirPlay
171         to allowsAirPlayForMediaPlayback.
172
173         * Shared/WebPreferencesDefinitions.h: Update the name.
174         * UIProcess/API/Cocoa/WKWebView.mm:
175         (-[WKWebView initWithFrame:configuration:]): Ditto.
176         * WebProcess/WebPage/WebPage.cpp:
177         (WebKit::WebPage::updatePreferences): Update the call to settings.
178
179 2015-05-22  Jon Lee  <jonlee@apple.com>
180
181         Unreviewed GTK fix after r184802.
182
183         * UIProcess/API/gtk/WebKitSettings.cpp:
184         (webkit_settings_get_media_playback_requires_user_gesture):
185         (webkit_settings_set_media_playback_requires_user_gesture):
186
187 2015-05-22  Jon Lee  <jonlee@apple.com>
188
189         Rename MediaPlaybackRequiresUserGesture
190         https://bugs.webkit.org/show_bug.cgi?id=145314
191
192         Reviewed by Anders Carlsson.
193
194         In preparation for an API rename, update internal symbols from mediaPlaybackRequiresUserGesture
195         to requiresUserGestureForMediaPlayback.
196
197         No changes are being made to the API in this patch.
198
199         * Shared/WebPreferencesDefinitions.h: Update the name of the macro and the setting.
200         * UIProcess/API/C/WKPreferences.cpp: The C API will not change in a future patch.
201         (WKPreferencesSetMediaPlaybackRequiresUserGesture): Update the call to preferences.
202         (WKPreferencesGetMediaPlaybackRequiresUserGesture): Ditto.
203         * UIProcess/API/Cocoa/WKWebView.mm:
204         (-[WKWebView initWithFrame:configuration:]): Update the name of the key.
205         * WebProcess/WebPage/WebPage.cpp:
206         (WebKit::WebPage::updatePreferences): Ditto.
207
208 2015-05-22  Commit Queue  <commit-queue@webkit.org>
209
210         Unreviewed, rolling out r183647.
211         https://bugs.webkit.org/show_bug.cgi?id=145326
212
213         broke some toolbar blurring behavior (Requested by thorton on
214         #webkit).
215
216         Reverted changeset:
217
218         "Asynchronous (or timed-out synchronous) resize flashes white
219         instead of page background color"
220         https://bugs.webkit.org/show_bug.cgi?id=144468
221         http://trac.webkit.org/changeset/183647
222
223 2015-05-22  Yongjun Zhang  <yongjun_zhang@apple.com>
224
225         Image link doesn't create a preview view controller.
226         https://bugs.webkit.org/show_bug.cgi?id=145320
227
228         Also try to create the preview view controller if the hit-tested node
229         is a image link.
230
231         Reviewed by Beth Dakin.
232
233         * UIProcess/ios/WKContentViewInteraction.mm:
234         (-[WKContentView gestureRecognizerShouldBegin:]):
235         (-[WKContentView previewViewControllerForPosition:inSourceView:]):
236
237 2015-05-22  Tim Horton  <timothy_horton@apple.com>
238
239         Avoid doing an extra layout in some cases while doing scale-to-fit
240         https://bugs.webkit.org/show_bug.cgi?id=145321
241         <rdar://problem/21051165>
242
243         Reviewed by Beth Dakin.
244
245         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
246         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
247         (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded):
248         If we make it to scaleViewToFitDocumentIfNeeded with valid layout,
249         the view width is still less than the last-known minimum document size,
250         and the document size hasn't changed, update the view scale without
251         doing an extra layout, keeping the fixed layout size at the previously
252         computed minimum document size.
253
254 2015-05-22  Beth Dakin  <bdakin@apple.com>
255
256         Yellow highlight and DD popover don't go away when scrolling an iframe
257         https://bugs.webkit.org/show_bug.cgi?id=145312
258         -and corresponding-
259         rdar://problem/19692334
260
261         Reviewed by Tim Horton.
262
263         Match what Lookup already does for their popover and dismiss our popovers on 
264         scroll.
265         * UIProcess/API/mac/WKView.mm:
266         (-[WKView scrollWheel:]):
267
268         This should not be needed anymore.
269         * UIProcess/WebPageProxy.cpp:
270         (WebKit::WebPageProxy::pageDidScroll):
271
272 2015-05-22  Tim Horton  <timothy_horton@apple.com>
273
274         Remove action menu support
275         https://bugs.webkit.org/show_bug.cgi?id=145305
276         <rdar://problem/21070771>
277
278         Reviewed by Anders Carlsson.
279
280         * Configurations/WebKit.xcconfig:
281         * Shared/API/c/WKActionMenuItemTypes.h:
282         * Shared/API/c/WKActionMenuTypes.h:
283         * UIProcess/API/Cocoa/WKViewPrivate.h:
284         * UIProcess/API/mac/WKView.mm:
285         (-[WKView _didPerformImmediateActionHitTest:contentPreventsDefault:userData:]):
286         (-[WKView dealloc]): Deleted.
287         (-[WKView mouseDown:]): Deleted.
288         (-[WKView initWithFrame:processPool:configuration:webView:]): Deleted.
289         (-[WKView prepareForMenu:withEvent:]): Deleted.
290         (-[WKView willOpenMenu:withEvent:]): Deleted.
291         (-[WKView didCloseMenu:withEvent:]): Deleted.
292         (-[WKView _didPerformActionMenuHitTest:forImmediateAction:contentPreventsDefault:userData:]): Deleted.
293         (-[WKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:]): Deleted.
294         (-[WKView _actionMenuItemsForHitTestResult:withType:defaultActionMenuItems:userData:]): Deleted.
295         * UIProcess/API/mac/WKViewInternal.h:
296         * UIProcess/PageClient.h:
297         * UIProcess/WebPageProxy.cpp:
298         (WebKit::WebPageProxy::performImmediateActionHitTestAtLocation):
299         (WebKit::WebPageProxy::didPerformImmediateActionHitTest):
300         (WebKit::WebPageProxy::performActionMenuHitTestAtLocation): Deleted.
301         (WebKit::WebPageProxy::selectLastActionMenuRange): Deleted.
302         (WebKit::WebPageProxy::focusAndSelectLastActionMenuHitTestResult): Deleted.
303         (WebKit::WebPageProxy::didPerformActionMenuHitTest): Deleted.
304         * UIProcess/WebPageProxy.h:
305         * UIProcess/WebPageProxy.messages.in:
306         * UIProcess/mac/PageClientImpl.h:
307         * UIProcess/mac/PageClientImpl.mm:
308         (WebKit::PageClientImpl::didPerformImmediateActionHitTest):
309         (WebKit::PageClientImpl::didPerformActionMenuHitTest): Deleted.
310         * UIProcess/mac/WKActionMenuController.h: Removed.
311         * UIProcess/mac/WKActionMenuController.mm: Removed.
312         * UIProcess/mac/WKImmediateActionController.h:
313         * UIProcess/mac/WKImmediateActionController.mm:
314         (-[WKImmediateActionController didPerformImmediateActionHitTest:contentPreventsDefault:userData:]):
315         (-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
316         (-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
317         (-[WKImmediateActionController didPerformActionMenuHitTest:contentPreventsDefault:userData:]): Deleted.
318         * WebKit2.xcodeproj/project.pbxproj:
319         * WebProcess/InjectedBundle/API/APIInjectedBundlePageContextMenuClient.h:
320         (API::InjectedBundle::PageContextMenuClient::prepareForImmediateAction):
321         (API::InjectedBundle::PageContextMenuClient::prepareForActionMenu): Deleted.
322         * WebProcess/InjectedBundle/API/c/WKBundlePageContextMenuClient.h:
323         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
324         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
325         * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
326         (WebKit::InjectedBundlePageContextMenuClient::prepareForImmediateAction):
327         (WebKit::InjectedBundlePageContextMenuClient::prepareForActionMenu): Deleted.
328         * WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.h:
329         * WebProcess/WebPage/WebPage.h:
330         * WebProcess/WebPage/WebPage.messages.in:
331         * WebProcess/WebPage/WebPageOverlay.cpp:
332         (WebKit::WebPageOverlay::actionContextForResultAtPoint):
333         * WebProcess/WebPage/WebPageOverlay.h:
334         (WebKit::WebPageOverlay::Client::actionContextForResultAtPoint):
335         * WebProcess/WebPage/mac/WebPageMac.mm:
336         (WebKit::textIndicatorTransitionForImmediateAction):
337         (WebKit::WebPage::performImmediateActionHitTestAtLocation):
338         (WebKit::textIndicatorTransitionForActionMenu): Deleted.
339         (WebKit::WebPage::performActionMenuHitTestAtLocation): Deleted.
340         (WebKit::WebPage::selectLastActionMenuRange): Deleted.
341         (WebKit::WebPage::focusAndSelectLastActionMenuHitTestResult): Deleted.
342         Remove everything, except some enums that clients still refer to.
343         Also, leave SPI that used to be shared between immediate actions and
344         action menus intact, even if it had "action menu" in the name. We can
345         deprecate and rename in another patch... except for the very recently-added
346         support from r184106, which we'll revert entirely, removing WKBundlePageOverlayV2, 
347         which was not adopted by any clients.
348
349 2015-05-22  Brady Eidson  <beidson@apple.com>
350
351         Rework how the ResourceRequest user initiated property key is used.
352         Followup to https://bugs.webkit.org/show_bug.cgi?id=145281
353
354         Reviewed by Dan Bernstein.
355
356         * Shared/API/Cocoa/_WKNSURLRequestExtras.mm:
357         (-[NSURLRequest _web_isUserInitiated]):
358         (-[NSMutableURLRequest _web_setIsUserInitiated:]):
359
360         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
361         (WKResourceRequestIsUserInitiatedKey): Deleted.
362         (InitWebCoreSystemInterface): Deleted.
363
364 2015-05-21  Gavin Barraclough  <barraclough@apple.com>
365
366         Networking process sometimes suspended while WebContent runnable
367         https://bugs.webkit.org/show_bug.cgi?id=145291
368         <rdar://problem/21033029>
369
370         Reviewed by Andreas Kling.
371
372         There is an asymmetry in how the Networking process suspension is managed.
373         We drop the assertion (& suspend the process) whenever the WebProcess says
374         it is ready to suspend, but we only take the assertion (& resume execution)
375         when the WebContent process is actually resumed. This leaves a race – where
376         the WebContent process was willing to be suspended, but the UI app changed
377         its mind suspending it. Since the WebContent process never actually suspended
378         (we only prepared it to), we never send a resume, and since we never resume,
379         we never wake the Networking process.
380
381         The fix is pretty clean. A web process should take a token on the networking
382         process precisely whenever it holds an assertion on the web content process.
383         This also enables a nice refinement, that when holding a BG assertion on the
384         WebContent process we only need to hold a BG assertion on the networking
385         process.
386
387         * UIProcess/Network/NetworkProcessProxy.cpp:
388         (WebKit::NetworkProcessProxy::didSetAssertionState):
389             - no-op
390         * UIProcess/Network/NetworkProcessProxy.h:
391             - added didSetAssertionState.
392         * UIProcess/ProcessThrottler.cpp:
393         (WebKit::ProcessThrottler::updateAssertionNow):
394         (WebKit::ProcessThrottler::updateAssertion):
395         (WebKit::ProcessThrottler::didConnectToProcess):
396             - whenever taking/updating the assertion, inform the client via didSetAssertionState.
397         * UIProcess/ProcessThrottlerClient.h:
398             - added didSetAssertionState.
399         * UIProcess/WebProcessProxy.cpp:
400         (WebKit::WebProcessProxy::didFinishLaunching):
401             removed initializeNetworkProcessActivityToken - this is taken via ProcessThrottler::didConnectToProcess.
402         (WebKit::WebProcessProxy::sendProcessDidResume):
403             - removed call to initializeNetworkProcessActivityToken - updated via didSetAssertionState.
404         (WebKit::WebProcessProxy::processReadyToSuspend):
405             - removed update of m_tokenForNetworkProcess - updated via didSetAssertionState.
406         (WebKit::WebProcessProxy::didSetAssertionState):
407             - update m_backgroundTokenForNetworkProcess/m_foregroundTokenForNetworkProcess.
408         (WebKit::WebProcessProxy::initializeNetworkProcessActivityToken): Deleted.
409             - updated via didSetAssertionState.
410         * UIProcess/WebProcessProxy.h:
411             - added didSetAssertionState, added separate FG/BG activity tokens for Networking process.
412
413 2015-05-22  Dan Bernstein  <mitz@apple.com>
414
415         Fixed the fix for <rdar://problem/20830673> Symlink the WebKit dylib instead of just the framework directory
416         https://bugs.webkit.org/show_bug.cgi?id=145287
417
418         Reviewed by Anders Carlsson.
419
420         * WebKit2.xcodeproj/project.pbxproj: Give the symlink the correct destination.
421
422 2015-05-21  Brady Eidson  <beidson@apple.com>
423
424         Add an "initiated by user gesture" flag to ResourceRequest.
425         https://bugs.webkit.org/show_bug.cgi?id=145281
426
427         Reviewed by Alex Christensen.
428
429         Expose a new category on NSURLRequest to allow SPI clients to easily set/get the flag:
430         * Shared/API/Cocoa/_WKNSURLRequestExtras.h: Added.
431         * Shared/API/Cocoa/_WKNSURLRequestExtras.mm: Added.
432         (-[NSURLRequest _web_isUserInitiated]):
433         (-[NSMutableURLRequest _web_setIsUserInitiated:]):
434
435         * WebKit2.xcodeproj/project.pbxproj:
436
437         Expose the new property key to WebCore:
438         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
439         (WKResourceRequestIsUserInitiatedKey):
440         (InitWebCoreSystemInterface):
441
442 2015-05-21  Daniel Bates  <dabates@apple.com>
443
444         Rollout <http://trac.webkit.org/changeset/183909>
445         (https://bugs.webkit.org/show_bug.cgi?id=144657)
446
447         Revert <http://trac.webkit.org/changeset/183909> since pausing the database
448         thread prevents in-progress transactions from completing. We need to think
449         about this change some more.
450
451         * UIProcess/WebPageProxy.h:
452         * UIProcess/ios/WKContentView.mm:
453         (-[WKContentView _applicationDidEnterBackground:]): Deleted.
454         * UIProcess/ios/WebPageProxyIOS.mm:
455         (WebKit::WebPageProxy::applicationDidEnterBackground): Deleted.
456         * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
457         (WebKit::WebDatabaseManager::setPauseAllDatabases): Deleted.
458         * WebProcess/WebCoreSupport/WebDatabaseManager.h:
459         * WebProcess/WebPage/WebPage.h:
460         * WebProcess/WebPage/WebPage.messages.in:
461         * WebProcess/WebPage/ios/WebPageIOS.mm:
462         (WebKit::WebPage::applicationWillEnterForeground): Deleted.
463         (WebKit::WebPage::applicationDidEnterBackground): Deleted.
464
465 2015-05-21  Enrica Casucci  <enrica@apple.com>
466
467         [iOS] Crash when taking a snapshot of a large PDF.
468         https://bugs.webkit.org/show_bug.cgi?id=145286
469         rdar://problem/20892362
470
471         Reviewed by Tim Horton.
472
473         The code for the PDF case was incorrectly computing the snapshot rect.
474         On top of that drawViewHierarchyInRect was ignoring the rect and
475         always creating an image using the view bounds causing the crash.
476         We are now always using the IOSurface if we are parented or
477         an image context when we are not.
478
479         * UIProcess/API/Cocoa/WKWebView.mm:
480         (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
481
482 2015-05-21  Anders Carlsson  <andersca@apple.com>
483
484         Symlink the WebKit dylib instead of just the framework directory
485         https://bugs.webkit.org/show_bug.cgi?id=145287
486         rdar://problem/20830673
487
488         Reviewed by Dan Bernstein.
489
490         * WebKit2.xcodeproj/project.pbxproj:
491
492 2015-05-21  Anders Carlsson  <andersca@apple.com>
493
494         WKWebsiteDataStore doesn't track and remove iOS Safari's offline application cache entries
495         https://bugs.webkit.org/show_bug.cgi?id=145279
496         rdar://problem/20657912
497
498         Reviewed by Dan Bernstein.
499
500         Special-case iOS Safari and WebApp when computing the default application cache directory.
501
502         * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
503         (API::applicationCacheDirectory):
504         (API::WebsiteDataStore::defaultDataStoreConfiguration):
505
506 2015-05-21  Brian Weinstein  <bweinstein@apple.com>
507
508         Add a _WKWebKitContentExtensionStore initializer that takes a path.
509         https://bugs.webkit.org/show_bug.cgi?id=145269 and work towards <rdar://problem/21031414>
510
511         Reviewed by Anders Carlsson.
512
513         * UIProcess/API/APIUserContentExtensionStore.cpp:
514         (API::UserContentExtensionStore::storeWithPath):
515         * UIProcess/API/APIUserContentExtensionStore.h:
516         * UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
517         * UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
518         (+[_WKUserContentExtensionStore storeWithURL:]):
519
520 2015-05-21  Alexey Proskuryakov  <ap@apple.com>
521
522         Build fix. Silence some deprecation warnings.
523
524         * UIProcess/ios/forms/WKFileUploadPanel.mm:
525         (-[WKFileUploadPanel _presentPopoverWithContentViewController:animated:]):
526         * UIProcess/ios/forms/WKFormInputControl.mm:
527         (-[WKDateTimePopover initWithView:datePickerMode:]):
528         * UIProcess/ios/forms/WKFormPopover.h:
529         * UIProcess/ios/forms/WKFormPopover.mm:
530         * UIProcess/ios/forms/WKFormSelectPopover.mm:
531         (-[WKSelectPopover initWithView:hasGroups:]):
532
533 2015-05-21  Csaba Osztrogonác  <ossy@webkit.org>
534
535         [EFL] Remove an unused private field from EwkPopupMenuItem class
536         https://bugs.webkit.org/show_bug.cgi?id=145249
537
538         Reviewed by Gyuyoung Kim.
539
540         * UIProcess/API/efl/ewk_popup_menu.cpp:
541         (EwkPopupMenu::EwkPopupMenu):
542         * UIProcess/API/efl/ewk_popup_menu_private.h:
543
544 2015-05-21  Csaba Osztrogonác  <ossy@webkit.org>
545
546         [EFL] Fix mismatched-tags warnings in UIProcess/API/efl
547         https://bugs.webkit.org/show_bug.cgi?id=145129
548
549         Reviewed by Gyuyoung Kim.
550
551         * UIProcess/API/efl/EwkViewCallbacks.h:
552         * UIProcess/API/efl/ewk_application_cache_manager.h:
553         * UIProcess/API/efl/ewk_auth_request.h:
554         * UIProcess/API/efl/ewk_back_forward_list.h:
555         * UIProcess/API/efl/ewk_back_forward_list_item.h:
556         * UIProcess/API/efl/ewk_color_picker.h:
557         * UIProcess/API/efl/ewk_context.h:
558         * UIProcess/API/efl/ewk_context_menu_item.h:
559         * UIProcess/API/efl/ewk_cookie_manager.h:
560         * UIProcess/API/efl/ewk_database_manager.h:
561         * UIProcess/API/efl/ewk_download_job.h:
562         * UIProcess/API/efl/ewk_error.h:
563         * UIProcess/API/efl/ewk_favicon_database.h:
564         * UIProcess/API/efl/ewk_file_chooser_request.h:
565         * UIProcess/API/efl/ewk_form_submission_request.h:
566         * UIProcess/API/efl/ewk_navigation_data.h:
567         * UIProcess/API/efl/ewk_navigation_policy_decision.h:
568         * UIProcess/API/efl/ewk_object.h:
569         * UIProcess/API/efl/ewk_page_group.h:
570         * UIProcess/API/efl/ewk_popup_menu.h:
571         * UIProcess/API/efl/ewk_popup_menu_item.h:
572         * UIProcess/API/efl/ewk_security_origin.h:
573         * UIProcess/API/efl/ewk_settings.h:
574         * UIProcess/API/efl/ewk_storage_manager.h:
575         * UIProcess/API/efl/ewk_url_request.h:
576         * UIProcess/API/efl/ewk_url_response.h:
577         * UIProcess/API/efl/ewk_url_scheme_request.h:
578         * UIProcess/API/efl/ewk_view.h:
579         * UIProcess/API/efl/ewk_window_features.h:
580         * WebProcess/InjectedBundle/API/efl/ewk_extension.h:
581         * WebProcess/InjectedBundle/API/efl/ewk_page.h:
582
583 2015-05-21  Csaba Osztrogonác  <ossy@webkit.org>
584
585         Fix mismatched-tags warnings related to CoordinatedGraphics
586         https://bugs.webkit.org/show_bug.cgi?id=145130
587
588         Reviewed by Darin Adler.
589
590         * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
591         * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in:
592         * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
593
594 2015-05-20  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
595
596         Unreviewed GTK build fix since r184686.
597
598         * UIProcess/gtk/WebProcessPoolGtk.cpp:
599         (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Add *legacy* prefix.
600         (WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory): Deleted.
601
602 2015-05-20  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
603
604         Unreviewed EFL build fix since r184686.
605
606         * UIProcess/efl/WebProcessPoolEfl.cpp:
607         (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Add *legacy* prefix.
608         (WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory): Deleted.
609
610 2015-05-20  Chris Dumez  <cdumez@apple.com>
611
612         [WK2][iOS] Update WebContent process sandbox profile for AWD logging
613         https://bugs.webkit.org/show_bug.cgi?id=145229
614         <rdar://problem/20543269>
615
616         Reviewed by Alexey Proskuryakov.
617
618         * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
619
620 2015-05-20  Gavin Barraclough  <barraclough@apple.com>
621
622         dispatchViewStateChange should not wait for sync reply if the page isn't visible
623         https://bugs.webkit.org/show_bug.cgi?id=145242
624         <rdar://problem/20967937>
625
626         Reviewed by Ben Poulain.
627
628         This is particularly problematic on iOS, since if the page isn't visible the process is likely suspended.
629
630
631         * UIProcess/WebPageProxy.cpp:
632         (WebKit::WebPageProxy::dispatchViewStateChange):
633         (WebKit::WebPageProxy::waitForDidUpdateViewState):
634
635 2015-05-20  Marcos Chavarría Teijeiro  <mchavarria@igalia.com>
636
637         Enable disk cache for range requests
638         https://bugs.webkit.org/show_bug.cgi?id=144682
639
640         Reviewed by Antti Koivisto.
641
642         Add Range header value to the network cache key constructor so we take
643         into account this value. The 206 response code is also marked to be cached.
644
645         * NetworkProcess/cache/NetworkCache.cpp:
646         (WebKit::NetworkCache::makeCacheKey):
647         (WebKit::NetworkCache::isStatusCodeCacheableByDefault):
648         * NetworkProcess/cache/NetworkCacheKey.cpp:
649         (WebKit::NetworkCache::Key::Key):
650         (WebKit::NetworkCache::Key::operator=):
651         (WebKit::NetworkCache::Key::computeHash):
652         (WebKit::NetworkCache::Key::operator==):
653         (WebKit::NetworkCache::Key::encode):
654         (WebKit::NetworkCache::Key::decode):
655         (WebKit::NetworkCache::Key::stringToHash): Deleted.
656         * NetworkProcess/cache/NetworkCacheKey.h:
657
658 2015-05-20  Anders Carlsson  <andersca@apple.com>
659
660         WKWebsiteDataStore API doesn't report webkit.org as using Databases or App Cache after visiting http://www.webkit.org/demos/sticky-notes/
661         https://bugs.webkit.org/show_bug.cgi?id=145238
662         rdar://problem/20581175
663
664         Reviewed by Tim Horton.
665
666         Make sure to set the application cache and WebSQL directories when using the legacy data store.
667
668         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
669         (WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory):
670         (WebKit::WebProcessPool::platformDefaultApplicationCacheDirectory):
671         Rename this and move it to the right place.
672
673         * UIProcess/WebProcessPool.cpp:
674         (WebKit::legacyWebsiteDataStoreConfiguration):
675         Rename this and add the application cache and WebSQL directories.
676
677         (WebKit::WebProcessPool::WebProcessPool):
678         Call legacyWebsiteDataStoreConfiguration.
679
680         (WebKit::WebProcessPool::applicationCacheDirectory):
681         Call legacyPlatformDefaultApplicationCacheDirectory.
682
683         * UIProcess/WebProcessPool.h:
684
685 2015-05-20  Enrica Casucci  <enrica@apple.com>
686
687         [iOS] Using CSS viewport units causes incorrect layout.
688         https://bugs.webkit.org/show_bug.cgi?id=145225
689         rdar://problem/20924495
690
691         Reviewed by Benjamin Poulain.
692
693         * WebProcess/WebPage/ios/WebPageIOS.mm:
694         (WebKit::WebPage::updateViewportSizeForCSSViewportUnits):
695
696 2015-05-20  Tim Horton  <timothy_horton@apple.com>
697
698         Allow overriding the waitForDidUpdateViewState timeout
699         https://bugs.webkit.org/show_bug.cgi?id=145230
700         <rdar://problem/20990162>
701
702         Reviewed by Darin Adler.
703
704         * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
705         (WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
706         Use the value from NSUserDefaults, if it exists.
707         We'll only check once, so changing the default requires a restart of the UI process.
708
709 2015-05-20  Anders Carlsson  <andersca@apple.com>
710
711         Make sure we always have a process pool to perform data store operations with
712         https://bugs.webkit.org/show_bug.cgi?id=145231
713         rdar://problem/20618248
714
715         Reviewed by Tim Horton.
716
717         Make sure that we always return a process pool. If we're a legacy C SPI per-context data store,
718         find the process pool we're a part of and use that. Otherwise, create a new one.
719     
720         * UIProcess/WebsiteData/WebsiteDataStore.cpp:
721         (WebKit::WebsiteDataStore::processPools):
722
723 2015-05-19  Jer Noble  <jer.noble@apple.com>
724
725         Touching HTMLMediaElement.h or MediaPlayer.h causes a world rebuild.
726         https://bugs.webkit.org/show_bug.cgi?id=145193
727
728         Reviewed by Eric Carlson.
729
730         Use HTMLMediaElementEnums instead of HTMLMediaElement.
731
732         * UIProcess/API/Cocoa/WKWebView.mm:
733         (-[WKWebView _isShowingVideoOptimized]): HTMLMediaElement -> HTMLMediaElementEnums.
734         * UIProcess/ios/WebVideoFullscreenManagerProxy.h:
735         * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in:
736         * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
737         (WebKit::WebVideoFullscreenManagerProxy::hasMode): Ditto.
738         (WebKit::WebVideoFullscreenModelContext::fullscreenModeChanged): Ditto.
739         (WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID): Ditto.
740         (WebKit::WebVideoFullscreenManagerProxy::fullscreenModeChanged): Ditto.
741         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
742         (WebKit::WebChromeClient::enterVideoFullscreenForVideoElement): Ditto.
743         * WebProcess/WebCoreSupport/WebChromeClient.h:
744         * WebProcess/ios/WebVideoFullscreenManager.h:
745         (WebKit::WebVideoFullscreenInterfaceContext::fullscreenMode): Ditto.
746         (WebKit::WebVideoFullscreenInterfaceContext::setFullscreenMode): Ditto.
747         * WebProcess/ios/WebVideoFullscreenManager.messages.in:
748         * WebProcess/ios/WebVideoFullscreenManager.mm:
749         (WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement): Ditto.
750         (WebKit::WebVideoFullscreenManager::fullscreenModeChanged): Ditto.
751         (WebKit::WebVideoFullscreenManager::didCleanupFullscreen): Ditto.
752
753 2015-05-20  Anders Carlsson  <andersca@apple.com>
754
755         Refactor process pool enumeration code in WebsiteDataStore
756         https://bugs.webkit.org/show_bug.cgi?id=145218
757
758         Reviewed by Tim Horton.
759
760         Also make sure to keep the WebProcessPool objects alive for the duration of the various data store
761         operations. This is the first step towards having the data store create a single process pool lazily if
762         there are no web views associated with the data store.
763
764         * UIProcess/WebsiteData/WebsiteDataStore.cpp:
765         (WebKit::WebsiteDataStore::fetchData):
766         (WebKit::WebsiteDataStore::removeData):
767         (WebKit::WebsiteDataStore::processPools):
768         * UIProcess/WebsiteData/WebsiteDataStore.h:
769
770 2015-05-20  Alex Christensen  <achristensen@webkit.org>
771
772         [Content Extensions] Relax restrictions on triggers that match everything.
773         https://bugs.webkit.org/show_bug.cgi?id=145069
774
775         Reviewed by Benjamin Poulain.
776
777         * UIProcess/API/APIUserContentExtensionStore.h:
778         Increment version number to reflect changes in DFABytecode.
779
780 2015-05-20  Sungmann Cho  <sungmann.cho@navercorp.com>
781
782         Minor cleanups to PluginProcessProxy.
783         https://bugs.webkit.org/show_bug.cgi?id=145199
784
785         Reviewed by Anders Carlsson.
786
787         1. Remove unnecessary forward declaration.
788         2. Remove unnecessary #include.
789
790         * UIProcess/Plugins/PluginProcessProxy.cpp:
791         * UIProcess/Plugins/PluginProcessProxy.h:
792
793 2015-05-20  Marcos Chavarría Teijeiro  <mchavarria@igalia.com>
794
795         [GTK] Add some documentation to WebKitWebExtension
796         https://bugs.webkit.org/show_bug.cgi?id=142786
797
798         Reviewed by Carlos Garcia Campos.
799
800         WebKitWebExtension API documentation lacks of some details and the information
801         available is in some contributors blog posts. I add the section
802         documentation with a small guide about how to use WebExtensions.
803
804         The code examples were taken from Carlos García and Adrián Pérez blog
805         posts.
806
807         * WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp:
808
809 2015-05-20  Sungmann Cho  <sungmann.cho@navercorp.com>
810
811         Rename WebsiteDataStore::isNonPersistent() to WebsiteDataStore::isPersistent().
812         https://bugs.webkit.org/show_bug.cgi?id=145111
813
814         Reviewed by Darin Adler.
815
816         This is a follow up to https://bugs.webkit.org/show_bug.cgi?id=144158.
817
818         * UIProcess/API/APIWebsiteDataStore.cpp:
819         (API::WebsiteDataStore::isPersistent):
820         * UIProcess/WebsiteData/WebsiteDataStore.cpp:
821         (WebKit::WebsiteDataStore::fetchData):
822         (WebKit::WebsiteDataStore::removeData):
823         * UIProcess/WebsiteData/WebsiteDataStore.h:
824         (WebKit::WebsiteDataStore::isPersistent):
825         (WebKit::WebsiteDataStore::isNonPersistent): Deleted.
826
827 2015-05-20  Hyungwook Lee  <hyungwook.lee@navercorp.com>
828
829         [EFL] Fix build failure, linker does not find libXext.
830         https://bugs.webkit.org/show_bug.cgi?id=144100
831
832         Reviewed by Gyuyoung Kim.
833
834         Move Xext library from WebProcess_LIBRARIES to WebKit2_LIBRARIES.
835
836         * PlatformEfl.cmake:
837
838 2015-05-19  Carlos Garcia Campos  <cgarcia@igalia.com>
839
840         [SOUP] Network Cache: Implement ShareableResource for Soup and enable it for GTK platform
841         https://bugs.webkit.org/show_bug.cgi?id=144380
842
843         Reviewed by Antti Koivisto.
844
845         It improves the network cache performance, by mmaping big
846         resources and sending only the file descriptor to the web process
847         instead of the actual file data. It needs some changes in
848         cross-platform code, because we can't use the same approach as
849         mac (it uses a platform specific implementation not available in
850         other platforms).
851
852         * NetworkProcess/cache/NetworkCache.cpp:
853         (WebKit::NetworkCache::Cache::store): Use
854         Data::tryCreateSharedMemory() to create the shared memory used by
855         the ShareableResource. Also add an ASSERT instead of checking the
856         shareable resource created is not nullptr, because the
857         ShareableResource::create() that receives a shared memory should
858         never return nullptr.
859         * NetworkProcess/cache/NetworkCacheData.h:
860         * NetworkProcess/cache/NetworkCacheDataCocoa.mm:
861         (WebKit::NetworkCache::Data::tryCreateSharedMemory):
862         * NetworkProcess/cache/NetworkCacheDataSoup.cpp:
863         (WebKit::NetworkCache::Data::tryCreateSharedMemory): Create a
864         SharedMemory object to wrap the mapped file, but keeping the ownership.
865         * NetworkProcess/cache/NetworkCacheEntry.cpp:
866         (WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
867         Use Data::tryCreateSharedMemory() to create the shared memory used
868         bythe ShareableResource. Also add an ASSERT instead of checking
869         the shareable resource created is not nullptr, because the
870         ShareableResource::create() that receives a shared memory should
871         never return nullptr.
872         * Platform/SharedMemory.h:
873         * Platform/unix/SharedMemoryUnix.cpp:
874         (WebKit::SharedMemory::map): Use wrapMap() and initialize
875         m_isWrappingMap to false.
876         (WebKit::SharedMemory::wrapMap): Create a SharedMemory object for
877         the given map, without taking its ownership.
878         (WebKit::SharedMemory::~SharedMemory): Do not unmap and close the
879         file descriptor if m_isWrappingMap is true.
880         * Shared/ShareableResource.cpp:
881         (WebKit::createShareableResourceDeallocator):
882         (WebKit::ShareableResource::wrapInSharedBuffer): Create a SharedBuffer
883         wrapping the ShareableResource data.
884         (WebKit::ShareableResource::Handle::tryWrapInSharedBuffer): Create
885         a ShareableResource for the handle and create a SharedBuffer
886         wrapping it.
887         * Shared/ShareableResource.h:
888         * WebKit2Prefix.h: Enable ENABLE_SHAREABLE_RESOURCE for GTK.
889         * WebProcess/Network/WebResourceLoader.cpp:
890         (WebKit::WebResourceLoader::didReceiveResource): Get the CFData
891         from the SharedBuffer for QuickLook instead of wrapping the handle again.
892
893 2015-05-19  Carlos Garcia Campos  <cgarcia@igalia.com>
894
895         [SOUP] Network Cache: Disable network cache efficacy logging
896         https://bugs.webkit.org/show_bug.cgi?id=145172
897
898         Reviewed by Martin Robinson.
899
900         Disable network cache efficacy logging by default, since we are
901         not currently using the collected data.
902
903         * UIProcess/soup/WebProcessPoolSoup.cpp:
904         (WebKit::WebProcessPool::platformInitializeNetworkProcess):
905
906 2015-05-19  Michael Saboff  <msaboff@apple.com>
907
908         REGRESSION(183787): JIT is enabled for all builds
909         https://bugs.webkit.org/show_bug.cgi?id=145179
910
911         Reviewed by Geoffrey Garen.
912
913         Eliminated the setting of ENABLE_JIT, as wtf/Platform.h has appropriate logic to
914         set it depending on OS and CPU type.
915
916         * Configurations/FeatureDefines.xcconfig:
917
918 2015-05-19  Brady Eidson  <beidson@apple.com>
919
920         X-Frame-Options headers not respected when loading from application cache.
921         <rdar://problem/14877623> and https://bugs.webkit.org/show_bug.cgi?id=131800
922
923         Reviewed by Alexey Proskuryakov.
924
925         * WebProcess/WebPage/WebPage.cpp:
926         (WebKit::WebPage::loadDataImpl):
927
928 2015-05-19  Sungmann Cho  <sungmann.cho@navercorp.com>
929
930         Add PLUGIN_ARCHITECTURE(MAC) around WKNVCALayerRenderServerPort in NetscapeBrowserFunc.h.
931         https://bugs.webkit.org/show_bug.cgi?id=145173
932
933         Reviewed by Anders Carlsson.
934
935         WKNVCALayerRenderServerPort in NetscapeBrowserFunc.h is meaningful only for Mac.
936         So we need to add PLUGIN_ARCHITECTURE(MAC) around it.
937
938         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.h:
939
940 2015-05-19  Brent Fulgham  <bfulgham@apple.com>
941
942         REGRESSION(142590): Part 2: Scroll-snap points are improperly snapping to earlier index values (Scrolling Thread) 
943         https://bugs.webkit.org/show_bug.cgi?id=145175
944         <rdar://problem/21023785>
945
946         Reviewed by Beth Dakin.
947
948         Add a stub implementation of isScrollSnapInProgress to match ScrollingCoordinator signature.
949
950         * WebProcess/Scrolling/RemoteScrollingCoordinator.h:
951         * WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
952         (WebKit::RemoteScrollingCoordinator::isScrollSnapInProgress): Added stub.
953
954 2015-05-19  Jeremy Jones  <jeremyj@apple.com>
955
956         WebVideoFullscreenManagerProxy has incorrect OS_VERSION_MIN_REQUIRED conditionals.
957         https://bugs.webkit.org/show_bug.cgi?id=145158
958
959         Reviewed by Eric Carlson.
960
961         * UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
962         (WebKit::WebVideoFullscreenManagerProxy::setVideoLayerFrame):
963
964 2015-05-19  Ting-Wei Lan  <lantw44@gmail.com>
965
966         [SOUP] Use st_birthtime to get creation time of files on systems support it
967         https://bugs.webkit.org/show_bug.cgi?id=144989
968
969         Reviewed by Carlos Garcia Campos.
970
971         FreeBSD and NetBSD have either st_birthtime field or compatiblity macro
972         with the same name in stat. It is better to use it instead of manually
973         setting xattr, which is unreliable because both operating systems and
974         file systems support are required.
975
976         * NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
977         (WebKit::NetworkCache::fileTimes):
978         * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
979         (WebKit::NetworkCache::IOChannel::IOChannel):
980
981 2015-05-19  Chris Dumez  <cdumez@apple.com>
982
983         Mark static variables as const when possible
984         https://bugs.webkit.org/show_bug.cgi?id=145161
985
986         Reviewed by Andreas Kling.
987
988         * Platform/IPC/MessageEncoder.cpp:
989         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
990         (WebKit::networkProcessLatencyQOS):
991         (WebKit::networkProcessThroughputQOS):
992         (WebKit::webProcessLatencyQOS):
993         (WebKit::webProcessThroughputQOS):
994         * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
995         (WebKit::PluginProcessProxy::pluginNeedsExecutableHeap):
996         (WebKit::pluginProcessLatencyQOS):
997         (WebKit::pluginProcessThroughputQOS):
998         * WebProcess/WebPage/WebPage.cpp:
999
1000 2015-05-18  Michael Catanzaro  <mcatanzaro@igalia.com>
1001
1002         [CMake] Ignore warnings in system headers
1003         https://bugs.webkit.org/show_bug.cgi?id=144747
1004
1005         Reviewed by Darin Adler.
1006
1007         Separate include directories into WebKit project includes and system includes. Suppress all
1008         warnings from headers in system include directories using the SYSTEM argument to
1009         the include_directories command.
1010
1011         * CMakeLists.txt:
1012         * PlatformEfl.cmake:
1013         * PlatformGTK.cmake:
1014
1015 2015-05-18  Csaba Osztrogonác  <ossy@webkit.org>
1016
1017         Fix return-type warnings in test_ewk2_color_picker.cpp
1018         https://bugs.webkit.org/show_bug.cgi?id=145122
1019
1020         Reviewed by Gyuyoung Kim.
1021
1022         * UIProcess/API/efl/tests/test_ewk2_color_picker.cpp:
1023         (EWK2ColorPickerTest::hideColorPicker):
1024         (EWK2ColorPickerTest::hideColorPickerByRemovingElement):
1025
1026 2015-05-18  Skachkov Alexandr  <gskachkov@gmail.com>
1027
1028         [ES6] Arrow function syntax. Feature flag for arrow function
1029         https://bugs.webkit.org/show_bug.cgi?id=145108
1030
1031         Reviewed by Ryosuke Niwa.
1032
1033         Added feature flag ENABLE_ES6_ARROWFUNCTION_SYNTAX for arrow function
1034
1035         * Configurations/FeatureDefines.xcconfig:
1036
1037 2015-05-18  Anders Carlsson  <andersca@apple.com>
1038
1039         WKWebsiteDataStore should fully support session storage
1040         https://bugs.webkit.org/show_bug.cgi?id=145145
1041         rdar://problem/10690447
1042
1043         Reviewed by Sam Weinig.
1044
1045         Add a session store data type and handle it when clearing and fetching data.
1046
1047         * Shared/WebsiteData/WebsiteDataTypes.h:
1048         * UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
1049         * UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:
1050         (dataTypesToString):
1051         * UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:
1052         (WebKit::toWebsiteDataTypes):
1053         (WebKit::toWKWebsiteDataTypes):
1054         * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
1055         (+[WKWebsiteDataStore allWebsiteDataTypes]):
1056         * UIProcess/Storage/StorageManager.cpp:
1057         (WebKit::StorageManager::SessionStorageNamespace::origins):
1058         (WebKit::StorageManager::SessionStorageNamespace::clearStorageAreasMatchingOrigin):
1059         (WebKit::StorageManager::SessionStorageNamespace::clearAllStorageAreas):
1060         (WebKit::StorageManager::getSessionStorageOrigins):
1061         (WebKit::StorageManager::deleteSessionStorageOrigins):
1062         (WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
1063         * UIProcess/Storage/StorageManager.h:
1064         * UIProcess/WebsiteData/WebsiteDataStore.cpp:
1065         (WebKit::WebsiteDataStore::fetchData):
1066         (WebKit::WebsiteDataStore::removeData):
1067
1068 2015-05-18  Brady Eidson  <beidson@apple.com>
1069
1070         Followup to: Networking process on iOS can be suspended and never exit
1071         https://bugs.webkit.org/show_bug.cgi?id=144971.
1072
1073         Unreviewed. Fixing API tests that revealed the unintentional change in behavior.
1074
1075         * Shared/ChildProcessProxy.cpp:
1076         (WebKit::ChildProcessProxy::shutDownProcess): The on WebProcessProxy code path that this
1077           was adopted from had an m_connection null check, and that null check needs to remain.
1078
1079 2015-05-18  Csaba Osztrogonác  <ossy@webkit.org>
1080
1081         [GTK] URTBF after r184503.
1082
1083         * PlatformGTK.cmake:
1084
1085 2015-05-18  Brady Eidson  <beidson@apple.com>
1086
1087         Networking process on iOS can be suspended and never exit.
1088         <rdar://problem/20368630> and https://bugs.webkit.org/show_bug.cgi?id=144971
1089
1090         Reviewed by Darin Adler.
1091
1092         There's a few issues here.
1093         
1094         1 - When the NetworkProcessProxy goes away, it takes its process assertion with it. This causes
1095             the Network process to suspend indefinitely, unable to ever respond to IPC::Connection callbacks.
1096             We already solved this with WebProcess with a watchdog timer keeping both the process assertion
1097             and xpc_connection alive while the process shuts down. This patch expands that to the network
1098             process, and it will be easy to expand that to database and plugin processes doing forward.
1099         
1100         2 - All of our child processes either decide to self-terminate or listen for their connection to
1101             close at which point they terminate. This leads to various races. We should
1102             move to a model where the UI process explicitly tells them to shutdown, and this patch starts us 
1103             down that path.
1104         
1105         * CMakeLists.txt:
1106         * DerivedSources.make:
1107         * WebKit2.xcodeproj/project.pbxproj:
1108         
1109         * NetworkProcess/NetworkProcess.cpp:
1110         (WebKit::NetworkProcess::didReceiveMessage): Send ChildProcess messages to ChildProcess.
1111         
1112         * Shared/ChildProcess.cpp:
1113         (WebKit::ChildProcess::shutDown): For now, just terminate the process. In the future have the
1114           process do cleanup work before it is terminated.
1115         * Shared/ChildProcess.h:
1116         * Shared/ChildProcess.messages.in: Added.
1117         
1118         * Shared/ChildProcessProxy.cpp:
1119         (WebKit::ChildProcessProxy::shutDownProcess): Set a watchdog and - if possible - explicitly message 
1120           the process to ShutDown.
1121         (WebKit::ChildProcessProxy::abortProcessLaunchIfNeeded): Deleted.
1122         * Shared/ChildProcessProxy.h:
1123         
1124         * UIProcess/WebProcessPool.cpp:
1125         (WebKit::WebProcessPool::~WebProcessPool): Explicitly tell the network process to shut down.
1126         
1127         * UIProcess/WebProcessProxy.cpp:
1128         (WebKit::WebProcessProxy::removeWebPage): Move abortProcessLaunchIfNeeded() and the watchdog timer
1129           code to ChildProcessProxy::shutDownProcess.
1130         
1131         * WebProcess/WebProcess.cpp:
1132         (WebKit::WebProcess::didReceiveMessage): Send ChildProcess messages to ChildProcess::didReceiveMessage.
1133
1134 2015-05-17  Carlos Garcia Campos  <cgarcia@igalia.com>
1135
1136         Network Cache: Make Data::adoptMap take the ownership of the file descriptor
1137         https://bugs.webkit.org/show_bug.cgi?id=144950
1138
1139         Reviewed by Antti Koivisto.
1140
1141         It will be required to implement ShareableResource for soup
1142         network backend. Also move the common code of Data to a common
1143         file and add mapToFile(). The mapFile version that receives a file
1144         descriptor has been renamed to adoptAndMapFile().
1145
1146         * CMakeLists.txt: Add new file to compilation.
1147         * NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
1148         (WebKit::NetworkCache::BlobStorage::add): Use mapToFile().
1149         * NetworkProcess/cache/NetworkCacheData.cpp: Added.
1150         (WebKit::NetworkCache::Data::mapToFile): Write the data to the
1151         given file and map it.
1152         (WebKit::NetworkCache::mapFile):
1153         (WebKit::NetworkCache::adoptAndMapFile):
1154         (WebKit::NetworkCache::computeSHA1):
1155         (WebKit::NetworkCache::bytesEqual):
1156         * NetworkProcess/cache/NetworkCacheData.h:
1157         * NetworkProcess/cache/NetworkCacheDataCocoa.mm:
1158         (WebKit::NetworkCache::Data::adoptMap): Close the file descriptor.
1159         * NetworkProcess/cache/NetworkCacheDataSoup.cpp:
1160         (WebKit::NetworkCache::Data::Data): Use a constructor that
1161         receives a file descriptor instead of the one receiving
1162         Backing. If the file descriptor is not -1 then the Data is a map.
1163         (WebKit::NetworkCache::MapWrapper::~MapWrapper): Also close the
1164         file descriptor.
1165         (WebKit::NetworkCache::Data::adoptMap): Pass the file descriptor
1166         to the MapWrapper and create the Data passing the file descriptor.
1167         * UIProcess/API/APIUserContentExtensionStore.cpp:
1168         (API::openAndMapContentExtension): Use mapFile that receives a
1169         file path.
1170         (API::compiledToFile): Use adoptAndMapFile() and don't close the
1171         descriptor.
1172
1173 2015-05-16  Andy Estes  <aestes@apple.com>
1174
1175         [iOS] WKPDFView should not follow javascript: links
1176         https://bugs.webkit.org/show_bug.cgi?id=145101
1177
1178         Reviewed by Dan Bernstein.
1179
1180         * UIProcess/WebPageProxy.cpp:
1181         (WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick): Returned early if url's protocol is javascript:.
1182         (WebKit::WebPageProxy::navigateToURLWithSimulatedClick): Renamed to navigateToPDFLinkWithSimulatedClick to
1183         reflect that this function is exclusively for following PDF links.
1184         * UIProcess/WebPageProxy.h:
1185         * UIProcess/ios/WKPDFView.mm:
1186         (-[WKPDFView annotation:wasTouchedAtPoint:controller:]):
1187         (-[WKPDFView actionSheetAssistant:openElementAtLocation:]):
1188         * WebProcess/WebPage/WebPage.cpp:
1189         (WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): Renamed from navigateToURLWithSimulatedClick.
1190         (WebKit::WebPage::navigateToURLWithSimulatedClick): Renamed to navigateToPDFLinkWithSimulatedClick.
1191         * WebProcess/WebPage/WebPage.h:
1192         * WebProcess/WebPage/WebPage.messages.in:
1193
1194 2015-05-16  Brent Fulgham  <bfulgham@apple.com>
1195
1196         [iOS] Remote scrolling tree needs to coordinate scroll snap state during resize/rotations
1197         https://bugs.webkit.org/show_bug.cgi?id=145059
1198         <rdar://problem/20975978>
1199
1200         Reviewed by Simon Fraser.
1201
1202         The web view needs to update its scroll snap point offsets to take into account any
1203         adjustments to the view size caused by content insets. We also need to update the
1204         offstes after device rotation.
1205
1206         * UIProcess/API/Cocoa/WKWebView.mm:
1207         (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Retrieve the proper
1208         computed content inset for the view and incorporate into any scroll snap point adjustments.
1209         (-[WKWebView _updateVisibleContentRects]): If we have active scroll snap points, 
1210         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
1211         * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
1212         (WebKit::RemoteScrollingCoordinatorProxy::adjustTargetContentOffsetForSnapping): Update to account
1213         for content inset.
1214         (WebKit::RemoteScrollingCoordinatorProxy::shouldSnapForMainFrameScrolling): Also validate that the
1215         active index is valid.
1216         (WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling): Update to track
1217         current active snap offset index.
1218         (WebKit::RemoteScrollingCoordinatorProxy::hasActiveSnapPoint): Added.
1219         (WebKit::RemoteScrollingCoordinatorProxy::nearestActiveSnapPoint): Added. It calculates the proper
1220         scroll position incorporating any snap point and content insets.
1221
1222 2015-05-15  Yongjun Zhang  <yongjun_zhang@apple.com>
1223
1224         Don't reset the preview recognizer in [WKContentViewInteraction cleanupInteraction]
1225         https://bugs.webkit.org/show_bug.cgi?id=145081
1226
1227         We shouldn't reset the recognizer in [WKContentViewInteraction cleanupInteraction] since we don't re-add it
1228         back to WKContentView when the process relaunched. Since we already add/remove it when the view is move into/
1229         removed from the window, we don't need reset it in cleanupInteraction.
1230
1231         Reviewed by Dan Bernstein.
1232
1233         * UIProcess/ios/WKContentViewInteraction.mm:
1234         (-[WKContentView cleanupInteraction]):
1235
1236 2015-05-15  James Savage  <james.savage@apple.com>
1237
1238         REGRESSION (r181910): WKWebView incorrectly scales snapshot
1239         https://bugs.webkit.org/show_bug.cgi?id=145076
1240
1241         Reviewed by Tim Horton.
1242
1243         We added a fast path to snapshotting using IOSurfaces with
1244         http://trac.webkit.org/changeset/181910 which incorrectly determined
1245         scale and transform and resulted in bad snapshots in some situations.
1246
1247         * UIProcess/API/Cocoa/WKWebView.mm:
1248         (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
1249         When snapshotting an IOSurface we need to compute our scale based off of
1250         the rect in the WKWebView coordinates, we also failed to account for
1251         non-zero origins in the snapshot rect. Remove an unused varible while
1252         we're here.
1253
1254 2015-05-15  Alex Christensen  <achristensen@webkit.org>
1255
1256         [Content Extensions] Fail to load old content extension files
1257         https://bugs.webkit.org/show_bug.cgi?id=145027
1258
1259         Reviewed by Eric Carlson.
1260
1261         * UIProcess/API/APIUserContentExtensionStore.cpp:
1262         (API::openAndMapContentExtension):
1263         * UIProcess/API/APIUserContentExtensionStore.h:
1264
1265 2015-05-15  Jeremy Jones  <jeremyj@apple.com>
1266
1267         Limit alternate fullscreen with linked on or after.
1268         https://bugs.webkit.org/show_bug.cgi?id=144894
1269
1270         Reviewed by Dean Jackson.
1271
1272         * UIProcess/API/Cocoa/WKWebView.mm:
1273         (shouldAllowAlternateFullscreen): Added.
1274         (-[WKWebView initWithFrame:configuration:]):
1275
1276 2015-05-15  Chris Dumez  <cdumez@apple.com>
1277
1278         [WK2][Cocoa] Back swipe tab snapshot takes a long time to be removed on bing.com
1279         https://bugs.webkit.org/show_bug.cgi?id=145061
1280         <rdar://problem/20939743>
1281
1282         Reviewed by Tim Horton.
1283
1284         When swiping back from a video search result to the list of video
1285         search results on bing.com, the back swipe gesture tab snapshot takes
1286         ~3 seconds to be removed, even though the page gets loaded almost
1287         instantly from PageCache. The tab snapshot should be removed as soon as
1288         the load is done.
1289
1290         The issue is that we only cleared the back swipe gesture tab snapshot
1291         after PageClient::didFinishLoadForMainFrame() has been called. However,
1292         PageClient::didFinishLoadForMainFrame() was only being called by
1293         WebPageProxy if the main frame loaded *without* error. In case the main
1294         frame loaded with an error, only WebPageProxy::didFailLoadForFrame() is
1295         called, not WebPageProxy::didFinishLoadForFrame() and we would fail to
1296         remove the gesture snapshot until the 3 seconds timeout.
1297
1298         This patch calls PageClient::didFinishLoadForMainFrame() from
1299         WebPageProxy::didFailLoadForFrame() so we remove the snapshot in the
1300         error case as well.
1301
1302         The reason didFailLoadForFrame() is being called on bing.com video
1303         search results is because a "ping" load is aborted when the page is
1304         entering PageCache. Aborting any kind of resource load sets a
1305         "cancellation" error on the main document.
1306
1307         * UIProcess/WebPageProxy.cpp:
1308         (WebKit::WebPageProxy::didFailLoadForFrame):
1309
1310 2015-05-14  Carlos Garcia Campos  <cgarcia@igalia.com>
1311
1312         REGRESSION(r183861): [SOUP] Downloads are broken when using the Network Process
1313         https://bugs.webkit.org/show_bug.cgi?id=144738
1314
1315         Reviewed by Alexey Proskuryakov.
1316
1317         When converting the main resource handle to a download, the
1318         NetworkResourceLoader is aborted, and the ResourceHandle is
1319         cleaned up aborting the download operation. We need to use a
1320         different ResourceHandle for the download operation.
1321
1322         * Shared/Downloads/soup/DownloadSoup.cpp:
1323         (WebKit::Download::startWithHandle): Use ResourceHandle::releaseForDownload()
1324         instead of reusing the given handle.
1325
1326 2015-05-14  Brady Eidson  <beidson@apple.com>
1327
1328         Rename connectionDidClose and related methods to be more clear.
1329         https://bugs.webkit.org/show_bug.cgi?id=145030
1330
1331         Reviewed by Darin Adler.
1332
1333         These methods were easy to confuse with "Connection::Client::didClose()", yet they
1334         were about something much more explicit: A child process being shut down by the UI Process.
1335
1336         Let's call them as such.
1337
1338         * Shared/ChildProcessProxy.cpp:
1339         (WebKit::ChildProcessProxy::shutDownProcess):
1340         (WebKit::ChildProcessProxy::clearConnection): Deleted.
1341         (WebKit::ChildProcessProxy::connectionDidClose): Deleted.
1342         * Shared/ChildProcessProxy.h:
1343
1344         * UIProcess/Databases/DatabaseProcessProxy.cpp:
1345         (WebKit::DatabaseProcessProxy::processWillShutDown):
1346         * UIProcess/Databases/DatabaseProcessProxy.h:
1347
1348         * UIProcess/Network/NetworkProcessProxy.cpp:
1349         (WebKit::NetworkProcessProxy::processWillShutDown):
1350         * UIProcess/Network/NetworkProcessProxy.h:
1351
1352         * UIProcess/Plugins/PluginProcessProxy.cpp:
1353         (WebKit::PluginProcessProxy::processWillShutDown):
1354         * UIProcess/Plugins/PluginProcessProxy.h:
1355
1356         * UIProcess/WebFrameProxy.cpp:
1357         (WebKit::WebFrameProxy::webProcessWillShutDown):
1358         (WebKit::WebFrameProxy::disconnect): Deleted.
1359         * UIProcess/WebFrameProxy.h:
1360
1361         * UIProcess/WebPageProxy.cpp:
1362         (WebKit::WebPageProxy::webProcessWillShutDown):
1363         (WebKit::WebPageProxy::connectionDidClose): Deleted.
1364         * UIProcess/WebPageProxy.h:
1365
1366         * UIProcess/WebProcessLifetimeTracker.cpp:
1367         (WebKit::WebProcessLifetimeTracker::webProcessWillShutDown):
1368         (WebKit::WebProcessLifetimeTracker::connectionDidClose): Deleted.
1369         * UIProcess/WebProcessLifetimeTracker.h:
1370
1371         * UIProcess/WebProcessProxy.cpp:
1372         (WebKit::WebProcessProxy::processWillShutDown):
1373         (WebKit::WebProcessProxy::shutDown):
1374         (WebKit::WebProcessProxy::removeWebPage):
1375         (WebKit::WebProcessProxy::didClose):
1376         (WebKit::WebProcessProxy::disconnectFramesFromPage):
1377         (WebKit::WebProcessProxy::shouldTerminate):
1378         (WebKit::WebProcessProxy::requestTermination):
1379         (WebKit::WebProcessProxy::connectionDidClose): Deleted.
1380         (WebKit::WebProcessProxy::disconnect): Deleted.
1381         * UIProcess/WebProcessProxy.h:
1382
1383 2015-05-14  Zhuo Li  <zachli@apple.com>
1384
1385         Some CFNetwork SPI to reset HSTS hosts added since a date should not be used on Yosemite.
1386         https://bugs.webkit.org/show_bug.cgi?id=145025.
1387         and
1388         rdar://problem/20646308.
1389
1390         Reviewed by Alexey Proskuryakov.
1391
1392         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
1393         (WebKit::WebProcessPool::resetHSTSHostsAddedAfterDate):
1394
1395 2015-05-14  Timothy Horton  <timothy_horton@apple.com>
1396
1397         Add a layout mode that scales down the view to try to fit the document
1398         https://bugs.webkit.org/show_bug.cgi?id=145022
1399         <rdar://problem/19790341>
1400
1401         Reviewed by Dean Jackson.
1402
1403         * Shared/WebPageCreationParameters.cpp:
1404         (WebKit::WebPageCreationParameters::encode):
1405         (WebKit::WebPageCreationParameters::decode):
1406         * Shared/WebPageCreationParameters.h:
1407         * UIProcess/WebPageProxy.cpp:
1408         (WebKit::WebPageProxy::creationParameters):
1409         (WebKit::WebPageProxy::setShouldScaleViewToFitDocument):
1410         * UIProcess/WebPageProxy.h:
1411         * WebProcess/WebPage/DrawingArea.h:
1412         (WebKit::DrawingArea::setShouldScaleViewToFitDocument):
1413         * WebProcess/WebPage/WebPage.cpp:
1414         (WebKit::WebPage::WebPage):
1415         (WebKit::WebPage::setShouldScaleViewToFitDocument):
1416         * WebProcess/WebPage/WebPage.h:
1417         * WebProcess/WebPage/WebPage.messages.in:
1418         Plumb shouldScaleViewToFitDocument through to the DrawingArea.
1419
1420         * UIProcess/mac/WKViewLayoutStrategy.mm:
1421         (+[WKViewLayoutStrategy layoutStrategyWithPage:view:mode:]):
1422         (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:mode:]):
1423         (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy updateLayout]):
1424         (-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy willChangeLayoutStrategy]):
1425         * UIProcess/API/C/WKLayoutMode.h:
1426         * UIProcess/API/Cocoa/_WKLayoutMode.h:
1427         Add a new layout mode, which just turns on shouldScaleViewToFitDocument,
1428         and otherwise behaves as normal.
1429
1430         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
1431         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1432         (WebKit::TiledCoreAnimationDrawingArea::setShouldScaleViewToFitDocument):
1433         (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded):
1434         (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
1435         On every flush where either the document size or view size has changed,
1436         or layout is outstanding, do a layout with fixed layout off to determine
1437         whether the document fits inside the view. If it doesn't, scale it down
1438         to fit. This will require an extra layout for every resize while in the
1439         scaled-down state, but there is potential for future optimization.
1440
1441 2015-05-14  Anders Carlsson  <andersca@apple.com>
1442
1443         Local storage origins should include origins with transient local storage
1444         https://bugs.webkit.org/show_bug.cgi?id=145017
1445         rdar://problem/10690447
1446
1447         Reviewed by Sam Weinig.
1448
1449         The transient local storage namespaces are used for third party data blocking and will stay
1450         around until the UI process exits so we need to be able to include website data from transient storage
1451         in the website data store APIs.
1452
1453         * UIProcess/Storage/StorageManager.cpp:
1454         (WebKit::StorageManager::TransientLocalStorageNamespace::origins):
1455         (WebKit::StorageManager::getLocalStorageOrigins):
1456         * UIProcess/Storage/StorageManager.h:
1457         * UIProcess/WebKeyValueStorageManager.cpp:
1458         (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
1459         * UIProcess/WebsiteData/WebsiteDataStore.cpp:
1460         (WebKit::WebsiteDataStore::fetchData):
1461
1462 2015-05-14  Beth Dakin  <bdakin@apple.com>
1463
1464         Change range of possible forces for mouseforcechanged DOM event
1465         https://bugs.webkit.org/show_bug.cgi?id=144987
1466         -and corresponding-
1467         rdar://problem/20472802
1468
1469         Reviewed by Tim Horton.
1470
1471         Change to a 0-3 range.
1472         * Shared/mac/WebEventFactory.mm:
1473         (WebKit::WebEventFactory::createWebMouseEvent):
1474
1475 2015-05-14  Zan Dobersek  <zdobersek@igalia.com>
1476
1477         [GTK] Add missing ENABLE(NETSCAPE_PLUGIN_API) build guards
1478         https://bugs.webkit.org/show_bug.cgi?id=144994
1479
1480         Reviewed by Carlos Garcia Campos.
1481
1482         This fixes the build when configured with Netscape plugin API
1483         support disabled.
1484
1485         * UIProcess/API/gtk/WebKitWebContext.cpp:
1486         (webkit_web_context_set_additional_plugins_directory):
1487         (webkitWebContextGetPluginThread):
1488         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
1489         (WebKit::ProcessLauncher::launchProcess):
1490
1491 2015-05-13  Carlos Garcia Campos  <cgarcia@igalia.com>
1492
1493         [SOUP] Network Cache: NetworkProcess segfault when file system doesn't support xattrs
1494         https://bugs.webkit.org/show_bug.cgi?id=144953
1495
1496         Reviewed by Martin Robinson.
1497
1498         Return early if we fail to get the birthtime xattr.
1499
1500         * NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
1501         (WebKit::NetworkCache::fileTimes):
1502
1503 2015-05-13  Daniel Bates  <dabates@apple.com>
1504
1505         Rename ProcessThrottlerClient::{send, cancel}ProcessWillSuspend() to {send, cancel}PrepareToSuspend()
1506         https://bugs.webkit.org/show_bug.cgi?id=144619
1507         <rdar://problem/20812779>
1508
1509         Reviewed by Andy Estes.
1510
1511         The names of the functions ProcessThrottlerClient::{send, cancel}ProcessWillSuspend() are misnomers. These
1512         functions are called when the ProcessThrottler wants to prepare the process that it manages for suspension
1513         and changes its mind, respectively. That is, these functions do not actually correspond to the OS decision
1514         to suspend a process or cancel the suspension of a process, respectively. So, rename these functions and
1515         associated {Network, Web}ProcessProxy message names to better describe their purpose.
1516
1517         * NetworkProcess/NetworkProcess.cpp:
1518         (WebKit::NetworkProcess::prepareToSuspend):
1519         (WebKit::NetworkProcess::cancelPrepareToSuspend):
1520         (WebKit::NetworkProcess::processWillSuspend): Deleted.
1521         (WebKit::NetworkProcess::cancelProcessWillSuspend): Deleted.
1522         * NetworkProcess/NetworkProcess.h:
1523         * NetworkProcess/NetworkProcess.messages.in:
1524         * UIProcess/Network/NetworkProcessProxy.cpp:
1525         (WebKit::NetworkProcessProxy::sendPrepareToSuspend):
1526         (WebKit::NetworkProcessProxy::sendCancelPrepareToSuspend):
1527         (WebKit::NetworkProcessProxy::sendProcessWillSuspend): Deleted.
1528         (WebKit::NetworkProcessProxy::sendCancelProcessWillSuspend): Deleted.
1529         * UIProcess/Network/NetworkProcessProxy.h:
1530         * UIProcess/ProcessThrottler.cpp:
1531         (WebKit::ProcessThrottler::updateAssertion):
1532         * UIProcess/ProcessThrottlerClient.h:
1533         * UIProcess/WebProcessProxy.cpp:
1534         (WebKit::WebProcess::actualPrepareToSuspend): Formerly named prepareToSuspend.
1535         (WebKit::WebProcessProxy::sendPrepareToSuspend):
1536         (WebKit::WebProcessProxy::sendCancelPrepareToSuspend):
1537         (WebKit::WebProcessProxy::sendProcessWillSuspend): Deleted.
1538         (WebKit::WebProcessProxy::sendCancelProcessWillSuspend): Deleted.
1539         * UIProcess/WebProcessProxy.h:
1540         * WebProcess/WebProcess.cpp:
1541         (WebKit::WebProcess::prepareToSuspend):
1542         (WebKit::WebProcess::cancelPrepareToSuspend):
1543         (WebKit::WebProcess::processWillSuspend): Deleted.
1544         (WebKit::WebProcess::cancelProcessWillSuspend): Deleted.
1545         * WebProcess/WebProcess.h:
1546         * WebProcess/WebProcess.messages.in:
1547
1548 2015-05-13  Anders Carlsson  <andersca@apple.com>
1549
1550         Don't create a per-pool data store when using the modern API
1551         https://bugs.webkit.org/show_bug.cgi?id=144963
1552         rdar://problem/20331756
1553
1554         Reviewed by Tim Horton.
1555
1556         * UIProcess/API/APIProcessPoolConfiguration.cpp:
1557         (API::ProcessPoolConfiguration::createWithLegacyOptions):
1558         (API::ProcessPoolConfiguration::copy):
1559         * UIProcess/API/APIProcessPoolConfiguration.h:
1560         Keep track of whether the process pool should have a data store.
1561
1562         * UIProcess/API/C/WKContext.cpp:
1563         (WKContextGetWebsiteDataStore):
1564         * UIProcess/WebKeyValueStorageManager.cpp:
1565         (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
1566         (WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
1567         (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
1568         (WebKit::WebKeyValueStorageManager::deleteAllEntries):
1569         Update now that WebProcessPool::dataStore() no longer returns a reference.
1570
1571         * UIProcess/WebProcessPool.cpp:
1572         (WebKit::WebProcessPool::WebProcessPool):
1573         Only create a data store if the configuration states that we should.
1574
1575         * UIProcess/WebProcessPool.h:
1576         Change dataStore() to return a pointer instead of a reference.
1577
1578 2015-05-13  Alexey Proskuryakov  <ap@apple.com>
1579
1580         [Mac] Sandbox violation reading SubmitDiagInfo.domains
1581         https://bugs.webkit.org/show_bug.cgi?id=144962
1582         rdar://problem/20719330
1583
1584         Reviewed by Darin Adler.
1585
1586         * WebProcess/com.apple.WebProcess.sb.in:
1587
1588 2015-05-13  Beth Dakin  <bdakin@apple.com>
1589
1590         Speculative build fix.
1591
1592         * UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h:
1593
1594 2015-05-13  Michael Catanzaro  <mcatanzaro@igalia.com>
1595
1596         [GTK][CMake] Extra include directory when libnotify is present but disabled
1597         https://bugs.webkit.org/show_bug.cgi?id=144941
1598
1599         Reviewed by Martin Robinson.
1600
1601         Add LIBNOTIFY_INCLUDE_DIRS to WebKit2_INCLUDE_DIRECTORIES only if USE_LIBNOTIFY is true,
1602         rather than checking LIBNOTIFY_FOUND.
1603
1604         * PlatformGTK.cmake:
1605
1606 2015-05-13  Beth Dakin  <bdakin@apple.com>
1607
1608         Need SPI to set the overlay scroll bar style
1609         https://bugs.webkit.org/show_bug.cgi?id=144928
1610         -and corresponding-
1611         rdar://problem/20143614
1612
1613         Reviewed by Anders Carlsson.
1614
1615         Make scrollbarOverlayStyle a part of the creation parameters. 
1616         * Shared/WebPageCreationParameters.cpp:
1617         (WebKit::WebPageCreationParameters::encode):
1618         (WebKit::WebPageCreationParameters::decode):
1619         * Shared/WebPageCreationParameters.h:
1620
1621         New SPI.
1622         * UIProcess/API/Cocoa/WKViewPrivate.h:
1623         * UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h: Added.
1624         * UIProcess/API/mac/WKView.mm:
1625         (-[WKView _setOverlayScrollbarStyle:]):
1626         (-[WKView _overlayScrollbarStyle]):
1627
1628         Store m_scrollbarOverlayStyle on WebPageProxy, and set it to the WebProcess.
1629         * UIProcess/WebPageProxy.cpp:
1630         (WebKit::WebPageProxy::WebPageProxy):
1631         (WebKit::WebPageProxy::creationParameters):
1632         (WebKit::WebPageProxy::setOverlayScrollbarStyle):
1633         * UIProcess/WebPageProxy.h:
1634         (WebKit::WebPageProxy::overlayScrollbarStyle):
1635         * WebKit2.xcodeproj/project.pbxproj:
1636
1637         Return WebPage’s scrollbarOverlayStyle().
1638         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
1639         (WebKit::WebChromeClient::preferredScrollbarOverlayStyle):
1640         * WebProcess/WebCoreSupport/WebChromeClient.h:
1641
1642         Cache the scrollbarOverlayStyle() here for the WebProcess. 
1643         * WebProcess/WebPage/WebPage.cpp:
1644         (WebKit::WebPage::WebPage):
1645         (WebKit::WebPage::setScrollbarOverlayStyle):
1646         * WebProcess/WebPage/WebPage.h:
1647         (WebKit::WebPage::scrollbarOverlayStyle):
1648         * WebProcess/WebPage/WebPage.messages.in:
1649
1650 2015-05-13  Anders Carlsson  <andersca@apple.com>
1651
1652         Rename some StorageManager functions to indicate that they work on local storage entries
1653         https://bugs.webkit.org/show_bug.cgi?id=144958
1654         First part of rdar://problem/10690447.
1655
1656         Reviewed by Beth Dakin.
1657
1658         * UIProcess/Storage/StorageManager.cpp:
1659         (WebKit::StorageManager::getLocalStorageOrigins):
1660         (WebKit::StorageManager::getLocalStorageDetailsByOrigin):
1661         (WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
1662         (WebKit::StorageManager::deleteAllLocalStorageEntries):
1663         (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
1664         (WebKit::StorageManager::getOrigins): Deleted.
1665         (WebKit::StorageManager::getStorageDetailsByOrigin): Deleted.
1666         (WebKit::StorageManager::deleteEntriesForOrigin): Deleted.
1667         (WebKit::StorageManager::deleteAllEntries): Deleted.
1668         (WebKit::StorageManager::deleteEntriesForOrigins): Deleted.
1669         * UIProcess/Storage/StorageManager.h:
1670         * UIProcess/WebKeyValueStorageManager.cpp:
1671         (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
1672         (WebKit::WebKeyValueStorageManager::getStorageDetailsByOrigin):
1673         (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
1674         (WebKit::WebKeyValueStorageManager::deleteAllEntries):
1675         * UIProcess/WebsiteData/WebsiteDataStore.cpp:
1676         (WebKit::WebsiteDataStore::fetchData):
1677         (WebKit::WebsiteDataStore::removeData):
1678
1679 2015-05-13  Joseph Pecoraro  <pecoraro@apple.com>
1680
1681         Crash under WebKit::WebInspectorProxy::attachAvailabilityChanged sometimes opening new page
1682         https://bugs.webkit.org/show_bug.cgi?id=144957
1683
1684         Reviewed by Simon Fraser.
1685
1686         * UIProcess/WebInspectorProxy.cpp:
1687         (WebKit::WebInspectorProxy::attachAvailabilityChanged):
1688
1689 2015-05-13  Joseph Pecoraro  <pecoraro@apple.com>
1690
1691         Pass String as reference in more places
1692         https://bugs.webkit.org/show_bug.cgi?id=144769
1693
1694         Reviewed by Daniel Bates.
1695
1696         * WebProcess/WebPage/WebInspectorUI.cpp:
1697         (WebKit::WebInspectorUI::showMainResourceForFrame):
1698         * WebProcess/WebPage/WebInspectorUI.h:
1699
1700 2015-05-13  Timothy Horton  <timothy_horton@apple.com>
1701
1702         View scale changes are temporarily lost after restoring a page from the page cache
1703         https://bugs.webkit.org/show_bug.cgi?id=144934
1704
1705         Reviewed by Brady Eidson.
1706
1707         * WebProcess/WebPage/WebPage.cpp:
1708         (WebKit::WebPage::WebPage):
1709         (WebKit::WebPage::scalePage):
1710         (WebKit::WebPage::scalePageInViewCoordinates):
1711         (WebKit::WebPage::pageScaleFactor):
1712         (WebKit::WebPage::viewScaleFactor):
1713         (WebKit::WebPage::scaleView):
1714         * WebProcess/WebPage/WebPage.h:
1715         (WebKit::WebPage::viewScaleFactor): Deleted.
1716         Get rid of m_viewScaleFactor, instead using Page::viewScaleFactor.
1717
1718 2015-05-13  Sungmann Cho  <sungmann.cho@navercorp.com>
1719
1720         Minor cleanups to PluginProxy.cpp.
1721         https://bugs.webkit.org/show_bug.cgi?id=144948
1722
1723         Reviewed by Gyuyoung Kim.
1724
1725         1. Remove unnecessary #include.
1726         2. Remove unnecessary return statement from PluginProxy::paint().
1727
1728         No new tests, no behavior change.
1729
1730         * WebProcess/Plugins/PluginProxy.cpp:
1731         (WebKit::PluginProxy::paint):
1732
1733 2015-05-13  Daegyu Lee  <daegyu.lee@navercorp.com>
1734
1735         REGRESSION(r176631): [EFL] Fullscreen feature doesn't work correctly on MiniBrowser
1736         https://bugs.webkit.org/show_bug.cgi?id=144906
1737
1738         Reviewed by Gyuyoung Kim.
1739
1740         * UIProcess/CoordinatedGraphics/PageViewportController.cpp:
1741         (WebKit::PageViewportController::updateMinimumScaleToFit): Recover the r176631 condition to
1742         call applyScaleAfterRenderingContents function to apply correct scale.
1743
1744 2015-05-12  Dan Bernstein  <mitz@apple.com>
1745
1746         In Safari, Debug > Get Bytecode Profile crashes the Web Content process
1747         https://bugs.webkit.org/show_bug.cgi?id=144944
1748
1749         Reviewed by Darin Adler.
1750
1751         * WebProcess/WebPage/WebPage.cpp:
1752         (WebKit::WebPage::getBytecodeProfile): Don’t assert that m_perBytecodeProfiler isn’t null,
1753         because it is when the profiler is disabled, which is the default. In that case, return
1754         after sending back the empty string, rather than continuing to dereference a null pointer.
1755
1756 2015-05-12  Jon Honeycutt  <jhoneycutt@apple.com>
1757
1758         Crash when using <input type=file>
1759
1760         <https://bugs.webkit.org/show_bug.cgi?id=144939>
1761         <rdar://problem/20172315>
1762
1763         Reviewed by Andy Estes.
1764
1765         * UIProcess/ios/forms/WKFileUploadPanel.mm:
1766         Use a RefPtr to hold the WebOpenPanelResultListenerProxy, because the
1767         WKFileUploadPanel can outlive it.
1768
1769 2015-05-12  Simon Fraser  <simon.fraser@apple.com>
1770
1771         Turn antialiased font dilation off by default
1772         https://bugs.webkit.org/show_bug.cgi?id=144940
1773         rdar://problem/20923031
1774
1775         Reviewed by Sam Weinig.
1776
1777         Turn antialised font dilation off by default.
1778
1779         * Shared/WebPreferencesDefinitions.h:
1780         * UIProcess/API/C/WKPreferencesRefPrivate.h:
1781
1782 2015-05-12  Daniel Bates  <dabates@apple.com>
1783
1784         Make {Network, Web}ProcessProxy inherit from ProcessThrottleClient privately
1785         https://bugs.webkit.org/show_bug.cgi?id=144886
1786
1787         Reviewed by Darin Adler.
1788
1789         {Network, Web}ProcessProxy are implemented in terms of ProcessThrottleClient, an
1790         interface that defines the callbacks that ProcessThrottler makes to a client. We
1791         do not want to allow arbitrary callers to make use of the interface ProcessThrottleClient.
1792         So, we should use private inheritance to represent the relationship between
1793         {Network, Web}ProcessProxy and ProcessThrottleClient instead of public inheritance.
1794
1795         Additionally make ProcessThrottler a instance variable of {Network, Web}ProcessProxy instead
1796         of holding a smart pointer to a ProcessThrottler instance because we always want to
1797         have a ProcessThrottler for each instance of {Network, Web}ProcessProxy.
1798
1799         * UIProcess/Network/NetworkProcessProxy.cpp:
1800         (WebKit::NetworkProcessProxy::NetworkProcessProxy): Update code to work now that m_throttler
1801         is an instance of ProcessThrottler instead of a smart pointer to a ProcessThrottler instance.
1802         (WebKit::NetworkProcessProxy::didFinishLaunching): Update code to access functions of
1803         m_throttler by reference instead of by pointer.
1804         (WebKit::NetworkProcessProxy::didCancelProcessSuspension): Ditto.
1805         (WebKit::NetworkProcessProxy::processReadyToSuspend): Ditto.
1806         (WebKit::NetworkProcessProxy::setIsHoldingLockedFiles): Ditto.
1807         * UIProcess/Network/NetworkProcessProxy.h: Inherit from ProcessThrottleClient privately.
1808         (WebKit::NetworkProcessProxy::throttler): Update code to work now that m_throttler is an
1809         instance of ProcessThrottler instead of a smart pointer to a ProcessThrottler instance.
1810         * UIProcess/ProcessThrottler.cpp:
1811         (WebKit::ProcessThrottler::ProcessThrottler): Update code to work now that m_process is
1812         a lvalue reference instead of a pointer.
1813         (WebKit::ProcessThrottler::updateAssertion): Ditto.
1814         (WebKit::ProcessThrottler::assertionWillExpireImminently): Ditto.
1815         * UIProcess/ProcessThrottler.h: Ditto.
1816         * UIProcess/WebProcessProxy.cpp:
1817         (WebKit::WebProcessProxy::WebProcessProxy): Update code to work now that m_throttler is an
1818         instance of ProcessThrottler instead of a smart pointer to a ProcessThrottler instance. 
1819         (WebKit::WebProcessProxy::didFinishLaunching): Update code to access functions of
1820         m_throttler by reference instead of by pointer.
1821         (WebKit::WebProcessProxy::processReadyToSuspend): Ditto.
1822         (WebKit::WebProcessProxy::didCancelProcessSuspension): Ditto.
1823         (WebKit::WebProcessProxy::setIsHoldingLockedFiles): Ditto.
1824         * UIProcess/WebProcessProxy.h: Inherit from ProcessThrottleClient privately.
1825         (WebKit::WebProcessProxy::throttler): Update code to work now that m_throttler is an
1826         instance of ProcessThrottler instead of a smart pointer to a ProcessThrottler instance.
1827
1828 2015-05-12  Anders Carlsson  <andersca@apple.com>
1829
1830         Production builds should link against the shims directly
1831         https://bugs.webkit.org/show_bug.cgi?id=144922
1832         rdar://problem/19708579
1833
1834         Reviewed by Dan Bernstein.
1835
1836         * Configurations/NetworkService.xcconfig:
1837         Point to an Info.plist that has DYLD_INSERT_LIBRARIES set on 10.10 and earlier.
1838         Link directly against SecItemShim.dylib where possible.
1839
1840         * Configurations/PluginProcessShim.xcconfig:
1841         Set the install name and install path.
1842
1843         * Configurations/PluginService.32.xcconfig:
1844         Point to an Info.plist that has DYLD_INSERT_LIBRARIES set on 10.10 and earlier.
1845         Link directly against PluginProcessShim.dylib where possible.
1846
1847         * Configurations/PluginService.64.xcconfig:
1848         Point to an Info.plist that has DYLD_INSERT_LIBRARIES set on 10.10 and earlier.
1849         Link directly against PluginProcessShim.dylib where possible.
1850
1851         * Configurations/SecItemShim.xcconfig:
1852         Set the install name and install path.
1853
1854         * Configurations/WebContentService.xcconfig:
1855         Point to an Info.plist that has DYLD_INSERT_LIBRARIES set on 10.10 and earlier.
1856         Link directly against WebProcessShim.dylib where possible.
1857
1858         * Configurations/WebProcessShim.xcconfig:
1859         Set the install name and install path.
1860
1861         * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX-10.9-10.10.plist: Copied from Source/WebKit2/NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist.
1862         * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info-OSX.plist:
1863         Add an Info.plist for 10.9 and 10.10 and remove DYLD_INSERT_LIBRARIES from the non-legacy plist.
1864
1865         * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64-10.9-10.10.Info.plist: Copied from Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist.
1866         * PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist:
1867         Add an Info.plist for 10.9 and 10.10 and remove DYLD_INSERT_LIBRARIES from the non-legacy plist.
1868
1869         * WebKit2.xcodeproj/project.pbxproj:
1870         Add new files.
1871
1872         * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX-10.9-10.10.plist: Copied from Source/WebKit2/WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist.
1873         * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist:
1874         Add an Info.plist for 10.9 and 10.10 and remove DYLD_INSERT_LIBRARIES from the non-legacy plist.
1875
1876 2015-05-12  Alexey Proskuryakov  <ap@apple.com>
1877
1878         Undo a mistaken part of r184211.
1879
1880         * UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::cookieStorageDirectory):
1881         * UIProcess/WebProcessPool.h:
1882         cookieStorageDirectory() is used on iOS, so bring it back.
1883
1884 2015-05-08  Alexey Proskuryakov  <ap@apple.com>
1885
1886         [Mac] Share cookie storage between UI process and secondary processes
1887         https://bugs.webkit.org/show_bug.cgi?id=144820
1888         rdar://problem/20572830
1889
1890         Reviewed by Darin Adler.
1891
1892         Pass a cookie storage descriptor that includes file path as well as other data that
1893         CFNetwork needs to use the same cookies storage as in another process (session cookies
1894         are still separate).
1895
1896         While at it, started to clean up code that passes cookie storage path. It was mostly
1897         dead and unimplemented, only used in child processes when USE(SECCOMP_FILTERS) was enabled.
1898
1899         * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
1900         (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
1901         * Shared/Network/NetworkProcessCreationParameters.cpp:
1902         (WebKit::NetworkProcessCreationParameters::encode):
1903         (WebKit::NetworkProcessCreationParameters::decode):
1904         * Shared/Network/NetworkProcessCreationParameters.h:
1905         * Shared/WebProcessCreationParameters.cpp:
1906         (WebKit::WebProcessCreationParameters::encode):
1907         (WebKit::WebProcessCreationParameters::decode):
1908         * Shared/WebProcessCreationParameters.h:
1909         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
1910         (WebKit::WebProcessPool::platformInitializeWebProcess):
1911         (WebKit::WebProcessPool::platformInitializeNetworkProcess):
1912         (WebKit::WebProcessPool::platformDefaultCookieStorageDirectory): Deleted.
1913         * UIProcess/WebProcessPool.cpp:
1914         (WebKit::WebProcessPool::ensureNetworkProcess):
1915         (WebKit::WebProcessPool::createNewWebProcess):
1916         (WebKit::WebProcessPool::cookieStorageDirectory):
1917         * UIProcess/WebProcessPool.h:
1918         * UIProcess/efl/WebProcessPoolEfl.cpp:
1919         (WebKit::WebProcessPool::platformDefaultCookieStorageDirectory): Deleted.
1920         * UIProcess/gtk/WebProcessPoolGtk.cpp:
1921         (WebKit::WebProcessPool::platformDefaultCookieStorageDirectory): Deleted.
1922         * WebProcess/cocoa/WebProcessCocoa.mm:
1923         (WebKit::WebProcess::platformInitializeWebProcess):
1924
1925 2015-05-12  Chris Dumez  <cdumez@apple.com>
1926
1927         [WK2] Log using diagnostic logging how far back in history we navigate
1928         https://bugs.webkit.org/show_bug.cgi?id=144919
1929         <rdar://problem/20920043>
1930
1931         Reviewed by Gavin Barraclough.
1932
1933         Log using diagnostic logging how far back in history we navigate.
1934         When a back navigation or a backward indexed navigation occurs, we
1935         log the delta: (HistoryListSize - 1) - NewHistoryItemIndex.
1936
1937         * UIProcess/WebBackForwardList.cpp:
1938         (WebKit::WebBackForwardList::goToItem):
1939
1940 2015-05-11  Sam Weinig  <sam@webkit.org>
1941
1942         ChildProcess should take an os_activity
1943         https://bugs.webkit.org/show_bug.cgi?id=141781
1944
1945         Reviewed by Ryosuke Niwa.
1946
1947         * DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:
1948         (DatabaseServiceInitializer):
1949         * NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:
1950         (NetworkServiceInitializer):
1951         * PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:
1952         (PluginServiceInitializer):
1953         * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
1954         (WebContentServiceInitializer):
1955         Start an os_activity in the initializer for each XPC service.
1956
1957         * config.h:
1958         Add HAVE_OS_ACTIVITY where available.
1959
1960 2015-05-12  Carlos Garcia Campos  <cgarcia@igalia.com>
1961
1962         Unreviewed. Fix GTK+ debug build after r184197.
1963
1964         * UIProcess/gtk/RedirectedXCompositeWindow.cpp: Add missing include.
1965
1966 2015-05-08  Carlos Garcia Campos  <cgarcia@igalia.com>
1967
1968         [X11] Add XUniquePtr and XUniqueResource to automatically free X resources
1969         https://bugs.webkit.org/show_bug.cgi?id=144521
1970
1971         Reviewed by Darin Adler.
1972
1973         Use XUniquePtr and XUniqueResource to free X resources.
1974
1975         * PlatformEfl.cmake: Add Source/WebCore/platform/graphics/x11 dir
1976         to the include dir list.
1977         * PlatformGTK.cmake: Ditto.
1978         * UIProcess/cairo/BackingStoreCairo.cpp:
1979         (WebKit::BackingStore::createBackend): Do not pass the display to
1980         the BackingStoreBackendCairoX11 constructor.
1981         * UIProcess/gtk/RedirectedXCompositeWindow.cpp:
1982         (WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
1983         (WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
1984         (WebKit::RedirectedXCompositeWindow::resize):
1985         (WebKit::RedirectedXCompositeWindow::cleanupPixmapAndPixmapSurface):
1986         (WebKit::RedirectedXCompositeWindow::surface):
1987         * UIProcess/gtk/RedirectedXCompositeWindow.h:
1988         (WebKit::RedirectedXCompositeWindow::windowID):
1989         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
1990         * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
1991         (WebKit::NetscapePlugin::platformPostInitializeWindowless):
1992         (WebKit::NetscapePlugin::platformDestroy):
1993         (WebKit::NetscapePlugin::platformGeometryDidChange):
1994         (WebKit::NetscapePlugin::platformPaint):
1995
1996 2015-05-11  Dan Bernstein  <mitz@apple.com>
1997
1998         WebKit2 part of <rdar://problem/20878075> Trying to navigate to an invalid URL loads about:blank, but -[WKWebView URL] returns the invalid URL
1999
2000         Reviewed by Alexey Proskuryakov.
2001
2002         * UIProcess/WebPageProxy.cpp:
2003         (WebKit::WebPageProxy::didChangeProvisionalURLForFrame): Added. Update internal state the
2004         same way we update it for server redirects, but don’t make client callbacks. Clients
2005         observing the URL property will see it change.
2006         * UIProcess/WebPageProxy.h:
2007
2008         * UIProcess/WebPageProxy.messages.in: Added DidChangeProvisionalURLForFrame.
2009
2010         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2011         (WebKit::WebFrameLoaderClient::dispatchDidChangeProvisionalURL): Override this new
2012         FrameLoaderClient function to send a DidChangeProvisionalURLForFrame message to the UI
2013         process.
2014         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
2015
2016 2015-05-11  Dan Bernstein  <mitz@apple.com>
2017
2018         <rdar://problem/19773721> [iOS] Find on page feels like it zooms in too much
2019         https://bugs.webkit.org/show_bug.cgi?id=144891
2020
2021         Reviewed by Darin Adler.
2022
2023         Sometimes, Find on Page’s constant 1.6 scale factor is too much. Smart magnification is
2024         designed to choose a scale factor that is just right.
2025
2026         * UIProcess/ios/SmartMagnificationController.h:
2027         * UIProcess/ios/SmartMagnificationController.messages.in: Added Magnify message.
2028         * UIProcess/ios/SmartMagnificationController.mm:
2029         (WebKit::SmartMagnificationController::magnify): Added. Handle the new message using
2030         -[WKContentView _soomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:].
2031         * WebProcess/WebPage/ios/FindControllerIOS.mm:
2032         (WebKit::FindController::updateFindIndicator): Instead of zooming to the selection rect,
2033         get the surrounding render rect (the area we would target for a double-tap at the beginning
2034         of the selection), and tell the magnification controller to target it. Use the center of the
2035         start of the selection as the origin.
2036
2037 2015-05-11  Brent Fulgham  <bfulgham@apple.com>
2038
2039         Scroll snap logic should be triggered when resizing the WebView
2040         https://bugs.webkit.org/show_bug.cgi?id=142590
2041         <rdar://problem/20125088>
2042
2043         Reviewed by Simon Fraser.
2044
2045         * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
2046         (RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling): Modify use of 'closestSnapOffset' to satisfy the additional
2047         argument I added. This is currently not used for anything on iOS.
2048         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: Ditto.
2049
2050 2015-05-11  Andreas Kling  <akling@apple.com>
2051
2052         Force a rebuild of JSNPObject.cpp on bots.
2053
2054         * WebProcess/Plugins/Netscape/JSNPObject.cpp:
2055         (WebKit::JSNPObject::callMethod):
2056
2057 2015-05-11  Anders Carlsson  <andersca@apple.com>
2058
2059         Simplify shim path computation
2060         https://bugs.webkit.org/show_bug.cgi?id=144884
2061         Part of rdar://problem/19708579.
2062
2063         Reviewed by Sam Weinig.
2064
2065         Factor the code that computes the shim path out into a separate function. Also make this mac only
2066         since we don't have any shims on iOS.
2067
2068         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
2069         (WebKit::computeProcessShimPath):
2070         (WebKit::addDYLDEnvironmentAdditions):
2071
2072 2015-05-11  Myles C. Maxfield  <mmaxfield@apple.com>
2073
2074         Unreviewed build fix
2075
2076         Unreviewed.
2077
2078         * UIProcess/API/APIUserContentExtensionStore.cpp:
2079         (API::compiledToFile):
2080
2081 2015-05-11  Alex Christensen  <achristensen@webkit.org>
2082
2083         [Content Extensions] Support domain-specific rules and exceptions.
2084         https://bugs.webkit.org/show_bug.cgi?id=144833
2085
2086         Reviewed by Darin Adler.
2087
2088         * Shared/WebCompiledContentExtension.cpp:
2089         (WebKit::WebCompiledContentExtension::filtersWithoutDomainsBytecode):
2090         (WebKit::WebCompiledContentExtension::filtersWithoutDomainsBytecodeLength):
2091         (WebKit::WebCompiledContentExtension::filtersWithDomainsBytecode):
2092         (WebKit::WebCompiledContentExtension::filtersWithDomainsBytecodeLength):
2093         (WebKit::WebCompiledContentExtension::domainFiltersBytecode):
2094         (WebKit::WebCompiledContentExtension::domainFiltersBytecodeLength):
2095         (WebKit::WebCompiledContentExtension::bytecode): Deleted.
2096         (WebKit::WebCompiledContentExtension::bytecodeLength): Deleted.
2097         * Shared/WebCompiledContentExtension.h:
2098         * Shared/WebCompiledContentExtensionData.cpp:
2099         (WebKit::WebCompiledContentExtensionData::encode):
2100         (WebKit::WebCompiledContentExtensionData::decode):
2101         * Shared/WebCompiledContentExtensionData.h:
2102         (WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData):
2103         * UIProcess/API/APIUserContentExtensionStore.cpp:
2104         (API::ContentExtensionMetaData::fileSize):
2105         (API::encodeContentExtensionMetaData):
2106         (API::decodeContentExtensionMetaData):
2107         (API::compiledToFile):
2108         (API::createExtension):
2109         Keep track of 3 different types of bytecode to be able to handle domain-specific rules.
2110
2111 2015-05-11  Tim Horton  <timothy_horton@apple.com>
2112
2113         Page overlay action context override should indicate the source of the request
2114         https://bugs.webkit.org/show_bug.cgi?id=144832
2115         <rdar://problem/20562594>
2116
2117         Reviewed by Darin Adler.
2118
2119         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
2120         * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
2121         * WebProcess/WebPage/WebPageOverlay.cpp:
2122         (WebKit::WebPageOverlay::actionContextForResultAtPoint):
2123         * WebProcess/WebPage/WebPageOverlay.h:
2124         (WebKit::WebPageOverlay::Client::actionContextForResultAtPoint):
2125         * WebProcess/WebPage/mac/WebPageMac.mm:
2126         (WebKit::WebPage::performActionMenuHitTestAtLocation):
2127         Add a parameter to WKBundlePageOverlayActionContextForResultAtPoint so that
2128         clients can tell whether the requested action context should be targetted
2129         at an action menu or immediate action.
2130
2131 2015-05-11  Daniel Bates  <dabates@apple.com>
2132
2133         [iOS] Close all open databases in expiration handler of process assertion
2134         https://bugs.webkit.org/show_bug.cgi?id=144661
2135         <rdar://problem/20845052>
2136
2137         Reviewed by Darin Adler.
2138
2139         For WebKit2, close all open databases when the process assertion expiration
2140         handler is called.
2141
2142         When the process assertion expiration handler is called we dispatch a synchronous
2143         message called ProcessWillSuspendImminently to the {Web, Network} processes to inform
2144         them that they will be suspended imminently. The {Web, Network} process will always
2145         service this message regardless if they were waiting for another message. In the
2146         WebProcess, we will close all open databases among other tasks upon receiving this
2147         message. In the NetworkProcess, we will purge some data from memory.
2148
2149         * NetworkProcess/NetworkProcess.cpp:
2150         (WebKit::NetworkProcess::didReceiveSyncMessage): Modified to call NetworkProcess::didReceiveSyncNetworkProcessMessage()
2151         to process the synchronous ProcessWillSuspendImminently message.
2152         (WebKit::NetworkProcess::processWillSuspendImminently): Added; free some memory.
2153         * NetworkProcess/NetworkProcess.h:
2154         * NetworkProcess/NetworkProcess.messages.in: Added synchronous message ProcessWillSuspendImminently.
2155         * Shared/ChildProcessProxy.h:
2156         (WebKit::ChildProcessProxy::sendSync): Added parameter sendSyncFlags so that we can send
2157         a sync message with flag IPC::InterruptWaitingIfSyncMessageArrives to cause the {Web, Network}Process
2158         to process the message regardless of whether it is waiting for another message.
2159         * UIProcess/Network/NetworkProcessProxy.cpp:
2160         (WebKit::NetworkProcessProxy::sendProcessWillSuspendImminently): Added. Sends the message
2161         ProcessWillSuspendImminently to the NetworkProcess.
2162         * UIProcess/Network/NetworkProcessProxy.h:
2163         * UIProcess/ProcessAssertion.cpp:
2164         (WebKit::ProcessAndUIAssertion::setClient): Added.
2165         * UIProcess/ProcessAssertion.h: Added abstract class ProcessAssertionClient.
2166         (WebKit::ProcessAssertionClient::~ProcessAssertionClient): Added.
2167         (WebKit::ProcessAssertion::setClient): Added.
2168         (WebKit::ProcessAssertion::client): Added.
2169         * UIProcess/ProcessThrottler.cpp:
2170         (WebKit::ProcessThrottler::didConnectToProcess):
2171         (WebKit::ProcessThrottler::assertionWillExpireImminently): Added; implements the ProcessAssertionClient
2172         interface. Notify the process throttler clients that the assertion is near expiration.
2173         * UIProcess/ProcessThrottler.h:
2174         * UIProcess/ProcessThrottlerClient.h: Added 
2175         * UIProcess/WebProcessProxy.cpp:
2176         (WebKit::WebProcessProxy::sendProcessWillSuspendImminently): Added. Sends the message
2177         ProcessWillSuspendImminently to the WebProcess.
2178         * UIProcess/WebProcessProxy.h:
2179         * UIProcess/ios/ProcessAssertionIOS.mm:
2180         (-[WKProcessAssertionBackgroundTaskManager addClient:]): Added.
2181         (-[WKProcessAssertionBackgroundTaskManager removeClient:]): Added.
2182         (-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]): Modified expiration handler
2183         to notify ProcessAssertionClient clients that the assertion is near expiration.
2184         (WebKit::ProcessAssertion::~ProcessAssertion): Remove the client on destruction.
2185         (WebKit::ProcessAndUIAssertion::setClient): Added.
2186         * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
2187         (WebKit::WebDatabaseManager::closeAllDatabases): Added; turns around and calls DatabaseManager::closeAllDatabases().
2188         * WebProcess/WebCoreSupport/WebDatabaseManager.h:
2189         * WebProcess/WebProcess.cpp:
2190         (WebKit::WebProcess::didReceiveSyncMessage): Call WebProcess::didReceiveSyncWebProcessMessage() to process
2191         the synchronous ProcessWillSuspendImminently message. Removed logging for an unhandled synchronous message
2192         since WebProcess::didReceiveSyncWebProcessMessage() will ASSERT_NOT_REACHED() for such a message.
2193         (WebKit::WebProcess::prepareToSuspend): Extracted code from WebProcess::processWillSuspend() so that it can
2194         be used from both WebProcess::processWillSuspend() and WebProcess::processWillSuspendImminently(). And modified
2195         it to conditionally dispatch a ProcessReadyToSuspend message to the WebProcessProxy. We only want to dispatch
2196         such a message as part of a coordinated suspension by the ProcessThrottler. That is, we do not want to dispatch
2197         the ProcessReadyToSuspend message when the background assertion is near expiration (i.e. WebProcess::processWillSuspendImminently()
2198         is called).
2199         (WebKit::WebProcess::processWillSuspendImminently): Added. Suspend all open databases among other tasks.
2200         (WebKit::WebProcess::processWillSuspend): Implemented in terms of WebProcess::prepareToSuspend().
2201         (WebKit::WebProcess::processSuspensionCleanupTimerFired): Modified to conditionally dispatch a ProcessReadyToSuspend
2202         message to the WebProcessProxy.
2203         (WebKit::WebProcess::processDidResume): Stop the suspension cleanup timer, which may be active if the WebProcess
2204         did not mark all its graphics layers as volatile before process suspension.
2205         * WebProcess/WebProcess.h:
2206         * WebProcess/WebProcess.messages.in: Added synchronous message ProcessWillSuspendImminently.
2207
2208 2015-05-10  Gyuyoung Kim  <gyuyoung.kim@webkit.org>
2209
2210         Use Ref instead of PassRefPtr in WebCore/page
2211         https://bugs.webkit.org/show_bug.cgi?id=144841
2212
2213         Reviewed by Darin Adler.
2214
2215         To kill PassRefPtr, this patch replaces PassRefPtr with Ref or RefPtr
2216         in WebCore/page.
2217
2218         (WebKit::WebUserContentController::WebUserContentController):
2219         * UIProcess/WebPageProxy.cpp:
2220         (WebKit::WebPageProxy::setTextIndicator):
2221         * UIProcess/mac/PageClientImpl.mm:
2222         (WebKit::PageClientImpl::didPerformDictionaryLookup):
2223         * WebProcess/UserContent/WebUserContentController.cpp:
2224         (WebKit::WebUserContentController::WebUserContentController):
2225
2226 2015-05-10  Philip Chimento  <philip.chimento@gmail.com>
2227
2228         [GTK][SOUP] Web and Network processes don't know how to get memory size on OSX
2229         https://bugs.webkit.org/show_bug.cgi?id=144554
2230
2231         Reviewed by Darin Adler.
2232
2233         * NetworkProcess/soup/NetworkProcessSoup.cpp:
2234         (WebKit::NetworkProcess::platformSetCacheModel): Use WTF::ramSize()
2235         instead of local function. Also use WTF::MB instead of dividing by
2236         1024 * 1024.
2237         (WebKit::getMemorySize): Deleted.
2238         * WebProcess/soup/WebProcessSoup.cpp:
2239         (WebKit::WebProcess::platformSetCacheModel): Ditto.
2240         (WebKit::getMemorySize): Deleted.
2241
2242 2015-05-10  Yongjun Zhang  <yongjun_zhang@apple.com>
2243
2244         Use preview view controller from WebKitSystemInterface.
2245         https://bugs.webkit.org/show_bug.cgi?id=144836
2246
2247         Add a property _allowsLinkPreview to WKWebView so that we can turn on/off preview at runtime. Also,
2248         for client that doesn't provide preview view controller, use the default view controller prepared
2249         by WebKitSystemInterface.
2250
2251         Reviewed by Dan Bernstein.
2252
2253         * UIProcess/API/Cocoa/WKWebView.mm:
2254         (-[WKWebView initWithFrame:configuration:]):
2255         (-[WKWebView _allowsLinkPreview]):
2256         (-[WKWebView _setAllowsLinkPreview:]):
2257         * UIProcess/API/Cocoa/WKWebViewPrivate.h: Add _allowsLinkPreview property
2258         * UIProcess/ios/WKContentView.mm:
2259         (-[WKContentView willMoveToWindow:]):
2260         * UIProcess/ios/WKContentViewInteraction.h:
2261         * UIProcess/ios/WKContentViewInteraction.mm:
2262         (-[WKContentView _registerPreviewInWindow:]):
2263         (-[WKContentView _unregisterPreviewInWindow:]):
2264         (-[WKContentView previewViewControllerForPosition:inSourceView:]): : For client that doesn't provide
2265             preview delegate, use preview view controller in WebKitSystemInterface.
2266         (-[WKContentView commitPreviewViewController:]):
2267
2268 2015-05-10  Darin Adler  <darin@apple.com>
2269
2270         Fix internal Apple builds on Mavericks.
2271
2272         * UIProcess/API/mac/WKView.mm:
2273         (-[WKView _dismissContentRelativeChildWindows]): Added missing conditionals around
2274         some code that is for OS X 10.10 or newer only. There were similar conditionals around
2275         other nearby code in this file, and around other uses of the same method in other files,
2276         so matched the style.
2277
2278 2015-05-10  Dan Bernstein  <mitz@apple.com>
2279
2280         iOS internal build fix.
2281
2282         * Platform/mac/MenuUtilities.mm:
2283
2284 2015-05-10  Sungmann Cho  <sungmann.cho@navercorp.com>
2285
2286         Remove unnecessary semicolons.
2287         https://bugs.webkit.org/show_bug.cgi?id=144844
2288
2289         Reviewed by Darin Adler.
2290
2291         No new tests, no behavior change.
2292
2293         * Shared/Downloads/mac/DownloadMac.mm:
2294         (-[WKDownloadAsDelegate download:shouldDecodeSourceDataOfMIMEType:]):
2295         * UIProcess/WebProcessProxy.cpp:
2296         (WebKit::WebProcessProxy::transformHandlesToObjects):
2297         * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
2298         (WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation):
2299         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
2300         (WebKit::idToHistoryItemMap):
2301
2302 2015-05-10  Darin Adler  <darin@apple.com>
2303
2304         Fix build.
2305
2306         * Platform/mac/MenuUtilities.mm: Added includes that were somehow omitted in what
2307         I committed before.
2308
2309 2015-05-10  Darin Adler  <darin@apple.com>
2310
2311         [Cocoa] Don't soft link DataDetectorsCore
2312         https://bugs.webkit.org/show_bug.cgi?id=144837
2313
2314         Reviewed by Dan Bernstein.
2315
2316         * Platform/mac/MenuUtilities.mm: Use DataDetectorsSPI.h instead of doing it here.
2317
2318         * WebProcess/WebPage/mac/WebPageMac.mm: Removed unneeded include of unused header,
2319         DataDetectorsSPI.h.
2320
2321 2015-05-09  Dan Bernstein  <mitz@apple.com>
2322
2323         Deployment-target __NSi_ and __NSd_ definitions in WKFoundation.h are redundant
2324         https://bugs.webkit.org/show_bug.cgi?id=144831
2325
2326         Reviewed by Sam Weinig.
2327
2328         Reverted r182846 and r182904.
2329
2330         * Shared/API/Cocoa/WKFoundation.h:
2331         * WebKit2.xcodeproj/project.pbxproj:
2332
2333 2015-05-09  Yoav Weiss  <yoav@yoav.ws>
2334
2335         Remove the PICTURE_SIZES build flag
2336         https://bugs.webkit.org/show_bug.cgi?id=144679
2337
2338         Reviewed by Benjamin Poulain.
2339
2340         Removed the PICTURE_SIZES build time flag.
2341
2342         * Configurations/FeatureDefines.xcconfig:
2343
2344 2015-05-08  Beth Dakin  <bdakin@apple.com>
2345
2346         Shuffle touch-related code to keep the internal builds working
2347         https://bugs.webkit.org/show_bug.cgi?id=144812
2348
2349         Reviewed by Benjamin Poulain.
2350
2351         * Shared/NativeWebTouchEvent.h:
2352         * Shared/WebEvent.h:
2353         * Shared/WebEventConversion.cpp:
2354         * Shared/ios/NativeWebTouchEventIOS.mm:
2355         (WebKit::NativeWebTouchEvent::extractWebTouchPoint):
2356         (WebKit::extractWebTouchPoint): Deleted.
2357         * Shared/ios/WebPlatformTouchPointIOS.cpp:
2358
2359 2015-05-08  Dan Bernstein  <mitz@apple.com>
2360
2361         <rdar://problem/20757196> NSInternalInconsistencyException raised in -[NSString encodeWithCoder:] beneath createEncodedObject when using WKRemoteObjectEncoder for Safari AutoFill
2362         https://bugs.webkit.org/show_bug.cgi?id=144818
2363
2364         Reviewed by Anders Carlsson.
2365
2366         Allow NSString instances that contain unpaired surrogates to be encoded by
2367         WKRemoteObjectCoder by encoding them directly rather than using
2368         -[NSString encodeWithCoder:].
2369
2370         * Shared/API/Cocoa/WKRemoteObjectCoder.mm:
2371         (encodeString): Added. Sets an API::String as the object to encode.
2372         (encodeObject): Changed to use encodeString for NSString instances.
2373         (decodeString): Added. Gets an API::String from the dictionary and returns it as an
2374         NSString.
2375         (decodeObject): Changed to use decodeString for NSString instances.
2376
2377 2015-05-08  Timothy Horton  <timothy_horton@apple.com>
2378
2379         Fix the build.
2380
2381         * Platform/mac/LayerHostingContext.mm:
2382         (WebKit::LayerHostingContext::createFencePort):
2383
2384 2015-05-08  Timothy Horton  <timothy_horton@apple.com>
2385
2386         Periodically repaint during resize while using the DynamicSizeWithMinimumViewSize layout strategy
2387         https://bugs.webkit.org/show_bug.cgi?id=144816
2388
2389         Reviewed by Simon Fraser.
2390
2391         * UIProcess/mac/WKViewLayoutStrategy.mm:
2392         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy initWithPage:view:mode:]):
2393         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy _updateTransientScale:]):
2394         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):
2395         Factor out _updateTransientScale from updateLayout.
2396         Keep track of the last viewScaleFactor that we know is being displayed
2397         (_lastCommittedViewScale) and use that for computing the transient scale,
2398         so that we can recompute the transient scale while the UI process's notion
2399         of the actual view scale might have moved ahead of what the Web process has
2400         painted.
2401
2402 2015-05-08  Timothy Horton  <timothy_horton@apple.com>
2403
2404         Fix the build.
2405
2406         * UIProcess/WebPageProxy.cpp:
2407
2408 2015-05-08  Timothy Horton  <timothy_horton@apple.com>
2409
2410         Fix the build.
2411
2412         * Platform/mac/LayerHostingContext.mm:
2413         (WebKit::LayerHostingContext::createFencePort):
2414
2415 2015-05-08  Timothy Horton  <timothy_horton@apple.com>
2416
2417         Fix the build.
2418
2419         * Platform/mac/LayerHostingContext.mm:
2420         (WebKit::LayerHostingContext::createFencePort):
2421
2422 2015-05-08  Timothy Horton  <timothy_horton@apple.com>
2423
2424         Flip the direction of the fence in scaleViewAndUpdateGeometryFenced
2425         https://bugs.webkit.org/show_bug.cgi?id=144810
2426
2427         Reviewed by Simon Fraser.
2428
2429         Send the fence from the Web process to the UI process, instead of vice versa.
2430         This means that we won't keep the UI process CAContext blocked for the whole
2431         time that the Web process is doing layout/painting/etc. Instead, we'll start
2432         blocking the Web process CAContext immediately after flushing and before committing,
2433         and send the fence to the UI process to be applied immediately. This minimizes
2434         the amount of time in both processes spent blocked on the fence.
2435
2436         * Platform/mac/LayerHostingContext.h:
2437         * Platform/mac/LayerHostingContext.mm:
2438         (WebKit::LayerHostingContext::createFencePort):
2439         Add createFencePort, which creates a MachSendRight wrapping a CA fence port.
2440         Note that you must setFencePort() with this port if you want the LayerHostingContext's
2441         CAContext to block on it!
2442
2443         * UIProcess/WebPageProxy.cpp:
2444         (WebKit::WebPageProxy::scaleViewAndUpdateGeometryFenced):
2445         (WebKit::WebPageProxy::machSendRightCallback):
2446         * UIProcess/WebPageProxy.h:
2447         * UIProcess/WebPageProxy.messages.in:
2448         Create a callback and send it to the Web process along with scaleViewAndUpdateGeometryFenced.
2449
2450         * UIProcess/mac/WKViewLayoutStrategy.mm:
2451         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):
2452         When called back, install the fence port in our CAContext; when the commit goes through,
2453         remove the transient scale as we did previously.
2454
2455         * WebProcess/WebPage/DrawingArea.h:
2456         (WebKit::DrawingArea::replyWithFenceAfterNextFlush):
2457         (WebKit::DrawingArea::updateGeometry): Deleted.
2458         * WebProcess/WebPage/WebPage.cpp:
2459         (WebKit::WebPage::scaleViewAndUpdateGeometryFenced):
2460         * WebProcess/WebPage/WebPage.h:
2461         * WebProcess/WebPage/WebPage.messages.in:
2462         Instead of installing a fence created in the UI process, tell the DrawingArea
2463         to create one and reply to the UI process with it after the next flush.
2464
2465         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2466         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
2467         (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
2468         (WebKit::TiledCoreAnimationDrawingArea::replyWithFenceAfterNextFlush):
2469         After flushing, before committing, create a fence and reply to any
2470         callbacks that requested fences, and install it in our context.
2471
2472 2015-05-08  Michael Catanzaro  <mcatanzaro@igalia.com>, Martin Robinson <mrobinson@igalia.com>
2473
2474         [GTK] Checks for DEVELOPMENT_BUILD are all wrong
2475         https://bugs.webkit.org/show_bug.cgi?id=144746
2476
2477         Reviewed by Carlos Garcia Campos.
2478
2479         Use ENABLE(DEVELOPER_MODE) rather than DEVELOPMENT_BUILD.
2480
2481         * Shared/gtk/ProcessExecutablePathGtk.cpp:
2482         (WebKit::findWebKitProcess):
2483         * UIProcess/API/gtk/WebKitWebContext.cpp:
2484         (injectedBundleDirectory):
2485         * UIProcess/gtk/TextCheckerGtk.cpp:
2486         (WebKit::enchantTextChecker):
2487
2488 2015-05-08  Anders Carlsson  <andersca@apple.com>
2489
2490         Fix ProcessLauncher port leak
2491         https://bugs.webkit.org/show_bug.cgi?id=144807
2492         rdar://problem/20593291
2493
2494         Reviewed by Sam Weinig.
2495
2496         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
2497         (WebKit::connectToService):
2498         xpc_dictionary_set_mach_send increments the send right count so make sure to
2499         balance it with a call to mach_port_deallocate.
2500
2501 2015-05-08  Beth Dakin  <bdakin@apple.com>
2502
2503         Fix performance tests after r183954
2504         https://bugs.webkit.org/show_bug.cgi?id=144805
2505
2506         Reviewed by Alexey Proskuryakov.
2507
2508         Web* is traditionally a WK1 prefix, so use the WK2 prefix instead in WK2 so that 
2509         we don’t have two classes with the same name in the two projects.
2510         * UIProcess/mac/WKImmediateActionController.mm:
2511         (-[WKImmediateActionController _defaultAnimationController]):
2512
2513 2015-05-08  Carlos Garcia Campos  <cgarcia@igalia.com>
2514
2515         [GTK] Expose allowFileAccessFromFileURLs setting to WebKit2 GTK+ API
2516         https://bugs.webkit.org/show_bug.cgi?id=144748
2517
2518         Reviewed by Sergio Villar Senin.
2519
2520         This is needed by local applications loaded as a file URI that do XMLHttpRequests.
2521
2522         * UIProcess/API/gtk/WebKitSettings.cpp:
2523         (webKitSettingsSetProperty):
2524         (webKitSettingsGetProperty):
2525         (webkit_settings_class_init):
2526         (webkit_settings_get_allow_file_access_from_file_urls):
2527         (webkit_settings_set_allow_file_access_from_file_urls):
2528         * UIProcess/API/gtk/WebKitSettings.h:
2529         * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
2530         * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
2531
2532 2015-05-08  Andreas Kling  <akling@apple.com>
2533
2534         Optimize serialization of quoted JSON strings.
2535         <https://webkit.org/b/144754>
2536
2537         Reviewed by Darin Adler.
2538
2539         * NetworkProcess/cache/NetworkCacheEntry.cpp:
2540         (WebKit::NetworkCache::Entry::asJSON): Use the new StringBuilder API.
2541
2542 2015-05-08  Commit Queue  <commit-queue@webkit.org>
2543
2544         Unreviewed, rolling out r183945.
2545         https://bugs.webkit.org/show_bug.cgi?id=144789
2546
2547         "It broke all the GTK+ tests" (Requested by KaL on #webkit).
2548
2549         Reverted changeset:
2550
2551         "[GTK] Checks for DEVELOPMENT_BUILD are all wrong"
2552         https://bugs.webkit.org/show_bug.cgi?id=144746
2553         http://trac.webkit.org/changeset/183945
2554
2555 2015-05-07  Conrad Shultz  <conrad_shultz@apple.com>
2556
2557         Don't register for Lookup notifications until needed
2558         https://bugs.webkit.org/show_bug.cgi?id=144783
2559
2560         Reviewed by Tim Horton.
2561
2562         * UIProcess/API/mac/WKView.mm:
2563         Add a WKViewData ivar to track whether we've already registered for popover notifications.
2564         (-[WKView _prepareForDictionaryLookup]):
2565         Added; moved notification registration from -[WKView initWithFrame:processPool:configuration:webView:.
2566         (-[WKView initWithFrame:processPool:configuration:webView:]):
2567         Move notification registration to -_prepareForDictionaryLookup.
2568
2569         * UIProcess/API/mac/WKViewInternal.h:
2570         Expose -_prepareForDictionaryLookup.
2571
2572         * UIProcess/mac/PageClientImpl.mm:
2573         (WebKit::PageClientImpl::didPerformDictionaryLookup):
2574         Send -[WKView _prepareForDictionaryLookup].
2575
2576         * UIProcess/mac/WKImmediateActionController.mm:
2577         (-[WKImmediateActionController _animationControllerForText]):
2578         Ditto.
2579
2580 2015-05-07  Commit Queue  <commit-queue@webkit.org>
2581
2582         Unreviewed, rolling out r183961.
2583         https://bugs.webkit.org/show_bug.cgi?id=144784
2584
2585         Broke js/dom/JSON-stringify.html (Requested by kling on
2586         #webkit).
2587
2588         Reverted changeset:
2589
2590         "Optimize serialization of quoted JSON strings."
2591         https://bugs.webkit.org/show_bug.cgi?id=144754
2592         http://trac.webkit.org/changeset/183961
2593
2594 2015-05-07  Anders Carlsson  <andersca@apple.com>
2595
2596         Build fixes.
2597
2598         * UIProcess/API/mac/WKView.mm:
2599         (-[WKView initWithFrame:processPool:configuration:webView:]):
2600         Use the regular init method.
2601
2602         * UIProcess/mac/WKSharingServicePickerDelegate.mm:
2603         (-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
2604         * WebProcess/WebPage/mac/WebPageMac.mm:
2605         (WebKit::WebPage::handleSelectionServiceClick):
2606         Pass empty dictionaries instead of nil.
2607
2608 2015-05-07  Chris Dumez  <cdumez@apple.com>
2609
2610         ASSERTION when pasting text into the WebInspector console
2611         https://bugs.webkit.org/show_bug.cgi?id=144774
2612
2613         Reviewed by Ryosuke Niwa.
2614
2615         Fix assertion in didChangeSelection() meant to check that calling
2616         editorState() does not cause a synchronous layout. The assertion
2617         was not correct as it was relying on FrameView::needsLayout() and
2618         we would hit it if calling editorState() would schedule a layout.
2619         Instead, the new assertion relies on FrameView::layoutCount(),
2620         which is more accurate.
2621
2622         * WebProcess/WebPage/WebPage.cpp:
2623         (WebKit::WebPage::didChangeSelection):
2624
2625 2015-05-07  Andreas Kling  <akling@apple.com>
2626
2627         Optimize serialization of quoted JSON strings.
2628         <https://webkit.org/b/144754>
2629
2630         Reviewed by Darin Adler.
2631
2632         * NetworkProcess/cache/NetworkCacheEntry.cpp:
2633         (WebKit::NetworkCache::Entry::asJSON): Use the new StringBuilder API.
2634
2635 2015-05-07  Martin Robinson  <mrobinson@igalia.com>
2636
2637         Followup fixes to r183936
2638
2639         I neglected to include a few review comments when I landed the patch.
2640
2641         * UIProcess/gtk/TextCheckerGtk.cpp:
2642         (WebKit::checkerState): Remove double semicolons.
2643         (WebKit::updateStateForAllProcessPools): Use range-based-for loop here and
2644         give the function a better name.
2645         (WebKit::TextChecker::setContinuousSpellCheckingEnabled): Use new function name
2646         (WebKit::TextChecker::setGrammarCheckingEnabled):Use new function name
2647         (WebKit::TextChecker::ignoreWord): Fix unused parameter warning.
2648         (WebKit::updateStateForAllContexts): Deleted.
2649
2650 2015-05-07  Michael Catanzaro  <mcatanzaro@igalia.com>
2651
2652         [GTK] Checks for DEVELOPMENT_BUILD are all wrong
2653         https://bugs.webkit.org/show_bug.cgi?id=144746
2654
2655         Reviewed by Martin Robinson.
2656
2657         Use DEVELOPER_MODE rather than DEVELOPMENT_BUILD.
2658
2659         * Shared/gtk/ProcessExecutablePathGtk.cpp:
2660         (WebKit::findWebKitProcess):
2661         * UIProcess/API/gtk/WebKitWebContext.cpp:
2662         (injectedBundleDirectory):
2663         * UIProcess/gtk/TextCheckerGtk.cpp:
2664         (WebKit::enchantTextChecker):
2665
2666 2015-05-06  Dean Jackson  <dino@apple.com>
2667
2668         Handle backdrop views that have to tile
2669         https://bugs.webkit.org/show_bug.cgi?id=142317
2670         <rdar://problem/20049088>
2671
2672         Reviewed by Simon Fraser.
2673
2674         Take 2 - this was rolled out because Mavericks was crashing.
2675
2676         Add some better logging for custom appearance.
2677
2678         * Shared/mac/RemoteLayerTreeTransaction.mm:
2679         (WebKit::RemoteLayerTreeTextStream::operator<<):
2680
2681 2015-05-07  Sungmann Cho  <sungmann.cho@navercorp.com>
2682
2683         Add PLUGIN_ARCHITECTURE(X11) around m_frameRectInWindowCoordinates in NetscapePlugin.
2684         https://bugs.webkit.org/show_bug.cgi?id=144490
2685
2686         Reviewed by Darin Adler.
2687
2688         m_frameRectInWindowCoordinates in NetscapePlugin is currently being used only for
2689         the windowed plugins, and the windowed plugins are only supported on X11. So we can
2690         guard it with PLUGIN_ARCHITECTURE(X11).
2691
2692         No new tests, no behavior change.
2693
2694         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
2695         (WebKit::NetscapePlugin::geometryDidChange):
2696         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
2697
2698 2015-05-05  Myles C. Maxfield  <mmaxfield@apple.com>
2699
2700         Revert "Introducing the Platform Abstraction Layer (PAL)"
2701         https://bugs.webkit.org/show_bug.cgi?id=144751
2702
2703         Unreviewed.
2704
2705         PAL should be a new target inside WebCore, rather than a top-level folder.
2706
2707         * Configurations/FeatureDefines.xcconfig: Updated
2708
2709 2015-05-07  Jer Noble  <jer.noble@apple.com>
2710
2711         [WK2][Fullscreen] Fullscreen video does not enter low-power mode.
2712         https://bugs.webkit.org/show_bug.cgi?id=144744
2713
2714         Reviewed by Darin Adler.
2715
2716         One of the requirements of entering low-power compositing mode is that no masking layers
2717         are present in any of the ancestors of the fullscreen video layer. So once our fullscreen
2718         transition animation completes, remove the mask layer entirely from our clipping layer.
2719         This means it needs to be re-created and added when entering fullscreen, rather than just
2720         at initialization time.
2721
2722         * UIProcess/mac/WKFullScreenWindowController.mm:
2723         (-[WKFullScreenWindowController initWithWindow:webView:]):
2724         (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
2725         (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
2726
2727 2015-05-07  Martin Robinson  <mrobinson@igalia.com>
2728
2729         [GTK] All spell checking layout tests fail
2730         https://bugs.webkit.org/show_bug.cgi?id=144648
2731
2732         Reviewed by Carlos Garcia Campos.
2733
2734         Simplify and complete the GTK+ spell-checking implementation. Instead of using
2735         the EFL/GTK+ only WKTextChecker interface, directly implement Enchant spell-checking
2736         in TextCheckerGtk. The per-context spell checking API is an illusion, since all
2737         WKTextChecker implementations will adjust the same singleton. This can be a first step
2738         toward removing it entirely.
2739
2740         Also complete the implementation of the TextChecker interface by duplicating the EFL code,
2741         which reuses other methods in the same class. Eventually this duplication will collapse,
2742         once GTK+ and EFL can share an Enchant implementation.
2743
2744         * PlatformGTK.cmake:
2745         * UIProcess/API/gtk/WebKitPrivate.h:
2746         * UIProcess/API/gtk/WebKitTextChecker.cpp: Removed.
2747         * UIProcess/API/gtk/WebKitTextChecker.h: Removed.
2748         * UIProcess/API/gtk/WebKitWebContext.cpp: Remove WebTextChecker usage and
2749         replace it with calls directly to the TextChecker singleton via static methods.
2750         * UIProcess/TextChecker.h:
2751         * UIProcess/gtk/TextCheckerGtk.cpp: Move the WebTextChecker enchant implementation
2752         here and reuse the EFL version of WebKit::TextChecker::requestCheckingOfString.
2753         Also initialize languages properly when building for developer builds. This
2754         allows WebKitTestRunner to work even when it doesn't explicitly set the languages.
2755
2756 2015-05-07  Ada Chan  <adachan@apple.com>
2757
2758         Fix a couple of cases where the backForwardListState's currentIndex is not set correctly in WebBackForwardList::backForwardListState().
2759         https://bugs.webkit.org/show_bug.cgi?id=144666
2760
2761         Reviewed by Darin Adler.
2762
2763         * UIProcess/WebBackForwardList.cpp:
2764         (WebKit::WebBackForwardList::backForwardListState):
2765         If the first item is filtered out and the currentIndex is 0, don't decrement currentIndex.
2766         If all the items are filtered out, set currentIndex to the uninitialized value.
2767
2768 2015-05-07  Csaba Osztrogonác  <ossy@webkit.org>
2769
2770         [WK2] Remove Windows cruft
2771         https://bugs.webkit.org/show_bug.cgi?id=144745
2772
2773         Reviewed by Darin Adler.
2774
2775         * NetworkProcess/soup/NetworkProcessSoup.cpp:
2776         (WebKit::getMemorySize):
2777         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
2778         (IPC::ArgumentCoder<WebCore::GraphicsSurfaceToken>::encode):
2779         (IPC::ArgumentCoder<WebCore::GraphicsSurfaceToken>::decode):
2780         * WebProcess/soup/WebProcessSoup.cpp:
2781         (WebKit::getMemorySize):
2782
2783 2015-05-07  Carlos Garcia Campos  <cgarcia@igalia.com>
2784
2785         REGRESSION(r182032): [GTK] Production build is broken after r182032
2786         https://bugs.webkit.org/show_bug.cgi?id=144736
2787
2788         Reviewed by Martin Robinson.
2789
2790         The problem is that r182032 moved the NetworkProcess sources from
2791         WebKit2 sources to NetworkProcess sources. That's not a problem
2792         for developer builds where all internal symbols are exported, but
2793         doesn't work for production builds because all those internal
2794         symbols are private.
2795
2796         * CMakeLists.txt: Use a different name for common network process
2797         sources variable.
2798         * PlatformMac.cmake: Append common network process sources to the
2799         network process source list for Mac.
2800
2801 2015-05-07  Dan Bernstein  <mitz@apple.com>
2802
2803         <rdar://problem/19317140> [Xcode] Remove usage of AspenFamily.xcconfig in Source/
2804         https://bugs.webkit.org/show_bug.cgi?id=144727
2805
2806         Reviewed by Darin Adler.
2807
2808         * Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define
2809         INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator.
2810         * Configurations/WebKit2.xcconfig: Define INSTALL_PATH_ACTUAL and let INSTALL_PATH be
2811         derived from it and INSTALL_PATH_PREFIX. Don’t override DYLIB_INSTALL_NAME_BASE for iOS,
2812         because we define LD_DYLIB_INSTALL_NAME directly where needed.
2813
2814 2015-05-07  Carlos Garcia Campos  <cgarcia@igalia.com>
2815
2816         Unreviewed. Update OptionsGTK.cmake and NEWS for 2.9.1 release.
2817
2818         * gtk/NEWS: Add release notes for 2.9.1.
2819
2820 2015-05-07  Carlos Garcia Campos  <cgarcia@igalia.com>
2821
2822         [GTK] Remove dock button from Web Inspector window
2823         https://bugs.webkit.org/show_bug.cgi?id=144728
2824
2825         Reviewed by Sergio Villar Senin.
2826
2827         We added the dock buttons to the headerbar, because they were
2828         removed from the inspector toolbar, but with the new tabbed
2829         design, the dock buttons are back in the toolbar and look redundant.
2830
2831         * UIProcess/WebInspectorProxy.h:
2832         * UIProcess/gtk/WebInspectorProxyGtk.cpp:
2833         (WebKit::WebInspectorProxy::createInspectorWindow):
2834         (WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):
2835         (WebKit::WebInspectorProxy::dockButtonClicked): Deleted.
2836
2837 2015-05-06  Jer Noble  <jer.noble@apple.com>
2838
2839         [WK2][Fullscreen] Elements whose children extend beyond their bounds are clipped in fullscreen mode.
2840         https://bugs.webkit.org/show_bug.cgi?id=144716
2841
2842         Reviewed by Darin Adler.
2843
2844         We create a mask animation for the transition between windowed and fullscreen modes, on the
2845         assumption that the element being taken into fullscreen mode does not have visible children
2846         who extend beyond that elements bounds. This assumption breaks down in the case where div
2847         with absolutely positioned children is taken fullscreen. While we can't necessarily make the
2848         transition look correct in this case, we can remove the mask after the transition completes.
2849
2850         * UIProcess/mac/WKFullScreenWindowController.mm:
2851         (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
2852         * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
2853         (WebKit::removeAllMediaKeyStorageForOriginPath):
2854
2855 2015-05-06  Jinwoo Jeong  <jw00.jeong@samsung.com>
2856
2857         Fix a build break on EFL debug build
2858         https://bugs.webkit.org/show_bug.cgi?id=144654
2859
2860         Reviewed by Gyuyoung Kim.
2861
2862         No new tests, just build fix.
2863
2864         * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
2865         (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
2866         (WebKit::CoordinatedGraphicsScene::paintToGraphicsContext):
2867
2868 2015-05-06  Daniel Bates  <dabates@apple.com>
2869
2870         [iOS][WK2] Pause/resume database thread when UIProcess enters/leaves the background
2871         https://bugs.webkit.org/show_bug.cgi?id=144657
2872         <rdar://problem/18894598>
2873
2874         Reviewed by Andy Estes.
2875
2876         Pause and resume the database thread when the UIProcess enters and leaves the background,
2877         respectively, so that we avoid WebProcess termination due to holding a locked SQLite
2878         database file when the WebProcess is suspended. This behavior matches the analagous
2879         behavior in Legacy WebKit.
2880
2881         * UIProcess/WebPageProxy.h:
2882         * UIProcess/ios/WKContentView.mm:
2883         (-[WKContentView _applicationDidEnterBackground:]): Call WebPageProxy::applicationDidEnterBackground()
2884         when the UIProcess enters the background.
2885         * UIProcess/ios/WebPageProxyIOS.mm:
2886         (WebKit::WebPageProxy::applicationDidEnterBackground): Added; notify the WebProcess to pause the database thread.
2887         We temporarily take out background assertion on the WebProcess before sending this notification to ensure that the
2888         WebProcess is running to receive it. We'll release this assertion when the WebProcess replies that it received the
2889         notification.
2890         * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
2891         (WebKit::WebDatabaseManager::setPauseAllDatabases): Added; turns around and calls DatabaseManager::setPauseAllDatabases().
2892         * WebProcess/WebCoreSupport/WebDatabaseManager.h:
2893         * WebProcess/WebPage/WebPage.h:
2894         * WebProcess/WebPage/WebPage.messages.in: Add message ApplicationDidEnterBackground(). Also,
2895         add empty lines to help demarcate this message and the other UIKit application lifecycle-related
2896         messages from the rest of the list of messages.
2897         * WebProcess/WebPage/ios/WebPageIOS.mm:
2898         (WebKit::WebPage::applicationWillEnterForeground): Resume the database thread.
2899         (WebKit::WebPage::applicationDidEnterBackground): Pause the database thread.
2900
2901 2015-05-06  Ryuan Choi  <ryuan.choi@navercorp.com>
2902
2903         [EFL] ewk_view_page_contents_get() API test is flaky
2904         https://bugs.webkit.org/show_bug.cgi?id=144683
2905
2906         Reviewed by Gyuyoung Kim.
2907
2908         Callback of WKPageGetContentsAsMHTMLData contains WKData which does not contain null terminated character.
2909
2910         * UIProcess/API/efl/ewk_view.cpp: Pass the data of string instead of WKData directly.
2911         (ewkViewPageContentsAsMHTMLCallback):
2912
2913 2015-05-06  Joseph Pecoraro  <pecoraro@apple.com>
2914
2915         Web Inspector: Docking Toolbar Buttons do not respect Docking Availability
2916         https://bugs.webkit.org/show_bug.cgi?id=144714
2917
2918         Reviewed by Timothy Hatcher.
2919
2920         * UIProcess/WebInspectorProxy.cpp:
2921         (WebKit::WebInspectorProxy::createInspectorPage):
2922         (WebKit::WebInspectorProxy::attachAvailabilityChanged):
2923         * WebProcess/WebPage/WebInspectorUI.cpp:
2924         (WebKit::WebInspectorUI::setDockingUnavailable):
2925         * WebProcess/WebPage/WebInspectorUI.h:
2926         * WebProcess/WebPage/WebInspectorUI.messages.in:
2927         When docking availability changes, inform the inspector page
2928         so it can respond by updating its UI.
2929
2930 2015-05-06  Joonghun Park  <jh718.park@samsung.com>
2931
2932         [WK2] Simplify AsyncRequestImpl::ArgumentType parameters
2933         https://bugs.webkit.org/show_bug.cgi?id=144689
2934
2935         Reviewed by Darin Adler.
2936
2937         Remove duplicated typename and ::type from AsyncRequestImpl related
2938         function parameters.
2939
2940         * Shared/AsyncRequest.h:
2941
2942 2015-05-06  Commit Queue  <commit-queue@webkit.org>
2943
2944         Unreviewed, rolling out r183894.
2945         https://bugs.webkit.org/show_bug.cgi?id=144719
2946
2947         crashes on mavericks (Requested by dino on #webkit).
2948
2949         Reverted changeset:
2950
2951         "Handle backdrop views that have to tile"
2952         https://bugs.webkit.org/show_bug.cgi?id=142317
2953         http://trac.webkit.org/changeset/183894
2954
2955 2015-05-06  Brady Eidson  <beidson@apple.com>
2956
2957         Addition review followup for:
2958         Crash executing null AsyncRequest in IDB code.
2959         <rdar://problem/18854856> and https://bugs.webkit.org/show_bug.cgi?id=144715
2960
2961         Reviewed by Darin Adler.
2962
2963         This patch adds a layer on top of the UniqueIDBDatabase request map to catch this coding mistake in the future. 
2964  
2965          * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
2966         (WebKit::UniqueIDBDatabase::didCompleteBoolRequest): Get rid of the ASSERT and the temporary variable,
2967           make it a single line which reads better.
2968         (WebKit::UniqueIDBDatabase::didPutRecordInBackingStore): Ditto.
2969         (WebKit::UniqueIDBDatabase::didGetRecordFromBackingStore): Ditto.
2970         (WebKit::UniqueIDBDatabase::didOpenCursorInBackingStore): Ditto.
2971         (WebKit::UniqueIDBDatabase::didAdvanceCursorInBackingStore): Ditto.
2972         (WebKit::UniqueIDBDatabase::didIterateCursorInBackingStore): Ditto.
2973         (WebKit::UniqueIDBDatabase::didCountInBackingStore): Ditto.
2974         (WebKit::UniqueIDBDatabase::didDeleteRangeInBackingStore): Ditto.
2975         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: Ditto.
2976
2977         Add the class AsyncRequestMap which shadows a HashMap but does aggressive runtime checks
2978         in ::take() to make sure the same request was not dispatched twice in a row, and makes sure we
2979         never try to execute a null AsyncRequest by way of a RELEASE_ASSERT.
2980         * Shared/AsyncRequest.h:
2981         (WebKit::AsyncRequestMap::AsyncRequestMap):
2982         (WebKit::AsyncRequestMap::take):
2983         (WebKit::AsyncRequestMap::add):
2984         (WebKit::AsyncRequestMap::clear):
2985         (WebKit::AsyncRequestMap::values):
2986
2987 2015-05-06  Brady Eidson  <beidson@apple.com>
2988
2989         Crash executing null AsyncRequest in IDB code.
2990         <rdar://problem/18854856> and https://bugs.webkit.org/show_bug.cgi?id=144715
2991
2992         Reviewed by Darin Adler.
2993
2994         When UniqueIDBDatabase fails to execute an operation on the database work queue it usually
2995         dispatches an AsyncRequest ID back to the main thread with an error callback.
2996
2997         For two of its operations it would then also dispatch the success callback.
2998
2999         In those cases the main thread would first take the AsyncRequest for the error callback out
3000         of a map and then execute it.
3001
3002         It would then try to take the same AsyncRequest out of the map again, fail to do so, then
3003         execute a null AsyncRequest.
3004
3005         This patch fixes the two functions to not dispatch both an error and success callback.
3006
3007         * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
3008         (WebKit::UniqueIDBDatabase::countInBackingStore): Return after dispatching the error callback.
3009         (WebKit::UniqueIDBDatabase::deleteRangeInBackingStore): Ditto.
3010
3011 2015-05-06  Dean Jackson  <dino@apple.com>
3012
3013         Handle backdrop views that have to tile
3014         https://bugs.webkit.org/show_bug.cgi?id=142317
3015         <rdar://problem/20049088>
3016
3017         Reviewed by Simon Fraser.
3018
3019         Add some better logging for custom appearance.
3020
3021         * Shared/mac/RemoteLayerTreeTransaction.mm:
3022         (WebKit::RemoteLayerTreeTextStream::operator<<):
3023
3024 2015-05-06  Chris Dumez  <cdumez@apple.com>
3025
3026         Disable network cache efficacy logging
3027         https://bugs.webkit.org/show_bug.cgi?id=144703
3028         <rdar://problem/20439143>
3029
3030         Reviewed by Andreas Kling.
3031
3032         Disable network cache efficacy logging by default as we have sufficient
3033         data for now.
3034
3035         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
3036         (WebKit::registerUserDefaultsIfNeeded):
3037
3038 2015-05-06  Timothy Horton  <timothy_horton@apple.com>
3039
3040         Fix the build.
3041
3042         * UIProcess/mac/WKViewLayoutStrategy.mm:
3043         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):
3044
3045 2015-05-06  Dan Bernstein  <mitz@apple.com>
3046
3047         No way to get a WKWebProcessPlugInFrame’s parent frame
3048         https://bugs.webkit.org/show_bug.cgi?id=144705
3049
3050         Reviewed by Sam Weinig.
3051
3052         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
3053         (-[WKWebProcessPlugInFrame _parentFrame]): Added this getter.
3054         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h: Declared new
3055         _parentFrame property.
3056
3057 2015-05-06  Timothy Horton  <timothy_horton@apple.com>
3058
3059         Fix the build.
3060
3061         * UIProcess/mac/WKViewLayoutStrategy.mm:
3062         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):
3063
3064 2015-04-02  Myles C. Maxfield  <mmaxfield@apple.com>
3065
3066         Introducing the Platform Abstraction Layer (PAL)
3067         https://bugs.webkit.org/show_bug.cgi?id=143358
3068
3069         Reviewed by Simon Fraser.
3070
3071         * Configurations/FeatureDefines.xcconfig: Updated
3072
3073 2015-05-05  Carlos Garcia Campos  <cgarcia@igalia.com>
3074
3075         [GTK][WK2] The WebKit network disk cache is not enabled
3076         https://bugs.webkit.org/show_bug.cgi?id=142821
3077
3078         Reviewed by Martin Robinson.
3079
3080         Enable NetworkCache for the GTK+ port.
3081
3082         * config.h:
3083
3084 2015-05-06  Ryuan Choi  <ryuan.choi@navercorp.com>
3085
3086         [EFL] Remove redudant condition in ViewClientEfl::didChangeViewportAttributes
3087         https://bugs.webkit.org/show_bug.cgi?id=144672
3088
3089         Reviewed by Gyuyoung Kim.
3090
3091         ViewClientEfl::didChangeViewportAttributes is always called when fixed layout is disabled.
3092
3093         * UIProcess/efl/ViewClientEfl.cpp:
3094         (WebKit::ViewClientEfl::didChangeViewportAttributes):
3095         Removes condition that checks whether fixed layout is enabled.
3096
3097 2015-05-05  Alexey Proskuryakov  <ap@apple.com>
3098
3099         NetworkResourceLoader::cleanup() should clear ResourceHandle client pointer.
3100         https://bugs.webkit.org/show_bug.cgi?id=144641
3101         rdar://problem/20250960
3102
3103         Reviewed by David Kilzer.
3104
3105         * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::cleanup):
3106         Clear the client pointer.
3107
3108         * Shared/Authentication/AuthenticationManager.cpp:
3109         (WebKit::AuthenticationManager::useCredentialForChallenge):
3110         (WebKit::AuthenticationManager::continueWithoutCredentialForChallenge):
3111         (WebKit::AuthenticationManager::cancelChallenge):
3112         (WebKit::AuthenticationManager::performDefaultHandling):
3113         (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue):
3114         Updated comments, which were not accurate, at least on Mac.
3115
3116 2015-05-05  Tim Horton  <timothy_horton@apple.com>
3117
3118         Views get stuck with viewScale < 1 after switching from DynamicSizeWithMinimumViewSize to ViewSize
3119         https://bugs.webkit.org/show_bug.cgi?id=144656
3120
3121         Reviewed by Dan Bernstein.
3122
3123         * UIProcess/mac/WKViewLayoutStrategy.mm:
3124         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willChangeLayoutStrategy]):
3125         Reset the viewScale when we leave the DynamicSizeWithMinimumViewSize strategy.
3126
3127 2015-05-05  Tim Horton  <timothy_horton@apple.com>
3128
3129         Fix the build.
3130
3131         * Platform/mac/LayerHostingContext.mm:
3132         (WebKit::LayerHostingContext::setFencePort):
3133
3134 2015-05-05  Tim Horton  <timothy_horton@apple.com>
3135
3136         Fix the build.
3137
3138         * UIProcess/mac/WKViewLayoutStrategy.mm:
3139         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):
3140
3141 2015-05-05  Timothy Horton  <timothy_horton@apple.com>
3142
3143         Add a layout mode for computing fixed layout size from a minimum size
3144         https://bugs.webkit.org/show_bug.cgi?id=144610
3145         <rdar://problem/19790341>
3146
3147         Reviewed by Simon Fraser.
3148
3149         Add a layout mode where WebKit determines the layout size with a set of
3150         (still in flux) heuristics, trying hard to keep the page usable below a
3151         particular client-defined threshold view size.
3152
3153         This can mean that WebKit will start scaling down the page inside the view
3154         to make the whole page fit, using the viewScale mechanism.
3155
3156         * UIProcess/API/C/WKLayoutMode.h:
3157         * UIProcess/API/Cocoa/_WKLayoutMode.h:
3158         Add the new layout mode, and documentation for the two complicated ones.
3159         
3160         * UIProcess/API/Cocoa/WKWebView.mm:
3161         (-[WKWebView _layoutMode]):
3162         (-[WKWebView _setLayoutMode:]):
3163         (-[WKWebView _setViewScale:]):
3164         (-[WKWebView _setMinimumViewSize:]):
3165         (-[WKWebView _minimumViewSize]):
3166         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
3167         Forward the layoutMode and viewScale parameters to WKView if we have one.
3168
3169         * UIProcess/API/Cocoa/WKViewPrivate.h:
3170         * UIProcess/API/mac/WKView.mm:
3171         (-[WKView dealloc]):
3172         (-[WKView viewWillStartLiveResize]):
3173         (-[WKView viewDidEndLiveResize]):
3174         (-[WKView setFrameSize:]):
3175         (-[WKView initWithFrame:processPool:configuration:webView:]):
3176         (-[WKView disableFrameSizeUpdates]):
3177         (-[WKView enableFrameSizeUpdates]):
3178         (-[WKView frameSizeUpdatesDisabled]):
3179         (-[WKView _layoutMode]):
3180         (-[WKView _setLayoutMode:]):
3181         (-[WKView _setViewScale:]):
3182         (-[WKView _setMinimumViewSize:]):
3183         (-[WKView _minimumViewSize]):
3184         Store the minimum view size, and update the fixed layout size if needed.
3185
3186         (-[WKView _updateAutomaticallyComputedFixedLayoutSize]): Deleted.
3187         (-[WKView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]): Deleted.
3188         (-[WKView _automaticallyComputesFixedLayoutSizeFromViewScale]): Deleted.
3189         Store the WKLayoutMode on the WKViewLayoutStrategy instead of having a
3190         bunch of things like _automaticallyComputesFixedLayoutSizeFromViewScale.
3191
3192         * UIProcess/API/mac/WKViewInternal.h:
3193
3194         * UIProcess/mac/WKViewLayoutStrategy.h: Added.
3195         * UIProcess/mac/WKViewLayoutStrategy.mm: Added.
3196         (+[WKViewLayoutStrategy layoutStrategyWithPage:view:mode:]):
3197         (-[WKViewLayoutStrategy initWithPage:view:mode:]):
3198         (-[WKViewLayoutStrategy willDestroyView:]):
3199         (-[WKViewLayoutStrategy layoutMode]):
3200         (-[WKViewLayoutStrategy updateLayout]):
3201         (-[WKViewLayoutStrategy disableFrameSizeUpdates]):
3202         (-[WKViewLayoutStrategy enableFrameSizeUpdates]):
3203         (-[WKViewLayoutStrategy frameSizeUpdatesDisabled]):
3204         (-[WKViewLayoutStrategy didChangeViewScale]):
3205         (-[WKViewLayoutStrategy didChangeMinimumViewSize]):
3206         (-[WKViewLayoutStrategy willStartLiveResize]):
3207         (-[WKViewLayoutStrategy didEndLiveResize]):
3208         (-[WKViewLayoutStrategy didChangeFrameSize]):
3209         (-[WKViewLayoutStrategy willChangeLayoutStrategy]):
3210         (-[WKViewViewSizeLayoutStrategy initWithPage:view:mode:]):
3211         (-[WKViewViewSizeLayoutStrategy updateLayout]):
3212         (-[WKViewFixedSizeLayoutStrategy initWithPage:view:mode:]):
3213         (-[WKViewFixedSizeLayoutStrategy updateLayout]):
3214         (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:mode:]):
3215         (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy updateLayout]):
3216         (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy didChangeViewScale]):
3217         (-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy didChangeFrameSize]):
3218         Move the existing layout strategies from WKView into WKViewLayoutStrategy subclasses.
3219
3220         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy initWithPage:view:mode:]):
3221         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):
3222         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didChangeMinimumViewSize]):
3223         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willStartLiveResize]):
3224         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didEndLiveResize]):
3225         While in live resize with the new layout mode, disable frame size updates.
3226         The new layout mode will do a live scale during part of the resize, and
3227         we don't always want to send the new view size to the Web process.
3228
3229         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didChangeFrameSize]):
3230         (-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willChangeLayoutStrategy]):
3231         While in the new layout mode, maintain the viewScale as the minimum of the
3232         scale required to fit the current view frame size inside the minimumViewSize.
3233         If no scaling is required, carry on as usual, pushing the new view frame size
3234         to the DrawingArea and on to the Web process.
3235         If scaling is required, apply a transform to the view in the UI process,
3236         until the live resize completes, in which case we send a fenced viewScale
3237         adjustment to the Web process (so that the tiles paint at the new viewScale
3238         synchronized with the removal of the transform in the UI process).
3239
3240         * UIProcess/WebPageProxy.cpp:
3241         (WebKit::WebPageProxy::scaleViewFenced):
3242         * UIProcess/WebPageProxy.h:
3243         * WebProcess/WebPage/DrawingArea.h:
3244         (WebKit::DrawingArea::addFence):
3245         (WebKit::DrawingArea::acceleratedAnimationDidEnd): Deleted.
3246         * WebProcess/WebPage/WebPage.cpp:
3247         (WebKit::WebPage::scaleViewAndUpdateGeometryFenced):
3248         * WebProcess/WebPage/WebPage.h:
3249         * WebProcess/WebPage/WebPage.messages.in:
3250         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
3251         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
3252         (WebKit::TiledCoreAnimationDrawingArea::addFence):
3253         Add scaleViewAndUpdateGeometryFenced and the ability to install CoreAnimation fences on
3254         TiledCoreAnimationDrawingArea's CAContext.
3255
3256         Add the ability to send updateGeometry out-of-band, so that
3257         we can send it synchronously inside the message along with the CA fence.
3258         We have to both change the viewScale and updateGeometry simultaneously
3259         in the same CA commit that we install the fence into, in order to ensure
3260         that there is no flash.
3261
3262 2015-05-05  Alex Christensen  <achristensen@webkit.org>
3263
3264         [Content Extensions] Release input NSString when finished copying it.
3265         https://bugs.webkit.org/show_bug.cgi?id=144642
3266
3267         Reviewed by Brian Weinstein.
3268
3269         * UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
3270         * UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
3271         (-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
3272
3273 2015-05-05  Alex Christensen  <achristensen@webkit.org>
3274
3275         [Content Extensions] Use less memory to store the json input.
3276         https://bugs.webkit.org/show_bug.cgi?id=144604
3277
3278         Reviewed by Benjamin Poulain.
3279
3280         * UIProcess/API/APIUserContentExtensionStore.cpp:
3281         (API::compiledToFile):
3282         (API::UserContentExtensionStore::compileContentExtension):
3283         * UIProcess/API/APIUserContentExtensionStore.h:
3284         Don't copy strings as much or keep them alive after done using them.
3285
3286 2015-05-04  Alex Christensen  <achristensen@webkit.org>
3287
3288         [Content Extensions] Use less memory when writing byte code to file
3289         https://bugs.webkit.org/show_bug.cgi?id=144602
3290
3291         Reviewed by Darin Adler.
3292
3293         * UIProcess/API/APIUserContentExtensionStore.cpp:
3294         (API::decodeContentExtensionMetaData):
3295         (API::writeDataToFile):
3296         (API::compiledToFile):
3297         (API::createExtension):
3298         Compile and write each DFA to file, then come back and write the header when finalizing.
3299         Also don't copy the DFA bytecode. This way, we don't need to keep more than one DFA's
3300         bytecode in memory at a time.
3301
3302 2015-05-05  Sungmann Cho  <sungmann.cho@navercorp.com>
3303
3304         Make all FrameLoadState data members private.
3305         https://bugs.webkit.org/show_bug.cgi?id=144562
3306
3307         Reviewed by Darin Adler.
3308
3309         Previously, all of the data members in FrameLoadState were public and accessed directly
3310         from outside the class. But these should all be private as noted in FrameLoadState.h
3311         for better encapsulation.
3312
3313         No new tests, no behavior change.
3314
3315         * UIProcess/API/C/WKFrame.cpp:
3316         (WKFrameGetFrameLoadState):
3317         * UIProcess/FrameLoadState.h:
3318         (WebKit::FrameLoadState::state):
3319         (WebKit::FrameLoadState::url):
3320         (WebKit::FrameLoadState::provisionalURL):
3321         (WebKit::FrameLoadState::unreachableURL):
3322         * UIProcess/WebFrameProxy.h:
3323         (WebKit::WebFrameProxy::url):
3324         (WebKit::WebFrameProxy::provisionalURL):
3325         (WebKit::WebFrameProxy::unreachableURL):
3326
3327 2015-05-05  Alexey Proskuryakov  <ap@apple.com>
3328
3329         Crashes in SandboxExtension::consumePermanently when uploading
3330         https://bugs.webkit.org/show_bug.cgi?id=144611
3331         rdar://problem/10156710
3332
3333         Reviewed by Darin Adler.
3334
3335         This only fixes the crashes, uploading still won't work.
3336         Added null checks and some logging that may help us get to the root cause eventually.
3337
3338         * Shared/SandboxExtension.h:
3339         (WebKit::SandboxExtension::createHandle):
3340         (WebKit::SandboxExtension::createHandleForReadWriteDirectory):
3341         * Shared/mac/SandboxExtensionMac.mm:
3342         (WebKit::SandboxExtension::createHandle):
3343         (WebKit::SandboxExtension::createHandleForReadWriteDirectory):
3344         * UIProcess/WebPageProxy.cpp:
3345         (WebKit::WebPageProxy::didChooseFilesForOpenPanel):
3346         * WebProcess/WebPage/WebPage.cpp:
3347         (WebKit::WebPage::extendSandboxForFileFromOpenPanel):
3348
3349 2015-05-05  Csaba Osztrogonác  <ossy@webkit.org>
3350
3351         Remove TextureMapperImageBuffer
3352         https://bugs.webkit.org/show_bug.cgi?id=143561
3353
3354         Reviewed by Žan Doberšek.
3355
3356         * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
3357         (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
3358         * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
3359         (WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing):
3360
3361 2015-05-05  Carlos Garcia Campos  <cgarcia@igalia.com>
3362
3363         [SOUP] Network Cache: IOChannel operations are not sent to the right thread
3364         https://bugs.webkit.org/show_bug.cgi?id=144542
3365
3366         Reviewed by Darin Adler.
3367
3368         We are ignoring the given WorkQueue and running the async
3369         operations in the current thread. Check the given WorkQueue
3370         instead and schedule the operation to the given queue. If the
3371         given queue is nullptr, which means the operation should be run in
3372         the main context, the operation is run directly if the current
3373         context is the main one or sent to the main context using a
3374         GMainLoopSource.
3375
3376         Fixes crashes due to asserts when running disk-cache layout tests
3377         in a Debug build.
3378
3379         * NetworkProcess/cache/NetworkCacheIOChannel.h:
3380         * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
3381         (WebKit::NetworkCache::runTaskInQueue):
3382         (WebKit::NetworkCache::IOChannel::read):
3383         (WebKit::NetworkCache::IOChannel::readSync):
3384         (WebKit::NetworkCache::IOChannel::write):
3385
3386 2015-05-04  Dan Bernstein  <mitz@apple.com>
3387
3388         WebKit always goes through LaunchServices for main frame navigation actions
3389         https://bugs.webkit.org/show_bug.cgi?id=144608
3390
3391         Reviewed by Tim Horton.
3392
3393         * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Defined
3394         _WKNavigationActionPolicyAllowWithoutTryingAppLink.
3395         * UIProcess/Cocoa/NavigationState.mm:
3396         (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): If the policy
3397         is _WKNavigationActionPolicyAllowWithoutTryingAppLink, don’t go through tryAppLink.
3398
3399 2015-05-04  Enrica Casucci  <enrica@apple.com>
3400
3401         [iOS WK2] editorState should include information about selection clipping rectangle.
3402         https://bugs.webkit.org/show_bug.cgi?id=144603
3403         rdar://problem/20521252
3404
3405         Reviewed by Chris Dumez.
3406
3407         Adding selectionClipRect to the post-layout portion of EditorState.
3408         This way we can compute the selection clipping rectangle based on
3409         up-to-date information instead of using the rectangle provided when
3410         then element was first focused.
3411
3412         * Shared/EditorState.cpp:
3413         (WebKit::EditorState::PostLayoutData::encode):
3414         (WebKit::EditorState::PostLayoutData::decode):
3415         * Shared/EditorState.h:
3416         * UIProcess/ios/WKContentViewInteraction.mm:
3417         (-[WKContentView _selectionClipRect]):
3418         * WebProcess/WebPage/ios/WebPageIOS.mm:
3419         (WebKit::WebPage::platformEditorState):
3420
3421 2015-05-04  Antti Koivisto  <antti@apple.com>
3422
3423         Network Cache: Support time based cache clearing
3424         https://bugs.webkit.org/show_bug.cgi?id=144568
3425         <rdar://problem/19769820>
3426
3427         Reviewed by Andreas Kling.
3428
3429         Support clearing cache entries newer than given time only.
3430
3431         * NetworkProcess/cache/NetworkCache.cpp:
3432         (WebKit::NetworkCache::Cache::deleteDumpFile):
3433         (WebKit::NetworkCache::Storage::traverse):
3434
3435             Also fix thread safety of traverse handler function.
3436
3437         (WebKit::NetworkCache::Cache::clear):
3438
3439             Also add completion handler to support the API properly.
3440
3441         * NetworkProcess/cache/NetworkCache.h:
3442         * NetworkProcess/cache/NetworkCacheStorage.cpp:
3443         (WebKit::NetworkCache::Storage::clear):
3444         * NetworkProcess/cache/NetworkCacheStorage.h:
3445         * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
3446         (WebKit::clearNSURLCache):
3447
3448             Factor to a function.
3449
3450         (WebKit::NetworkProcess::clearDiskCache):
3451
3452 2015-05-04  Zan Dobersek  <zdobersek@igalia.com>
3453
3454         [WTF] Remove Functional.h inclusions
3455         https://bugs.webkit.org/show_bug.cgi?id=144400
3456
3457         Reviewed by Darin Adler.
3458
3459         Remove unnecessary inclusions of the <wtf/Functional.h> header in WebKit2.
3460
3461         * Platform/IPC/unix/ConnectionUnix.cpp:
3462         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Import the <objc/runtime.h>
3463         header that was previously indirectly included through the Functional.h header.
3464         * WebProcess/WebPage/DrawingArea.cpp:
3465
3466 2015-05-04  Csaba Osztrogonác  <ossy@webkit.org>
3467
3468         [ARM] Don't compare unsigned chars to EOF (-1)
3469         https://bugs.webkit.org/show_bug.cgi?id=144439
3470
3471         Reviewed by Geoffrey Garen.
3472
3473         * Shared/linux/WebMemorySamplerLinux.cpp:
3474         (WebKit::nextToken): Don't cast return value of fgetc() to char.
3475
3476 2015-05-04  Antti Koivisto  <antti@apple.com>
3477
3478         Remove NetworkResourceLoadScheduler
3479         https://bugs.webkit.org/show_bug.cgi?id=144550
3480
3481         Reviewed by Sam Weinig.
3482
3483         It doesn't really do anything.
3484
3485         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
3486         (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
3487         (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):
3488         * NetworkProcess/NetworkProcess.cpp:
3489         (WebKit::NetworkProcess::getNetworkProcessStatistics):
3490         * NetworkProcess/NetworkProcess.h:
3491         (WebKit::NetworkProcess::networkResourceLoadScheduler): Deleted.
3492         * NetworkProcess/NetworkResourceLoadScheduler.cpp: Removed.
3493         * NetworkProcess/NetworkResourceLoadScheduler.h: Removed.
3494         * NetworkProcess/NetworkResourceLoader.cpp:
3495         (WebKit::NetworkResourceLoader::cleanup):
3496         * NetworkProcess/NetworkResourceLoader.h:
3497         (WebKit::NetworkResourceLoader::create):
3498         * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
3499         (WebKit::initializeNetworkSettings):
3500
3501             Moved from NetworkResourceLoadSchedulerMac.mm.
3502
3503         (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
3504         * NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm: Removed.
3505         * NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp: Removed.
3506         * WebKit2.xcodeproj/project.pbxproj:
3507
3508 2015-05-03  Alexey Proskuryakov  <ap@apple.com>
3509
3510         Crash in SandboxExtension::consume when uploading iWork -tef documents to iCloud
3511         https://bugs.webkit.org/show_bug.cgi?id=144509
3512         rdar://problem/18731910
3513
3514         Reviewed by Daniel Bates.
3515
3516         No test, because testRunner.beginDragWithFiles doesn't work in WKTR, and making
3517         it work is hard.
3518
3519         * Shared/BlobDataFileReferenceWithSandboxExtension.cpp:
3520         (WebKit::BlobDataFileReferenceWithSandboxExtension::prepareForFileAccess):
3521         (WebKit::BlobDataFileReferenceWithSandboxExtension::revokeFileAccess):
3522
3523 2015-05-03  Carlos Garcia Campos  <cgarcia@igalia.com>
3524
3525         [GTK][EFL] Unify platform display handling
3526         https://bugs.webkit.org/show_bug.cgi?id=144517
3527
3528         Reviewed by Martin Robinson.
3529
3530         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
3531         (webkitWebViewBaseRealize): Use PlatformDisplay::sharedDisplay()
3532         to checkt the display type.
3533         (webkitWebViewBaseCreateWebPage): Ditto.
3534         * UIProcess/cairo/BackingStoreCairo.cpp:
3535         (WebKit::BackingStore::createBackend): Pass the native X11 shared
3536         display to BackingStoreBackendCairoX11.
3537         * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
3538         (WebKit::NetscapePlugin::x11HostDisplay): Return the native X11
3539         shared display.
3540
3541 2015-05-03  Carlos Garcia Campos  <cgarcia@igalia.com>
3542
3543         Unreviewed. Fix Debug build with NETWORK_CACHE enabled and CACHE_PARTITIONING disabled.
3544
3545         * NetworkProcess/cache/NetworkCache.cpp:
3546         (WebKit::NetworkCache::Cache::store):
3547
3548 2015-05-01  Dan Bernstein  <mitz@apple.com>
3549
3550         WebKit2 part of <rdar://problem/8636045> Back/forward navigation to an error page in Safari breaks the back-forward list
3551         https://bugs.webkit.org/show_bug.cgi?id=144501
3552
3553         Reviewed by Darin Adler.
3554
3555         * UIProcess/WebPageProxy.cpp:
3556         (WebKit::WebPageProxy::loadAlternateHTMLString): If this is called during
3557         didFailProvisionalLoadForFrame, send back the provisional URL captured at the time of
3558         failure.
3559         (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): Get the provisioinal URL and keep
3560         it in new member variable m_failingProvisionalLoadURL for the duration of the client’s
3561         handling of this message.
3562         * UIProcess/WebPageProxy.h:
3563
3564         * UIProcess/WebPageProxy.messages.in: Added provisionalURL parameter to
3565         DidFailProvisionalLoadForFrame.
3566
3567         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3568         (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): Send the URL for this error
3569         to the UI process.
3570
3571         * WebProcess/WebPage/WebPage.cpp:
3572         (WebKit::WebPage::loadAlternateHTMLString): Temporarily restore the loader’s state to
3573         reflect the provisional load error being handled.
3574
3575         * WebProcess/WebPage/WebPage.h:
3576         * WebProcess/WebPage/WebPage.messages.in: Added provisionalLoadErrorURL parameter to
3577         LoadAlternateHTMLString.
3578
3579 2015-05-01  Martin Robinson  <mrobinson@igalia.com>
3580
3581         USE(...) macro should expect unprefixed variables
3582         https://bugs.webkit.org/show_bug.cgi?id=144454
3583
3584         Reviewed by Daniel Bates.
3585
3586         * Shared/API/c/WKBase.h: Replace all occurrences WTF_USE with USE.
3587         * WebKit2.xcodeproj/project.pbxproj: Ditto.
3588
3589 2015-05-01  Brady Eidson  <beidson@apple.com>
3590
3591         Add API to disable meta refreshes.
3592         <rdar://problem/20333198> and https://bugs.webkit.org/show_bug.cgi?id=144269
3593
3594         Reviewed by Alexey Proskuryakov.
3595
3596         Add a preference to enable/disable meta refreshes, enabled by default.
3597
3598         * Shared/WebPreferencesDefinitions.h:
3599         * UIProcess/API/C/WKPreferences.cpp:
3600         (WKPreferencesSetMetaRefreshEnabled):
3601         (WKPreferencesGetMetaRefreshEnabled):
3602         (WKPreferencesGetIgnoreViewportScalingConstraints): Deleted.
3603         * UIProcess/API/C/WKPreferencesRefPrivate.h:
3604         * WebProcess/InjectedBundle/InjectedBundle.cpp:
3605         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
3606         * WebProcess/WebPage/WebPage.cpp:
3607         (WebKit::WebPage::updatePreferences):
3608
3609 2015-05-01  Antti Koivisto  <antti@apple.com>
3610
3611         Remove network process load serialization code
3612         https://bugs.webkit.org/show_bug.cgi?id=144448
3613
3614         Reviewed by Alexey Proskuryakov.
3615
3616         TestRunner.setSerializeHTTPLoads is used by a few tests but it is unnecessary
3617         with network process. We don't reorder loads anyway so test results are consistent.
3618         There or no other clients for this code.
3619
3620         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
3621         (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
3622         (WebKit::NetworkConnectionToWebProcess::setSerialLoadingEnabled): Deleted.
3623         * NetworkProcess/NetworkConnectionToWebProcess.h:
3624         (WebKit::NetworkConnectionToWebProcess::isSerialLoadingEnabled): Deleted.
3625         * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
3626         * NetworkProcess/NetworkProcess.cpp:
3627         (WebKit::NetworkProcess::getNetworkProcessStatistics):
3628         * NetworkProcess/NetworkResourceLoadScheduler.cpp:
3629         (WebKit::NetworkResourceLoadScheduler::scheduleLoader):
3630         (WebKit::NetworkResourceLoadScheduler::removeLoader):
3631         (WebKit::NetworkResourceLoadScheduler::loadsPendingCount): Deleted.
3632         * NetworkProcess/NetworkResourceLoadScheduler.h:
3633         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
3634         (WKBundleSetTabKeyCyclesThroughElements):
3635         (WKBundleSetSerialLoadingEnabled): Deleted.
3636         (WKBundleDispatchPendingLoadRequests): Deleted.
3637         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
3638         * WebProcess/InjectedBundle/InjectedBundle.cpp:
3639         (WebKit::InjectedBundle::setSerialLoadingEnabled): Deleted.
3640         (WebKit::InjectedBundle::dispatchPendingLoadRequests): Deleted.
3641
3642             Remove also this as it does nothing.
3643
3644         * WebProcess/Network/WebResourceLoadScheduler.cpp:
3645         (WebKit::WebResourceLoadScheduler::WebResourceLoadScheduler):
3646         (WebKit::WebResourceLoadScheduler::suspendPendingRequests):
3647         (WebKit::WebResourceLoadScheduler::resumePendingRequests):
3648
3649             Remove implementation, it does nothing.
3650
3651         (WebKit::WebResourceLoadScheduler::setSerialLoadingEnabled):
3652         * WebProcess/Network/WebResourceLoadScheduler.h:
3653
3654 2015-04-30  Timothy Horton  <timothy_horton@apple.com>
3655
3656         Remove long-deprecated unused WKView minimumLayoutWidth properties
3657         https://bugs.webkit.org/show_bug.cgi?id=144480
3658
3659         Reviewed by Alexey Proskuryakov.
3660
3661         * UIProcess/API/Cocoa/WKViewPrivate.h:
3662         * UIProcess/API/mac/WKView.mm:
3663         (-[WKView minimumLayoutWidth]): Deleted.
3664         (-[WKView setMinimumLayoutWidth:]): Deleted.
3665         (-[WKView minimumWidthForAutoLayout]): Deleted.
3666         (-[WKView setMinimumWidthForAutoLayout:]): Deleted.
3667         These were replaced with minimumSizeForAutoLayout long ago.
3668
3669 2015-04-30  Simon Fraser  <simon.fraser@apple.com>
3670
3671         Fixed elements end up in the middle of the view with pageScale < 1
3672         https://bugs.webkit.org/show_bug.cgi?id=144428
3673         rdar://problem/20404982
3674
3675         Reviewed by Tim Horton.
3676
3677         Encode/decode fixedElementsLayoutRelativeToFrame.
3678
3679         * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
3680         (ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
3681         (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
3682
3683 2015-04-30  Tim Horton  <timothy_horton@apple.com>
3684
3685         Asynchronous (or timed-out synchronous) resize flashes white instead of page background color
3686         https://bugs.webkit.org/show_bug.cgi?id=144468
3687
3688         Reviewed by Simon Fraser and Dan Bernstein.
3689
3690         * UIProcess/API/mac/WKView.mm:
3691         (-[WKView _viewBackgroundColor]):
3692         (-[WKView updateLayer]):
3693         Use the pageExtendedBackgroundColor for the background color of the WKView,
3694         if we have one (and aren't using a transparent background). This means
3695         during asynchronous resize or other cases where the Web process isn't keeping
3696         up with the UI process during a resize, we'll see background color instead of white.
3697
3698 2015-04-30  Beth Dakin  <bdakin@apple.com>
3699
3700         Should choose UIScrollView indicatorStyle based on the document background color
3701         https://bugs.webkit.org/show_bug.cgi?id=144473
3702         -and corresponding-
3703         rdar://problem/19897699
3704
3705         Reviewed by Simon Fraser.
3706
3707         Update the indicator style whenever the background color changes.  
3708         * UIProcess/API/Cocoa/WKWebView.mm:
3709         (-[WKWebView _updateScrollViewBackground]):
3710
3711 2015-04-30  Enrica Casucci  <enrica@apple.com>
3712
3713         [iOS] tapping in the middle of a word in editable content should not select the word.
3714         https://bugs.webkit.org/show_bug.cgi?id=144421
3715         rdar://problem/20710948
3716
3717         Reviewed by Tim Horton.
3718
3719         Reverting to the original behavior.
3720
3721         * WebProcess/WebPage/ios/WebPageIOS.mm:
3722         (WebKit::WebPage::selectWithGesture):
3723
3724 2015-04-29  Hunseop Jeong  <hs85.jeong@samsung.com>
3725
3726         Fix the EFL build after r183595
3727         https://bugs.webkit.org/show_bug.cgi?id=144427
3728
3729         Reviewed by Gyuyoung Kim.
3730
3731         updateWheelEventTestTriggersIfNeeded() is guarded by #if ENABLE(CSS_SCROLL_SNAP) || ENABLE(RUBBER_BANDING).
3732
3733         * WebProcess/WebPage/EventDispatcher.cpp:
3734         (WebKit::updateWheelEventTestTriggersIfNeeded):
3735
3736 2015-04-29  Brent Fulgham  <bfulgham@apple.com>
3737
3738         Expand test infrastructure to support scrolling tests
3739         https://bugs.webkit.org/show_bug.cgi?id=143684
3740         <rdar://problem/20375516>
3741
3742         Reviewed by Simon Fraser.
3743
3744         Update test programs to activate (and deactivate) the new WheelEventTestTrigger logic.
3745
3746         * UIProcess/API/C/WKPage.cpp:
3747         (WKPageClearWheelEventTestTriggers): Added.
3748         * UIProcess/API/C/WKPage.h:
3749         * UIProcess/WebPageProxy.cpp:
3750         (WebKit::WebPageProxy::clearWheelEventTestTrigger): Added.
3751         * UIProcess/WebPageProxy.h:
3752         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
3753         (WKBundlePageStartMonitoringScrollOperations): Interact with WheelEventTestTrigger through
3754         the Page, rather than MainFrame.
3755         (WKBundlePageRegisterScrollOperationCompletionCallback): Ditto.
3756         * WebProcess/Plugins/PDF/PDFPlugin.mm:
3757         (WebKit::PDFPlugin::createScrollbar): Make sure scroll animator knows about any
3758         active test triggers.
3759         * WebPage/EventDispatcher.mm:
3760         (WebKit::EventDispatcher::wheelEvent): If the wheel event was passed to the scrolling thread,
3761         defer tests until a Scrolling Thread Sync has occurred.
3762         * WebPage/WebPage.cpp:
3763         (WebKit::WebPage::clearWheelEventTestTrigger): Added.
3764         * WebPage/WebPage.h:
3765         * WebPage/WebPage.message.in: Added ClearWheelEventTestTrigger message.
3766
3767 2015-04-29  Enrica Casucci  <enrica@apple.com>
3768
3769         Adding the ability to move selection by granularity on iOS.
3770         https://bugs.webkit.org/show_bug.cgi?id=144410
3771         rdar://problem/19213337
3772
3773         Reviewed by Benjamin Poulain.
3774
3775         This patch also correctly sets _usingGestureForSelection for all
3776         the functions that change the selection with a gesture.
3777         This way we make sure that the selection drawing is not delayed
3778         until the next time we paint.
3779
3780         * UIProcess/WebPageProxy.h:
3781         * UIProcess/ios/WKContentViewInteraction.mm:
3782         (-[WKContentView moveSelectionAtBoundary:inDirection:completionHandler:]):
3783         * UIProcess/ios/WebPageProxyIOS.mm:
3784         (WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection):
3785         * WebProcess/WebPage/WebPage.h:
3786         * WebProcess/WebPage/WebPage.messages.in:
3787         * WebProcess/WebPage/ios/WebPageIOS.mm:
3788         (WebKit::WebPage::moveSelectionAtBoundaryWithDirection):
3789
3790 2015-04-29  Tim Horton  <timothy_horton@apple.com>
3791
3792         UI process sometimes crashes under _takeViewSnapshot when the window is off-screen
3793         https://bugs.webkit.org/show_bug.cgi?id=144418
3794         <rdar://problem/20740278>
3795
3796         Reviewed by Alexey Proskuryakov.
3797
3798         * UIProcess/API/mac/WKView.mm:
3799         (-[WKView _takeViewSnapshot]):
3800         Null-check the array before checking if it has any items.
3801         If the window is off-screen, we can't snapshot it.
3802
3803 2015-04-29  Simon Fraser  <simon.fraser@apple.com>
3804
3805         Allow testing of plug-ins that handle wheel events.
3806         https://bugs.webkit.org/show_bug.cgi?id=144413
3807
3808         Reviewed by Tim Horton.
3809         
3810         Allow the Test Netscape Plug-in to pretend to handle wheel events,
3811         so layout tests can use it.
3812
3813         * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
3814         (WebKit::NetscapePluginModule::determineQuirks):
3815
3816 2015-04-29  Filip Pizlo  <fpizlo@apple.com>
3817
3818         JSTypeInfo should have an inline type flag to indicate if getCallData() has been overridden
3819         https://bugs.webkit.org/show_bug.cgi?id=144397
3820
3821         Reviewed by Andreas Kling.
3822
3823         If you override getCallData() and you want to be called a "function", then you need to use the
3824         new TypeOfShouldCallGetCallData flag.
3825
3826         * WebProcess/Plugins/Netscape/JSNPObject.h:
3827
3828 2015-04-29  Antti Koivisto  <antti@apple.com>
3829
3830         ResourceLoadPriority should be enum class
3831         https://bugs.webkit.org/show_bug.cgi?id=144326
3832
3833         Reviewed by Darin Adler.
3834
3835         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
3836         (WebKit::NetworkConnectionToWebProcess::servePendingRequests): Deleted.
3837
3838             Remove this unused message.
3839
3840         * NetworkProcess/NetworkConnectionToWebProcess.h:
3841         * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
3842         * NetworkProcess/cache/NetworkCache.cpp:
3843         (WebKit::NetworkCache::makeStoreDecision):
3844         (WebKit::NetworkCache::Cache::retrieve):
3845         * NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm:
3846         (WebKit::NetworkResourceLoadScheduler::platformInitializeNetworkSettings):
3847         * WebProcess/Network/WebResourceLoadScheduler.cpp:
3848         (WebKit::WebResourceLoadScheduler::servePendingRequests):
3849         * WebProcess/Network/WebResourceLoadScheduler.h:
3850
3851 2015-04-29  Myles C. Maxfield  <mmaxfield@apple.com>
3852
3853         [OS X] Use CTFontCreateForCSS instead of doing font search ourselves
3854         https://bugs.webkit.org/show_bug.cgi?id=132159
3855
3856         Reviewed by Darin Adler.
3857
3858         Add SPI to set the font whitelist.
3859
3860         * Shared/WebProcessCreationParameters.cpp:
3861         (WebKit::WebProcessCreationParameters::encode):
3862         (WebKit::WebProcessCreationParameters::decode):
3863         * Shared/WebProcessCreationParameters.h:
3864         * UIProcess/API/C/WKContext.cpp:
3865         (WKContextSetFontWhitelist):
3866         * UIProcess/API/C/WKContextPrivate.h:
3867         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
3868         (WebKit::WebProcessPool::platformInitializeWebProcess):
3869         * UIProcess/WebProcessPool.cpp:
3870         (WebKit::WebProcessPool::setFontWhitelist):
3871         * UIProcess/WebProcessPool.h:
3872         * WebProcess/cocoa/WebProcessCocoa.mm:
3873         (WebKit::WebProcess::platformInitializeWebProcess):
3874
3875 2015-04-29  Martin Robinson  <mrobinson@igalia.com>
3876
3877         [CMake] [GTK] Organize and clean up unused CMake variables
3878         https://bugs.webkit.org/show_bug.cgi?id=144364
3879
3880         Reviewed by Gyuyoung Kim.
3881
3882         * PlatformGTK.cmake: Add variables specific to this project.
3883         * webkit2gtk-web-extension.pc.in: Hardcode the GTK+ API version. It rarely changes.
3884         * webkit2gtk.pc.in: Ditto.
3885
3886 2015-04-29  Carlos Garcia Campos  <cgarcia@igalia.com>
3887
3888         REGRESSION(r182573): [GTK] The default context menu contains an empty item since r182573
3889         https://bugs.webkit.org/show_bug.cgi?id=144388
3890
3891         Reviewed by Brady Eidson.
3892
3893         Move the WebContextMenuClient::shareMenuItem() implementation to
3894         platform files, since platforms not supporting share menu item
3895         should return a null ContextMenuIem instead.
3896
3897         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
3898         (WebKit::WebContextMenuClient::shareMenuItem): Deleted.
3899         * WebProcess/WebCoreSupport/efl/WebContextMenuClientEfl.cpp:
3900         (WebKit::WebContextMenuClient::shareMenuItem):
3901         * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:
3902         (WebKit::WebContextMenuClient::shareMenuItem):
3903         * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
3904         (WebKit::WebContextMenuClient::shareMenuItem):
3905
3906 2015-04-29  Carlos Garcia Campos  <cgarcia@igalia.com>
3907
3908         REGRESSION(r183467): [SOUP] isMainResource is no longer passed as resource load parameters to the network process
3909         https://bugs.webkit.org/show_bug.cgi?id=144381
3910
3911         Reviewed by Darin Adler.
3912
3913         A requester enum value is passed now as part of the
3914         ResourceRequest, but it's not encoded/decoded for soup.
3915
3916         * Shared/soup/WebCoreArgumentCodersSoup.cpp:
3917         (IPC::ArgumentCoder<ResourceRequest>::encodePlatformData): Encode requester.
3918         (IPC::ArgumentCoder<ResourceRequest>::decodePlatformData): Decode requester.
3919
3920 2015-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
3921
3922         [SOUP] Use xattrs to get/set the creation time of disk cache files
3923         https://bugs.webkit.org/show_bug.cgi?id=144251
3924
3925         Reviewed by Martin Robinson.
3926
3927         The network process disk cache uses the creation time to compute a
3928         worth value used to determine the order in which cached resources
3929         are deleted when the cache is shrunk. In some operating systems
3930         like Linux there's no st_birthtime in struct stat, but since cache
3931         files are always created and deleted by us, we could use a custom
3932         xattr to store and retrieve the creation time of cached resources.
3933
3934         * NetworkProcess/cache/NetworkCacheFileSystemPosix.h:
3935         (WebKit::NetworkCache::fileTimes):
3936         * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
3937         (WebKit::NetworkCache::IOChannel::IOChannel):
3938
3939 2015-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>
3940
3941         Network Cache: Do not create a SharedBuffer for mapped resources unless explicitly requested
3942         https://bugs.webkit.org/show_bug.cgi?id=144337
3943
3944         Reviewed by Antti Koivisto.
3945
3946         We send a buffer or a memory mapped handler to the web process
3947         depending on whether the resource body is mapped or not, but we
3948         are always creating a shared buffer even for mapped resources.
3949         Split initializeBufferFromStorageRecord() moving the mapped memory
3950         handler initialization to its own method.
3951
3952         * NetworkProcess/cache/NetworkCacheEntry.cpp:
3953         (WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
3954         Initialize the mapped memory handler if the body data is mapped.
3955         (WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord):
3956         Initialize the buffer by wrapping the mapped memory if the body
3957         data is mapped, or using the body data directly otherwise.
3958         (WebKit::NetworkCache::Entry::shareableResourceHandle): Call
3959         initializeShareableResourceHandleFromStorageRecord() if the
3960         handler is null.
3961         * NetworkProcess/cache/NetworkCacheEntry.h:
3962
3963 2015-04-28  Simon Fraser  <simon.fraser@apple.com>
3964
3965         Make a non-static version of FrameView::yPositionForRootContentLayer()
3966         https://bugs.webkit.org/show_bug.cgi?id=144375
3967
3968         Reviewed by Andy Estes.
3969
3970         There were two calls to the static FrameView::yPositionForRootContentLayer()
3971         which passed in all the arguments for the same FrameView. Make a member
3972         function for convenience.
3973
3974         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
3975         (WebKit::shadowLayerPositionForFrame):
3976
3977 2015-04-28  Ryuan Choi  <ryuan.choi@navercorp.com>
3978
3979         [CoordinatedGraphics] Merge TILED_BACKING_STORE guard with COORDINATED_GRAPHICS
3980         https://bugs.webkit.org/show_bug.cgi?id=143001
3981
3982         Reviewed by Gyuyoung Kim.
3983
3984         * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
3985         (WebKit::CoordinatedLayerTreeHostProxy::commitCoordinatedGraphicsState):
3986         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
3987         (WebKit::WebChromeClient::dispatchViewportPropertiesDidChange):
3988         * WebProcess/WebCoreSupport/WebChromeClient.h:
3989         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3990         (WebKit::WebFrameLoaderClient::dispatchDidLayout):
3991         (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
3992         * WebProcess/WebPage/WebPage.cpp:
3993         (WebKit::WebPage::setSize):
3994         (WebKit::WebPage::setUseFixedLayout):
3995         (WebKit::WebPage::canHandleUserEvents):
3996         * WebProcess/WebPage/WebPage.h:
3997
3998 2015-04-28  Timothy Horton  <timothy_horton@apple.com>
3999
4000         [TextIndicator] Yellow highlight takes too long to fade out on scroll
4001         https://bugs.webkit.org/show_bug.cgi?id=144358
4002         <rdar://problem/19451011>
4003
4004         Reviewed by Beth Dakin.
4005
4006         * UIProcess/API/Cocoa/WKViewPrivate.h:
4007         * UIProcess/API/mac/WKView.mm:
4008         (-[WKView renewGState]):
4009         (-[WKView viewDidMoveToWindow]):
4010         (-[WKView _dictionaryLookupPopoverWillClose:]):
4011         (-[WKView _setTextIndicator:]):
4012         (-[WKView _setTextIndicator:withLifetime:]):
4013         (-[WKView _clearTextIndicatorWithAnimation:]):
4014         (-[WKView magnifyWithEvent:]):
4015         (-[WKView smartMagnifyWithEvent:]):
4016         (-[WKView setMagnification:centeredAtPoint:]):
4017         (-[WKView setMagnification:]):
4018         (-[WKView _dismissContentRelativeChildWindows]):
4019         (-[WKView _dismissContentRelativeChildWindowsWithAnimation:]):
4020         (-[WKView _setTextIndicator:fadeOut:]): Deleted.
4021         * UIProcess/API/mac/WKViewInternal.h:
4022         * UIProcess/PageClient.h:
4023         * UIProcess/WebPageProxy.cpp:
4024         (WebKit::WebPageProxy::pageDidScroll):
4025         (WebKit::WebPageProxy::setTextIndicator):
4026         (WebKit::WebPageProxy::clearTextIndicator):
4027         * UIProcess/WebPageProxy.h:
4028         * UIProcess/WebPageProxy.messages.in:
4029         * UIProcess/ios/PageClientImplIOS.h:
4030         * UIProcess/ios/PageClientImplIOS.mm:
4031         (WebKit::PageClientImpl::setTextIndicator):
4032         (WebKit::PageClientImpl::clearTextIndicator):
4033         * UIProcess/mac/PageClientImpl.h:
4034         * UIProcess/mac/PageClientImpl.mm:
4035         (WebKit::PageClientImpl::setTextIndicator):
4036         (WebKit::PageClientImpl::clearTextIndicator):
4037         (WebKit::PageClientImpl::didPerformDictionaryLookup):
4038         (WebKit::PageClientImpl::dismissContentRelativeChildWindows):
4039         * UIProcess/mac/WKActionMenuController.mm:
4040         (-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
4041         * UIProcess/mac/WKImmediateActionController.mm:
4042         (-[WKImmediateActionController _defaultAnimationController]):
4043         (-[WKImmediateActionController _animationControllerForDataDetectedText]):
4044         (-[WKImmediateActionController _animationControllerForDataDetectedLink]):
4045         (-[WKImmediateActionController _animationControllerForText]):
4046         * WebProcess/WebPage/FindController.cpp:
4047         (WebKit::FindController::updateFindIndicator):
4048         Make _setTextIndicator take a reference.
4049         Add a variant of _setTextIndicator that takes a Lifetime.
4050         Make _clearTextIndicatorWithAnimation take a DismissalAnimation.
4051         Make dismissContentRelativeChildWindows take a parameter indicating
4052         whether the dismissal should include animation or not (currently
4053         only applies to TextIndicator).
4054         Don't animate when dismissal occurs because of scrolling, zooming,
4055         or other things in which the content will have changed significantly
4056         underneath the indicator and shouldn't have a slowly-fading-out yellow highlight.
4057
4058 2015-04-28  Michael Catanzaro  <mcatanzaro@igalia.com>
4059
4060         Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
4061         https://bugs.webkit.org/show_bug.cgi?id=144304
4062
4063         Reviewed by Geoffrey Garen.
4064
4065         Define ENABLE_JIT, enabled by default, instead of ENABLE_LLINT_C_LOOP, disabled by default.
4066
4067         * Configurations/FeatureDefines.xcconfig:
4068
4069 2015-04-28  Commit Queue  <commit-queue@webkit.org>
4070
4071         Unreviewed, rolling out r183514.
4072         https://bugs.webkit.org/show_bug.cgi?id=144359
4073
4074         It broke cloop test bots (Requested by mcatanzaro on #webkit).
4075
4076         Reverted changeset:
4077
4078         "Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT"
4079         https://bugs.webkit.org/show_bug.cgi?id=144304
4080         http://trac.webkit.org/changeset/183514
4081
4082 2015-04-28  Michael Catanzaro  <mcatanzaro@igalia.com>