8c0512e71b0874e170a8dbfb22ded847e19dd060
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2014-06-11  Enrica Casucci  <enrica@apple.com>
2
3         WebKit2 iOS: Unable to open UI menu for "open in new tab" for links on yahoo.com.
4         https://bugs.webkit.org/show_bug.cgi?id=133749
5         <rdar://problem/17165992>
6
7         Reviewed by Brady Eidson.
8
9         The URL returned to the UIProcess as string needs to be encoded.
10
11         * WebProcess/WebPage/ios/WebPageIOS.mm:
12         (WebKit::WebPage::getPositionInformation):
13
14 2014-06-10  Anders Carlsson  <andersca@apple.com>
15
16         Move suppressesIncrementalRendering to WKWebViewConfiguration
17         https://bugs.webkit.org/show_bug.cgi?id=133707
18         <rdar://problem/17271468>
19
20         Reviewed by Sam Weinig.
21
22         * UIProcess/API/Cocoa/WKPreferences.h:
23         Get rid of suppressesIncrementalRendering.
24
25         * UIProcess/API/Cocoa/WKWebView.mm:
26         (-[WKWebView initWithFrame:configuration:]):
27         Set the suppressesIncrementalRenderingKey key in webPageConfiguration.preferenceValues.
28
29         * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
30         Add suppressesIncrementalRendering.
31
32         * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
33         (-[WKWebViewConfiguration copyWithZone:]):
34         Assign suppressesIncrementalRendering.
35
36         * UIProcess/WebPageProxy.cpp:
37         (WebKit::WebPageProxy::WebPageProxy):
38         Copy webPageConfiguration.preferenceValues to m_configurationPreferenceValues.
39
40         (WebKit::WebPageProxy::preferencesStore):
41         If m_configurationPreferenceValues is empty, just return m_preferences->store(). Otherwise,
42         copy the store and apply the configuration preference values.
43
44         (WebKit::WebPageProxy::preferencesDidChange):
45         Call preferencesStore() so we'll get the configuration preference values as well.
46
47         (WebKit::WebPageProxy::creationParameters):
48         Ditto.
49
50         * UIProcess/WebPageProxy.h:
51
52 2014-06-11  Antti Koivisto  <antti@apple.com>
53
54         Wrap NSURLRequest in bundle API
55         https://bugs.webkit.org/show_bug.cgi?id=133732
56         <rdar://problem/17267217>
57
58         Reviewed by Andreas Kling.
59         
60         Patch by Dan Bernstein.
61
62         We don't want to construct actual NSURLRequests in the web process side unless really needed as it is slow.
63
64         * Shared/Cocoa/APIObject.mm:
65         (API::Object::newObject):
66         * Shared/Cocoa/WKNSURLRequest.h: Added.
67         (WebKit::wrapper):
68         * Shared/Cocoa/WKNSURLRequest.mm: Added.
69         
70             Add a wrapper object that initializes the underlying NSURLRequest on-demand.
71
72         (-[WKNSURLRequest _web_createTarget]):
73         (-[WKNSURLRequest URL]):
74         (-[WKNSURLRequest copyWithZone:]):
75         * WebKit2.xcodeproj/project.pbxproj:
76         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
77         (willSendRequestForFrame):
78         (didInitiateLoadForResource):
79
80 2014-06-11  Dan Bernstein  <mitz@apple.com>
81
82         <rdar://problem/17218629> [Cocoa] WKWebView’s canGoBack and canGoForward properties are not KVO-compliant
83         https://bugs.webkit.org/show_bug.cgi?id=133722
84
85         Reviewed by Anders Carlsson.
86
87         * UIProcess/API/Cocoa/WKBrowsingContextController.mm: Added no-op overrides of new
88         PageLoadStateObserver member functions.
89
90         * UIProcess/API/Cocoa/WKWebView.h: Documented the canGoBack and canGoForward properties as
91         being KVO-compliant.
92         * UIProcess/API/Cocoa/WKWebView.mm:
93         (-[WKWebView canGoBack]): Changed to get the return value from the page load state.
94         (-[WKWebView canGoForward]): Ditto.
95
96         * UIProcess/Cocoa/NavigationState.h:
97         * UIProcess/Cocoa/NavigationState.mm:
98         (WebKit::NavigationState::willChangeCanGoBack): Override this new PageLoadStateObserver
99         member function by sending the appropriate KVO change message to the WKWebView.
100         (WebKit::NavigationState::didChangeCanGoBack): Ditto.
101         (WebKit::NavigationState::willChangeCanGoForward): Ditto.
102         (WebKit::NavigationState::didChangeCanGoForward): Ditto.
103
104         * UIProcess/PageLoadState.cpp:
105         (WebKit::PageLoadState::commitChanges): Check for changes to canGoBack and canGoForward
106         and call the observers if needed.
107         (WebKit::PageLoadState::canGoBack): Added. Returns the value from the committed state.
108         (WebKit::PageLoadState::setCanGoBack): Added. Sets the value in the uncommitted state.
109         (WebKit::PageLoadState::canGoForward): Added. Returns the value from the committed state.
110         (WebKit::PageLoadState::setCanGoForward): Added. Sets the value in the uncommitted state.
111         * UIProcess/PageLoadState.h:
112         (WebKit::PageLoadState::Data::Data): Added canGoBack and canGoForward boolean members.
113
114         * UIProcess/WebPageProxy.cpp:
115         (WebKit::WebPageProxy::didChangeBackForwardList): Update the page load state with the new
116         state of canGoBack and canGoForward.
117         * UIProcess/WebPageProxy.h: Removed unused member variables m_canGoBack and m_canGoForward.
118
119 2014-06-11  Zan Dobersek  <zdobersek@igalia.com>
120
121         Avoid Vector copies in WebNotificationManagerProxy::providerDidCloseNotifications(), FindController::findStringMatches()
122         https://bugs.webkit.org/show_bug.cgi?id=133676
123
124         Reviewed by Andreas Kling.
125
126         * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
127         (WebKit::WebNotificationManagerProxy::providerDidCloseNotifications): Move the newly-created
128         Vector object into the HashMap<>::add() call.
129         * WebProcess/WebPage/FindController.cpp:
130         (WebKit::FindController::findStringMatches): Movethe newly-create Vector object into the
131         Vector<>::append() call.
132
133 2014-06-11  Shivakumar JM  <shiva.jm@samsung.com>
134
135         [EFL][WK2] Add missing test cases for EWK2ViewTest.
136         https://bugs.webkit.org/show_bug.cgi?id=133715
137
138         Reviewed by Gyuyoung Kim.
139
140         Add missing test cases for ewk_view.h APIs, ewk_view_stop(), ewk_view_html_string_load(), ewk_view_theme_get(), 
141         ewk_view_feed_touch_event(), ewk_view_text_find_highlight_clear(), ewk_view_text_find(), ewk_view_text_matches_count(),
142         ewk_view_page_contents_get(), ewk_view_script_execute().
143
144         * PlatformEfl.cmake:
145         * UIProcess/API/efl/tests/test_ewk2_view.cpp:
146         (TEST_F):
147
148 2014-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>
149
150         [GTK] Use a different user agent string depending on the site
151         https://bugs.webkit.org/show_bug.cgi?id=132681
152
153         Reviewed by Anders Carlsson.
154
155         * UIProcess/API/gtk/WebKitSettings.cpp:
156         (webkit_settings_class_init): Enable site specific quirks setting
157         by default.
158         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
159         (WebKit::WebFrameLoaderClient::userAgent): Pass the given URL to WebPage.
160         * WebProcess/WebPage/WebPage.cpp:
161         (WebKit::WebPage::userAgent): Try to get the user agent for the
162         URL received falling back to the current one otherwise.
163         * WebProcess/WebPage/WebPage.h:
164         (WebKit::WebPage::platformUserAgent): Added.
165         * WebProcess/WebPage/efl/WebPageEfl.cpp:
166         (WebKit::WebPage::platformUserAgent): Return null String.
167         * WebProcess/WebPage/gtk/WebPageGtk.cpp:
168         (WebKit::WebPage::platformUserAgent): Use WebCore::standardUserAgentForURL() when site specific quirks
169         setting is enabled.
170         * WebProcess/WebPage/ios/WebPageIOS.mm:
171         (WebKit::WebPage::platformUserAgent): Return null String.
172         * WebProcess/WebPage/mac/WebPageMac.mm:
173         (WebKit::WebPage::platformUserAgent): Return null String.
174
175 2014-06-10  Benjamin Poulain  <benjamin@webkit.org>
176
177         [iOS][WK2] ScrollingTreeOverflowScrollingNode does not use asynchronous touch dispatch
178         https://bugs.webkit.org/show_bug.cgi?id=133702
179         <rdar://problem/17259261>
180
181         Reviewed by Simon Fraser.
182
183         Notify the WKWebView and the TouchGestureRecognizer when on of the internal UIScrollView
184         starts scrolling in response to a gesture.
185
186         * UIProcess/PageClient.h:
187         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
188         * UIProcess/Scrolling/RemoteScrollingTree.cpp:
189         (WebKit::RemoteScrollingTree::scrollingTreeNodeWillStartPanGesture):
190         * UIProcess/Scrolling/RemoteScrollingTree.h:
191         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
192         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
193         (-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
194         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollViewWillStartPanGesture):
195         * UIProcess/WebPageProxy.h:
196         * UIProcess/ios/PageClientImplIOS.h:
197         * UIProcess/ios/PageClientImplIOS.mm:
198         (WebKit::PageClientImpl::scrollViewWillStartPanGesture):
199         * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
200         (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeWillStartPanGesture):
201         * UIProcess/ios/WebPageProxyIOS.mm:
202         (WebKit::WebPageProxy::scrollViewWillStartPanGesture):
203
204 2014-06-10  Dan Bernstein  <mitz@apple.com>
205
206         WebKit2 part of [Cocoa] Handling authentication challenges should not require multiple delegate methods
207         https://bugs.webkit.org/show_bug.cgi?id=133697
208
209         Reviewed by Anders Carlsson.
210
211         * Shared/Authentication/AuthenticationManager.cpp:
212         (WebKit::AuthenticationManager::performDefaultHandling): Added. Calls the new
213         AuthenticationClient function receivedRequestToPerformDefaultHandling.
214         (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue): Added. Calls the new
215         AuthenticationClient function receivedChallengeRejection.
216         * Shared/Authentication/AuthenticationManager.h:
217         * Shared/Authentication/AuthenticationManager.messages.in: Added new messages
218         PerformDefaultHandling and RejectProtectionSpaceAndContinue.
219
220         * Shared/Downloads/DownloadAuthenticationClient.h: Override new AuthenticationClient member
221         functions.
222
223         * Shared/Downloads/ios/DownloadIOS.mm:
224         (WebKit::Download::receivedRequestToPerformDefaultHandling): Added empty implementation.
225         (WebKit::Download::receivedChallengeRejection): Ditto.
226
227         * Shared/Downloads/mac/DownloadMac.mm:
228         (WebKit::Download::receivedRequestToPerformDefaultHandling): Added. Forwards to the sender.
229         (WebKit::Download::receivedChallengeRejection): Ditto.
230
231         * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:
232         (checkChallenge): Factored out a bit of code into this helper function.
233         (-[WKNSURLAuthenticationChallengeSender cancelAuthenticationChallenge:]): Use new helper.
234         (-[WKNSURLAuthenticationChallengeSender continueWithoutCredentialForAuthenticationChallenge:]):
235         Ditto.
236         (-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]): Ditto.
237         (-[WKNSURLAuthenticationChallengeSender performDefaultHandlingForAuthenticationChallenge:]):
238         Implemented this optional NSURLAuthenticationChallengeSender protocol method by forwarding
239         to the decision listener.
240         (-[WKNSURLAuthenticationChallengeSender rejectProtectionSpaceAndContinueWithChallenge:]):
241         Ditto.
242
243         * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method.
244
245         * UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
246         (WebKit::AuthenticationChallengeProxy::performDefaultHandling): Added. Sends a message to
247         the authentication manager.
248         (WebKit::AuthenticationChallengeProxy::rejectProtectionSpaceAndContinue): Ditto.
249         * UIProcess/Authentication/AuthenticationChallengeProxy.h:
250
251         * UIProcess/Authentication/AuthenticationDecisionListener.cpp:
252         (WebKit::AuthenticationDecisionListener::performDefaultHandling): Added. Forwards to the
253         authentication challenge proxy.
254         (WebKit::AuthenticationDecisionListener::rejectProtectionSpaceAndContinue): Ditto.
255         * UIProcess/Authentication/AuthenticationDecisionListener.h:
256
257         * UIProcess/Cocoa/NavigationState.h: Added flag in m_navigationDelegateMethods struct.
258         * UIProcess/Cocoa/NavigationState.mm:
259         (WebKit::NavigationState::setNavigationDelegate): Initialize
260         webViewWillSendRequestForAuthenticationChallenge flag in the delegate methods struct.
261         (WebKit::NavigationState::LoaderClient::canAuthenticateAgainstProtectionSpaceInFrame): If
262         the delegate implements -_webView:willSendRequestForAuthenticationChallenge:, return true
263         here; the delegate will respond with -rejectProtectionSpaceAndContinueWithChallenge: if
264         it cannot authenticate.
265         (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame): If the
266         delegate implements -_webView:willSendRequestForAuthenticationChallenge:, send that message.
267
268 2014-06-10  Timothy Horton  <timothy_horton@apple.com>
269
270         Factor repeated CFRunLoopObserver code out
271         https://bugs.webkit.org/show_bug.cgi?id=133690
272
273         Reviewed by Simon Fraser.
274
275         * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
276         * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
277         (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
278         (WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy):
279         (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
280         (WebKit::RemoteLayerTreeDrawingAreaProxy::showDebugIndicator):
281         (WebKit::coreAnimationDidCommitLayersCallback): Deleted.
282         (WebKit::RemoteLayerTreeDrawingAreaProxy::scheduleCoreAnimationLayerCommitObserver): Deleted.
283         (WebKit::RemoteLayerTreeDrawingAreaProxy::coreAnimationDidCommitLayers): Deleted.
284         Make use of WebCore::RunLoopObserver.
285
286 2014-06-10  Anders Carlsson  <andersca@apple.com>
287
288         Fix availability declaration.
289
290         * UIProcess/API/Cocoa/WKError.h:
291
292 2014-06-10  Anders Carlsson  <andersca@apple.com>
293
294         Address a comment about a comment.
295
296         * UIProcess/API/Cocoa/WKWebView.mm:
297         (-[WKWebView evaluateJavaScript:completionHandler:]):
298
299 2014-06-10  Anders Carlsson  <andersca@apple.com>
300
301         Add -[WKWebView evaluateJavaScript:completionHandler:]
302         https://bugs.webkit.org/show_bug.cgi?id=133689
303         <rdar://problem/17152685>
304
305         Reviewed by Geoffrey Garen.
306
307         * Shared/API/c/WKErrorRef.h:
308         Remove WKErrorCode typedef from here.
309
310         * UIProcess/API/C/WKPageLoaderClient.h:
311         Use uint32_t instead of WKErrorCode.
312
313         * UIProcess/API/Cocoa/WKError.h:
314         (NS_ENUM):
315         Add a WKErrorDomain and a WKErrorCode enum.
316
317         * UIProcess/API/Cocoa/WKError.mm:
318         (localizedDescriptionForErrorCode):
319         Helper that returns the localized description given an error code.
320
321         (createNSError):
322         Helper that creates an NSError with the correct localized description given an error code.
323
324         * UIProcess/API/Cocoa/WKErrorInternal.h:
325         Add helpers.
326
327         * UIProcess/API/Cocoa/WKWebView.h:
328         Add evaluateJavaScript:completionHandler: method.
329
330         * UIProcess/API/Cocoa/WKWebView.mm:
331         (callbackErrorCode):
332         Helper that returns a WKErrorCode from a WebKit::CallbackBase::Error enum.
333
334         (-[WKWebView evaluateJavaScript:completionHandler:]):
335         Run the JavaScript code and handle all the error cases.
336
337         (-[WKWebView _runJavaScriptInMainFrame:]):
338         Reimplement this using the API method.
339
340         * WebKit2.xcodeproj/project.pbxproj:
341         Add new files.
342
343 2014-06-10  Anders Carlsson  <andersca@apple.com>
344
345         Don't call Connection::terminateSoon if the connection is null
346         https://bugs.webkit.org/show_bug.cgi?id=133695
347         <rdar://problem/17069024>
348
349         Reviewed by Tim Horton.
350
351         * UIProcess/WebProcessProxy.cpp:
352         (WebKit::WebProcessProxy::removeWebPage):
353
354 2014-06-10  Oliver Hunt  <oliver@apple.com>
355
356         Add process entitlements
357         https://bugs.webkit.org/show_bug.cgi?id=133693
358
359         Reviewed by Alexey Proskuryakov.
360
361         Add entitlements description for Database process, and
362         ensure that we reference the correct seatbelt profiles.
363
364         * Configurations/DatabaseService.Development.xcconfig:
365         * Configurations/DatabaseService.xcconfig:
366         * Configurations/Databases-iOS.entitlements:
367         * Configurations/Network-iOS.entitlements:
368         * Configurations/WebContent-iOS.entitlements:
369         * WebKit2.xcodeproj/project.pbxproj:
370
371 2014-06-10  Alexey Proskuryakov  <ap@apple.com>
372
373         Fix crashes on some plug-in tests.
374         https://bugs.webkit.org/show_bug.cgi?id=133691
375         <rdar://problem/17255836>
376
377         Reviewed by Anders Carlsson.
378
379         * PluginProcess/PluginControllerProxy.cpp: (WebKit::PluginControllerProxy::initialize):
380         Cannot use TemporaryChange here, because the object may go away before stack unwinds.
381
382 2014-06-10  Antti Koivisto  <antti@apple.com>
383
384         Serialize ResourceRequests without platform request
385         https://bugs.webkit.org/show_bug.cgi?id=133679
386
387         Reviewed by Alexey Proskuryakov.
388
389         * Shared/WebCoreArgumentCoders.cpp:
390         (IPC::ArgumentCoder<ResourceRequest>::encode):
391         (IPC::ArgumentCoder<ResourceRequest>::decode):
392         
393             Encode ResourceRequest directly if possible.
394
395 2014-06-09  Anders Carlsson  <andersca@apple.com>
396
397         Fix build.
398
399         * UIProcess/WebPageProxy.cpp:
400         (WebKit::WebPageProxy::resetState):
401
402 2014-06-09  Simon Fraser  <simon.fraser@apple.com>
403
404         Work towards having frames in the scrolling tree
405         https://bugs.webkit.org/show_bug.cgi?id=133665
406
407         Reviewed by Tim Horton.
408         
409         Override coordinatesScrollingForFrameView() to always return true for composited
410         frames, for iOS WK2 (eventually this class will have to be specialized for iOS and OS X).
411
412         * WebProcess/Scrolling/RemoteScrollingCoordinator.h:
413         * WebProcess/Scrolling/RemoteScrollingCoordinator.mm:
414         (WebKit::RemoteScrollingCoordinator::coordinatesScrollingForFrameView):
415
416 2014-06-09  Anders Carlsson  <andersca@apple.com>
417
418         Give callbacks real status codes
419         https://bugs.webkit.org/show_bug.cgi?id=133668
420
421         Reviewed by Dan Bernstein.
422
423         This makes it possible to know whether a callback was invalidated due to the webpage being closed,
424         or whether it was due the a web process crash.
425
426         * UIProcess/GenericCallback.h:
427         (WebKit::GenericCallback::create):
428         (WebKit::GenericCallback::performCallbackWithReturnValue):
429         (WebKit::GenericCallback::invalidate):
430         (WebKit::invalidateCallbackMap):
431         * UIProcess/WebPageProxy.cpp:
432         (WebKit::WebPageProxy::close):
433         (WebKit::WebPageProxy::resetState):
434         (WebKit::WebPageProxy::resetStateAfterProcessExited):
435         * UIProcess/WebPageProxy.h:
436
437 2014-06-09  Enrica Casucci  <enrica@apple.com>
438
439         iOS WebKit: Crash in charactersAroundPosition.
440         https://bugs.webkit.org/show_bug.cgi?id=133659
441         <rdar://problem/17220870>
442
443         Reviewed by Benjamin Poulain.
444
445         We only need to compute charactersAroundPosition when we are in
446         editable content.
447
448         * WebProcess/WebPage/WebPage.cpp:
449         (WebKit::WebPage::editorState):
450
451 2014-06-06  Andy Estes  <aestes@apple.com>
452
453         [iOS] Expose _WKWebViewPrintFormatter and -_webView:printFrame: as SPI
454         https://bugs.webkit.org/show_bug.cgi?id=133600
455
456         Reviewed by David Kilzer.
457
458         Expose -_webView:printFrame: in WKUIDelegatePrivate so that clients can implement support for window.print().
459         Since window.print() can be called from a subframe, expose _WKWebViewPrintFormatter (renamed from
460         WKWebViewPrintFormatter to reflect its new SPI status) as SPI and add a frameToPrint property.
461
462         * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Forward-declared _WKFrameHandle and declared -_webView:printFrame:.
463         * UIProcess/API/Cocoa/WKWebView.mm:
464         (-[WKWebView _webViewPrintFormatter]): Added to get a _WKWebViewPrintFormatter.
465         (-[WKWebView _printFormatterClass]): Updated the class name to _WKWebViewPrintFormatter.
466         (-[WKWebView _computePageCountAndStartDrawingToPDFForFrame:printInfo:WebKit::firstPage:computedTotalScaleFactor:]):
467         Added a frame argument. If frame is nil, print the main frame.
468         (-[WKWebView _computePageCountAndStartDrawingToPDFWithPrintInfo:WebKit::firstPage:computedTotalScaleFactor:]): Deleted.
469         * UIProcess/API/Cocoa/WKWebViewInternal.h: Forward-declared _WKFrameHandle; removed an unneccessary
470         forward-declaration of WKWebViewPrintFormatter.
471         * UIProcess/API/Cocoa/WKWebViewPrivate.h: Added a _webViewPrintFormatter property.
472         * UIProcess/Cocoa/UIDelegate.h:
473         * UIProcess/Cocoa/UIDelegate.mm:
474         (WebKit::UIDelegate::setDelegate):
475         (WebKit::UIDelegate::UIClient::printFrame): Called -_webView:printFrame:.
476         * UIProcess/_WKWebViewPrintFormatter.h: Renamed from Source/WebKit2/UIProcess/WKWebViewPrintFormatter.h.
477         * UIProcess/_WKWebViewPrintFormatter.mm: Renamed from Source/WebKit2/UIProcess/WKWebViewPrintFormatter.mm.
478         * WebKit2.xcodeproj/project.pbxproj:
479
480 2014-06-09  Beth Dakin  <bdakin@apple.com>
481
482         Flash video controls hit-test incorrectly after changing topContentInset
483         https://bugs.webkit.org/show_bug.cgi?id=133658
484         -and corresponding-
485         <rdar://problem/16978590>
486
487         Reviewed by Anders Carlsson.
488
489         When the topContent changes, the PluginView needs to be informed.
490
491         New function PluginView::topContentInsetDidChange() calls viewGeometryDidChange().
492         * WebProcess/Plugins/PluginView.cpp:
493         (WebKit::PluginView::topContentInsetDidChange):
494         * WebProcess/Plugins/PluginView.h:
495
496         Call topContentInsetDidChange() after setting an inset only if it is a new inset.
497         * WebProcess/WebPage/WebPage.cpp:
498         (WebKit::WebPage::setTopContentInset):
499
500 2014-06-09  Daniel Bates  <dabates@apple.com>
501
502         Another attempt to fix the EFL and GTK builds after <http://trac.webkit.org/changeset/169711>
503         (https://bugs.webkit.org/show_bug.cgi?id=133657)
504
505         Substitute WKErrorRef.h for WKError.h.
506
507         * UIProcess/API/efl/ewk_error.cpp:
508         * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp:
509         * WebProcess/WebCoreSupport/gtk/WebErrorsGtk.cpp:
510
511 2014-06-09  Daniel Bates  <dabates@apple.com>
512
513         Attempt to fix the EFL and GTK builds after <http://trac.webkit.org/changeset/169711>
514         (https://bugs.webkit.org/show_bug.cgi?id=133657)
515
516         Rename Shared/API/c/WKError.cpp to Shared/API/c/WKErrorRef.cpp.
517
518         * CMakeLists.txt:
519
520 2014-06-09  Anders Carlsson  <andersca@apple.com>
521
522         Address review feedback.
523
524         * UIProcess/API/Cocoa/WKWebView.h:
525
526 2014-06-09  Anders Carlsson  <andersca@apple.com>
527
528         Add a WKError.h header and rename the existing WKError.h to WKErrorRef.h
529         https://bugs.webkit.org/show_bug.cgi?id=133657
530
531         Reviewed by Dan Bernstein.
532
533         * Shared/API/Cocoa/WebKit.h:
534         * Shared/API/c/WKErrorRef.cpp: Renamed from Source/WebKit2/Shared/API/c/WKError.cpp.
535         (WKErrorGetTypeID):
536         (WKErrorCopyWKErrorDomain):
537         (WKErrorCopyDomain):
538         (WKErrorGetErrorCode):
539         (WKErrorCopyFailingURL):
540         (WKErrorCopyLocalizedDescription):
541         * Shared/API/c/WKErrorRef.h: Renamed from Source/WebKit2/Shared/API/c/WKError.h.
542         * UIProcess/API/C/WKPage.h:
543         * UIProcess/API/C/WKPageLoaderClient.h:
544         * UIProcess/API/C/WebKit2_C.h:
545         * UIProcess/API/Cocoa/WKError.h: Copied from Source/WebKit2/Shared/API/Cocoa/WebKit.h.
546         * UIProcess/API/Cocoa/WKError.mm: Copied from Source/WebKit2/Shared/API/Cocoa/WebKit.h.
547         * WebKit2.xcodeproj/project.pbxproj:
548         * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
549
550 2014-06-09  Brady Eidson  <beidson@apple.com>
551
552         Use different AppKit API for all services menus
553         <rdar://problem/16874403> and https://bugs.webkit.org/show_bug.cgi?id=133649
554
555         Reviewed by Tim Horton.
556
557         * UIProcess/mac/WebContextMenuProxyMac.mm:
558         (WebKit::WebContextMenuProxyMac::showContextMenu):
559
560 2014-06-09  Anders Carlsson  <andersca@apple.com>
561
562         Add WKWindowFeatures.h to the umbrella header.
563
564         Reviewed by Dan Bernstein.
565
566         * Shared/API/Cocoa/WebKit.h:
567
568 2014-06-09  Anders Carlsson  <andersca@apple.com>
569
570         Add -[WKWebView loadHTMLString:baseURL:]
571         https://bugs.webkit.org/show_bug.cgi?id=133645
572         <rdar://problem/17170649>
573
574         Reviewed by Sam Weinig.
575
576         * UIProcess/API/Cocoa/WKWebView.h:
577         * UIProcess/API/Cocoa/WKWebView.mm:
578         (-[WKWebView loadHTMLString:baseURL:]):
579         * UIProcess/Cocoa/NavigationState.h:
580         * UIProcess/Cocoa/NavigationState.mm:
581         (WebKit::NavigationState::createLoadDataNavigation):
582         * UIProcess/WebPageProxy.cpp:
583         (WebKit::WebPageProxy::loadHTMLString):
584         * UIProcess/WebPageProxy.h:
585         * WebProcess/WebPage/WebPage.cpp:
586         (WebKit::WebPage::loadDataImpl):
587         (WebKit::WebPage::loadString):
588         (WebKit::WebPage::loadData):
589         (WebKit::WebPage::loadHTMLString):
590         (WebKit::WebPage::loadAlternateHTMLString):
591         (WebKit::WebPage::loadPlainTextString):
592         (WebKit::WebPage::loadWebArchiveData):
593         * WebProcess/WebPage/WebPage.h:
594         * WebProcess/WebPage/WebPage.messages.in:
595
596 2014-06-09  Simon Fraser  <simon.fraser@apple.com>
597
598         Fix more latched scrolling test flakiness and slowness
599         https://bugs.webkit.org/show_bug.cgi?id=133601
600
601         Reviewed by Brent Fulgham.
602
603         Latched scrolling tests were flakey for two reasons. First, the EventSender
604         wheel events were async from the web to the UI process, and the resulting
605         synthetic events also async from the UI to the web process. Make them sync
606         for testing.
607         
608         Secondly, the timer-based scrolling tree commit could result in the scrolling
609         tree (specifically the frame node's notion of the scrollable area and content
610         size) not being updated before the scrolling thread starts getting wheel events.
611         Fix by having WebPage::wheelEventSyncForTesting() commit if necessary.
612         
613         Finally remove all the now-unnecessary timeouts from the tests.
614
615         * WebProcess/WebPage/WebPage.cpp:
616         (WebKit::WebPage::wheelEventSyncForTesting):
617
618 2014-06-09  Andrzej Badowski  <a.badowski@samsung.com>
619
620         [EFL] Add parameter to MiniBrowser to disable web security
621         https://bugs.webkit.org/show_bug.cgi?id=121095
622
623         Reviewed by Gyuyoung Kim.
624
625         -w (--web-security) commandline allows to disable/enable web security (enabled by default).
626         The reason for this is to test and debug (using, for example, MiniBrowser) scripts accessing
627         resources from other domains (cross-domain requests) such as access map location on another server.
628         Another possibility is to launch in a webkit browser local file tests that will refer to the links
629         in the http website loaded in an iframe. It will not be possible without deactivation of web security.
630
631         * UIProcess/API/efl/ewk_settings.cpp:
632         (ewk_settings_web_security_enabled_set):
633         (ewk_settings_web_security_enabled_get):
634         * UIProcess/API/efl/ewk_settings.h:
635         * UIProcess/API/efl/tests/test_ewk2_settings.cpp:
636         (TEST_F):
637
638 2014-06-08  Sam Weinig  <sam@webkit.org>
639
640         [Cocoa] WKScriptMessage should include the frame the message is from
641         <rdar://problem/17210226>
642         https://bugs.webkit.org/show_bug.cgi?id=133623
643
644         Reviewed by Dan Bernstein.
645
646         * UIProcess/API/Cocoa/WKScriptMessage.h:
647         Add WKFrameInfo property.
648
649         * UIProcess/API/Cocoa/WKScriptMessage.mm:
650         (-[WKScriptMessage _initWithBody:webView:frameInfo:name:]):
651         Add WKFrameInfo to the initializer.
652
653         (-[WKScriptMessage frameInfo]):
654         Implement frameInfo accessor.
655
656         * UIProcess/API/Cocoa/WKScriptMessageInternal.h:
657         Add WKFrameInfo to the initializer.
658
659         * UIProcess/API/Cocoa/WKUserContentController.mm:
660         Pass the WKFrameInfo to the WKScriptMessage initializer.
661
662 2014-06-08  Dan Bernstein  <mitz@apple.com>
663
664         [Cococa] WKWindowFeatures.h is missing from WebKit.framework
665         https://bugs.webkit.org/show_bug.cgi?id=133622
666
667         Reviewed by Sam Weinig.
668
669         * WebKit2.xcodeproj/project.pbxproj: Promoted WKWindowFeatures.h to Public.
670
671 2014-06-08  Dan Bernstein  <mitz@apple.com>
672
673         <rdar://problem/17208234> [Mac] Client-certificate authentication isn’t working when using the modern API
674         https://bugs.webkit.org/show_bug.cgi?id=133617
675
676         Reviewed by Sam Weinig.
677
678         * Shared/WebCoreArgumentCoders.cpp:
679         (IPC::ArgumentCoder<Credential>::encode): Encode certificate credentials on Mac as well.
680         (IPC::ArgumentCoder<Credential>::decode): Decode certificate credentials on Mac as well.
681
682         * Shared/cf/ArgumentCodersCF.cpp:
683         (IPC::encode): Use OS X API for getting a persistent reference to a key.
684         (IPC::decode): Use OS X API for getting a key from a persistent reference.
685
686         * Shared/cf/ArgumentCodersCF.h: Make identity coding available on Mac as well.
687
688 2014-06-07  Anders Carlsson  <andersca@apple.com>
689
690         Get rid of _WKScriptWorld
691         https://bugs.webkit.org/show_bug.cgi?id=133610
692
693         Reviewed by Dan Bernstein.
694
695         * Shared/API/Cocoa/WebKitPrivate.h:
696         * UIProcess/API/Cocoa/_WKScriptWorld.h: Removed.
697         * UIProcess/API/Cocoa/_WKScriptWorld.mm: Removed.
698         * WebKit2.xcodeproj/project.pbxproj:
699
700 2014-05-29  Anders Carlsson  <andersca@apple.com>
701
702         HTTPHeaderMap should not derive from HashMap
703         https://bugs.webkit.org/show_bug.cgi?id=133392
704
705         Reviewed by Darin Adler.
706
707         * Shared/WebCoreArgumentCoders.cpp:
708         (IPC::ArgumentCoder<HTTPHeaderMap>::encode):
709         (IPC::ArgumentCoder<HTTPHeaderMap>::decode):
710
711 2014-06-07  Alexey Proskuryakov  <ap@apple.com>
712
713         [iOS] Fix a path used for sandbox profiles
714         https://bugs.webkit.org/show_bug.cgi?id=133602
715         <rdar://problem/17212011>
716
717         Reviewed by David Kilzer.
718
719         * WebKit2.xcodeproj/project.pbxproj:
720
721 2014-06-06  Enrica Casucci  <enrica@apple.com>
722
723         REGRESSION (iOS WebKit2): backspace key does not repeat beyond a single word.
724         https://bugs.webkit.org/show_bug.cgi?id=133593
725         <rdar://problem/16352228>
726
727         Reviewed by Benjamin Poulain.
728
729         We need to provide a way for the keyboard layer to select from
730         the current position to the beginning of the word moving backwards
731         and implement the method to know when we have reached the beginning of the document.
732
733         * UIProcess/WebPageProxy.h:
734         * UIProcess/ios/WKContentViewInteraction.mm:
735         (-[WKContentView selectWordBackward]):
736         (-[WKContentView _selectionAtDocumentStart]):
737         * UIProcess/ios/WebPageProxyIOS.mm:
738         (WebKit::WebPageProxy::selectWordBackward):
739         * WebProcess/WebPage/WebPage.h:
740         * WebProcess/WebPage/WebPage.messages.in:
741         * WebProcess/WebPage/ios/WebPageIOS.mm:
742         (WebKit::WebPage::selectWordBackward):
743
744 2014-06-06  Enrica Casucci  <enrica@apple.com>
745
746         Adopt the new UIAlertController API to replace UIActionSheet.
747         https://bugs.webkit.org/show_bug.cgi?id=133582
748         <rdar://problem/16845223>
749
750         Reviewed by Joseph Pecoraro.
751
752         UIActionSheet is deprecated. We need to move out action sheets
753         implementation to UIAlertView.
754
755         * UIProcess/API/Cocoa/_WKElementAction.h:
756         * UIProcess/API/Cocoa/_WKElementAction.mm:
757         * UIProcess/ios/WKActionSheet.h:
758         * UIProcess/ios/WKActionSheet.mm:
759         (-[WKActionSheet presentSheetFromRect:]):
760         (-[WKActionSheet doneWithSheet]):
761         (-[WKActionSheet willRotate]):
762         (-[WKActionSheet updateSheetPosition]):
763         (-[WKActionSheet _didRotateAndLayout]):
764         (-[WKActionSheet didRotate]):
765         * UIProcess/ios/WKActionSheetAssistant.h:
766         * UIProcess/ios/WKActionSheetAssistant.mm:
767         (-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):
768         (-[WKActionSheetAssistant showImageSheet]):
769         (-[WKActionSheetAssistant showLinkSheet]):
770         (-[WKActionSheetAssistant showDataDetectorsSheet]):
771         (-[WKActionSheetAssistant cleanupSheet]):
772         (-[WKActionSheetAssistant actionSheet:clickedButtonAtIndex:]): Deleted.
773         * UIProcess/ios/WKContentViewInteraction.mm:
774         (-[WKContentView _longPressRecognized:]):
775
776 2014-06-06  Gavin Barraclough  <baraclough@apple.com>
777
778         Should boost ChildProcesses on iOS
779         https://bugs.webkit.org/show_bug.cgi?id=133583
780
781         Reviewed by Sam Weinig.
782
783         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
784         (WebKit::connectToService):
785             - boost all child processes on iOS.
786
787 2014-06-06  Alexey Proskuryakov  <ap@apple.com>
788
789         Build fix after <http://trac.webkit.org/changeset/169655>.
790
791         The SPIs used do not exist on Mac, limit the code to iOS.
792
793         * Shared/Authentication/mac/AuthenticationManager.mac.mm:
794         * Shared/WebCoreArgumentCoders.cpp:
795         (IPC::ArgumentCoder<Credential>::encode):
796         (IPC::ArgumentCoder<Credential>::decode):
797         * Shared/cf/ArgumentCodersCF.cpp:
798         (IPC::typeFromCFTypeRef):
799         (IPC::encode):
800         (IPC::decode):
801         * Shared/cf/ArgumentCodersCF.h:
802
803 2014-06-06  Dan Bernstein  <mitz@apple.com>
804
805         <rdar://problem/17095692> [iOS] Client-certificate authentication isn’t working
806         https://bugs.webkit.org/show_bug.cgi?id=133527
807
808         Reviewed by Darin Adler.
809
810         * Configurations/Network-iOS.entitlements: Enabled the Network process to access the keys
811         needed to create identities to authenticate with.
812
813         * Shared/WebCoreArgumentCoders.cpp:
814         (IPC::ArgumentCoder<Credential>::encode): Encode the credential type, and if it is a client
815         certificate, encode the identity and the certificates.
816         (IPC::ArgumentCoder<Credential>::decode): Decode the credential type. If it is a client
817         certificate, decode the identity and the certificates and use the proper Credential
818         constructor.
819
820         * Shared/cf/ArgumentCodersCF.cpp:
821         (IPC::typeFromCFTypeRef): Handle SecIdentityRef.
822         (IPC::encode): Encode an identity by encoding its certificate and a persistent reference to
823         its key.
824         (IPC::decode): Decode a certificate and a persistent reference to a key, find the key, and
825         create an identity.
826         * Shared/cf/ArgumentCodersCF.h:
827
828 2014-06-05  Benjamin Poulain  <bpoulain@apple.com>
829
830         [iOS][WK2] WebPage sometimes forces two resize events on animated resize
831         https://bugs.webkit.org/show_bug.cgi?id=133534
832
833         Reviewed by Enrica Casucci.
834
835         When I updated the patch for resize events (r168556) to use the unobscured rect in scrollview coordinates,
836         I forgot to update a snippet of code in dynamicViewportSizeUpdate(). Since that code was still using
837         the scaled unobscured rect, there was sometimes a difference of 1 pixel between the size set by that
838         call site and the others.
839
840         This path nukes the bad code and use the unobscured rect in scrollview coordinates given by the UIProcess.
841
842         * WebProcess/WebPage/ios/WebPageIOS.mm:
843         (WebKit::WebPage::dynamicViewportSizeUpdate):
844
845 2014-06-05  Benjamin Poulain  <bpoulain@apple.com>
846
847         [iOS][WK2] Add device orientation
848         https://bugs.webkit.org/show_bug.cgi?id=133530
849         <rdar://problem/16680041>
850
851         Reviewed by Tim Horton.
852
853         Add device orientation for WebKit2.
854
855         For the public API, WKWebView get the updates through the notification UIWindowDidRotateNotification.
856         We do not have any control over how the API is used, but we can expect the size will be updated before
857         the end of rotation in most cases and the events should be sent in the right order.
858
859         For Safari, we use an override to support animated resize (and some tabs corner cases).
860
861         On the WebProcess side, we just get the new orientation directly or on DynamicViewportSizeUpdate.
862
863         * UIProcess/API/Cocoa/WKWebView.mm:
864         (deviceOrientationForUIInterfaceOrientation):
865         (deviceOrientation):
866         (-[WKWebView initWithFrame:configuration:]):
867         (-[WKWebView _windowDidRotate:]):
868         (-[WKWebView _setInterfaceOrientationOverride:]):
869         (-[WKWebView _interfaceOrientationOverride]):
870         (-[WKWebView _beginAnimatedResizeWithUpdates:]):
871         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
872         * UIProcess/WebPageProxy.cpp:
873         (WebKit::WebPageProxy::WebPageProxy):
874         * UIProcess/WebPageProxy.h:
875         (WebKit::WebPageProxy::deviceOrientation):
876         * UIProcess/ios/WebPageProxyIOS.mm:
877         (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
878         (WebKit::WebPageProxy::setDeviceOrientation):
879         * WebProcess/WebCoreSupport/WebChromeClient.h:
880         * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
881         (WebKit::WebChromeClient::deviceOrientation):
882         * WebProcess/WebPage/WebPage.cpp:
883         (WebKit::WebPage::WebPage):
884         * WebProcess/WebPage/WebPage.h:
885         (WebKit::WebPage::deviceOrientation):
886         * WebProcess/WebPage/WebPage.messages.in:
887         * WebProcess/WebPage/ios/WebPageIOS.mm:
888         (WebKit::WebPage::setDeviceOrientation):
889         (WebKit::WebPage::dynamicViewportSizeUpdate):
890
891 2014-06-05  Oliver Hunt  <oliver@apple.com>
892
893         Enable SANDBOX_EXTENSIONS build flag universally on cocoa
894         https://bugs.webkit.org/show_bug.cgi?id=133556
895
896         Reviewed by Alexey Proskuryakov.
897
898         Remove unnecessary iOS exception.
899
900         * WebKit2Prefix.h:
901
902 2014-06-05  Alexey Proskuryakov  <ap@apple.com>
903
904         [Mac] Tweak plug-in sandbox profiles
905         https://bugs.webkit.org/show_bug.cgi?id=133549
906
907         Fix <rdar://problem/17068055> and <rdar://problem/17148837>.
908
909         Reviewed by Sam Weinig and Simon Cooper.
910
911         * Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:
912         * Resources/PlugInSandboxProfiles/com.microsoft.SilverlightPlugin.sb:
913
914 2014-06-05  Tanay C  <tanay.c@samsung.com>
915
916         Resolve compiler error (call of overloaded 'schedule' function is ambiguous) 
917         https://bugs.webkit.org/show_bug.cgi?id=133467
918
919         Reviewed by Carlos Garcia Campos.
920
921         * Shared/Downloads/soup/DownloadSoup.cpp:
922         (WebKit::DownloadClient::handleResponseLater): Explicitly casting second parameter to std::function<void()>
923
924 2014-06-04  Benjamin Poulain  <bpoulain@apple.com>
925
926         [iOS][WK2] Restore the visual scroll position instead of the dom scroll position when restoring states from the history
927         https://bugs.webkit.org/show_bug.cgi?id=133490
928
929         Reviewed by Tim Horton.
930
931         Instead of restoring the scroll position, restore the visual position. This makes pages appear at the same position
932         on screen ignoring changes in the obscured top inset.
933
934         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
935         * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
936         (WebKit::WebFrameLoaderClient::saveViewStateToItem):
937         (WebKit::WebFrameLoaderClient::restoreViewState):
938         Save and restore userHasChangedPageScaleFactor to handle rescaling correctly.
939         Limit the scale into valid viewport limits in case the viewport meta tag has changed or the device has rotated.
940
941         * WebProcess/WebPage/WebPage.cpp:
942         (WebKit::WebPage::WebPage):
943         * WebProcess/WebPage/WebPage.h:
944         (WebKit::WebPage::userHasChangedPageScaleFactor):
945         * WebProcess/WebPage/ios/WebPageIOS.mm:
946         (WebKit::WebPage::restorePageState):
947         (WebKit::WebPage::updateVisibleContentRects):
948         In updateVisibleContentRects, we keep track or the current difference between the exposed rect and the unobscured rect.
949         When restoring the page position, we use the current top inset and the saved exposed rect to restore the visual
950         scroll position.
951
952         It is not very robust as it does not resolve races between the two processes, but that is not worse than what we is there now.
953
954 2014-06-03  Timothy Horton  <timothy_horton@apple.com>
955
956         WebKit2 View Gestures (Zoom): Can show unpainted regions when zoom-pinching-out
957         https://bugs.webkit.org/show_bug.cgi?id=133472
958         <rdar://problem/15686848>
959
960         Reviewed by Simon Fraser.
961
962         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
963         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
964         (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
965         (WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToLayers):
966         (WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
967         Use prepopulateRect() when zooming out to ensure that we have tiles for the current exposed area.
968
969         Factor applyTransientZoomToLayers out of adjustTransientZoom, so that
970         flushLayers can call applyTransientZoomToLayers without ending up calling prepopulateRect()
971         during layer flushing, which causes trouble.
972
973         It is OK to populate layers at the current scale even when zooming out, because the overdraw
974         already covers most of the zoomed out area, and we're only adding a few more tiles at worst.
975
976 2014-06-03  Benjamin Poulain  <bpoulain@apple.com>
977
978         [iOS][WK2] Align the highlight rects with device pixels
979         https://bugs.webkit.org/show_bug.cgi?id=133464
980         <rdar://problem/16708861>
981
982         Reviewed by Enrica Casucci.
983
984         * UIProcess/ios/WKContentViewInteraction.mm:
985         (-[WKContentView _showTapHighlightWithColor:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
986
987 2014-06-02  Enrica Casucci  <enrica@apple.com>
988
989         REGRESSION (iOS WebKit2): Single tap in pages with focus on load will clear the selection after the keyboard appears.
990         https://bugs.webkit.org/show_bug.cgi?id=133465
991         <rdar://problem/17059189>
992
993         Reviewed by Benjamin Poulain.
994
995         If a page focuses an input field on load we don't bring the keyboard on screen
996         since the keyboard is only shown when the user interacts with the page with gestures.
997         Still the WebProcess sets the focus and the selection according to the rules.
998         We need to make sure the UI process doesn't accidentally clear this selection
999         when the user starts the interaction with the page.
1000         This patch also improves the function that retrieves the autocorrection data
1001         to be returned to the keyboard, making sure that we always send back a reply
1002         even when we don't have a valid selection.
1003
1004         * UIProcess/ios/WKContentViewInteraction.mm:
1005         (-[WKContentView _singleTapCommited:]):
1006         * WebProcess/WebPage/ios/WebPageIOS.mm:
1007         (WebKit::WebPage::requestAutocorrectionData):
1008
1009 2014-05-31  Anders Carlsson  <andersca@apple.com>
1010
1011         Change DeferrableOneShotTimer to use std::function instead of being a class template
1012         https://bugs.webkit.org/show_bug.cgi?id=133423
1013
1014         Reviewed by Antti Koivisto.
1015
1016         * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
1017         (WebKit::NetworkProcess::platformSetCacheModel):
1018         * Shared/CacheModel.cpp:
1019         (WebKit::calculateCacheSizes):
1020         * Shared/CacheModel.h:
1021         * WebProcess/Plugins/PluginView.cpp:
1022         (WebKit::PluginView::pluginSnapshotTimerFired):
1023         * WebProcess/Plugins/PluginView.h:
1024         * WebProcess/cocoa/WebProcessCocoa.mm:
1025         (WebKit::WebProcess::platformSetCacheModel):
1026
1027 2014-06-02  Benjamin Poulain  <bpoulain@apple.com>
1028
1029         [iOS][WK2] Round the UIScrollView content size to device pixel
1030         https://bugs.webkit.org/show_bug.cgi?id=133417
1031         <rdar://problem/15922440>
1032
1033         Reviewed by Simon Fraser.
1034
1035         We should really have the scaled content size floored to device pixels, but that will be for another
1036         time.
1037         This patch ensure the content size as seen by the API is rounded to device pixels. The value is floored
1038         to avoid showing partial pixels when the content is stable.
1039
1040         * UIProcess/API/Cocoa/WKWebView.mm:
1041         (floorFloatToPixels):
1042         (roundScrollViewCountentSize):
1043         (-[WKWebView _setHasCustomContentView:loadedMIMEType:WTF::]):
1044         (-[WKWebView _didCommitLayerTree:WebKit::]):
1045         (-[WKWebView scrollView:contentSizeForZoomScale:withProposedSize:]):
1046         (-[WKWebView _beginAnimatedResizeWithUpdates:]):
1047         (-[WKWebView _endAnimatedResize]):
1048
1049 2014-06-02  Oliver Hunt  <oliver@apple.com>
1050
1051         Move ifdef to the right place.
1052
1053         RS=Enrica
1054
1055         * WebProcess/cocoa/WebProcessCocoa.mm:
1056         (WebKit::WebProcess::initializeSandbox):
1057
1058 2014-06-02  Gavin Barraclough  <barraclough@apple.com>
1059
1060         Set default voucher for XPC client processes
1061         https://bugs.webkit.org/show_bug.cgi?id=133458
1062
1063         Reviewed by Geoff Garen.
1064
1065         * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
1066         (WebKit::XPCServiceInitializer):
1067             - add voucher_replace_default_voucher.
1068         * config.h:
1069             - add HAVE_VOUCHERS.
1070
1071 2014-06-02  Jeremy Jones  <jeremyj@apple.com>
1072
1073         Send external playback properties to fullscreen.
1074         https://bugs.webkit.org/show_bug.cgi?id=133366
1075
1076         Reviewed by Simon Fraser.
1077
1078         Forward setExternalPlayback.
1079
1080         * UIProcess/ios/WebVideoFullscreenManagerProxy.messages.in: add setExternalPlaybackProperties
1081         * WebProcess/ios/WebVideoFullscreenManager.h: add setExternalPlaybackProperties
1082         * WebProcess/ios/WebVideoFullscreenManager.mm: add setExternalPlaybackProperties
1083         (WebKit::WebVideoFullscreenManager::setExternalPlaybackProperties): added
1084
1085 2014-06-02  Enrica Casucci  <enrica@apple.com>
1086
1087         Remove unintentional changes to WKContentViewInteraction.mm
1088         introduced in r169500.
1089
1090         Unreviewed.
1091
1092         * UIProcess/ios/WKContentViewInteraction.mm:
1093         (+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):
1094
1095 2014-06-02  Geoffrey Garen  <ggaren@apple.com>
1096
1097         Address some review comments on bug 133408
1098         https://bugs.webkit.org/show_bug.cgi?id=133410
1099
1100         Reviewed by Anders Carlsson.
1101
1102         * UIProcess/API/Cocoa/WKBackForwardListItem.h:
1103         * UIProcess/API/Cocoa/WKUIDelegate.h:
1104
1105 2014-06-02  Dan Bernstein  <mitz@apple.com>
1106
1107         [Cocoa] -[WKWebView activeURL] is unused
1108         https://bugs.webkit.org/show_bug.cgi?id=133440
1109
1110         Reviewed by Mark Rowe.
1111
1112         * UIProcess/API/Cocoa/WKWebView.mm:
1113         (-[WKWebView activeURL]): Deleted.
1114         * UIProcess/API/Cocoa/WKWebViewPrivate.h: Removed the property declaration.
1115
1116 2014-05-31  Oliver Hunt  <oliver@apple.com>
1117
1118         Restructure initial distinct sandbox profiles
1119         https://bugs.webkit.org/show_bug.cgi?id=133415
1120
1121         Reviewed by Alexey Proskuryakov.
1122
1123         Add support for manually instantiating the network and
1124         content process sandboxes, and add initial profiles.
1125         These profiles are completely generic so we can make sure
1126         nothing is broken by enabling them.
1127
1128         This also adds a target to the WebKit2 project to correctly
1129         process the profiles.
1130
1131         * DatabaseProcess/ios/DatabaseProcessIOS.mm:
1132         (WebKit::DatabaseProcess::initializeSandbox):
1133         * DatabaseProcess/ios/com.apple.WebKit.DatabasesIOS.sb: Removed.
1134         * NetworkProcess/ios/NetworkProcessIOS.mm:
1135         (WebKit::NetworkProcess::initializeSandbox):
1136         * Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb: Added.
1137         * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Added.
1138         * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Added.
1139         * WebKit2.xcodeproj/project.pbxproj:
1140         * WebProcess/cocoa/WebProcessCocoa.mm:
1141         (WebKit::WebProcess::initializeSandbox):
1142
1143 2014-06-01  Sam Weinig  <sam@webkit.org>
1144
1145         [Cocoa] Add SPI to get a WebArchive of the WKWebView
1146         <rdar://problem/16748120>
1147         https://bugs.webkit.org/show_bug.cgi?id=133439
1148
1149         Reviewed by Anders Carlsson.
1150
1151         * UIProcess/API/Cocoa/WKWebView.mm:
1152         (-[WKWebView _getWebArchiveDataWithCompletionHandler:]):
1153         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
1154
1155 2014-05-31  Anders Carlsson  <andersca@apple.com>
1156
1157         Add a LazyNeverDestroyed class template and use it
1158         https://bugs.webkit.org/show_bug.cgi?id=133425
1159
1160         Reviewed by Darin Adler.
1161
1162         * Shared/mac/SecItemShim.cpp:
1163         (WebKit::responseMap):
1164
1165 2014-05-31  Timothy Horton  <timothy_horton@apple.com>
1166
1167         View snapshots are sometimes taken at the wrong scale
1168         https://bugs.webkit.org/show_bug.cgi?id=133419
1169         <rdar://problem/17087497>
1170
1171         Reviewed by Sam Weinig.
1172
1173         * UIProcess/API/mac/WKView.mm:
1174         (-[WKView _takeViewSnapshot]):
1175         Work around <rdar://problem/17084993> by re-requesting the snapshot at
1176         kCGWindowImageNominalResolution if it was captured at the wrong scale.
1177
1178 2014-05-31  Dan Bernstein  <mitz@apple.com>
1179
1180         [iOS] WebKit2.framework is unused
1181         https://bugs.webkit.org/show_bug.cgi?id=133424
1182
1183         Reviewed by Anders Carlsson.
1184
1185         * Configurations/WebKit2.xcconfig: Set SKIP_INSTALL to YES when targeting iOS.
1186
1187 2014-05-30  Benjamin Poulain  <bpoulain@apple.com>
1188
1189         [iOS][WK2] When a page does not finish rotation before the end of the animation, synchronize explicitely
1190         https://bugs.webkit.org/show_bug.cgi?id=133364
1191         <rdar://problem/17026333>
1192
1193         Reviewed by Sam Weinig.
1194
1195         When a page that does layout on rotation does not respond before the end of the animation, we end up with
1196         a completely inconsistent state on the UIProcess (because it is unware of the new states).
1197
1198         The perfect way to fix this would be to make animated resize transactional and have the WebProcess resolve
1199         conflicts. That is very complicated and the issue is uncommon, so this patch does not do that.
1200
1201         This patch force the synchronization whenever we finish the animation before we heard back
1202         from the WebProcess.
1203
1204         * UIProcess/API/Cocoa/WKWebView.mm:
1205         (-[WKWebView _endAnimatedResize]):
1206         * UIProcess/WebPageProxy.cpp:
1207         (WebKit::WebPageProxy::WebPageProxy):
1208         (WebKit::WebPageProxy::resetState):
1209         * UIProcess/WebPageProxy.h:
1210         * UIProcess/ios/WebPageProxyIOS.mm:
1211         (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
1212         (WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
1213         (WebKit::WebPageProxy::dynamicViewportUpdateChangedTarget):
1214         * WebProcess/WebPage/WebPage.h:
1215         * WebProcess/WebPage/WebPage.messages.in:
1216         * WebProcess/WebPage/ios/WebPageIOS.mm:
1217         (WebKit::WebPage::dynamicViewportSizeUpdate):
1218         (WebKit::WebPage::synchronizeDynamicViewportUpdate):
1219
1220 2014-05-30  Enrica Casucci  <enrica@apple.com>
1221
1222         REGRESSION (WebKit2): space space to insert period doesn't work in web forms.
1223         https://bugs.webkit.org/show_bug.cgi?id=133413
1224         <rdar://problem/16948333>
1225
1226         Reviewed by Benjamin Poulain.
1227
1228         iOS TextInput needs to know about content surrounding the
1229         current position while editing. Since we don't want to
1230         query this information synchronously when asked, we cache it
1231         as part of the EditorState. EditorState now contains a vector of
1232         three characters representing the content after, before and two
1233         position before the caret position.
1234         The patch also replaces all calls to plainText with plainTextReplacingNoBreakSpace
1235         to work well with iOS text input.
1236
1237         * Shared/EditorState.cpp:
1238         (WebKit::EditorState::encode):
1239         (WebKit::EditorState::decode):
1240         * Shared/EditorState.h:
1241         (WebKit::EditorState::EditorState):
1242         * UIProcess/ios/WKContentViewInteraction.mm:
1243         (-[WKContentView _characterInRelationToCaretSelection:]):
1244         (+[WKAutocorrectionContext autocorrectionContextWithData:markedText:selectedText:afterText:selectedRangeInMarkedText:]):
1245         * WebProcess/WebPage/WebPage.cpp:
1246         (WebKit::WebPage::editorState):
1247         * WebProcess/WebPage/ios/WebPageIOS.mm:
1248         (WebKit::WebPage::requestDictationContext):
1249         (WebKit::WebPage::replaceSelectedText):
1250         (WebKit::WebPage::replaceDictatedText):
1251         (WebKit::WebPage::requestAutocorrectionData):
1252         (WebKit::WebPage::syncApplyAutocorrection):
1253         (WebKit::computeAutocorrectionContext):
1254
1255 2014-05-30  Geoffrey Garen  <ggaren@apple.com>
1256
1257         Fixed the build by adding back a declaration I deleted by accident :(.
1258
1259         Unreviewed.
1260
1261         * UIProcess/API/Cocoa/WKWebView.h:
1262
1263 2014-05-30  Geoffrey Garen  <ggaren@apple.com>
1264
1265         Unreviewed, rolling in r169490.
1266
1267         I changed a non-ASCII apostrophe to ASCII.
1268
1269         Restored changeset:
1270
1271         "Some more copy-editing of the Modern WebKit headerdoc"
1272         https://bugs.webkit.org/show_bug.cgi?id=133408
1273         http://trac.webkit.org/changeset/169490
1274
1275         * UIProcess/API/Cocoa/WKBackForwardList.h:
1276         * UIProcess/API/Cocoa/WKBackForwardListItem.h:
1277         * UIProcess/API/Cocoa/WKFrameInfo.h:
1278         * UIProcess/API/Cocoa/WKNavigation.h:
1279         * UIProcess/API/Cocoa/WKNavigationAction.h:
1280         (NS_ENUM):
1281         * UIProcess/API/Cocoa/WKNavigationDelegate.h:
1282         (NS_ENUM):
1283         * UIProcess/API/Cocoa/WKNavigationResponse.h:
1284         * UIProcess/API/Cocoa/WKPreferences.h:
1285         * UIProcess/API/Cocoa/WKProcessPool.h:
1286         * UIProcess/API/Cocoa/WKScriptMessage.h:
1287         * UIProcess/API/Cocoa/WKScriptMessageHandler.h:
1288         * UIProcess/API/Cocoa/WKUIDelegate.h:
1289         * UIProcess/API/Cocoa/WKUserContentController.h:
1290         * UIProcess/API/Cocoa/WKWebView.h:
1291         * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
1292
1293 2014-05-30  Geoffrey Garen  <ggaren@apple.com>
1294
1295         Unreviewed, rolling out r169490.
1296
1297         It broke the build with a mysterious warning about ASCII.
1298
1299         Reverted changeset:
1300
1301         "Some more copy-editing of the Modern WebKit headerdoc"
1302         https://bugs.webkit.org/show_bug.cgi?id=133408
1303         http://trac.webkit.org/changeset/169490
1304
1305 2014-05-30  Geoffrey Garen  <ggaren@apple.com>
1306
1307         Some more copy-editing of the Modern WebKit headerdoc
1308         https://bugs.webkit.org/show_bug.cgi?id=133408
1309
1310         Reviewed by Beth Dakin.
1311
1312         A copy-editor suggested some edits to the headerdoc for clarity,
1313         style, and formatting.
1314
1315         I reviewed the edits and accepted about 80% of them.
1316
1317         * UIProcess/API/Cocoa/WKBackForwardList.h:
1318         * UIProcess/API/Cocoa/WKBackForwardListItem.h:
1319         * UIProcess/API/Cocoa/WKFrameInfo.h:
1320         * UIProcess/API/Cocoa/WKNavigation.h:
1321         * UIProcess/API/Cocoa/WKNavigationAction.h:
1322         (NS_ENUM):
1323         * UIProcess/API/Cocoa/WKNavigationDelegate.h:
1324         (NS_ENUM):
1325         * UIProcess/API/Cocoa/WKNavigationResponse.h:
1326         * UIProcess/API/Cocoa/WKPreferences.h:
1327         * UIProcess/API/Cocoa/WKProcessPool.h:
1328         * UIProcess/API/Cocoa/WKScriptMessage.h:
1329         * UIProcess/API/Cocoa/WKScriptMessageHandler.h:
1330         * UIProcess/API/Cocoa/WKUIDelegate.h:
1331         * UIProcess/API/Cocoa/WKUserContentController.h:
1332         * UIProcess/API/Cocoa/WKWebView.h:
1333         * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
1334
1335 2014-05-30  Timothy Horton  <timothy_horton@apple.com>
1336
1337         Crash loading skydrive.com (assertion under RemoteLayerTreeDisplayRefreshMonitor)
1338         https://bugs.webkit.org/show_bug.cgi?id=133370
1339         <rdar://problem/17061361>
1340
1341         Reviewed by Darin Adler.
1342
1343         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
1344         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
1345         (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
1346         (WebKit::RemoteLayerTreeDrawingArea::willDestroyDisplayRefreshMonitor):
1347         (WebKit::RemoteLayerTreeDrawingArea::didUpdate):
1348         Post-landing review comments from Darin noted that checking if the
1349         DrawingArea's m_displayRefreshMonitors contains the monitor in the
1350         list to notify is insufficient, because a new one could have been
1351         added with the same address. Instead, copy the HashSet, removing
1352         at random from it and firing didUpdateLayers, but *also* removing
1353         from it in the willDestroyDisplayRefreshMonitor callback.
1354         This is very similar to what DisplayRefreshMonitor itself does internally
1355         (we don't have to duplicate its code to avoid re-entry because it is
1356         already impossible to re-enter didUpdate).
1357
1358 2014-05-29  Anders Carlsson  <andersca@apple.com>
1359
1360         -[WKProcessPoolConfiguration setCachePartitionedURLSchemes:] should do a deep copy
1361         https://bugs.webkit.org/show_bug.cgi?id=133393
1362
1363         Reviewed by Dan Bernstein.
1364
1365         * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
1366         (-[_WKProcessPoolConfiguration setCachePartitionedURLSchemes:]):
1367
1368 2014-05-29  Mark Lam  <mark.lam@apple.com>
1369
1370         Restoring FloatingPointEnvironment initialization that was accidentally rolled out by r169176.
1371         <https://webkit.org/b/133389>
1372
1373         Rubber stamped by Oliver Hunt.
1374
1375         * Shared/ios/ChildProcessIOS.mm:
1376         (WebKit::ChildProcess::platformInitialize):
1377
1378 2014-05-29  Enrica Casucci  <enrica@apple.com>
1379
1380         Need to notify the keyboard about every KeyDown event.
1381         https://bugs.webkit.org/show_bug.cgi?id=133383
1382         <rdar://problem/16633975>
1383
1384         Reviewed by Benjamin Poulain.
1385         
1386         A key down will generate most of the time a call to the keyboard to add input or delete.
1387         But the event could be handled by JavaScript and its default prevented.
1388         We need to notify the keyboard in every case to allow updating its internal state about what has been typed.
1389
1390         * UIProcess/ios/PageClientImplIOS.mm:
1391         (WebKit::PageClientImpl::doneWithKeyEvent):
1392         * UIProcess/ios/WKContentViewInteraction.h:
1393         * UIProcess/ios/WKContentViewInteraction.mm:
1394         (-[WKContentView _didHandleKeyEvent:]):
1395
1396 2014-05-29  Matthew Hanson  <matthew_hanson@apple.com>
1397
1398         Roll out r169439. <rdar://problem/17069364>
1399
1400     2014-05-28  Gavin Barraclough  <baraclough@apple.com> 
1401
1402             viewStateDidChange should always fully update ViewState
1403             https://bugs.webkit.org/show_bug.cgi?id=133159
1404
1405             Reviewed by Anders Carlson.
1406
1407             Currently WebPageProxy::viewStateDidChange is passed a mask of bits to update.
1408
1409             This has the following negative consequences:
1410              – WKWebView implicitly requires more detailed knowledge of the internal implementation of the PageClient.
1411              – Updates may unnecessarily be split over multiple IPC messages.
1412              – In order to support partial updates we make multiple virtual function calls to PageClient, which then makes duplicate objc calls. 
1413
1414             Better to just always update the entire ViewState. 
1415
1416             * UIProcess/API/Cocoa/WKWebView.mm:
1417             (-[WKWebView didMoveToWindow]):
1418                 - removed argument to viewStateDidChange.
1419             * UIProcess/API/gtk/PageClientImpl.cpp:
1420             (WebKit::PageClientImpl::viewState):
1421             (WebKit::PageClientImpl::isViewWindowActive): Deleted.
1422             (WebKit::PageClientImpl::isViewFocused): Deleted.
1423             (WebKit::PageClientImpl::isViewVisible): Deleted.
1424             (WebKit::PageClientImpl::isViewInWindow): Deleted.
1425             * UIProcess/API/gtk/PageClientImpl.h:
1426                 - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
1427             * UIProcess/API/mac/WKView.mm:
1428             (-[WKView becomeFirstResponder]):
1429             (-[WKView resignFirstResponder]):
1430             (-[WKView viewDidMoveToWindow]):
1431             (-[WKView _windowDidBecomeKey:]):
1432             (-[WKView _windowDidResignKey:]):
1433             (-[WKView _windowDidMiniaturize:]):
1434             (-[WKView _windowDidDeminiaturize:]):
1435             (-[WKView _windowDidOrderOffScreen:]):
1436             (-[WKView _windowDidOrderOnScreen:]):
1437             (-[WKView _windowDidChangeOcclusionState:]):
1438             (-[WKView viewDidHide]):
1439             (-[WKView viewDidUnhide]):
1440             (-[WKView _activeSpaceDidChange:]):
1441             (-[WKView _setThumbnailView:]):
1442             (-[WKView endDeferringViewInWindowChanges]):
1443             (-[WKView endDeferringViewInWindowChangesSync]):
1444                 - removed argument to viewStateDidChange.
1445             * UIProcess/CoordinatedGraphics/WebView.cpp:
1446             (WebKit::WebView::viewState):
1447             (WebKit::WebView::isViewWindowActive): Deleted.
1448             (WebKit::WebView::isViewFocused): Deleted.
1449             (WebKit::WebView::isViewVisible): Deleted.
1450             (WebKit::WebView::isViewInWindow): Deleted.
1451             * UIProcess/CoordinatedGraphics/WebView.h:
1452                 - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
1453             * UIProcess/PageClient.h:
1454             (WebKit::PageClient::isViewVisibleOrOccluded): Deleted.
1455             (WebKit::PageClient::isVisuallyIdle): Deleted.
1456                 - merged isViewVisibleOrOccluded/isVisuallyIdle to subclass viewState methods.
1457             * UIProcess/WebPageProxy.cpp:
1458             (WebKit::WebPageProxy::WebPageProxy):
1459             (WebKit::WebPageProxy::reattachToWebProcess):
1460                 - updateViewState -> PageClient::viewState
1461             (WebKit::WebPageProxy::viewStateDidChange):
1462                 - argument removed; updateViewState -> PageClient::viewState.
1463             (WebKit::WebPageProxy::setCursor):
1464                 - call isViewWindowActive on WebPageProxy, rather than PageClient.
1465             (WebKit::WebPageProxy::updateBackingStoreDiscardableState):
1466                 - call isViewWindowActive on WebPageProxy, rather than PageClient.
1467             (WebKit::WebPageProxy::updateViewState): Deleted.
1468                 - removed - viewState method moved to PageClient.
1469             * UIProcess/WebPageProxy.h:
1470             (WebKit::WebPageProxy::isViewWindowActive):
1471                 - added missing implementation.
1472             (WebKit::WebPageProxy::isViewVisible):
1473                 - removed argument to viewStateDidChange.
1474             * UIProcess/WebProcessProxy.cpp:
1475             (WebKit::WebProcessProxy::windowServerConnectionStateChanged):
1476                 - removed argument to viewStateDidChange.
1477             * UIProcess/ios/PageClientImplIOS.h:
1478             * UIProcess/ios/PageClientImplIOS.mm:
1479             (WebKit::PageClientImpl::viewState):
1480             (WebKit::PageClientImpl::isViewWindowActive): Deleted.
1481             (WebKit::PageClientImpl::isViewFocused): Deleted.
1482             (WebKit::PageClientImpl::isViewVisible): Deleted.
1483             (WebKit::PageClientImpl::isViewInWindow): Deleted.
1484             (WebKit::PageClientImpl::isViewVisibleOrOccluded): Deleted.
1485             (WebKit::PageClientImpl::isVisuallyIdle): Deleted.
1486                 - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
1487             * UIProcess/ios/WKContentView.mm:
1488             (-[WKContentView didMoveToWindow]):
1489             (-[WKContentView _applicationDidEnterBackground:]):
1490             (-[WKContentView _applicationWillEnterForeground:]):
1491                 - removed argument to viewStateDidChange.
1492             * UIProcess/mac/PageClientImpl.h:
1493             * UIProcess/mac/PageClientImpl.mm:
1494             (WebKit::PageClientImpl::viewState):
1495             (WebKit::PageClientImpl::showCorrectionPanel):
1496             (WebKit::PageClientImpl::showDictationAlternativeUI):
1497             (WebKit::PageClientImpl::isViewWindowActive): Deleted.
1498             (WebKit::PageClientImpl::isViewFocused): Deleted.
1499             (WebKit::PageClientImpl::isViewVisibleOrOccluded): Deleted.
1500             (WebKit::PageClientImpl::isVisuallyIdle): Deleted.
1501                 - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
1502
1503 2014-05-29  Dan Bernstein  <mitz@apple.com>
1504
1505         [Cocoa] Can’t recover from subframe load errors
1506         https://bugs.webkit.org/show_bug.cgi?id=133385
1507
1508         Reviewed by Anders Carlsson.
1509
1510         * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Declared new delegate method.
1511         * UIProcess/Cocoa/NavigationState.h: Added flag in m_navigationDelegateMethods struct.
1512         * UIProcess/Cocoa/NavigationState.mm:
1513         (WebKit::NavigationState::setNavigationDelegate): Initialize
1514         webViewNavigationDidFailProvisionalLoadInSubframeWithError flag in the delegate methods
1515         struct.
1516         (WebKit::NavigationState::LoaderClient::didFailProvisionalLoadWithErrorForFrame): If the
1517         error occurred in a subframe, invoke the new delegate method.
1518
1519 2014-05-29  Geoffrey Garen  <ggaren@apple.com>
1520
1521         Added a missing @result to WKPreferences headerdoc
1522         https://bugs.webkit.org/show_bug.cgi?id=133381
1523
1524         Reviewed by Dan Bernstein.
1525
1526         * UIProcess/API/Cocoa/WKPreferences.h:
1527
1528 2014-05-29  Alexey Proskuryakov  <ap@apple.com>
1529
1530         [Mac] Always use plug-in sandbox with sandboxed clients
1531         https://bugs.webkit.org/show_bug.cgi?id=133358
1532         <rdar://problem/15637695>
1533
1534         Reviewed by Anders Carlsson.
1535
1536         * PluginProcess/mac/PluginProcessMac.mm: (WebKit::PluginProcess::initializeSandbox):
1537         Refuse to start if parent process is sandboxed, and plug-in process is not going to be.
1538         None of this should run in normal case, because there are also checks on UI process side.
1539         
1540         * Shared/Plugins/PluginModuleInfo.h:
1541         * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
1542         (WebKit::NetscapePluginModule::getPluginInfo):
1543         Added a member to PluginModuleInfo, telling whether the plug-in has a sandbox profile.
1544
1545         * Shared/Plugins/Netscape/mac/PluginInformationMac.mm:
1546         (WebKit::getPlatformPluginModuleInformation): Use the new PluginModuleInfo member,
1547         we no longer need to check the file system here.
1548
1549         * WebKit2.xcodeproj/project.pbxproj:
1550         * Shared/mac/SandboxUtilities.h: Added.
1551         * Shared/mac/SandboxUtilities.cpp: Added. (WebKit::processIsSandboxed):
1552         This code is simple, but include magic is not. Moved it to a separate file to
1553         avoid repeating.
1554
1555         * UIProcess/API/C/mac/WKContextPrivateMac.mm: Removed an unused include.
1556
1557         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
1558         (WebKit::PluginInfoStore::shouldUsePlugin): Don't use unsandboxed plug-ins in
1559         sandboxed applications.
1560
1561         * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
1562         (WebKit::PluginProcessProxy::platformGetLaunchOptions): Don't ever pass disable-sandbox
1563         from sandboxed processes.
1564
1565         * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:
1566         (WebKit::XPCServiceInitializerDelegate::isClientSandboxed):
1567         Use the new shared code in SandboxUtilities.h.
1568
1569 2014-05-29  Timothy Horton  <timothy_horton@apple.com>
1570
1571         Crash loading skydrive.com (assertion under RemoteLayerTreeDisplayRefreshMonitor)
1572         https://bugs.webkit.org/show_bug.cgi?id=133370
1573         <rdar://problem/17061361>
1574
1575         Reviewed by Anders Carlsson.
1576
1577         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
1578         (WebKit::RemoteLayerTreeDrawingArea::didUpdate):
1579         Copy the set of refresh monitors so that we don't try to mutate the list we're iterating,
1580         and don't try to fire refresh monitors that were removed in a previous iteration of the loop.
1581
1582 2014-05-29  Timothy Horton  <timothy_horton@apple.com>
1583
1584         REGRESSION (iOS WebKit2): Find-in-Page doesn't work in subframes
1585         https://bugs.webkit.org/show_bug.cgi?id=133372
1586         <rdar://problem/17045070>
1587
1588         Reviewed by Simon Fraser.
1589
1590         * WebProcess/WebPage/ios/FindControllerIOS.mm:
1591         (WebKit::FindController::willFindString):
1592         (WebKit::FindController::didFailToFindString):
1593         (WebKit::FindController::didHideFindIndicator):
1594         Flip ignoreCompositionSelectionChange and updateAppearanceEnabled on all
1595         frames, not just the main frame, because the found string can be in a subframe.
1596         Ideally we would flip it on/off for each frame as we move the selection between them,
1597         but would require a lot of work (and the overhead of touching each frame shouldn't be significant).
1598
1599 2014-05-29  Dan Bernstein  <mitz@apple.com>
1600
1601         WKBundleActivateMacFontAscentHack is unused
1602         https://bugs.webkit.org/show_bug.cgi?id=133379
1603
1604         Reviewed by Anders Carlsson.
1605
1606         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
1607         (WKBundleActivateMacFontAscentHack): Deleted.
1608         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
1609         * WebProcess/InjectedBundle/InjectedBundle.h:
1610         * WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp:
1611         (WebKit::InjectedBundle::activateMacFontAscentHack): Deleted.
1612         * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
1613         (WebKit::InjectedBundle::activateMacFontAscentHack): Deleted.
1614         * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
1615         (WebKit::InjectedBundle::activateMacFontAscentHack): Deleted.
1616
1617 2014-05-29  Alexey Proskuryakov  <ap@apple.com>
1618
1619         Add a sandbox profile for com.apple.appstore.CodeRedeemerNetscapePlugin
1620         https://bugs.webkit.org/show_bug.cgi?id=133360
1621
1622         Reviewed by Sam Weinig.
1623
1624         * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb: Looks like
1625         anyone using camera would need access to CoreMedia preferences.
1626
1627         * Resources/PlugInSandboxProfiles/com.apple.appstore.CodeRedeemerNetscapePlugin.sb: Added.
1628
1629         * WebKit2.xcodeproj/project.pbxproj: Added the profile.
1630
1631 2014-05-29  Carlos Garcia Campos  <cgarcia@igalia.com>
1632
1633         [GTK] Add support for HiDPI icons
1634         https://bugs.webkit.org/show_bug.cgi?id=133377
1635
1636         Reviewed by Martin Robinson.
1637
1638         * PlatformGTK.cmake: Compile also the @2x versions for the builtin icons.
1639
1640 2014-05-29  Owen Taylor  <otaylor@redhat.com>
1641
1642         [GTK] Add HighDPI support for non-accelerated compositing contents
1643         https://bugs.webkit.org/show_bug.cgi?id=131562
1644
1645         Reviewed by Anders Carlsson.
1646
1647         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1648         (deviceScaleFactorChanged): Added this callback to pass scale changes to the page proxy.
1649         (webkitWebViewBaseCreateWebPage): Attach the callback to the notify signal.
1650         * UIProcess/WebPageProxy.cpp:
1651         * UIProcess/cairo/BackingStoreCairo.cpp:
1652         (WebKit::WebPageProxy::setCustomDeviceScaleFactor): Do not set a
1653         custom device scale factor for cairo when it's not supported.
1654         (WebKit::createBackingStoreForGTK): Pass the scale factor to the WebCore backing store.
1655         (WebKit::BackingStore::incorporateUpdate): Ditto.
1656
1657 2014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1658
1659         [GTK] Use GMainLoopSource for idle and timeout sources in WebKit2
1660         https://bugs.webkit.org/show_bug.cgi?id=130081
1661
1662         Reviewed by Martin Robinson.
1663
1664         * Platform/WorkQueue.h:
1665         * Platform/gtk/WorkQueueGtk.cpp:
1666         (WorkQueue::registerSocketEventHandler): Stop pretending it's
1667         possible to register a socket event handler for more than one
1668         descriptor.
1669         (WorkQueue::unregisterSocketEventHandler):
1670         (WorkQueue::dispatch):
1671         (WorkQueue::dispatchAfter):
1672         * Shared/Downloads/soup/DownloadSoup.cpp:
1673         (WebKit::DownloadClient::DownloadClient):
1674         (WebKit::DownloadClient::~DownloadClient):
1675         (WebKit::DownloadClient::didReceiveData):
1676         (WebKit::DownloadClient::handleResponse):
1677         (WebKit::DownloadClient::handleResponseLater):
1678         * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
1679         (WebKit::PluginInfoCache::PluginInfoCache):
1680         (WebKit::PluginInfoCache::~PluginInfoCache):
1681         (WebKit::PluginInfoCache::saveToFile):
1682         (WebKit::PluginInfoCache::updatePluginInfo):
1683         * UIProcess/Plugins/gtk/PluginInfoCache.h:
1684         * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
1685         (WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
1686         (WebKit::LayerTreeHostGtk::layerFlushTimerFired):
1687         (WebKit::LayerTreeHostGtk::scheduleLayerFlush):
1688         (WebKit::LayerTreeHostGtk::cancelPendingLayerFlush):
1689         * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
1690
1691 2014-05-28  Gavin Barraclough  <baraclough@apple.com>
1692
1693         viewStateDidChange should always fully update ViewState
1694         https://bugs.webkit.org/show_bug.cgi?id=133159
1695
1696         Reviewed by Anders Carlson.
1697
1698         Currently WebPageProxy::viewStateDidChange is passed a mask of bits to update.
1699
1700         This has the following negative consequences:
1701          – WKWebView implicitly requires more detailed knowledge of the internal implementation of the PageClient.
1702          – Updates may unnecessarily be split over multiple IPC messages.
1703          – In order to support partial updates we make multiple virtual function calls to PageClient, which then makes duplicate objc calls.
1704
1705         Better to just always update the entire ViewState.
1706
1707         * UIProcess/API/Cocoa/WKWebView.mm:
1708         (-[WKWebView didMoveToWindow]):
1709             - removed argument to viewStateDidChange.
1710         * UIProcess/API/gtk/PageClientImpl.cpp:
1711         (WebKit::PageClientImpl::viewState):
1712         (WebKit::PageClientImpl::isViewWindowActive): Deleted.
1713         (WebKit::PageClientImpl::isViewFocused): Deleted.
1714         (WebKit::PageClientImpl::isViewVisible): Deleted.
1715         (WebKit::PageClientImpl::isViewInWindow): Deleted.
1716         * UIProcess/API/gtk/PageClientImpl.h:
1717             - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
1718         * UIProcess/API/mac/WKView.mm:
1719         (-[WKView becomeFirstResponder]):
1720         (-[WKView resignFirstResponder]):
1721         (-[WKView viewDidMoveToWindow]):
1722         (-[WKView _windowDidBecomeKey:]):
1723         (-[WKView _windowDidResignKey:]):
1724         (-[WKView _windowDidMiniaturize:]):
1725         (-[WKView _windowDidDeminiaturize:]):
1726         (-[WKView _windowDidOrderOffScreen:]):
1727         (-[WKView _windowDidOrderOnScreen:]):
1728         (-[WKView _windowDidChangeOcclusionState:]):
1729         (-[WKView viewDidHide]):
1730         (-[WKView viewDidUnhide]):
1731         (-[WKView _activeSpaceDidChange:]):
1732         (-[WKView _setThumbnailView:]):
1733         (-[WKView endDeferringViewInWindowChanges]):
1734         (-[WKView endDeferringViewInWindowChangesSync]):
1735             - removed argument to viewStateDidChange.
1736         * UIProcess/CoordinatedGraphics/WebView.cpp:
1737         (WebKit::WebView::viewState):
1738         (WebKit::WebView::isViewWindowActive): Deleted.
1739         (WebKit::WebView::isViewFocused): Deleted.
1740         (WebKit::WebView::isViewVisible): Deleted.
1741         (WebKit::WebView::isViewInWindow): Deleted.
1742         * UIProcess/CoordinatedGraphics/WebView.h:
1743             - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
1744         * UIProcess/PageClient.h:
1745         (WebKit::PageClient::isViewVisibleOrOccluded): Deleted.
1746         (WebKit::PageClient::isVisuallyIdle): Deleted.
1747             - merged isViewVisibleOrOccluded/isVisuallyIdle to subclass viewState methods.
1748         * UIProcess/WebPageProxy.cpp:
1749         (WebKit::WebPageProxy::WebPageProxy):
1750         (WebKit::WebPageProxy::reattachToWebProcess):
1751             - updateViewState -> PageClient::viewState
1752         (WebKit::WebPageProxy::viewStateDidChange):
1753             - argument removed; updateViewState -> PageClient::viewState.
1754         (WebKit::WebPageProxy::setCursor):
1755             - call isViewWindowActive on WebPageProxy, rather than PageClient.
1756         (WebKit::WebPageProxy::updateBackingStoreDiscardableState):
1757             - call isViewWindowActive on WebPageProxy, rather than PageClient.
1758         (WebKit::WebPageProxy::updateViewState): Deleted.
1759             - removed - viewState method moved to PageClient.
1760         * UIProcess/WebPageProxy.h:
1761         (WebKit::WebPageProxy::isViewWindowActive):
1762             - added missing implementation.
1763         (WebKit::WebPageProxy::isViewVisible):
1764             - removed argument to viewStateDidChange.
1765         * UIProcess/WebProcessProxy.cpp:
1766         (WebKit::WebProcessProxy::windowServerConnectionStateChanged):
1767             - removed argument to viewStateDidChange.
1768         * UIProcess/ios/PageClientImplIOS.h:
1769         * UIProcess/ios/PageClientImplIOS.mm:
1770         (WebKit::PageClientImpl::viewState):
1771         (WebKit::PageClientImpl::isViewWindowActive): Deleted.
1772         (WebKit::PageClientImpl::isViewFocused): Deleted.
1773         (WebKit::PageClientImpl::isViewVisible): Deleted.
1774         (WebKit::PageClientImpl::isViewInWindow): Deleted.
1775         (WebKit::PageClientImpl::isViewVisibleOrOccluded): Deleted.
1776         (WebKit::PageClientImpl::isVisuallyIdle): Deleted.
1777             - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
1778         * UIProcess/ios/WKContentView.mm:
1779         (-[WKContentView didMoveToWindow]):
1780         (-[WKContentView _applicationDidEnterBackground:]):
1781         (-[WKContentView _applicationWillEnterForeground:]):
1782             - removed argument to viewStateDidChange.
1783         * UIProcess/mac/PageClientImpl.h:
1784         * UIProcess/mac/PageClientImpl.mm:
1785         (WebKit::PageClientImpl::viewState):
1786         (WebKit::PageClientImpl::showCorrectionPanel):
1787         (WebKit::PageClientImpl::showDictationAlternativeUI):
1788         (WebKit::PageClientImpl::isViewWindowActive): Deleted.
1789         (WebKit::PageClientImpl::isViewFocused): Deleted.
1790         (WebKit::PageClientImpl::isViewVisibleOrOccluded): Deleted.
1791         (WebKit::PageClientImpl::isVisuallyIdle): Deleted.
1792             - merged isViewWindowActive/isViewFocused/isViewVisible/isViewInWindow to viewState.
1793
1794 2014-05-28  Jeffrey Pfau  <jpfau@apple.com>
1795
1796         Add Obj-C API for cache partitioned URL schemes
1797         https://bugs.webkit.org/show_bug.cgi?id=133361
1798         <rdar://problem/17035415>
1799
1800         Reviewed by Anders Carlsson.
1801
1802         * UIProcess/API/Cocoa/WKProcessPool.mm:
1803         (-[WKProcessPool _initWithConfiguration:]):
1804         * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
1805         * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
1806         (-[_WKProcessPoolConfiguration cachePartitionedURLSchemes]):
1807         (-[_WKProcessPoolConfiguration setCachePartitionedURLSchemes:]):
1808         (-[_WKProcessPoolConfiguration copyWithZone:]):
1809
1810 2014-05-28  Sam Weinig  <sam@webkit.org>
1811
1812         [iOS WebKit2] Sometimes Safari gets into a limbo state after web process crash
1813         <rdar://problem/17029526>
1814         https://bugs.webkit.org/show_bug.cgi?id=133362
1815
1816         Reviewed by Dan Bernstein.
1817
1818         * UIProcess/WebPageProxy.cpp:
1819         (WebKit::WebPageProxy::WebPageProxy):
1820         Remove unnecessary initialization of a unique_ptr.
1821
1822         (WebKit::WebPageProxy::reattachToWebProcess):
1823         Move calls to update the view state and activity tokens to after we have swapped in the new process.
1824
1825         (WebKit::WebPageProxy::resetStateAfterProcessExited):
1826         Clear the activity token on process exit.
1827
1828 2014-05-28  Timothy Horton  <timothy_horton@apple.com>
1829
1830         Add WKWebView SPI to forcefully kill the associated Web process
1831         https://bugs.webkit.org/show_bug.cgi?id=133357
1832
1833         Reviewed by Anders Carlsson.
1834
1835         * UIProcess/API/Cocoa/WKWebView.mm:
1836         (-[WKWebView _killWebContentProcess]):
1837         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
1838
1839 2014-05-28  Dan Bernstein  <mitz@apple.com>
1840
1841         [Cocoa] Crash when trying to decode an instance of a class inheriting from WKObject
1842         https://bugs.webkit.org/show_bug.cgi?id=133355
1843
1844         Reviewed by Anders Carlsson.
1845
1846         * Shared/Cocoa/WKObject.mm:
1847         (-[WKObject classForCoder]): Override this NSObject method to forward to the
1848         target object.
1849         (-[WKObject classForKeyedArchiver]): Ditto.
1850
1851 2014-05-28  Simon Fraser  <simon.fraser@apple.com>
1852
1853         [iOS WK2] Improve behavior of position:fixed inside accelerated overflow-scroll
1854         https://bugs.webkit.org/show_bug.cgi?id=133352
1855
1856         Reviewed by Tim Horton.
1857
1858         Pass the correct delta down to descendant nodes.
1859
1860         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
1861         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateChildNodesAfterScroll):
1862
1863 2014-05-28  Andy Estes  <aestes@apple.com>
1864
1865         [iOS] REGRESSION (r168388): DidNotHandleTapAsClick not sent when commitPotentialTap() fails
1866         https://bugs.webkit.org/show_bug.cgi?id=133349
1867
1868         Reviewed by Benjamin Poulain.
1869
1870         WebPage::commitPotentialTap() fails when a recognized single tap cannot be sent as a synthetic click event.
1871         We should send WebPageProxy::DidNotHandleTapAsClick in these cases.
1872
1873         * WebProcess/WebPage/WebPage.h:
1874         * WebProcess/WebPage/ios/WebPageIOS.mm:
1875         (WebKit::WebPage::commitPotentialTap):
1876         (WebKit::WebPage::commitPotentialTapFailed):
1877
1878 2014-05-28  Commit Queue  <commit-queue@webkit.org>
1879
1880         Unreviewed, rolling out r169423.
1881         https://bugs.webkit.org/show_bug.cgi?id=133348
1882
1883         It makes a lot of tests crash in assert (Requested by KaL on
1884         #webkit).
1885
1886         Reverted changeset:
1887
1888         "[GTK] Use GMainLoopSource for idle and timeout sources in
1889         WebKit2"
1890         https://bugs.webkit.org/show_bug.cgi?id=130081
1891         http://trac.webkit.org/changeset/169423
1892
1893 2014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1894
1895         [GTK] Use GMainLoopSource for idle and timeout sources in WebKit2
1896         https://bugs.webkit.org/show_bug.cgi?id=130081
1897
1898         Reviewed by Martin Robinson.
1899
1900         * Platform/WorkQueue.h:
1901         * Platform/gtk/WorkQueueGtk.cpp:
1902         (WorkQueue::registerSocketEventHandler): Stop pretending it's
1903         possible to register a socket event handler for more than one
1904         descriptor.
1905         (WorkQueue::unregisterSocketEventHandler):
1906         (WorkQueue::dispatch):
1907         (WorkQueue::dispatchAfter):
1908         * Shared/Downloads/soup/DownloadSoup.cpp:
1909         (WebKit::DownloadClient::DownloadClient):
1910         (WebKit::DownloadClient::~DownloadClient):
1911         (WebKit::DownloadClient::didReceiveData):
1912         (WebKit::DownloadClient::handleResponse):
1913         (WebKit::DownloadClient::handleResponseLater):
1914         * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
1915         (WebKit::PluginInfoCache::PluginInfoCache):
1916         (WebKit::PluginInfoCache::~PluginInfoCache):
1917         (WebKit::PluginInfoCache::saveToFile):
1918         (WebKit::PluginInfoCache::updatePluginInfo):
1919         * UIProcess/Plugins/gtk/PluginInfoCache.h:
1920         * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
1921         (WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
1922         (WebKit::LayerTreeHostGtk::layerFlushTimerFired):
1923         (WebKit::LayerTreeHostGtk::scheduleLayerFlush):
1924         (WebKit::LayerTreeHostGtk::cancelPendingLayerFlush):
1925         * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
1926
1927 2014-05-28  Dan Bernstein  <mitz@apple.com>
1928
1929         [Cocoa] Can't use bundle-defined classes for bundle parameters
1930         https://bugs.webkit.org/show_bug.cgi?id=133339
1931
1932         Reviewed by Anders Carlsson.
1933
1934         Ensure that bundle parameters are decoded only after the injected bundle is loaded.
1935
1936         * WebProcess/InjectedBundle/InjectedBundle.cpp:
1937         (WebKit::InjectedBundle::create): Moved the definition from the header to here, added the
1938         lagacy initializationUserData as a parameter, and made this function set the sandbox
1939         extension and load the bundle.
1940         (WebKit::InjectedBundle::InjectedBundle): Removed call to platformInitialize.
1941         * WebProcess/InjectedBundle/InjectedBundle.h:
1942         (WebKit::InjectedBundle::setSandboxExtension): Deleted.
1943         * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
1944         (WebKit::InjectedBundle::initialize): Renamed the load function to this, and added the
1945         creation parameters as a parameter. Moved code to initialize the bundle paramters from
1946         platformInitialize to here. Changed the class passed to -decodeObjectOfClass:forKey: to
1947         NSObject, to allow arbitrary types in the values, and added an assertion that the
1948         top-level object is a dictionary.
1949         (WebKit::InjectedBundle::platformInitialize): Deleted.
1950         * WebProcess/WebProcess.cpp:
1951         (WebKit::WebProcess::initializeWebProcess): Changed to pass the legacy initialization user
1952         data to InjectedBundle::create() and removed code to separately set the sandbox extension
1953         and load the bundle, which is now done by create().
1954
1955 2014-05-28  Alberto Garcia  <berto@igalia.com>
1956
1957         Unreviewed. Fix warning: unused parameter 'frame'
1958
1959         * WebProcess/WebPage/WebPage.cpp:
1960         (WebKit::WebPage::didFinishDocumentLoad):
1961
1962 2014-05-27  Simon Fraser  <simon.fraser@apple.com>
1963
1964         [iOS WK2] Fix behavior of position:sticky inside accelerated overflow-scroll
1965         https://bugs.webkit.org/show_bug.cgi?id=133334
1966         <rdar://problem/16462535>
1967
1968         Reviewed by Tim Horton.
1969
1970         When the scroll position changes in an accelerated overflow-scroll element, we have
1971         to update child nodes in the scrolling tree for position:sticky. That requires a
1972         more generic ability to update the scrolling tree after some arbitrary zoom or
1973         scroll. To do this, we need to know the current fixed position rect, rather than
1974         having it passed in.
1975         
1976         So make the fixed position rect available from ScrollingTree, and make it possible
1977         to get the current scrollPosition() from any ScrollingTreeScrollingNode.
1978         
1979         Also, implement updateLayersAfterDelegatedScroll() in ScrollingTreeOverflowScrollingNodeIOS,
1980         and have it update descendant layers.
1981         
1982         Finally, fix ScrollingTreeOverflowScrollingNode to use the correct rectangle for its
1983         constraints math, using the scroll position of the parent node if appropriate.
1984
1985         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
1986         * UIProcess/Scrolling/RemoteScrollingTree.cpp:
1987         (WebKit::RemoteScrollingTree::fixedPositionRect):
1988         * UIProcess/Scrolling/RemoteScrollingTree.h:
1989         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
1990         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
1991         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterDelegatedScroll):
1992         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateChildNodesAfterScroll):
1993         * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
1994         (WebKit::RemoteScrollingCoordinatorProxy::customFixedPositionRect):
1995
1996 2014-05-27  Simon Fraser  <simon.fraser@apple.com>
1997
1998         Do some renaming in the scrolling tree
1999         https://bugs.webkit.org/show_bug.cgi?id=133333
2000
2001         Reviewed by Tim Horton.
2002         
2003         Rename ScrollingTreeNode::parentScrollPositionDidChange() to updateLayersAfterAncestorChange()
2004         since this goes deep and to indicate that it's about layer updating.
2005         
2006         Also rename the "viewportRect" parameter to "fixedPositionRect", since on iOS
2007         this is the custom fixed-position rect that changes on zooming.
2008
2009         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
2010         (WebKit::RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling):
2011         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
2012         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
2013         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterViewportChange):
2014
2015 2014-05-27  Geoffrey Garen  <ggaren@apple.com>
2016
2017         Some proof-reading of the WebKit2 API headerdoc
2018         https://bugs.webkit.org/show_bug.cgi?id=133328
2019
2020         Reviewed by Anders Carlsson.
2021
2022         Consistently say "item" to reference back-forward list items.
2023
2024         Consistently say "webpage" instead of "page" or "web page".
2025
2026         Consistently say "navigation" instead of "load".
2027
2028         Plus a few fix-ups for run-on sentences, mismatched verb tense, and
2029         mismatched singular vs plural.
2030
2031         * UIProcess/API/Cocoa/WKBackForwardList.h:
2032         * UIProcess/API/Cocoa/WKBackForwardListItem.h:
2033         * UIProcess/API/Cocoa/WKBrowsingContextController.h:
2034         * UIProcess/API/Cocoa/WKBrowsingContextGroup.h:
2035         * UIProcess/API/Cocoa/WKFrameInfo.h:
2036         * UIProcess/API/Cocoa/WKNavigation.h:
2037         * UIProcess/API/Cocoa/WKNavigationAction.h:
2038         * UIProcess/API/Cocoa/WKNavigationDelegate.h:
2039         * UIProcess/API/Cocoa/WKProcessPool.h:
2040         * UIProcess/API/Cocoa/WKUIDelegate.h:
2041         * UIProcess/API/Cocoa/WKWebView.h:
2042
2043 2014-05-27  Timothy Horton  <timothy_horton@apple.com>
2044
2045         [wk2] PDFPlugin snapshots are misplaced
2046         https://bugs.webkit.org/show_bug.cgi?id=133323
2047
2048         Reviewed by Simon Fraser.
2049
2050         * WebProcess/Plugins/PDF/PDFPlugin.mm:
2051         (WebKit::PDFPlugin::paintControlForLayerInContext):
2052         (WebKit::PDFPlugin::snapshot):
2053         Include the scroll offset in the snapshot translation,
2054         and use the whole document size instead of just the view size.
2055
2056 2014-05-27  Sam Weinig  <sam@webkit.org>
2057
2058         [WebKit2] Move WebPreferences macro definitions and key names into their own files
2059         https://bugs.webkit.org/show_bug.cgi?id=133315
2060
2061         Reviewed by Anders Carlsson.
2062
2063         * CMakeLists.txt:
2064         * Shared/WebPreferencesDefinitions.h: Copied from Source/WebKit2/Shared/WebPreferencesStore.h.
2065         * Shared/WebPreferencesKeys.cpp: Copied from Source/WebKit2/Shared/WebPreferencesStore.cpp.
2066         * Shared/WebPreferencesKeys.h: Copied from Source/WebKit2/Shared/WebPreferencesStore.h.
2067         * Shared/WebPreferencesStore.cpp:
2068         * Shared/WebPreferencesStore.h:
2069         * UIProcess/WebPreferences.cpp:
2070         * UIProcess/WebPreferences.h:
2071         * UIProcess/mac/WebContextMac.mm:
2072         * UIProcess/mac/WebPreferencesMac.mm:
2073         * UIProcess/mac/WebProcessProxyMac.mm:
2074         * WebKit2.xcodeproj/project.pbxproj:
2075         * WebProcess/InjectedBundle/InjectedBundle.cpp:
2076         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
2077         * WebProcess/WebPage/WebPage.cpp:
2078         * WebProcess/WebProcess.cpp:
2079
2080 2014-05-27  Gavin Barraclough  <baraclough@apple.com>
2081
2082         Add UI process watchdog on iOS to ensure WebProcess connections close
2083         https://bugs.webkit.org/show_bug.cgi?id=133200
2084         <rdar://problem/16997983>
2085
2086         Mountain Lion build fix
2087
2088         * Platform/IPC/mac/ConnectionMac.mm:
2089         (IPC::ConnectionTerminationWatchdog::watchdogTimerFired):
2090
2091 2014-05-27  Gavin Barraclough  <baraclough@apple.com>
2092
2093         importance_assertion -> denap_assertion
2094         https://bugs.webkit.org/show_bug.cgi?id=133294
2095
2096         iOS build fix
2097
2098         * Platform/IPC/mac/ConnectionMac.mm:
2099         (IPC::Connection::open):
2100
2101 2014-05-27  Gavin Barraclough  <baraclough@apple.com>
2102
2103         Add UI process watchdog on iOS to ensure WebProcess connections close
2104         https://bugs.webkit.org/show_bug.cgi?id=133200
2105         <rdar://problem/16997983>
2106
2107         Reviewed by Darin Adler.
2108
2109         When the WebProcessProxy wants to disconnect from a WebContent process it just drops the connection,
2110         and hopes the connection closes. There is a watchdog thread in the ChildProcess to try to ensure this
2111         happens.
2112
2113         On iOS the process may not be runnable at the time, preventing termination. Instead add a watchdog in
2114         the UI process to make the process runnable, and to terminate if it doesn't quit in a timely fashion.
2115
2116         * Platform/IPC/Connection.h:
2117             - added terminateSoon.
2118         * Platform/IPC/mac/ConnectionMac.mm:
2119         (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
2120             - take an assertion to make the process runnable, and start a watchdog timer.
2121         (IPC::ConnectionTerminationWatchdog::watchdogTimerFired):
2122             - if the process hasn't quit by the timer the watchdog fires, kill it.
2123         (IPC::Connection::terminateSoon):
2124             - create a ConnectionTerminationWatchdog.
2125         * UIProcess/WebProcessProxy.cpp:
2126         (WebKit::WebProcessProxy::removeWebPage):
2127             - when disconnecting from a process, first tell it to terminateSoon.
2128
2129 2014-05-26  Gavin Barraclough  <barraclough@apple.com>
2130
2131         importance_assertion -> denap_assertion
2132         https://bugs.webkit.org/show_bug.cgi?id=133294
2133
2134         Reviewed by Sam Weinig.
2135
2136         Update in accordance with API change. The importance assertion is used on
2137         Mavericks & newer to ensure the WebContent process wakes from AppNap.
2138
2139         * Platform/IPC/mac/ConnectionMac.mm:
2140         (IPC::Connection::open):
2141             - MACH_PORT_IMPORTANCE_RECEIVER -> MACH_PORT_DENAP_RECEIVER
2142         * Platform/IPC/mac/ImportanceAssertion.h:
2143         (IPC::ImportanceAssertion::ImportanceAssertion):
2144         (IPC::ImportanceAssertion::~ImportanceAssertion):
2145             - proc_importance_assertion -> proc_denap_assertion
2146
2147 2014-05-27  Jessie Berlin  <jberlin@apple.com>
2148
2149         Revert r169362 since it broke the ML build.
2150
2151         * Platform/IPC/Connection.h:
2152         * Platform/IPC/mac/ConnectionMac.mm:
2153         (IPC::ConnectionTerminationWatchdog::createConnectionTerminationWatchdog): Deleted.
2154         (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog): Deleted.
2155         (IPC::ConnectionTerminationWatchdog::watchdogTimerFired): Deleted.
2156         (IPC::Connection::terminateSoon): Deleted.
2157         * UIProcess/WebProcessProxy.cpp:
2158         (WebKit::WebProcessProxy::removeWebPage):
2159
2160 2014-05-27  Jon Lee  <jonlee@apple.com>
2161
2162         Update ENABLE(MEDIA_SOURCE) on Mac
2163         https://bugs.webkit.org/show_bug.cgi?id=133141
2164
2165         Reviewed by Darin Adler.
2166
2167         * Configurations/FeatureDefines.xcconfig:
2168
2169 2014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
2170
2171         Remove BLOB guards
2172         https://bugs.webkit.org/show_bug.cgi?id=132863
2173
2174         Reviewed by Csaba Osztrogonác.
2175
2176         * Configurations/FeatureDefines.xcconfig:
2177         * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
2178         * NetworkProcess/FileAPI/NetworkBlobRegistry.h:
2179         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
2180         (WebKit::NetworkConnectionToWebProcess::didClose):
2181         (WebKit::NetworkConnectionToWebProcess::blobSize):
2182         * NetworkProcess/NetworkConnectionToWebProcess.h:
2183         * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
2184         * NetworkProcess/NetworkProcessPlatformStrategies.cpp:
2185         * NetworkProcess/NetworkProcessPlatformStrategies.h:
2186         * NetworkProcess/NetworkResourceLoader.cpp:
2187         (WebKit::NetworkResourceLoader::NetworkResourceLoader):
2188         * WebProcess/FileAPI/BlobRegistryProxy.cpp:
2189         * WebProcess/FileAPI/BlobRegistryProxy.h:
2190         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
2191         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2192         * WebProcess/WebPage/WebPage.cpp:
2193         (WebKit::WebPage::canHandleRequest):
2194
2195 2014-05-26  Tim Horton  <timothy_horton@apple.com>
2196
2197         [wk2] RemoteLayerBackingStore front buffers should be purgeable when unparented
2198         https://bugs.webkit.org/show_bug.cgi?id=133020
2199         <rdar://problem/16521736>
2200
2201         Reviewed by Simon Fraser.
2202
2203         * Shared/mac/RemoteLayerBackingStore.mm:
2204         (WebKit::RemoteLayerBackingStore::display):
2205         Let the context know whenever a RemoteLayerBackingStore is displayed, so that
2206         RemoteLayerBackingStoreCollection can (if needed) note that the backing store
2207         is active once again (because we only display parented backing store).
2208
2209         (WebKit::RemoteLayerBackingStore::setBufferVolatility):
2210         Ensure that we never have live contexts attached to any buffers when
2211         marking them volatile, because checking isInUse() with live contexts is futile.
2212
2213         * Shared/mac/RemoteLayerBackingStoreCollection.h:
2214         * Shared/mac/RemoteLayerBackingStoreCollection.mm:
2215         (WebKit::RemoteLayerBackingStoreCollection::RemoteLayerBackingStoreCollection):
2216         (WebKit::RemoteLayerBackingStoreCollection::willFlushLayers):
2217         (WebKit::RemoteLayerBackingStoreCollection::willCommitLayerTree):
2218         (WebKit::RemoteLayerBackingStoreCollection::didFlushLayers):
2219         (WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDestroyed):
2220         (WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDisplayed):
2221         (WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatileImmediately):
2222         (WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):
2223         (WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable):
2224         (WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):
2225         (WebKit::RemoteLayerBackingStoreCollection::scheduleVolatilityTimer):
2226         (WebKit::RemoteLayerBackingStoreCollection::purgeabilityTimerFired): Deleted.
2227         (WebKit::RemoteLayerBackingStoreCollection::schedulePurgeabilityTimer): Deleted.
2228         Rename purgeable->volatile for accuracy.
2229         Keep track of two sets of backing store: those which are active/parented, and
2230         those which are not. Backing store is moved to the inactive set after building
2231         the transaction in which its owning layer is unparented.
2232         When backing store is unparented, try to mark it volatile immediately. Also,
2233         mark the backing store property as dirty on the owning layer so that when
2234         said layer is reparented, we encode the backing store in the commit that reparents it,
2235         as the UI process will throw away its reference to the backing store when
2236         the layer is unparented. Mark the front buffers of unparented layers as volatile,
2237         in addition to the others.
2238
2239         * Shared/mac/RemoteLayerTreeTransaction.h:
2240         (WebKit::RemoteLayerTreeTransaction::layerIDsWithNewlyUnreachableBackingStore):
2241         * Shared/mac/RemoteLayerTreeTransaction.mm:
2242         (WebKit::RemoteLayerTreeTransaction::encode):
2243         (WebKit::RemoteLayerTreeTransaction::decode):
2244         (WebKit::RemoteLayerTreeTransaction::setLayerIDsWithNewlyUnreachableBackingStore):
2245         Include the list of layers (by ID) with backing store which just became unreachable in the transaction.
2246
2247         * UIProcess/mac/RemoteLayerTreeHost.mm:
2248         (WebKit::RemoteLayerTreeHost::updateLayerTree):
2249         Clear the contents of layers which now have unreachable backing store.
2250         Otherwise, the UI process would hold a 'use' on the IOSurface, and prevent
2251         the Web process from marking it volatile.
2252
2253         * WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
2254         * WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
2255         (WebKit::RemoteLayerTreeContext::backingStoreWillBeDisplayed):
2256         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
2257         (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
2258         Give RemoteLayerBackingStoreCollection a shot at the RemoteLayerTreeTransaction,
2259         so that it can fill in layerIDsWithNewlyUnreachableBackingStore.
2260         Also, let it know when the flush begins and ends, so that it can keep track
2261         of which layers were reached in the flush.
2262
2263 2014-05-26  Shivakumar JM  <shiva.jm@samsung.com>
2264
2265         [EFL][WK2] Fix EWK2BackForwardListTest test fails.
2266         https://bugs.webkit.org/show_bug.cgi?id=133171
2267
2268         Reviewed by Gyuyoung Kim.
2269
2270         Use local test html pages instead of EWK2UnitTestServer, call ewk_view_url_set() to load test html pages.
2271         Since even after setting no_proxy="localhost,127.0.0.1", still test server was unable to load the test 
2272         html pages for ewk2_back_forward_list tests, so changed to use local html pages.
2273
2274         * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp:
2275         (TEST_F):
2276
2277 2014-05-26  Shivakumar JM  <shiva.jm@samsung.com>
2278
2279         [EFL][WK2] Fix code style check errors in EFL API tests.
2280         https://bugs.webkit.org/show_bug.cgi?id=133170
2281
2282         Reviewed by Gyuyoung Kim.
2283
2284         Omit int when using unsigned modifier, as per coding style rules.
2285
2286         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
2287         (EWK2UnitTest::EWK2UnitTestBase::SetUp):
2288         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:
2289         (EWK2UnitTest::EWK2UnitTestEnvironment::defaultWidth):
2290         (EWK2UnitTest::EWK2UnitTestEnvironment::defaultHeight):
2291
2292 2014-05-22  Gavin Barraclough  <baraclough@apple.com>
2293
2294         Add UI process watchdog on iOS to ensure WebProcess connections close
2295         https://bugs.webkit.org/show_bug.cgi?id=133200
2296         <rdar://problem/16997983>
2297
2298         Reviewed by Darin Adler.
2299
2300         When the WebProcessProxy wants to disconnect from a WebContent process it just drops the connection,
2301         and hopes the connection closes. There is a watchdog thread in the ChildProcess to try to ensure this
2302         happens.
2303
2304         On iOS the process may not be runnable at the time, preventing termination. Instead add a watchdog in
2305         the UI process to make the process runnable, and to terminate if it doesn't quit in a timely fashion.
2306
2307         * Platform/IPC/Connection.h:
2308             - added terminateSoon.
2309         * Platform/IPC/mac/ConnectionMac.mm:
2310         (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
2311             - take an assertion to make the process runnable, and start a watchdog timer.
2312         (IPC::ConnectionTerminationWatchdog::watchdogTimerFired):
2313             - if the process hasn't quit by the timer the watchdog fires, kill it.
2314         (IPC::Connection::terminateSoon):
2315             - create a ConnectionTerminationWatchdog.
2316         * UIProcess/WebProcessProxy.cpp:
2317         (WebKit::WebProcessProxy::removeWebPage):
2318             - when disconnecting from a process, first tell it to terminateSoon.
2319
2320 2014-05-26  Sam Weinig  <sam@webkit.org>
2321
2322         [WebKit2] Add better default preferences while keeping backward compatibility for the C-SPI
2323         https://bugs.webkit.org/show_bug.cgi?id=133289
2324
2325         Reviewed by Anders Carlsson.
2326
2327         * Shared/WebPreferencesStore.h:
2328         Change a few defaults:
2329         - PluginsEnabled -> false
2330         - JavaEnabled -> false
2331         - JavaEnabledForLocalFiles -> false
2332         - StorageBlockingPolicy -> BlockThirdPartyStorage
2333
2334         * UIProcess/API/C/WKPreferences.cpp:
2335         (WKPreferencesCreate):
2336         (WKPreferencesCreateWithIdentifier):
2337         * UIProcess/WebPageGroup.cpp:
2338         (WebKit::WebPageGroup::WebPageGroup):
2339         Switch to using WebPreferences::createWithLegacyDefaults().
2340
2341         * UIProcess/WebPreferences.cpp:
2342         (WebKit::WebPreferences::create):
2343         (WebKit::WebPreferences::createWithLegacyDefaults):
2344         * UIProcess/WebPreferences.h:
2345         Move create functions to the cpp file and add createWithLegacyDefaults() which keeps
2346         the old defaults;
2347
2348         * UIProcess/API/C/WKPreferencesRef.h:
2349         Fix the comment.
2350
2351         * UIProcess/API/Cocoa/WKPreferences.h:
2352         Update the comment to reflect the new defaults.
2353
2354         * WebProcess/WebPage/WebPage.cpp:
2355         (WebKit::WebPage::updatePreferences):
2356         Unconditionally set setShouldDispatchJavaScriptWindowOnErrorEvents() to true. This setting only
2357         exists for legacy WebKit.
2358
2359 2014-05-26  Dan Bernstein  <mitz@apple.com>
2360
2361         [Cocoa] Rewrite WK_DESIGNATED_INITIALIZER in installed headers
2362         https://bugs.webkit.org/show_bug.cgi?id=133290
2363
2364         Reviewed by Anders Carlsson.
2365
2366         * Shared/API/Cocoa/WKFoundation.h: When WK_API_AVAILABILITY_ENABLED is defined, don’t
2367         provide definitions of WK_DESIGNATED_INITIALIZER and WK_UNAVAILABLE, since those macros will
2368         be rewritten out of the headers. When WK_API_AVAILABILITY_ENABLED isn’t defined, provide
2369         definitions of the other two macros as appropriate for the target OS.
2370         * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Removed WK_DESIGNATED_INITIALIZER from a
2371         category method declaration.
2372         * UIProcess/API/Cocoa/WKWebView.h: Mark the superclass designated initializer
2373         -initWithCoder: as unavailable.
2374         * UIProcess/API/Cocoa/WKWebView.mm:
2375         (-[WKWebView initWithCoder:]): Override this designated initializer of the superclass by
2376         returning nil.
2377         * mac/rewrite-availability-macros.sh: Rewrite WK_DESIGNATED_INITIALIZER to
2378         NS_DESIGNATED_INITIALIZER and WK_UNAVAILABLE to NS_UNAVAILABLE. Also make sure to process
2379         all headers if the script has changed since the last time it was run.
2380
2381 2014-05-26  Commit Queue  <commit-queue@webkit.org>
2382
2383         Unreviewed, rolling out r169122.
2384         https://bugs.webkit.org/show_bug.cgi?id=133288
2385
2386         Broke CJK font fallback (Requested by ap on #webkit).
2387
2388         Reverted changeset:
2389
2390         "[Mac] WebProcess doesn't follow localization of UI process
2391         when run as a service"
2392         https://bugs.webkit.org/show_bug.cgi?id=133126
2393         http://trac.webkit.org/changeset/169122
2394
2395 2014-05-26  Anders Carlsson  <andersca@apple.com>
2396
2397         Convert a couple of loops over to range-based for
2398         https://bugs.webkit.org/show_bug.cgi?id=133287
2399
2400         Reviewed by Simon Fraser.
2401
2402         * UIProcess/Plugins/PluginInfoStore.cpp:
2403         (WebKit::PluginInfoStore::findPluginForMIMEType):
2404         (WebKit::PluginInfoStore::findPluginForExtension):
2405         (WebKit::PluginInfoStore::infoForPluginWithPath):
2406         * UIProcess/Plugins/mac/PluginProcessManagerMac.mm:
2407         (WebKit::PluginProcessManager::setProcessSuppressionEnabled):
2408
2409 2014-05-26  Carlos Garcia Campos  <cgarcia@igalia.com>
2410
2411         [GTK] WebProcess leaked when closing pages with network process enabled
2412         https://bugs.webkit.org/show_bug.cgi?id=129684
2413
2414         Reviewed by Anders Carlsson.
2415
2416         The problem is that the web process is not notified when the UI
2417         process closes the connection, because when close() is called on
2418         the socket by the UI process, the socket is shared by another web
2419         process launched later, preventing the connection from being
2420         shut down. We need to set the CLOEXEC flag on the sockets file
2421         descriptor to make sure they are not exposed to other processes.
2422
2423         * Platform/IPC/Connection.h: Add ConnectionOptions parameter to
2424         createPlatformConnection() with a default value compatible with
2425         existing callers.
2426         * Platform/IPC/unix/ConnectionUnix.cpp:
2427         (IPC::Connection::createPlatformConnection): Set the CLOEXEC flag
2428         on the client and server socket file descriptors depending on the
2429         options passed.
2430         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
2431         (WebKit::ProcessLauncher::launchProcess): Use
2432         IPC::Connection::createPlatformConnection() instead of
2433         socketpair() directly, setting the CLOEXEC flag on the server
2434         before spawning the new process and on the client right after
2435         spawning the new process.
2436
2437 2014-05-25  Anders Carlsson  <andersca@apple.com>
2438
2439         Initialize WKWebViewConfiguration ivars lazily
2440         https://bugs.webkit.org/show_bug.cgi?id=133270
2441         <rdar://problem/17027606>
2442
2443         Reviewed by Sam Weinig.
2444
2445         Create a LazyInitialized class template and use it to lazily initialize WKWebViewConfiguration properties.
2446
2447         * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
2448         (LazyInitialized::get):
2449         Initialize m_value with the given function if it hasn't been initialized already.
2450
2451         (LazyInitialized::set):
2452         Update m_value and set m_isInitialized to true.
2453
2454         (LazyInitialized::peek):
2455         Return m_value without initializing it.
2456
2457         (-[WKWebViewConfiguration description]):
2458         Use getters so we'll initialize variables if needed.
2459
2460         (-[WKWebViewConfiguration copyWithZone:]):
2461         Ditto.
2462
2463         (-[WKWebViewConfiguration processPool]):
2464         (-[WKWebViewConfiguration setProcessPool:]):
2465         (-[WKWebViewConfiguration preferences]):
2466         (-[WKWebViewConfiguration setPreferences:]):
2467         (-[WKWebViewConfiguration userContentController]):
2468         (-[WKWebViewConfiguration setUserContentController:]):
2469         (-[WKWebViewConfiguration _visitedLinkProvider]):
2470         (-[WKWebViewConfiguration _setVisitedLinkProvider:]):
2471         (-[WKWebViewConfiguration _websiteDataStore]):
2472         (-[WKWebViewConfiguration _setWebsiteDataStore:]):
2473         (-[WKWebViewConfiguration _contentProviderRegistry]):
2474         (-[WKWebViewConfiguration _setContentProviderRegistry:]):
2475         Pass initialization code to all getters.
2476
2477         (-[WKWebViewConfiguration _validate]):
2478         Use getters.
2479
2480         (-[WKWebViewConfiguration init]): Deleted.
2481
2482 2014-05-26  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>
2483
2484         Remove WebKit2 framework from generate-forwarding-headers.pl
2485         https://bugs.webkit.org/show_bug.cgi?id=133214
2486
2487         Since renaming WebKit2.framework to WebKit.framework is done and all WebKit2/*.h includes
2488         were renamed to WebKit/*.h, generating forwarding headers for WebKit2/*.h framework style
2489         headers is not necessary anymore.
2490
2491         Reviewed by Darin Adler.
2492
2493         * Scripts/generate-forwarding-headers.pl:
2494
2495 2014-05-26  Zan Dobersek  <zdobersek@igalia.com>
2496
2497         WebPage::setComposition(), WebPageProxy::didFindStringMatches() should take Vector parameters by const reference
2498         https://bugs.webkit.org/show_bug.cgi?id=133264
2499
2500         Reviewed by Darin Adler.
2501
2502         Taking the Vector parameters in the two methods (invoked through the IPC message handling)
2503         by value causes unnecessary copies. The methods don't modify the objects and don't want
2504         or need fresh copies, hence they should take in const references to Vector objects.
2505
2506         * UIProcess/WebPageProxy.cpp:
2507         (WebKit::WebPageProxy::didFindStringMatches):
2508         * UIProcess/WebPageProxy.h:
2509         * WebProcess/WebPage/WebPage.cpp:
2510         (WebKit::WebPage::setComposition):
2511         * WebProcess/WebPage/WebPage.h:
2512
2513 2014-05-25  Benjamin Poulain  <benjamin@webkit.org>
2514
2515         [iOS][WK2] Fix some state reset on crash on the WKWebView
2516         https://bugs.webkit.org/show_bug.cgi?id=133039
2517
2518         Reviewed by Sam Weinig.
2519
2520         This is in no way complete, but this should reduce the undefined states on crash.
2521
2522         * UIProcess/API/Cocoa/WKWebView.mm:
2523         (-[WKWebView _processDidExit]):
2524         If the view is animating, nuke the resize animation. That should be invisible to the user
2525         because the background color is reset to white below.
2526
2527         Reset the contentView frame and scrollview state.
2528
2529         Reset the runtime states. We do not strictly need to reset _needsResetViewStateAfterCommitLoadForMainFrame,
2530         _delayUpdateVisibleContentRects and _hadDelayedUpdateVisibleContentRects but it seems better to have
2531         a clean slate.
2532
2533         (-[WKWebView _beginAnimatedResizeWithUpdates:]):
2534         (-[WKWebView _endAnimatedResize]):
2535         We could have crashes during rotation. To simplify the reset code, the animated resize code
2536         no longer change any state when WKWebView is using a custom content view.
2537
2538         * UIProcess/API/Cocoa/WKWebViewInternal.h:
2539         * UIProcess/ios/PageClientImplIOS.mm:
2540         (WebKit::PageClientImpl::processDidExit):
2541         Send a _processDidExit on the WKWebView too.
2542
2543 2014-05-25  Anders Carlsson  <andersca@apple.com>
2544
2545         Use the right paths for website data
2546         https://bugs.webkit.org/show_bug.cgi?id=133267
2547         <rdar://problem/17027698>
2548
2549         Reviewed by Sam Weinig.
2550
2551         * UIProcess/API/Cocoa/WKProcessPool.mm:
2552         (-[WKProcessPool _initWithConfiguration:]):
2553         Get the path of the absolute URL.
2554
2555         * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
2556         (WebKit::LocalStorageDatabaseTracker::databasePath):
2557         Fix spelling error.
2558
2559         * WebProcess/Network/NetworkProcessConnection.cpp:
2560         (WebKit::NetworkProcessConnection::didCacheResource):
2561         Ditto.
2562
2563 2014-05-25  Benjamin Poulain  <bpoulain@apple.com>
2564
2565         [iOS][WK2] Use ScrollView's scrollOffset as the unobscuredContentRect
2566         https://bugs.webkit.org/show_bug.cgi?id=133262
2567
2568         Reviewed by Simon Fraser.
2569
2570         * WebProcess/WebPage/ios/WebPageIOS.mm:
2571         (WebKit::WebPage::dynamicViewportSizeUpdate):
2572         (WebKit::WebPage::viewportConfigurationChanged):
2573         (WebKit::WebPage::updateVisibleContentRects):
2574
2575 2014-05-25  Sam Weinig  <sam@webkit.org>
2576
2577         Build fix 2.
2578
2579         * UIProcess/API/Cocoa/WKPreferences.h:
2580
2581 2014-05-25  Sam Weinig  <sam@webkit.org>
2582
2583         Fix build.
2584
2585         * UIProcess/API/Cocoa/WKPreferences.h:
2586
2587 2014-05-24  Sam Weinig  <sam@webkit.org>
2588
2589         [WebKit2] Rework WebPreferencesStore to allow easier overriding of defaults
2590         https://bugs.webkit.org/show_bug.cgi?id=133258
2591
2592         Reviewed by Anders Carlsson.
2593
2594         To support changing default values of preferences based on which API you are using (either
2595         the legacy C-SPI or the Objective-C API), overhaul the WebPreferencesStore to use a single
2596         HashMap of String -> Value (where Value is new type that can be a String, bool, uint32_t or double)
2597         instead of four HashMaps.  This allows us to use two of these new HashMaps, one for the actual
2598         set values, and one for overridden defaults. This new Value class will also allow easier incremental
2599         updating of preferences in the future.
2600         
2601         Other notable changes:
2602         - Removed Float kind of preferences. There were none.
2603         - Move StorageBlockingPolicy preference to the correct group, it's a uint32_t, not bool.
2604
2605         * Shared/WebPreferencesStore.cpp:
2606         * Shared/WebPreferencesStore.h:
2607
2608 2014-05-25  David Kilzer  <ddkilzer@apple.com>
2609
2610         Add type-checked casts for TransformOperations
2611         <http://webkit.org/b/133217>
2612
2613         Reviewed by Simon Fraser.
2614
2615         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
2616         (IPC::ArgumentCoder<TransformOperations>::encode):
2617         - Switch to type-checked casts.
2618
2619 2014-05-25  David Kilzer  <ddkilzer@apple.com>
2620
2621         Use type-checking FilterOperation casts in CoordinatedGraphicsArgumentCoders.cpp
2622         <http://webkit.org/b/133203>
2623
2624         Reviewed by Simon Fraser.
2625
2626         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
2627         (IPC::ArgumentCoder<WebCore::FilterOperations>::encode):
2628         - Replace static_cast<>() operators with type-checking
2629           FilterOperation casts.
2630         - Replace 'default' statement with 'case' statements so new
2631           filters added later require an explicit decision to be made.
2632         (IPC::ArgumentCoder<WebCore::FilterOperations>::decode):
2633         - Replace 'default' statement with 'case' statements so new
2634           filters added later require an explicit decision to be made.
2635
2636 2014-05-24  Jon Honeycutt  <jhoneycutt@apple.com>
2637
2638         Potential null dereference in
2639         WebFrameLoaderClient::dispatchDidFailProvisionalLoad()
2640         <https://bugs.webkit.org/show_bug.cgi?id=133193>
2641
2642         WebFrameLoaderClient::dispatchDidFailProvisionalLoad() calls the
2643         InjectedBundleLoaderClient's didFailProvisionalLoadWithErrorForFrame()
2644         before sending a message to the UI process that a provisional load has
2645         failed. It's possible for the provisional document loader to become
2646         null while calling into the InjectedBundleLoaderClient (as is the case
2647         with the WebKitTestRunner's injected bundle), leading to a null
2648         dereference when trying to send the DidFailProvisionalLoadForFrame
2649         message.
2650
2651         Reviewed by Darin Adler.
2652
2653         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2654         (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
2655         Get the navigation ID before calling into the injected bundle.
2656
2657 2014-05-23  Simon Fraser  <simon.fraser@apple.com>
2658
2659         Rename ScrollingTreeScrollingNode's m_scrollPosition to make it clear that it's the value committed from the state tree
2660         https://bugs.webkit.org/show_bug.cgi?id=133254
2661
2662         Reviewed by Tim Horton.
2663         
2664         Override scrollPosition() on ScrollingTreeOverflowScrollingNodeIOS.
2665
2666         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
2667         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
2668         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollPosition):
2669
2670 2014-05-24  Chris Fleizach  <cfleizach@apple.com>
2671
2672         AX: fix coordinate mapping for iOS accessibility
2673         https://bugs.webkit.org/show_bug.cgi?id=133188
2674
2675         Reviewed by Sam Weinig.
2676
2677         Add in accessibility conversion methods that will check if the methods are present 
2678         (if accessibility is not on, they won't be)
2679         and use those to convert points into the right coordinate space that VoiceOver is expecting.
2680
2681         * UIProcess/PageClient.h:
2682         * UIProcess/WebPageProxy.cpp:
2683         (WebKit::WebPageProxy::accessibilityScreenToRootView):
2684         (WebKit::WebPageProxy::rootViewToAccessibilityScreen):
2685         * UIProcess/WebPageProxy.h:
2686         * UIProcess/WebPageProxy.messages.in:
2687         * UIProcess/ios/PageClientImplIOS.h:
2688         * UIProcess/ios/PageClientImplIOS.mm:
2689         (WebKit::PageClientImpl::accessibilityScreenToRootView):
2690         (WebKit::PageClientImpl::rootViewToAccessibilityScreen):
2691         * UIProcess/mac/PageClientImpl.h:
2692         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
2693         (WebKit::WebChromeClient::accessibilityScreenToRootView):
2694         (WebKit::WebChromeClient::rootViewToAccessibilityScreen):
2695         * WebProcess/WebCoreSupport/WebChromeClient.h:
2696         * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
2697         (-[WKAccessibilityWebPageObject accessibilityHitTest:]):
2698         * WebProcess/WebPage/WebPage.cpp:
2699         (WebKit::WebPage::accessibilityScreenToRootView):
2700         (WebKit::WebPage::rootViewToAccessibilityScreen):
2701         * WebProcess/WebPage/WebPage.h:
2702
2703 2014-05-24  Carlos Garcia Campos  <cgarcia@igalia.com>
2704
2705         REGRESSION(r165841): Messages sent before the child process is launched are never sent after r165841
2706         https://bugs.webkit.org/show_bug.cgi?id=131675
2707
2708         Reviewed by Anders Carlsson.
2709
2710         Since r165841 the connection is opened after the pending messages
2711         are sent, because connectionWillOpen might send messages that we
2712         want to happen after the ones already pending. The problem is that
2713         Connection::canSendOutgoingMessages() returns false when
2714         connection hasn't been opened. We should ensure no messages are
2715         sent by connectionWillOpen.
2716
2717         * Shared/ChildProcessProxy.cpp:
2718         (WebKit::ChildProcessProxy::didFinishLaunching): Open the
2719         connection before sending pending messages.
2720         * UIProcess/WebPageProxy.cpp:
2721         (WebKit::WebPageProxy::connectionWillOpen): Do not call
2722         VisitedLinkProvider::addProcess() here because it tries to send a
2723         message to the web process, but the connection hasn't be opened yet.
2724         (WebKit::WebPageProxy::processDidFinishLaunching): Call
2725         VisitedLinkProvider::addProcess() here instead.
2726         * UIProcess/WebPageProxy.h:
2727         * UIProcess/WebProcessProxy.cpp:
2728         (WebKit::WebProcessProxy::didFinishLaunching): Call
2729         WebPageProxy::processDidFinishLaunching() for every web page.
2730
2731 2014-05-23  Ian Henderson  <ianh@apple.com>
2732
2733         REGRESSION: Rubberbanding out jumps to top left corner on google.com
2734         https://bugs.webkit.org/show_bug.cgi?id=133253
2735         <rdar://problem/17025664>
2736
2737         Reviewed by Benjamin Poulain.
2738
2739         * UIProcess/API/Cocoa/WKWebView.mm:
2740         (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
2741         Avoid deceleration during zooming to work around a UIKit bug.
2742
2743 2014-05-23  Benjamin Poulain  <bpoulain@apple.com>
2744
2745         [iOS][WK2] Avoid updating the view from the viewport configuration unnecessarily
2746         https://bugs.webkit.org/show_bug.cgi?id=133255
2747         <rdar://problem/16890926>
2748
2749         Reviewed by Simon Fraser.
2750
2751         All the updates were mostly harmless since they are pretty cheap, but they can be
2752         very annoying for debugging.
2753
2754         This patch skips viewportUpdates in the trivial cases.
2755
2756         * UIProcess/API/Cocoa/WKWebView.mm:
2757         (-[WKWebView _setMinimumLayoutSizeOverride:]):
2758         (-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
2759         * WebProcess/WebPage/WebPage.cpp:
2760         (WebKit::WebPage::mainFrameDidLayout):
2761         * WebProcess/WebPage/ios/WebPageIOS.mm:
2762         (WebKit::WebPage::viewportPropertiesDidChange):
2763
2764 2014-05-23  Benjamin Poulain  <bpoulain@apple.com>
2765
2766         [iOS][WK2] The page scale factor randomly resets to initial scale when editing
2767         https://bugs.webkit.org/show_bug.cgi?id=133244
2768
2769         Reviewed by Enrica Casucci.
2770
2771         We were never telling the WebProcess that zoom is used triggered. As a result, the ViewportConfiguration was free
2772         to reset the scale whenever it felt like it. The fix is to call willStartUserTriggeredZoom before changing the scale.
2773
2774         This patch also split _willStartUserTriggeredScrollingOrZooming from willStartUserTriggeredZoom
2775         and rename it to willStartPanOrPinchGesture. This is just a tiny cleanup since the only thing left in _willStartUserTriggeredScrollingOrZooming
2776         was gesture related.
2777
2778         * UIProcess/API/Cocoa/WKWebView.mm:
2779         (-[WKWebView _zoomToFocusRect:WebCore::selectionRect:WebCore::fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
2780         (-[WKWebView scrollViewWillBeginZooming:withView:]):
2781         (-[WKWebView scrollViewWillBeginDragging:]):
2782         * UIProcess/API/Cocoa/WKWebViewInternal.h:
2783         * UIProcess/API/ios/WKViewIOS.mm:
2784         (-[WKView scrollViewWillBeginDragging:]):
2785         * UIProcess/ios/WKContentView.h:
2786         * UIProcess/ios/WKContentView.mm:
2787         (-[WKContentView willStartUserTriggeredZoom]):
2788         (-[WKContentView willStartUserTriggeredScroll]): Deleted.
2789         * UIProcess/ios/WKContentViewInteraction.h:
2790         * UIProcess/ios/WKContentViewInteraction.mm:
2791         (-[WKContentView willStartPanOrPinchGesture]):
2792         (-[WKContentView _willStartUserTriggeredScrollingOrZooming]): Deleted.
2793
2794 2014-05-23  Tim Horton  <timothy_horton@apple.com>
2795
2796         REGRESSION (iOS WebKit2): requestAnimationFrame fires more than once between layer tree commits
2797         https://bugs.webkit.org/show_bug.cgi?id=132794
2798         <rdar://problem/16877909>
2799
2800         Reviewed by Simon Fraser.
2801
2802         * WebKit2.xcodeproj/project.pbxproj:
2803         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
2804         (WebKit::WebChromeClient::createDisplayRefreshMonitor):
2805         * WebProcess/WebCoreSupport/WebChromeClient.h:
2806         * WebProcess/WebPage/DrawingArea.h:
2807         (WebKit::DrawingArea::graphicsLayerFactory):
2808         (WebKit::DrawingArea::createDisplayRefreshMonitor):
2809         Plumb the DisplayRefreshMonitor request through to the DrawingArea.
2810         RemoteLayerTreeDrawingArea will implement and return a RemoteLayerTreeDisplayRefreshMonitor.
2811
2812         * WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.h: Added.
2813         (WebKit::RemoteLayerTreeDisplayRefreshMonitor::create):
2814         * WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.mm: Added.
2815         (WebKit::RemoteLayerTreeDisplayRefreshMonitor::RemoteLayerTreeDisplayRefreshMonitor):
2816         (WebKit::RemoteLayerTreeDisplayRefreshMonitor::~RemoteLayerTreeDisplayRefreshMonitor):
2817         (WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback):
2818         When requesting a display refresh callback, schedule a layer commit.
2819         It may end up being empty, but will still call us back with a didUpdate,
2820         upon which we'll fire the callback.
2821
2822         (WebKit::RemoteLayerTreeDisplayRefreshMonitor::didUpdateLayers):
2823
2824         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:
2825         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
2826         (WebKit::RemoteLayerTreeDrawingArea::createDisplayRefreshMonitor):
2827         (WebKit::RemoteLayerTreeDrawingArea::willDestroyDisplayRefreshMonitor):
2828         Keep track of the set of DisplayRefreshMonitors.
2829
2830         (WebKit::RemoteLayerTreeDrawingArea::didUpdate):
2831         Fire requestAnimationFrame callbacks once the UI process commits the new layer tree.
2832
2833 2014-05-23  Jeremy Jones  <jeremyj@apple.com>
2834
2835         Hide fullscreen immediately when switching tabs.
2836         https://bugs.webkit.org/show_bug.cgi?id=133239
2837
2838         Reviewed by Eric Carlson.
2839
2840         Renamed a function to better describe it's new functionality.
2841
2842         * UIProcess/WebPageProxy.cpp:
2843         (WebKit::WebPageProxy::viewStateDidChange):
2844         now calls: requestHideAndExitFullscreen
2845
2846 2014-05-23  Enrica Casucci  <enrica@apple.com>
2847
2848         REGRESSION (WebKit2): Keyboard disappears/appears automatically between text boxes.
2849         https://bugs.webkit.org/show_bug.cgi?id=133243
2850         <rdar://problem/16761913>
2851
2852         Reviewed by Benjamin Poulain.
2853
2854         We need to ensure that when an element loses focus and another one gets it,
2855         this is handled in one single message in the UI process to avoid seeing
2856         the keyboard animating in and out.
2857         This is accomplished by always postponing the blur notification until all events
2858         have been processed.
2859         If a new node is focused before the delayed blur notification is sent to the UI
2860         process, the message we send includes both blur and focus notification. In this case,
2861         the postponed blur notification is not sent.
2862
2863         * UIProcess/PageClient.h:
2864         * UIProcess/WebPageProxy.h:
2865         * UIProcess/WebPageProxy.messages.in:
2866         * UIProcess/ios/PageClientImplIOS.h:
2867         * UIProcess/ios/PageClientImplIOS.mm:
2868         (WebKit::PageClientImpl::startAssistingNode):
2869         * UIProcess/ios/WKContentViewInteraction.h:
2870         * UIProcess/ios/WKContentViewInteraction.mm:
2871         (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
2872         (-[WKContentView _startAssistingNode:userIsInteracting:userObject:]): Deleted.
2873         * UIProcess/ios/WebPageProxyIOS.mm:
2874         (WebKit::WebPageProxy::startAssistingNode):
2875         * WebProcess/WebPage/WebPage.cpp:
2876         (WebKit::WebPage::WebPage):
2877         * WebProcess/WebPage/WebPage.h:
2878         * WebProcess/WebPage/ios/WebPageIOS.mm:
2879         (WebKit::WebPage::elementDidFocus):
2880         (WebKit::WebPage::elementDidBlur):
2881
2882 2014-05-23  Anders Carlsson  <andersca@apple.com>
2883
2884         Remove an assertion.
2885
2886         * WebProcess/WebPage/WebPage.cpp:
2887         (WebKit::WebPage::loadRequest):
2888
2889 2014-05-23  Tim Horton  <timothy_horton@apple.com>
2890
2891         [iOS] WKPDFView should have a page indicator
2892         https://bugs.webkit.org/show_bug.cgi?id=133109
2893         <rdar://problem/16383003>
2894
2895         Reviewed by Anders Carlsson.
2896
2897         * UIProcess/API/Cocoa/WKWebView.mm:
2898         (-[WKWebView _setHasCustomContentView:loadedMIMEType:WTF::]):
2899         (-[WKWebView _setObscuredInsets:]):
2900         Forward obscured insets changes to the custom content view.
2901
2902         (-[WKWebView _updateScrollViewBackground]):
2903         If we have a custom content view, use its background instead of the
2904         (likely nonexistent) page's when updaing the scroll view's background color.
2905
2906         * UIProcess/API/Cocoa/WKWebViewInternal.h:
2907         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
2908         * UIProcess/Cocoa/WKWebViewContentProvider.h:
2909         * UIProcess/Cocoa/WKWebViewContentProviderDelegate.h: Added.
2910         * UIProcess/API/Cocoa/WKWebView.mm:
2911         (-[WKWebView _setInsetForOverlaidAccessoryViews:]):
2912         Add SPI for clients to inform us about potential overlaid accessory views
2913         which should be taken into account e.g. for positioning the page indicator.
2914
2915         Add a view that sits fixed on top of the WKWebView, ignores interaction,
2916         but provides the WKWebViewContentProvider a place to install views
2917         that don't scroll along with the content.
2918
2919         * UIProcess/ios/WKPDFPageNumberIndicator.h: Added.
2920         * UIProcess/ios/WKPDFPageNumberIndicator.mm: Added.
2921         (-[WKPDFPageNumberIndicator initWithFrame:]):
2922         (-[WKPDFPageNumberIndicator dealloc]):
2923         (-[WKPDFPageNumberIndicator setCurrentPageNumber:]):
2924         (-[WKPDFPageNumberIndicator setPageCount:]):
2925         (-[WKPDFPageNumberIndicator show]):
2926         (-[WKPDFPageNumberIndicator hide:]):
2927         (-[WKPDFPageNumberIndicator moveToPoint:animated:]):
2928         (-[WKPDFPageNumberIndicator sizeThatFits:]):
2929         (-[WKPDFPageNumberIndicator _updateLabel]):
2930         (-[WKPDFPageNumberIndicator _makeRoundedCorners]):
2931         Add a page number indicator.
2932
2933         * UIProcess/ios/WKPDFView.mm:
2934         (-[WKPDFView dealloc]):
2935         (-[WKPDFView web_setScrollView:]):
2936         (-[WKPDFView _revalidateViews]):
2937         (-[WKPDFView _offsetForPageNumberIndicator]):
2938         (-[WKPDFView _updatePageNumberIndicator]):
2939         (-[WKPDFView web_setObscuredInsets:]):
2940         (-[WKPDFView web_setInsetForOverlaidAccessoryViews:]):
2941         (-[WKPDFView web_setFixedOverlayView:]):
2942         (-[WKPDFView _computePageAndDocumentFrames]):
2943         Update the page number indicator when the topmost visible page changes.
2944         Move the page number indicator around when the obscured insets change.
2945
2946         * WebKit2.xcodeproj/project.pbxproj:
2947
2948 2014-05-23  Anders Carlsson  <andersca@apple.com>
2949
2950         Fix test failures on the bot.
2951
2952         * UIProcess/API/Cocoa/WKProcessPool.mm:
2953         (websiteDataDirectoryURL):
2954         If we have no bundle identifier, use the process name.
2955
2956 2014-05-23  Enrica Casucci  <enrica@apple.com>
2957
2958         REGRESSION (iOS WebKit2): Autocorrection is not accurate when changing selection.
2959         https://bugs.webkit.org/show_bug.cgi?id=133237
2960         <rdar://problem/16655776>
2961
2962         Reviewed by Ryosuke Niwa.
2963
2964         * UIProcess/ios/WKContentViewInteraction.mm:
2965         (-[WKContentView beginSelectionChange]):
2966         (-[WKContentView endSelectionChange]):
2967
2968         When the selection is changed with a gesture in an editable element,
2969         we must notify the keyboard to make sure the autocorrection engine 
2970         updates its typing context. WKContentView must implement
2971         beginSelectionChange and endSelectionChange to call into
2972         the keyboard layer.
2973
2974 2014-05-22  Brent Fulgham  <bfulgham@apple.com>
2975
2976         [iOS] WK2: Provide implementation for windowFrame
2977         https://bugs.webkit.org/show_bug.cgi?id=133205
2978         <rdar://problem/16894890>
2979
2980         Reviewed by Benjamin Poulain.
2981
2982         * UIProcess/Cocoa/UIDelegate.h:
2983         * UIProcess/Cocoa/UIDelegate.mm:
2984         (WebKit::UIDelegate::UIClient::windowFrame): Added.
2985         * UIProcess/ios/PageClientImplIOS.mm:
2986         (WebKit::PageClientImpl::convertToUserSpace): Added.
2987
2988 2014-05-20  Anders Carlsson  <andersca@apple.com>
2989
2990         Use a per app directory structure for website data
2991         https://bugs.webkit.org/show_bug.cgi?id=133125
2992         <rdar://problem/16830143>
2993
2994         Reviewed by Dan Bernstein, Sam Weinig and Tim Horton.
2995
2996         Put website data in subdirectories of ~/Library/WebKit/<bundle ID>/WebsiteData.
2997         We use "LocalStorage", "WebSQL", and "IndexedDB" subdirectories.
2998
2999         * UIProcess/API/Cocoa/WKProcessPool.mm:
3000         (websiteDataDirectoryURL):
3001         (-[WKProcessPool _initWithConfiguration:]):
3002
3003 2014-05-23  Dan Bernstein  <mitz@apple.com>
3004
3005         [Cocoa] WKNavigationResponsePrivate.h is internal
3006         https://bugs.webkit.org/show_bug.cgi?id=133218
3007
3008         Reviewed by Dean Jackson.
3009
3010         * WebKit2.xcodeproj/project.pbxproj: Promote WKNavigationResponsePrivate.h to private.
3011
3012 2014-05-23  Carlos Garcia Campos  <cgarcia@igalia.com>
3013
3014         [UNIX] Reorganize and cleanup main functions of GTK and EFL ports
3015         https://bugs.webkit.org/show_bug.cgi?id=131024
3016
3017         Reviewed by Gustavo Noronha Silva.
3018
3019         Move main function implementation files to <process-dir>/EntryPoint/unix/<ProcessName>Main.cpp
3020         files that are now shared by GTK and EFL ports. These files call a
3021         main method that wraps a new method ChildProcessMain that contains
3022         the common code and uses a helper class for the platform specific
3023         code. GTK+ and EFL ports implement that helper class for every process type.
3024
3025         * NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp: Renamed from Source/WebKit2/efl/MainEfl.cpp.
3026         (main):
3027         * NetworkProcess/efl/NetworkProcessMainEfl.cpp: Renamed from Source/WebKit2/unix/NetworkMainUnix.cpp.
3028         (WebKit::NetworkProcessMainUnix):
3029         * NetworkProcess/gtk/NetworkProcessMainGtk.cpp: Renamed from Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp.
3030         (WebKit::NetworkProcessMainUnix):
3031         * NetworkProcess/unix/NetworkProcessMainUnix.h:
3032         * PlatformEfl.cmake:
3033         * PlatformGTK.cmake:
3034         * PluginProcess/EntryPoint/unix/PluginProcessMain.cpp: Renamed from Source/WebKit2/unix/PluginMainUnix.cpp.
3035         (main):
3036         * PluginProcess/unix/PluginProcessMainUnix.cpp:
3037         (WebKit::webkitXError):
3038         (WebKit::PluginProcessMainUnix):
3039         * PluginProcess/unix/PluginProcessMainUnix.h:
3040         * Shared/unix/ChildProcessMain.cpp: Copied from Source/WebKit2/WebProcess/efl/WebProcessMainEfl.h.
3041         (WebKit::ChildProcessMainBase::parseCommandLine):
3042         * Shared/unix/ChildProcessMain.h: Renamed from Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.h.
3043         (WebKit::ChildProcessMainBase::platformInitialize):
3044         (WebKit::ChildProcessMainBase::platformFinalize):
3045         (WebKit::ChildProcessMainBase::initializationParameters):
3046         (WebKit::ChildProcessMain):
3047         * WebProcess/EntryPoint/unix/WebProcessMain.cpp: Renamed from Source/WebKit2/gtk/MainGtk.cpp.
3048         (main):
3049         * WebProcess/efl/WebProcessMainEfl.cpp:
3050         (WebKit::WebProcessMainUnix):
3051         (dummyExtensionErrorHandler): Deleted.
3052         * WebProcess/gtk/WebProcessMainGtk.cpp:
3053         (WebKit::WebProcessMainUnix):
3054         * WebProcess/unix/WebProcessMainUnix.h: Renamed from Source/WebKit2/WebProcess/efl/WebProcessMainEfl.h.
3055
3056 2014-05-22  Zan Dobersek  <zdobersek@igalia.com>
3057
3058         Have the decoded element in VectorArgumentCoder::decode() moved into Vector::append()
3059         https://bugs.webkit.org/show_bug.cgi?id=133082
3060
3061         Reviewed by Andreas Kling.
3062
3063         * Platform/IPC/ArgumentCoders.h: Move the decoded element into the Vector::append() call.
3064         This enforces a move instead of a copy if the decoded element's type is move-constructible.
3065
3066 2014-05-22  Zan Dobersek  <zdobersek@igalia.com>
3067
3068         Move the passed-in Vector<Attachment> in MessageDecoder constructor down into ArgumentDecoder
3069         https://bugs.webkit.org/show_bug.cgi?id=133080
3070
3071         Reviewed by Andreas Kling.
3072
3073         * Platform/IPC/MessageDecoder.cpp:
3074         (IPC::MessageDecoder::MessageDecoder): The Vector<Attachment> object was passed in by value.
3075         Move it into the ArgumentDecoder constructor as it is not used elsewhere in this constructor
3076         and produces a copy otherwise.
3077
3078 2014-05-22  Benjamin Poulain  <bpoulain@apple.com>
3079
3080         [iOS][WK2] Add support for minimal-ui viewports
3081         https://bugs.webkit.org/show_bug.cgi?id=133162
3082
3083         Reviewed by Simon Fraser.
3084
3085         In the WebKit2 layers, we have two parts to minimal-ui.
3086         -In WebPage, we need to get the values from the UIProcess and setup the ViewportConfiguration.
3087          Another part is freezing the state on page load.
3088         -In the UIProcess, we need to get the right information for layout and styling, and we need to tell
3089          the UI clients about minimal-ui changes.
3090
3091         * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
3092         * UIProcess/API/Cocoa/WKWebView.mm:
3093         (-[WKWebView _setUsesMinimalUI:]):
3094         (-[WKWebView _usesMinimalUI]):
3095         (-[WKWebView _didCommitLayerTree:WebKit::]):
3096         (-[WKWebView _frameOrBoundsChanged]):
3097         (-[WKWebView _minimumLayoutSizeOverride]):
3098         (-[WKWebView _setMinimumLayoutSizeOverride:]):
3099         (-[WKWebView _minimumLayoutSizeOverrideForMinimalUI]):
3100         (-[WKWebView _setMinimumLayoutSizeOverrideForMinimalUI:]):
3101         (-[WKWebView _largestUnobscuredSizeOverride]):
3102         (-[WKWebView _setMaximumUnobscuredSizeOverride:]):
3103         (-[WKWebView _beginAnimatedResizeWithUpdates:]):
3104         (setViewportConfigurationMinimumLayoutSize): Deleted.
3105         * UIProcess/API/Cocoa/WKWebViewInternal.h:
3106         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
3107         * UIProcess/PageClient.h:
3108         * UIProcess/WebPageProxy.h:
3109         * UIProcess/WebPageProxy.messages.in:
3110         * UIProcess/ios/PageClientImplIOS.h:
3111         * UIProcess/ios/PageClientImplIOS.mm:
3112         (WebKit::PageClientImpl::setUsesMinimalUI):
3113         * UIProcess/ios/WebPageProxyIOS.mm:
3114         (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
3115         (WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSizeForMinimalUI):
3116         (WebKit::WebPageProxy::setMaximumUnobscuredSize):
3117         (WebKit::WebPageProxy::setUsesMinimalUI):
3118         (WebKit::WebPageProxy::setMinimumLayoutSizeForMinimalUI): Deleted.
3119         * WebProcess/WebPage/WebPage.cpp:
3120         (WebKit::WebPage::WebPage):
3121         (WebKit::WebPage::didCommitLoad):
3122         * WebProcess/WebPage/WebPage.h:
3123         * WebProcess/WebPage/WebPage.messages.in:
3124         * WebProcess/WebPage/ios/WebPageIOS.mm:
3125         (WebKit::WebPage::setViewportConfigurationMinimumLayoutSizeForMinimalUI):
3126         (WebKit::WebPage::setMaximumUnobscuredSize):
3127         (WebKit::WebPage::willFlushLayers):
3128         (WebKit::WebPage::dynamicViewportSizeUpdate):
3129         (WebKit::WebPage::viewportConfigurationChanged):
3130         (WebKit::WebPage::updateViewportSizeForCSSViewportUnits):
3131         (WebKit::WebPage::setMinimumLayoutSizeForMinimalUI): Deleted.
3132         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
3133         (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
3134
3135 2014-05-22  Benjamin Poulain  <bpoulain@apple.com>
3136
3137         [iOS][WK2] Reset the special action-target of WKSyntheticClickTapGestureRecognizer on destruction
3138         https://bugs.webkit.org/show_bug.cgi?id=133165
3139         <rdar://problem/16283914>
3140
3141         Reviewed by Andy Estes.
3142
3143         It is unclear why, but the WKSyntheticClickTapGestureRecognizer sometimes survives its own view
3144         and is reset after WKContentView was destructed.
3145         This patch cleans up the target-action on destruction to avoid accessing a destructed object.
3146
3147         * UIProcess/ios/WKContentViewInteraction.mm:
3148         (-[WKContentView cleanupInteraction]):
3149
3150 2014-05-22  Benjamin Poulain  <bpoulain@apple.com>
3151
3152         Do not force a layout when changing the FixedLayoutSize in WebPage
3153         https://bugs.webkit.org/show_bug.cgi?id=133167
3154
3155         Reviewed by Andreas Kling.
3156
3157         WebPage::setFixedLayoutSize was forcing a layout immediately after changing the layout size on FrameView.
3158         This is forcing plenty of extra layouts since the fixed layout size is one of many properties updated on the FrameView.
3159
3160         FrameView marks that layout is needed. It is not clear why a layout was performed immediately.
3161
3162         * WebProcess/WebPage/WebPage.cpp:
3163         (WebKit::WebPage::setFixedLayoutSize):
3164
3165 2014-05-22  Andreas Kling  <akling@apple.com>
3166
3167         [iOS WebKit2] Web process should try to shrink its memory footprint when going into background.
3168         <https://webkit.org/b/133197>
3169         <rdar://problem/17011561>
3170
3171         Try to free up as much memory as possible before going into background.
3172
3173         Reviewed by Gavin Barraclough.
3174
3175         * WebProcess/WebProcess.cpp:
3176         (WebKit::WebProcess::processWillSuspend):
3177
3178 2014-05-22  Andreas Kling  <akling@apple.com>
3179
3180         Hook up a setting for showing detailed logging during memory pressure relief.
3181         <https://webkit.org/b/133194>
3182
3183         Plumb through the same setting that we used for detailed logging in WK1.
3184
3185         Reviewed by Gavin Barraclough.
3186
3187         * Shared/WebProcessCreationParameters.cpp:
3188         (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
3189         (WebKit::WebProcessCreationParameters::encode):
3190         (WebKit::WebProcessCreationParameters::decode):
3191         * Shared/WebProcessCreationParameters.h:
3192         * UIProcess/mac/WebContextMac.mm:
3193         (WebKit::WebContext::platformInitializeWebProcess):
3194         * WebProcess/cocoa/WebProcessCocoa.mm:
3195         (WebKit::WebProcess::platformInitializeWebProcess):
3196
3197 2014-05-22  Andy Estes  <aestes@apple.com>
3198
3199         [iOS] Send shareable resources to QuickLook if enabled
3200         https://bugs.webkit.org/show_bug.cgi?id=133189
3201         <rdar://problem/17003995>
3202
3203         Reviewed by Brady Eidson.
3204
3205         Like we do for didReceiveData(), we need to pass an incoming ShareableResource to QuickLook if a QuickLook
3206         handle exists.
3207
3208         * Shared/ShareableResource.cpp:
3209         (WebKit::ShareableResource::Handle::tryWrapInCFData): Return the shared resource in a CFDataRef.
3210         (WebKit::ShareableResource::Handle::tryWrapInSharedBuffer): Implemented in terms of tryWrapInCFData().
3211         * Shared/ShareableResource.h:
3212         * WebProcess/Network/WebResourceLoader.cpp:
3213         (WebKit::WebResourceLoader::didReceiveResource): If a QuickLook handle exists, send the shareable resource to
3214         it via a CFDataRef.
3215
3216 2014-05-22  Martin Hock  <mhock@apple.com>
3217
3218         [iOS] Enable -apple-system- styled elements to respond to system font size changes.
3219         https://bugs.webkit.org/show_bug.cgi?id=133186
3220         <rdar://problem/16583782>
3221
3222         Reviewed by Enrica Casucci.
3223
3224         * UIProcess/API/Cocoa/WKWebView.mm:
3225         (-[WKWebView initWithFrame:configuration:]):
3226         (-[WKWebView _contentSizeCategoryDidChange:]):
3227         (-[WKWebView _contentSizeCategory]):
3228         * UIProcess/WebPageProxy.h:
3229         * UIProcess/ios/WebPageProxyIOS.mm:
3230         (WebKit::WebPageProxy::contentSizeCategoryDidChange):
3231         * WebProcess/WebPage/WebPage.h:
3232         * WebProcess/WebPage/WebPage.messages.in:
3233         * WebProcess/WebPage/ios/WebPageIOS.mm:
3234         (WebKit::WebPage::contentSizeCategoryDidChange):
3235
3236 2014-05-22  Alexey Proskuryakov  <ap@apple.com>
3237
3238         [iOS] Add CFBundleAllowMixedLocalizations to WebContentService
3239         https://bugs.webkit.org/show_bug.cgi?id=133187
3240         <rdar://problem/16561084>
3241
3242         Reviewed by Tim Horton.
3243
3244         * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist:
3245         We already had it in WebContentService.Development, just not here.
3246
3247 2014-05-22  Alexey Proskuryakov  <ap@apple.com>
3248
3249         [iOS][WK2] Application cache is broken
3250         https://bugs.webkit.org/show_bug.cgi?id=133172
3251         <rdar://problem/16994593>
3252
3253         Reviewed by Andy Estes.
3254
3255         * UIProcess/mac/WebContextMac.mm:
3256         (WebKit::WebContext::platformDefaultApplicationCacheDirectory): Use a proper
3257         path for application cache database (same as WebKit1).
3258
3259 2014-05-22  Enrica Casucci  <enrica@apple.com>
3260
3261         REGRESSION (WebKit2): Keyboard should have Search button in duckduckgo.com.
3262         https://bugs.webkit.org/show_bug.cgi?id=133183
3263         <rdar://problem/17004207>
3264
3265         Reviewed by Geoff Garen.
3266
3267         The keyboard type should be search if the input type is search
3268         or if it is text and it is inside a form with an action and either
3269         name, id or title contain the word search. This matches the
3270         heuristics we have in WK1 for iOS.
3271
3272         * WebProcess/WebPage/ios/WebPageIOS.mm:
3273         (WebKit::WebPage::getAssistedNodeInformation):
3274
3275 2014-05-21  Oliver Hunt  <oliver@apple.com>
3276
3277         Only enable sandbox extensions on mac.
3278
3279         RS = Alexey.
3280
3281         * WebKit2Prefix.h:
3282
3283 2014-05-21  Oliver Hunt  <oliver@apple.com>
3284
3285         [iOS] Enable sandboxing for the database process
3286         https://bugs.webkit.org/show_bug.cgi?id=132963
3287
3288         Reviewed by Alexey Proskuryakov.
3289
3290         Simply ensure that the database process is running in a tight
3291         sandbox. As part of this i've separated out ChildProcessIOS
3292         and ensures that the database process loads a custom sandbox.
3293
3294         * Configurations/WebKit.xcconfig:
3295         * DatabaseProcess/ios/DatabaseProcessIOS.mm:
3296         (WebKit::DatabaseProcess::initializeSandbox):
3297         * DatabaseProcess/ios/com.apple.WebKit.DatabasesIOS.sb: Added.
3298         * Shared/ios/ChildProcessIOS.mm: Added.
3299         Essentially cloned from the Mac version, only all the OSX
3300         specific logic has been stripped.
3301         (WebKit::ChildProcess::setApplicationIsDaemon):
3302         (WebKit::ChildProcess::platformInitialize):
3303         (WebKit::ChildProcess::initializeSandbox):
3304         (WebKit::ChildProcess::setQOS):
3305         * Shared/mac/ChildProcessMac.mm:
3306         Remove all the IOS ifdefs.
3307         (WebKit::ChildProcess::setApplicationIsDaemon):
3308         (WebKit::ChildProcess::platformInitialize):
3309         (WebKit::ChildProcess::initializeSandbox):
3310         (WebKit::ChildProcess::setQOS):
3311         * WebKit2.xcodeproj/project.pbxproj:
3312
3313 2014-05-21  Andy Estes  <aestes@apple.com>
3314
3315         [iOS] Create a UIPrintFormatter for WKWebView
3316         https://bugs.webkit.org/show_bug.cgi?id=133005
3317
3318         Reviewed by Tim Horton.
3319
3320         Implemented a UIPrintFormatter subclass to support printing WKWebViews using UIPrintInteractionController.
3321         Overrode -_recalcPageCount: to synchronously ask the web process to lay out for printing and return the number
3322         of page rects. The web process returns the page rects immediately and then starts rendering the page to a PDF,
3323         returning the PDF data to the UI process asynchronously. When UIPrintInteractionController later calls our
3324         overridden -drawInRect:forPageAtIndex:, we block and wait for the PDF data to be returned. Since
3325         UIPrintInteractionController draws each page after a delay, it's possible that the web process has already
3326         returned the PDF data to us by the time we print the first page.
3327
3328         * Shared/WebPreferencesStore.h: Correctly initialized shouldPrintBackgrounds for iOS.
3329         * UIProcess/API/Cocoa/WKWebView.mm:
3330         (-[WKWebView _dataForDisplayedPDF]): Now that WKPDFView vends its CGPDFDocument directly, extract its data here.
3331         (-[WKWebView _printFormatterClass]): Tell UIView which UIPrintFormatter to alloc.
3332         (-[WKWebView _computePageCountAndStartDrawingToPDFWithPrintInfo:WebKit::firstPage:computedTotalScaleFactor:]):
3333         If we're displaying a PDF, return its page count directly. Otherwise, synchronously ask the web process to
3334         compute page rects for printing and then return the number of rects.
3335         (-[WKWebView _endPrinting]): Cleared state and sent the WebPage::EndPrinting message to the web process.
3336         (-[WKWebView _printedDocument]): If we're displaying a PDF, return its data directly. Otherwise, if we haven't
3337         received PDF data from the web process yet, wait for it indefinitely (there's no sensible timeout to use here
3338         since failing to receive the data results in printing some number of blank pages).
3339         (-[WKWebView _setPrintedDocument:]): Set the CGPDFDocument received from the web process.
3340         * UIProcess/API/Cocoa/WKWebViewInternal.h: Declared methods called by WKWebViewPrintFormatter.
3341         * UIProcess/PageClient.h: Declared didFinishDrawingPagesToPDF.
3342         * UIProcess/WKWebViewPrintFormatter.h: Added.
3343         * UIProcess/WKWebViewPrintFormatter.mm: Added.
3344         (-[WKWebViewPrintFormatter dealloc]): Cleared state and called -[WKWebView _endPrinting].
3345         (-[WKWebViewPrintFormatter webView]): Returned the WKWebView for this print formatter.
3346         (-[WKWebViewPrintFormatter _recalcPageCount]): Set up a PrintInfo object given the formatter's content rect
3347         and called -_computePageCountAndStartDrawingToPDFWithPrintInfo:...
3348         (-[WKWebViewPrintFormatter rectForPageAtIndex:]): Called -_recalcIfNecessary and then returned the rect from
3349         -_pageContentRect.
3350         (-[WKWebViewPrintFormatter drawInRect:forPageAtIndex:]): Taught to draw the given page of the printed PDF
3351         document into the given rect and context provided to us.
3352         * UIProcess/WebPageProxy.h: Declared didFinishDrawingPagesToPDF.
3353         * UIProcess/WebPageProxy.messages.in: Added DidFinishDrawingPagesToPDF. Made this a delayed syncrhonous message
3354         so that additoinal work could be performed after sending the response.
3355         * UIProcess/ios/PageClientImplIOS.h:
3356         * UIProcess/ios/PageClientImplIOS.mm:
3357         (WebKit::PageClientImpl::didFinishDrawingPagesToPDF): Created a CGPDFDocument from the data sent to us by the
3358         web process and called -[WKWebView _setPrintedDocument:].
3359         * UIProcess/ios/WKPDFView.h:
3360         * UIProcess/ios/WKPDFView.mm:
3361         (-[WKPDFView pdfDocument]): Returned the underlying CGPDFDocument.
3362         (-[WKPDFView documentData]): Deleted.
3363         * UIProcess/ios/WebPageProxyIOS.mm:
3364         (WebKit::WebPageProxy::didFinishDrawingPagesToPDF):
3365         * WebKit2.xcodeproj/project.pbxproj:
3366         * WebProcess/WebPage/WebPage.cpp:
3367         (WebKit::WebPage::computePagesForPrinting): Changed to call computePagesForPrintingImpl.
3368         (WebKit::WebPage::computePagesForPrintingImpl): Moved the common logic of computePagesForPrinting to here so it
3369         could be called by computePagesForPrintingAndStartDrawingToPDF.
3370         (WebKit::WebPage::drawPagesToPDF): Changed to call drawPagesToPDFImpl
3371         (WebKit::WebPage::drawPagesToPDFImpl): Moved the common logic of drawPagesToPDF to here so it could be called
3372         by computePagesForPrintingAndStartDrawingToPDF.
3373         * WebProcess/WebPage/WebPage.h:
3374         * WebProcess/WebPage/WebPage.messages.in:
3375         * WebProcess/WebPage/ios/WebPageIOS.mm:
3376         (WebKit::WebPage::computePagesForPrintingAndStartDrawingToPDF): Computed page rects and returned them as a
3377         synchronous response. Afterwards called drawPagesToPDFImpl() and returned the PDF data by sending
3378         WebPageProxy::DidFinishDrawingPagesToPDF.
3379
3380 2014-05-21  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
3381
3382         [EFL] Turn on ENABLE_CSS_FILTERS
3383         https://bugs.webkit.org/show_bug.cgi?id=133153
3384
3385         Reviewed by Gyuyoung Kim.
3386
3387         Make WebKit2 compile after r166741 when CSS_FILTERS are enabled.
3388
3389         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
3390         (IPC::ArgumentCoder<WebCore::FilterOperations>::decode):
3391
3392 2014-05-21  Brady Eidson  <beidson@apple.com>
3393
3394         Special handling of telephone number detection menu.
3395         <rdar://problem/16967971> and https://bugs.webkit.org/show_bug.cgi?id=133143
3396
3397         Reviewed by Geoff Garen.
3398
3399         Add a bool to ContextMenuContextData to represent telephone number menus:
3400         * Shared/ContextMenuContextData.cpp:
3401         (WebKit::ContextMenuContextData::ContextMenuContextData):
3402         (WebKit::ContextMenuContextData::operator=):
3403         (WebKit::ContextMenuContextData::encode):
3404         (WebKit::ContextMenuContextData::decode):
3405         * Shared/ContextMenuContextData.h:
3406         (WebKit::ContextMenuContextData::ContextMenuContextData):
3407         (WebKit::ContextMenuContextData::isTelephoneNumberContext):
3408
3409         * UIProcess/mac/WebContextMenuProxyMac.mm:
3410         (WebKit::WebContextMenuProxyMac::showContextMenu): If the menu is a telephone
3411           number menu then display it using a specific AppKit API.
3412
3413         * UIProcess/mac/WebPageProxyMac.mm:
3414         (WebKit::WebPageProxy::showTelephoneNumberMenu): Filter the array of menu items
3415           through a new WKSI call, and then show it using a telephone number context.
3416
3417 2014-05-21  Alexey Proskuryakov  <ap@apple.com>
3418
3419         [Mac] REGRESSION (Async text input): Asian text input doesn't work in Flash
3420         https://bugs.webkit.org/show_bug.cgi?id=133128
3421         <rdar://problem/16890920>
3422
3423         Reviewed by Anders Carlsson.
3424
3425         * UIProcess/API/mac/WKView.mm:
3426         (-[WKView _interpretKeyEvent:completionHandler:]): Added a separate code path for
3427         plug-in input. Before async text input, we used to provide a nil input context due
3428         to having _data->_interpretKeyEventsParameters while this function was executing,
3429         and thus took a shortcut. The new behavior is different from pre-async in that
3430         we don't collect commands at all, but I couldn't find any case where that mattered.
3431         (-[WKView inputContext]): The _collectedKeypressCommands check was not a correct
3432         replacement for _interpretKeyEventsParameters one, because this variable is not
3433         always set within -_interpretKeyEvent:completionHandler:.
3434
3435         * UIProcess/mac/WKTextInputWindowController.mm:
3436         (-[WKTextInputPanel _interpretKeyEvent:usingLegacyCocoaTextInput:string:]):
3437         While at it, fixed a separate issue with Cangjie predictive input. We shouldn't
3438         keep prediction pop-up on screen after hiding the bottom input window.
3439
3440 2014-05-16  Martin Robinson  <mrobinson@igalia.com>
3441
3442         [CMake] Improve handling of LIB_INSTALL_DIR, EXEC_INSTALL_DIR, and LIBEXEC_INSTALL_DIR
3443         https://bugs.webkit.org/show_bug.cgi?id=132819
3444
3445         Reviewed by Carlos Garcia Campos.
3446
3447         * PlatformEfl.cmake: No need to prefix EXEC_INSTALL_DIR with the prefix any longer.
3448         * PlatformGtk.cmake: No longer use CMAKE_INSTALL_FULL_FOO variables, instead using the WebKit-specific ones.
3449         * efl/EWebKit2Config.cmake.in: Ditto.
3450         * efl/ewebkit2.pc.in: Instead of hard-coding the path to the library installation directory use LIB_INSTALL_DIR.
3451         * webkit2gtk-web-extension.pc.in: No longer use the pkg-config only variables. Instead use
3452         the common CMake ones.
3453         * webkit2gtk.pc.in: Ditto.
3454
3455 2014-05-21  Carlos Garcia Campos  <cgarcia@igalia.com>
3456
3457         REGRESSION(r168625): [GTK] Assertion failure in LocalStorageDatabaseTracker
3458         https://bugs.webkit.org/show_bug.cgi?id=133118
3459
3460         Reviewed by Philippe Normand.
3461
3462         Call WebContext::applyPlatformSpecificConfigurationDefaults() to
3463         initialize the WebContextConfiguration before creating the default WebContext.
3464
3465         * UIProcess/API/gtk/WebKitWebContext.cpp:
3466         (createDefaultWebContext):
3467
3468 2014-05-21  Shivakumar JM  <shiva.jm@samsung.com>
3469
3470         [WebKit2] Cleanup the build from unused variable in WebProcess module
3471         https://bugs.webkit.org/show_bug.cgi?id=133062
3472
3473         Reviewed by Csaba Osztrogonác.
3474
3475         Fix unused parameter by using UNUSED_PARAM macro
3476
3477         * WebProcess/UserContent/WebUserContentController.cpp:
3478         (WebKit::WebUserContentController::addUserScriptMessageHandlers):
3479         (WebKit::WebUserContentController::removeUserScriptMessageHandler):
3480
3481 2014-05-20  Enrica Casucci  <enrica@apple.com>
3482
3483         REGRESSION (WK2): Tapping on the input field in duckduckgo.com shows the keyboard but not the caret.
3484         https://bugs.webkit.org/show_bug.cgi?id=133140
3485         <rdar://problem/16980898>
3486
3487         Reviewed by Benjamin Poulain.
3488
3489         When a page focuses a field on load, we receive the call to startAssistingNode
3490         but we don't create a text interaction assistant if the focus is not originated
3491         by a user action. Upon receiving the selection change notification we don't
3492         call the text interaction assistant, since we don't have one, but we do call
3493         the web selection assistant. We don't have any valid rects for web selection
3494         and we clear the selection on the page, causing the caret not to appear and
3495         the typing to have no effect.
3496
3497         * UIProcess/ios/WKContentViewInteraction.mm:
3498         (-[WKContentView _updateChangedSelection]):
3499
3500 2014-05-20  Dean Jackson  <dino@apple.com>
3501
3502         [Mac] Allow popup menus to override default appearance
3503         https://bugs.webkit.org/show_bug.cgi?id=133129
3504
3505         Reviewed by Tim Horton.
3506
3507         Add an extra "hideArrows" flag to PlatformPopupMenuData
3508         and replace the call to WKPopupMenuWithSize with WKPopupMenu.
3509
3510         * Shared/PlatformPopupMenuData.cpp: Encode and decode the new data value.
3511         (WebKit::PlatformPopupMenuData::encode):
3512         (WebKit::PlatformPopupMenuData::decode):
3513         * Shared/PlatformPopupMenuData.h: Add hideArrows boolean.
3514         * UIProcess/mac/WebPopupMenuProxyMac.mm:
3515         (WebKit::WebPopupMenuProxyMac::showPopupMenu):
3516         * WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
3517         (WebKit::WebPopupMenu::setUpPlatformData): The hideArrows flag is
3518         true if we don't have the default appearance.
3519
3520 2014-05-20  Eric Carlson  <eric.carlson@apple.com>
3521
3522         [Mac] do not deactivate an audio session that has running I/O
3523         https://bugs.webkit.org/show_bug.cgi?id=133127
3524
3525         Reviewed by Jer Noble.
3526
3527         * WebProcess/WebPage/WebPage.cpp:
3528         (WebKit::WebPage::WebPage): Settings::setShouldManageAudioSession renamed to 
3529             setShouldManageAudioSessionCategory, deal with it.
3530
3531 2014-05-19  Simon Fraser  <simon.fraser@apple.com>
3532
3533         REGRESSION (r169063) Fixed and sticky nodes misplaced on scrolling sometimes
3534         https://bugs.webkit.org/show_bug.cgi?id=133106
3535         <rdar://problem/16967648>
3536
3537         Reviewed by Sam Weinig.
3538
3539         Fix regression from r169063. That commit removed scrolledContentsLayers from 
3540         frame scrolling nodes, but they do actually use them.
3541         
3542         So put them back; not in the base class, because they have a somewhat different
3543         meaning for overflow scrolling and frame scrolling.
3544
3545         * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
3546         (ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
3547         (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
3548         (WebKit::RemoteScrollingTreeTextStream::dump):
3549         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
3550         (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
3551
3552 2014-05-20  Alexey Proskuryakov  <ap@apple.com>
3553
3554         [Mac] WebProcess doesn't follow localization of UI process when run as a service
3555         https://bugs.webkit.org/show_bug.cgi?id=133126
3556         <rdar://problem/13396515>
3557         <rdar://problem/16561084>
3558
3559         Reviewed by Sam Weinig and Tim Horton.
3560
3561         * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.Development.mm:
3562         (WebKit::handleXPCBootstrap):
3563         (main):
3564         * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
3565         (WebKit::handleXPCBootstrap):
3566         (main):
3567         Set localization very early in process lifetime (in development builds, that's
3568         even before WebKit framework is loaded).
3569
3570         * UIProcess/Launcher/mac/ProcessLauncherMac.mm: (WebKit::connectToService):
3571         Pass UI process localization to the service, computing it in the same way we do
3572         for child processes.
3573
3574 2014-05-20  Anders Carlsson  <andersca@apple.com>
3575
3576         Fix a header comment
3577         https://bugs.webkit.org/show_bug.cgi?id=133123
3578         <rdar://problem/16973783>
3579
3580         Reviewed by Geoffrey Garen.
3581
3582         * UIProcess/API/Cocoa/WKUserContentController.h:
3583
3584 2014-05-20  Carlos Garcia Campos  <cgarcia@igalia.com>
3585
3586         [GTK] WebKitWebPage::send-request always pass a valid pointer for redirected response
3587         https://bugs.webkit.org/show_bug.cgi?id=133119
3588
3589         Reviewed by Sergio Villar Senin.
3590
3591         The problem is that we were checking whether the passed in
3592         WKURLResponseRef is NULL or not, but it's always a valid object
3593         that can contain a NULL WebCore::ResourceResponse.
3594
3595         * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
3596         (willSendRequestForFrame): Pass NULL as redirect-response
3597         parameter of WebKitWebPage::send-request signal when the
3598         WebCore::ResourceResponse of the passed in WKURLResponseRef is NULL.
3599
3600 2014-05-20  Antti Koivisto  <antti@apple.com>
3601
3602         Double-tap zoom does not take obscuring insets into account
3603         https://bugs.webkit.org/show_bug.cgi?id=133116
3604         <rdar://problem/16765604>
3605
3606         Reviewed by Anders Carlsson.
3607
3608         * UIProcess/API/Cocoa/WKWebView.mm:
3609         (-[WKWebView _zoomToRect:WebCore::atScale:origin:WebCore::]):
3610         
3611             Compute the zoom target taking insets into account.
3612
3613 2014-05-19  Gavin Barraclough  <baraclough@apple.com>
3614
3615         WebKit2/iOS: parented view should be considered hidden if app is backgrounded
3616         https://bugs.webkit.org/show_bug.cgi?id=133099
3617         radar://16942183
3618
3619         Reviewed by Simon Fraser.
3620
3621         * UIProcess/ios/PageClientImplIOS.mm:
3622         (WebKit::PageClientImpl::isViewWindowActive):
3623             - implemented in terms of isViewVisible.
3624             - FIXME: https://bugs.webkit.org/show_bug.cgi?id=133098
3625         (WebKit::PageClientImpl::isViewFocused):
3626             - implemented in terms of isViewWindowActive.
3627             - FIXME: https://bugs.webkit.org/show_bug.cgi?id=133098
3628         (WebKit::PageClientImpl::isViewVisible):
3629             - take UIApplication applicationState into account in determining visibility.
3630         (WebKit::PageClientImpl::isViewVisibleOrOccluded):
3631             - implemented in terms of isViewVisible.
3632         (WebKit::PageClientImpl::isVisuallyIdle):
3633             - implemented in terms of isViewVisible.
3634         * UIProcess/ios/WKContentView.mm:
3635         (-[WKContentView initWithFrame:context:WebKit::configuration:WebKit::webView:]):
3636             - register for UIApplicationDidEnterBackgroundNotification.
3637         (-[WKContentView _applicationDidEnterBackground:]):
3638         (-[WKContentView _applicationWillEnterForeground:]):
3639             - when the application state changes all flags except IsInWindow may be affected.
3640
3641 2014-05-19  Enrica Casucci  <enrica@apple.com>
3642
3643         WK2 iOS: Pressing the form navigation button causes the keyboard to be dismissed.
3644         https://bugs.webkit.org/show_bug.cgi?id=133100
3645         <rdar://problem/16808673>
3646
3647         Reviewed by Benjamin Poulain.
3648
3649         The call to focusNextAssistedNode is the result of a user action, since
3650         it is called when the user pressed the form navigation buttons.
3651         Therefore we must set m_userIsInteracting to true before changing the focus
3652         to make sure the focus change is honored.
3653
3654         * WebProcess/WebPage/ios/WebPageIOS.mm:
3655         (WebKit::WebPage::focusNextAssistedNode):
3656
3657 2014-05-19  Beth Dakin  <bdakin@apple.com>
3658
3659         TelephoneNumberOverlayController should use a modern loop for text quad bounding 
3660         boxes
3661         https://bugs.webkit.org/show_bug.cgi?id=133096
3662
3663         Reviewed by Anders Carlsson.
3664
3665         * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
3666         (WebKit::textQuadsToBoundingRectForRange):
3667
3668 2014-05-19  Jeremy Jones  <jeremyj@apple.com>
3669
3670         PlatformCALayerRemoteCustom properties aren't initialized to match the PlatformLayer
3671         https://bugs.webkit.org/show_bug.cgi?id=133025
3672
3673         Reviewed by Simon Fraser.
3674
3675         * WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
3676         (WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
3677         Initialize PlatformCALayerRemote properties from the PlatformLayer.
3678
3679 2014-05-19  Benjamin Poulain  <bpoulain@apple.com>
3680
3681         [iOS][WK2] When a page relayout on dynamic resize, keep the same relative width in view
3682         https://bugs.webkit.org/show_bug.cgi?id=133026
3683         <rdar://problem/16833971>
3684
3685         Reviewed by Simon Fraser.
3686
3687         When a page does not relayout, we keep the same width in view.
3688         When a page relayout, we should keep the same relative width in view.
3689
3690         * WebProcess/WebPage/ios/WebPageIOS.mm:
3691         (WebKit::isResponsiveDesignWithContentLargerThanLayout):
3692         (WebKit::WebPage::dynamicViewportSizeUpdate):
3693
3694 2014-05-19  Benjamin Poulain  <benjamin@webkit.org>
3695
3696         [WK2] Add some missing state reset on crash
3697         https://bugs.webkit.org/show_bug.cgi?id=133036
3698
3699         Reviewed by Sam Weinig.
3700
3701         * UIProcess/WebPageProxy.cpp:
3702         (WebKit::WebPageProxy::resetState):
3703         The missing reset for m_isTrackingTouchEvents would cause the WebPageProxy to send
3704         touch events when it shouldn't. That would only be for an active touch sequence.
3705
3706         The missing reset m_lastVisibleContentRectUpdate would prevent pushing the new UI state
3707         to the new page on reload, that is very bad.
3708
3709         Also moved m_videoFullscreenManager to be in the same order as initialization, and invalidate
3710         the callbacks for dictation.
3711
3712 2014-05-19  Benjamin Poulain  <bpoulain@apple.com>
3713
3714         [iOS][WK2] Move scale noise filtering to the WebProcess
3715         https://bugs.webkit.org/show_bug.cgi?id=133021
3716
3717         Reviewed by Darin Adler.
3718
3719         Filtering in the UIProcess was stupid. It forces to handle a third kind of scale just for updates.
3720
3721         The WebProcess already adjusts the input scale based on the viewport. Changing the input scale at that level
3722         is already supported. It is a better place to have the filtering.
3723
3724         * UIProcess/ios/WKContentView.mm:
3725         (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:]):
3726         * WebProcess/WebPage/ios/WebPageIOS.mm:
3727         (WebKit::WebPage::updateVisibleContentRects):
3728
3729 2014-05-19  Simon Fraser  <simon.fraser@apple.com>
3730
3731         Split scrolling tree ScrollingNodes into FrameScrollingNodes and OverflowScrollingNodes
3732         https://bugs.webkit.org/show_bug.cgi?id=133022
3733
3734         Reviewed by Sam Weinig.
3735         
3736         In both the scrolling state tree and the scrolling tree, split the "scrolling nodes"
3737         into FrameScrolling and OverflowScrolling nodes.
3738         
3739         Move what was the "viewportSize" property onto the base class for the scrolling
3740         nodes, calling it "scrollableAreaSize".
3741         
3742         Make minimum/maximumScrollPosition() virtual so we can share more code (and there
3743         is more code sharing to be done in future).
3744
3745         * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
3746         (ArgumentCoder<ScrollingStateScrollingNode>::encode):
3747         (ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
3748         (ArgumentCoder<ScrollingStateOverflowScrollingNode>::encode):
3749         (ArgumentCoder<ScrollingStateScrollingNode>::decode):
3750         (ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
3751         (ArgumentCoder<ScrollingStateOverflowScrollingNode>::decode):
3752         (WebKit::encodeNodeAndDescendants):
3753         (WebKit::RemoteScrollingCoordinatorTransaction::decode):
3754         (WebKit::RemoteScrollingTreeTextStream::dump):
3755         * UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
3756         (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
3757         * UIProcess/Scrolling/RemoteScrollingTree.cpp:
3758         (WebKit::RemoteScrollingTree::createNode):
3759         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
3760         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollLayer):
3761         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterViewportChange):
3762         * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
3763         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::ScrollingTreeOverflowScrollingNodeIOS):
3764         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateBeforeChildren):
3765         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
3766         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::setScrollLayerPosition):
3767         (WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateChildNodesAfterScroll):
3768         * UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
3769         (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):
3770
3771 2014-05-19  Alexey Proskuryakov  <ap@apple.com>
3772
3773         [Mac] Fix a typo in plug-in sandbox
3774         https://bugs.webkit.org/show_bug.cgi?id=133074
3775
3776         Reviewed by Anders Carlsson.
3777
3778         * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
3779
3780 2014-05-16  Andy Estes  <aestes@apple.com>
3781
3782         [WebKit2] Wake up threads blocked in waitForAndDispatchImmediately() if we lose our connection
3783         https://bugs.webkit.org/show_bug.cgi?id=133010
3784
3785         Reviewed by Geoffrey Garen.
3786
3787         If a thread is blocked on m_waitForMessageCondition and we lose our connection, treat that like we do a timeout.
3788
3789         * Platform/IPC/Connection.cpp:
3790         (IPC::Connection::Connection):
3791         (IPC::Connection::waitForMessage):
3792         (IPC::Connection::connectionDidClose):
3793         * Platform/IPC/Connection.h:
3794
3795 2014-05-19  Mark Rowe  <mrowe@apple.com>
3796
3797         Build fix after r169023.
3798
3799         * Shared/API/Cocoa/WebKitPrivate.h: Stop including headers that no longer exist.
3800         I hope for weinig's sake that no-one was relying on them.
3801
3802 2014-05-18  Anders Carlsson  <andersca@apple.com>
3803
3804         Relax an assertion when creating document loaders
3805         https://bugs.webkit.org/show_bug.cgi?id=133058
3806
3807         Reviewed by Sam Weinig.
3808
3809         When navigating back/forward items recursively, createDocumentLoader will be called
3810         for subframes before main frames so only associate the navigation with main frames.
3811
3812         * WebProcess/WebPage/WebPage.cpp:
3813         (WebKit::WebPage::createDocumentLoader):
3814
3815 2014-05-18  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
3816
3817         CMake Buildfix after r169023.
3818
3819         Reviewed by Csaba Osztrogonác.
3820
3821         * CMakeLists.txt: Add new files after r168994.
3822
3823 2014-05-18  Sam Weinig  <sam@webkit.org>
3824
3825         [WebKit2] Implement ScriptMessageHandlers
3826         https://bugs.webkit.org/show_bug.cgi?id=133053
3827
3828         Reviewed by Anders Carlsson.
3829
3830         * DerivedSources.make:
3831         * Scripts/webkit2/messages.py:
3832         (struct_or_class):
3833         (argument_coder_headers_for_type):
3834         (headers_for_type):
3835         * UIProcess/API/Cocoa/WKScriptMessage.mm:
3836         (-[WKScriptMessage _initWithBody:webView:name:]):
3837         (-[WKScriptMessage body]):
3838         (-[WKScriptMessage webView]):
3839         (-[WKScriptMessage name]):
3840         (-[WKScriptMessage _scriptWorld]): Deleted.
3841         * UIProcess/API/Cocoa/WKScriptMessageInternal.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKScriptMessagePrivate.h.
3842         * UIProcess/API/Cocoa/WKScriptMessagePrivate.h: Removed.
3843         * UIProcess/API/Cocoa/WKUserContentController.mm:
3844         (-[WKUserContentController addScriptMessageHandler:name:]):
3845         (-[WKUserContentController removeScriptMessageHandlerForName:]):
3846         (-[WKUserContentController _addScriptMessageHandler:name:world:]): Deleted.
3847         (-[WKUserContentController _removeScriptMessageHandlerForName:world:]): Deleted.
3848         * UIProcess/API/Cocoa/WKUserContentControllerInternal.h:
3849         * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: Removed.
3850         * UIProcess/API/Cocoa/WKWebView.mm:
3851         (pageToViewMap):
3852         (fromWebPageProxy):
3853         (-[WKWebView initWithFrame:configuration:]):
3854         (-[WKWebView dealloc]):
3855         * UIProcess/API/Cocoa/WKWebViewInternal.h:
3856         * UIProcess/UserContent/WebScriptMessageHandler.cpp: Added.
3857         (WebKit::WebScriptMessageHandlerHandle::encode):
3858         (WebKit::WebScriptMessageHandlerHandle::decode):
3859         (WebKit::generateIdentifier):
3860         (WebKit::WebScriptMessageHandler::create):
3861         (WebKit::WebScriptMessageHandler::WebScriptMessageHandler):
3862         (WebKit::WebScriptMessageHandler::~WebScriptMessageHandler):
3863         * UIProcess/UserContent/WebScriptMessageHandler.h: Added.
3864         (WebKit::WebScriptMessageHandler::Client::~Client):
3865         (WebKit::WebScriptMessageHandler::handle):
3866         (WebKit::WebScriptMessageHandler::identifier):
3867         (WebKit::WebScriptMessageHandler::name):
3868         (WebKit::WebScriptMessageHandler::client):
3869         * UIProcess/UserContent/WebUserContentControllerProxy.cpp:
3870         (WebKit::WebUserContentControllerProxy::addProcess):
3871         (WebKit::WebUserContentControllerProxy::removeProcess):
3872         (WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler):
3873         (WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName):
3874         (WebKit::WebUserContentControllerProxy::didPostMessage):
3875         * UIProcess/UserContent/WebUserContentControllerProxy.h:
3876         * UIProcess/UserContent/WebUserContentControllerProxy.messages.in: Added.
3877         * WebKit2.xcodeproj/project.pbxproj:
3878         * WebProcess/UserContent/WebUserContentController.cpp:
3879         (WebKit::WebUserMessageHandlerDescriptorProxy::create):
3880         (WebKit::WebUserMessageHandlerDescriptorProxy::~WebUserMessageHandlerDescriptorProxy):
3881         (WebKit::WebUserMessageHandlerDescriptorProxy::didPostMessage):
3882         (WebKit::WebUserMessageHandlerDescriptorProxy::descriptor):
3883         (WebKit::WebUserMessageHandlerDescriptorProxy::identifier):
3884         (WebKit::WebUserMessageHandlerDescriptorProxy::WebUserMessageHandlerDescriptorProxy):
3885         (WebKit::WebUserContentController::addUserScriptMessageHandlers):
3886         (WebKit::WebUserContentController::removeUserScriptMessageHandler):
3887         * WebProcess/UserContent/WebUserContentController.h:
3888         * WebProcess/UserContent/WebUserContentController.messages.in:
3889
3890 2014-05-18  Rik Cabanier  <cabanier@adobe.com>
3891
3892         support for navigator.hardwareConcurrency
3893         https://bugs.webkit.org/show_bug.cgi?id=132588
3894
3895         Reviewed by Filip Pizlo.
3896
3897         * Configurations/FeatureDefines.xcconfig:
3898
3899 2014-05-18  Anders Carlsson  <andersca@apple.com>
3900
3901         Implement Navigations for all methods declared returning one
3902         https://bugs.webkit.org/show_bug.cgi?id=133048
3903         <rdar://problem/16830064>
3904
3905         Reviewed by Sam Weinig.
3906
3907         * UIProcess/API/Cocoa/WKWebView.mm:
3908         (-[WKWebView goToBackForwardListItem:]):
3909         (-[WKWebView goBack]):
3910         (-[WKWebView goForward]):
3911         (-[WKWebView reload]):
3912         (-[WKWebView reloadFromOrigin]):
3913         Create and return navigations.
3914
3915         (-[WKWebView _reload]):
3916         Call -[WKWebView reload].
3917
3918         * UIProcess/Cocoa/NavigationState.h:
3919         * UIProcess/Cocoa/NavigationState.mm:
3920         (WebKit::NavigationState::createBackForwardNavigation):
3921         Create a back/forward navigation.
3922
3923         (WebKit::NavigationState::createReloadNavigation):
3924         Create a reload navigation.
3925
3926         * UIProcess/WebPageProxy.cpp:
3927         (WebKit::WebPageProxy::reattachToWebProcessWithItem):
3928         Generate a navigation ID and send it with the GoToBackForwardItem message.
3929
3930         (WebKit::WebPageProxy::reload):
3931         Return a navigation ID.
3932
3933         (WebKit::WebPageProxy::goForward):
3934         Generate a navigation ID and send it with the GoForward message.
3935         
3936         (WebKit::WebPageProxy::goBack):
3937         Generate a navigation ID and send it with the GoBack message.
3938
3939         (WebKit::WebPageProxy::goToBackForwardItem):
3940         Generate a navigation ID and send it with the GoToBackForwardItem message.
3941
3942         * UIProcess/WebPageProxy.h:
3943         Return navigation IDs where appropriate.
3944
3945         * UIProcess/cf/WebPageProxyCF.cpp:
3946         (WebKit::WebPageProxy::restoreFromSessionStateData):
3947         Generate a navigation ID and send it with the RestoreSessionAndNavigateToCurrentItem message.
3948         
3949         * WebProcess/WebPage/WebPage.cpp:
3950         (WebKit::WebPage::goForward):
3951         (WebKit::WebPage::goBack):
3952         (WebKit::WebPage::goToBackForwardItem):
3953         Set up the pending navigation ID.
3954
3955         (WebKit::WebPage::restoreSessionAndNavigateToCurrentItem):
3956         Call goToBackForwardItem with a navigation ID.
3957
3958         * WebProcess/WebPage/WebPage.h:
3959         Add navigation IDs.
3960
3961         * WebProcess/WebPage/WebPage.messages.in:
3962         Add navigation IDs.
3963
3964 2014-05-18  Commit Queue  <commit-queue@webkit.org>
3965
3966         Unreviewed, rolling out r169001.
3967         https://bugs.webkit.org/show_bug.cgi?id=133050
3968
3969         We can't expose the C SPI from WKWebView (Requested by
3970         andersca on #webkit).
3971
3972         Reverted changeset:
3973
3974         "Need a way to get a WKPageRef from a WKWebView"
3975         https://bugs.webkit.org/show_bug.cgi?id=133015
3976         http://trac.webkit.org/changeset/169001
3977
3978 2014-05-18  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>
3979
3980         [WK2][GTK] Buildfix after r168999.
3981
3982         Reviewed by Csaba Osztrogonác.
3983
3984         * UIProcess/gtk/WebContextGtk.cpp:
3985         (WebKit::WebContext::platformDefaultWebSQLDatabaseDirectory): Renamed from WebKit::WebContext::platformDefaultDatabaseDirectory().
3986         (WebKit::WebContext::platformDefaultIndexedDBDatabaseDirectory): Added.
3987
3988 2014-05-18  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>
3989
3990         [WK2][EFL] Buildfix after r168999.
3991
3992         Reviewed by Csaba Osztrogonác.
3993
3994         * UIProcess/efl/WebContextEfl.cpp:
3995         (WebKit::WebContext::platformDefaultWebSQLDatabaseDirectory): Renamed from WebKit::WebContext::platformDefaultDatabaseDirectory().
3996         (WebKit::WebContext::platformDefaultIndexedDBDatabaseDirectory): Added.
3997
3998 2014-05-18  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>
3999
4000         [WK2][cmake] Buildfix after r168994.
4001
4002         Reviewed by Csaba Osztrogonác.
4003
4004         * CMakeLists.txt: Added new files to the build system introduced in r168994.
4005
4006 2014-05-17  Alexey Proskuryakov  <ap@apple.com>
4007
4008         REGRESSION (NetworkProcess): Trying to use appcache fallback crashes in ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache
4009         https://bugs.webkit.org/show_bug.cgi?id=133007
4010         <rdar://problem/13702706>
4011
4012         appcache tests often fail on the Mac WebKit2 bot
4013         https://bugs.webkit.org/show_bug.cgi?id=82061
4014
4015         Reviewed by Maciej Stachowiak.
4016
4017         * WebProcess/Network/WebResourceLoader.cpp:
4018         (WebKit::WebResourceLoader::willSendRequest):
4019         (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
4020         (WebKit::WebResourceLoader::didFailResourceLoad):
4021         Perform the same appcache checks that ResourceHandleClient implementation in ResourceLoader
4022         does. We should eventually come up with a way to share the code. Perhaps add a class that
4023         isolates ResourceLoader from networking details? But ResourceLoader was itself supposed
4024         to be the class that isolates DocumentLoader from networking details. So, unsure.
4025
4026 2014-05-17  Jae Hyun Park  <jaepark@webkit.org>
4027
4028         [EFL] Remove m_contentPosition from PageViewportControllerClientEfl
4029         https://bugs.webkit.org/show_bug.cgi?id=132774
4030
4031         Reviewed by Anders Carlsson.
4032
4033         m_contentPosition is not used anywhere. So, this patch removes
4034         m_contentPosition and reduces one unnecessary assignment in
4035         setViewportPosition. Also, it renames contentsPoint to contentsPosition.
4036
4037         * UIProcess/PageViewportControllerClient.h:
4038         * UIProcess/efl/PageViewportControllerClientEfl.cpp:
4039         (WebKit::PageViewportControllerClientEfl::setViewportPosition):
4040         * UIProcess/efl/PageViewportControllerClientEfl.h:
4041
4042 2014-05-17  David Kilzer  <ddkilzer@apple.com>
4043
4044         Need a way to get a WKPageRef from a WKWebView
4045         <http://webkit.org/b/133015>
4046
4047         Reviewed by Benjamin Poulain.
4048
4049         * UIProcess/API/Cocoa/WKWebView.mm:
4050         (-[WKW