2015-10-23 Matthew Hanson Merge r191487. rdar://problem/22811325 2015-10-22 Sam Weinig Navigations on the same host (but with different schemes and ports) should not trigger universal links https://bugs.webkit.org/show_bug.cgi?id=150481 Reviewed by Dan Bernstein. Update the policy for following universal links to only take host into consideration. * UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient): * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::UIClient::createNewPage): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForNewWindowAction): (WebKit::WebPageProxy::createNewPage): (WebKit::WebPageProxy::showPage): 2015-10-20 Matthew Hanson Merge r191063. rdar://problem/22900764 2015-10-14 Alex Christensen Add SPI for reloading without content blockers https://bugs.webkit.org/show_bug.cgi?id=150058 rdar://problem/22742222 Reviewed by Sam Weinig. * Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode): (WebKit::WebPageCreationParameters::decode): * Shared/WebPageCreationParameters.h: * UIProcess/API/C/WKPage.cpp: (WKPageReload): (WKPageReloadWithoutContentBlockers): (WKPageReloadFromOrigin): (WKPageTryClose): (WKPageSetUserContentExtensionsEnabled): (WKPageSupportsTextEncoding): * UIProcess/API/C/WKPage.h: * UIProcess/API/Cocoa/WKBrowsingContextController.mm: (-[WKBrowsingContextController reload]): (-[WKBrowsingContextController reloadFromOrigin]): (-[WKBrowsingContextController applicationNameForUserAgent]): * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView reload]): (-[WKWebView reloadFromOrigin]): (-[WKWebView _setUserContentExtensionsEnabled:]): (-[WKWebView _userContentExtensionsEnabled]): (-[WKWebView _webProcessIdentifier]): (-[WKWebView _killWebContentProcess]): (-[WKWebView _reloadWithoutContentBlockers]): (-[WKWebView _killWebContentProcessAndResetState]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/API/gtk/WebKitWebView.cpp: (webkit_web_view_reload): (webkit_web_view_reload_bypass_cache): * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::didHandleContentFilterUnblockNavigation): * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::stopLoading): (WebKit::WebPageProxy::reload): (WebKit::WebPageProxy::creationParameters): (WebKit::WebPageProxy::setShouldScaleViewToFitDocument): (WebKit::WebPageProxy::setUserContentExtensionsEnabled): Deleted. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::userContentExtensionsEnabled): Deleted. * WebProcess/WebPage/WebPage.cpp: (WebKit::m_shouldDispatchFakeMouseMoveEvents): (WebKit::WebPage::setDefersLoading): (WebKit::WebPage::reload): (WebKit::WebPage::goForward): (WebKit::WebPage::createDocumentLoader): (WebKit::WebPage::setShouldScaleViewToFitDocument): (WebKit::WebPage::imageOrMediaDocumentSizeChanged): (WebKit::WebPage::setUserContentExtensionsEnabled): Deleted. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: 2015-10-20 Matthew Hanson Merge r190510. rdar://problem/22900764 2015-10-02 Alex Christensen Reloading without content blockers doesn't apply to resource loads after the main frame finishes https://bugs.webkit.org/show_bug.cgi?id=149430 rdar://problem/22742222 Reviewed by Geoffrey Garen. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::createDocumentLoader): Copy the state of whether content extensions are disabled from the Page to the DocumentLoader when making a DocumentLoader. 2015-10-20 Alexey Proskuryakov Build fix. * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: * UIProcess/ios/forms/WKFileUploadPanel.mm: (photoLibraryIcon): 2015-10-20 Alexey Proskuryakov Touch a file to trigger a build. * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: (-[WKAirPlayRoutePicker initWithView:]): 2015-10-15 Matthew Hanson Merge r190604. rdar://problem/22993012 2015-10-05 Jer Noble [iOS] REGRESSION(r190434): Media continues to play when locking screen https://bugs.webkit.org/show_bug.cgi?id=149822 Reviewed by Brent Fulgham. Pass through isSuspendedUnderLock when notifying the WebPage that the applicationWillEnterForeground, and pass that boolean in the userInfo of the WebUIApplicationWillEnterForegroundNotification. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationWillEnterForeground): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applicationWillEnterForeground): 2015-10-15 Matthew Hanson Rollout r188486. rdar://problem/22707497 2015-10-14 Matthew Hanson Merge r190992. rdar://problem/22823232 2015-10-13 Brent Fulgham [iOS] Avoid crash due to invalid screen bounds https://bugs.webkit.org/show_bug.cgi?id=150048 Reviewed by Jer Noble. Check for an invalid bounds, and reset it to a known state before attempting to use it. * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced): 2015-10-14 Matthew Hanson Merge r188486. rdar://problem/22707497 2015-08-13 Andy Estes [Cocoa] Downloads do not start if policy decision is made asynchronously https://bugs.webkit.org/show_bug.cgi?id=147985 Reviewed by Brady Eidson. * WebProcess/Network/WebResourceLoader.cpp: Updated to include SubresourceLoader.h. * WebProcess/WebPage/WebFrame.cpp: (WebKit::WebFrame::convertMainResourceLoadToDownload): Started a new download if the main resource loader is not calling didReceiveResponse. 2015-10-13 Babak Shafiei Merge r191022. 2015-10-13 Yongjun Zhang Use the correct notification strings for view service applications state change. https://bugs.webkit.org/show_bug.cgi?id=150107 Use the correct notification names "_UIViewServiceHostDidEnterBackgroundNotification" and "_UIViewServiceHostWillEnterForegroundNotification" to listen to view service application state changes. Reviewed by Gavin Barraclough. * UIProcess/ApplicationStateTracker.mm: (WebKit::ApplicationStateTracker::ApplicationStateTracker): 2015-10-09 Babak Shafiei Roll out r190604. 2015-10-08 Matthew Hanson Merge r190604. rdar://problem/22993012 2015-10-05 Jer Noble [iOS] REGRESSION(r190434): Media continues to play when locking screen https://bugs.webkit.org/show_bug.cgi?id=149822 Reviewed by Brent Fulgham. Pass through isSuspendedUnderLock when notifying the WebPage that the applicationWillEnterForeground, and pass that boolean in the userInfo of the WebUIApplicationWillEnterForegroundNotification. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationWillEnterForeground): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applicationWillEnterForeground): 2015-10-08 Matthew Hanson Merge r190568. rdar://problem/22974825 2015-10-05 Enrica Casucci Cannot select certain text on Wikipedia homepage even when zoomed in. https://bugs.webkit.org/show_bug.cgi?id=149758 rdar://problem/22407947 Reviewed by Dan Bernstein. Several functions that handle gestures for text selection are used for both editable and non editable content. When used on editable content, the point where the gesture occurs needs to be constrained within the boundaries of the editable element. In the WebProcess we decide whether to constrain the point or not only based on the presence of the assisted node. That unfortunately does not guarantee that the user is actually editing the element, but only that the element is focused. Since the knowledge about the interaction exists reliably in the UI process, this patch adds a parameter to each gesture handler that tries to clip the point, to indicate whether the user is actually interacting with the element so that in the WebProcess the assisted node information can be used to constrain the point. * UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::deviceOrientation): * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _isInteractingWithAssistedNode]): (-[WKContentView changeSelectionWithGestureAt:withGesture:withState:]): (-[WKContentView selectPositionAtPoint:completionHandler:]): (-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]): (-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]): (-[WKContentView updateSelectionWithExtentPoint:completionHandler:]): (-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::selectWithGesture): (WebKit::WebPageProxy::selectTextWithGranularityAtPoint): (WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection): (WebKit::WebPageProxy::selectPositionAtPoint): (WebKit::WebPageProxy::updateSelectionWithExtentPoint): (WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::selectWithGesture): (WebKit::WebPage::visiblePositionInFocusedNodeForPoint): (WebKit::WebPage::selectPositionAtPoint): (WebKit::WebPage::selectPositionAtBoundaryWithDirection): (WebKit::WebPage::rangeForGranularityAtPoint): (WebKit::WebPage::selectTextWithGranularityAtPoint): (WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): (WebKit::WebPage::updateSelectionWithExtentPoint): 2015-10-08 Matthew Hanson Merge r190512. rdar://problem/22974818 2015-10-02 Enrica Casucci Text selection is inaccurate in Wikipedia pages when starting navigation from wikipedia.org. https://bugs.webkit.org/show_bug.cgi?id=149756 rdar://problem/22332409 Reviewed by Tim Horton. When loading a new document into the same WebPage object, we need to clear the assisted node, since there is no guarantee that the node will be blurred. The bug is caused by the use of a stale assisted node to constrain the point where the gesture occurs. A fix for this problem was landed in http://trac.webkit.org/changeset/179885 where the cleanup was added when FrameLoaderClient::detach2 was called. This method doesn't seem to be called any longer for the main frame, so the correct solution is to add the cleanup to didCommitLoad in WebPage. I've also added some checks to webSelectionsRects and selectedTextRange to avoid the use of postLayoutData when the selection is none. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView webSelectionRects]): (-[WKContentView selectedTextRange]): * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::detachedFromParent2): Removed call to resetAssistedNodeForFrame. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad): Added call to resetAssistedNodeForFrame. 2015-10-08 Andy Estes Merge r188486, r188517, r188531, r188844, r188845, r188851, r188852, r188880, r188881, r188988, r189193, r189289, and r190133. rdar://problem/22846460 2015-08-11 Andy Estes [Cocoa] Add redirect support to CustomProtocolManager https://bugs.webkit.org/show_bug.cgi?id=147871 Reviewed by Dan Bernstein. NSURLProtocols have the ability to generate redirect responses. This change teaches CustomProtocolManager how to handle them. * Shared/Network/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm: (WebKit::CustomProtocolManager::wasRedirectedToRequest): Called -URLProtocol:wasRedirectedToRequest:redirectResponse: on the NSURLProtocolClient. * Shared/Network/CustomProtocols/CustomProtocolManager.h: * Shared/Network/CustomProtocols/CustomProtocolManager.messages.in: Defined WasRedirectedToRequest. * Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp: (WebKit::CustomProtocolManager::wasRedirectedToRequest): Defined empty function. * UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm: (-[WKCustomProtocolLoader connection:willSendRequest:redirectResponse:]): If a redirect response is received, send WasRedirectedToRequest and return nil to ignore the redirect. 2015-10-02 Babak Shafiei Merge r189773. 2015-09-14 Wenson Hsieh WKWebView scroll deceleration rate is not being set properly https://bugs.webkit.org/show_bug.cgi?id=149145 Reviewed by Simon Fraser. We are not currently setting the web view's deceleration rate to the correct preferred value because we are setting the decelerationRate property of the scrollView, which snaps input values to the closer of two predefined UIKit constants, UIScrollViewDecelerationRateFast and UIScrollViewDecelerationRateNormal. To fix this, we directly set the horizontal and vertical scroll deceleration factors to the preferred value. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView scrollViewWillBeginDragging:]): Directly set the scroll view's deceleration factor without going through the decelerationRate property. 2015-10-02 Babak Shafiei Merge r189366. 2015-09-04 Dan Bernstein [iOS] Disable backspace key navigation by default https://bugs.webkit.org/show_bug.cgi?id=148808 Reviewed by Tim Horton. * Shared/WebPreferencesDefinitions.h: Defined DEFAULT_BACKSPACE_KEY_NAVIGATION_ENABLED as false on iOS, true elsewhere, and made it the default value of the backspaceKeyNavigationEnabled preference key. 2015-10-02 Babak Shafiei Merge r188755. 2015-08-21 Chris Dumez Regression(r188698): http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header.html is very flaky https://bugs.webkit.org/show_bug.cgi?id=148205 Reviewed by Antti Koivisto. After r188640, successful revalidation of resources in the memory cache would cause us to drop the corresponding resource in the disk cache. This patch addresses the issue by not removing the cache entry if the response is a successful revalidation (i.e. status code == 304). Longer term, we should probably update the entry in the disk cache (if it exists) when it is revalidated by the memory cache. Currently, revalidation by the memory cache bypasses the disk cache and goes straight to the network. Then, when the response comes back as a 304, we try and store the response in the cache. However, a 304 status code is not cacheable so the cache rejects it. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::store): 2015-10-02 Babak Shafiei Merge r188640. 2015-08-19 Chris Dumez WebKit may keep outdated entry in the disk cache after a reload https://bugs.webkit.org/show_bug.cgi?id=148137 Reviewed by Antti Koivisto. WebKit would keep outdated entry in the disk cache after a reload in the following scenario: 1. We have an entry in the cache 2. The user reloads 3. We get a fresh resource from the network but this one is not cacheable In this case, we now remove the stale entry from the cache to make sure it is not served to following requests (e.g. history navigations). * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didFinishLoading): Remove the entry from the cache if its redirection is no longer cacheable. * NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::Cache::store): If we make the decision not to store the response, then remove the entry in the cache for this resource if it exists. (WebKit::NetworkCache::Cache::remove): * NetworkProcess/cache/NetworkCache.h: Add new remove() overload taking a ResourceRequest argument so the call site does not have the compute the key. * NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::removeFromPendingWriteOperations): (WebKit::NetworkCache::Storage::remove): * NetworkProcess/cache/NetworkCacheStorage.h: When we're asked to remove an entry with a given key, also remove it from the pending write operations. This pre-existing bug would prevent the new layout test from passing. 2015-10-02 Babak Shafiei Merge r188405. 2015-08-13 Wenson Hsieh A focused node should not be assisted when handling touch events synchronously https://bugs.webkit.org/show_bug.cgi?id=147836 Reviewed by Enrica Casucci. Makes interaction with touch handlers no longer assist the currently focused element in the general case. Added plumbing to reassist a currently focused node when dispatching touch events, so that an input that programmatically focuses itself and prevents default on a touch event will be properly assisted when it has been programmatically focused (either through Javascript or the autofocus attribute) prior to receiving the touch event. This patch also removes the now unnecessary special-casing of the Gmail settings app that currently makes the keyboard deploy upon autofocus. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Removed special case to avoid the early return for Gmail Add Account. * WebProcess/WebCoreSupport/WebChromeClient.h: Added a handler for refocusing an element. * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: (WebKit::WebChromeClient::elementDidRefocus): Makes refocusing an element trigger input assistance on iOS. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::dispatchTouchEvent): Removes logic to focus the currently focused element upon receiving a touch event. 2015-10-01 Babak Shafiei Merge r190418. 2015-10-01 Antti Koivisto Network cache: Subresource referer header wrong after cached redirect https://bugs.webkit.org/show_bug.cgi?id=149709 rdar://problem/22917174 Reviewed by Chris Dumez. If a main resource is loaded from a cache entry that involved redirects the document will end up setting the Referer-headers of the subresources to the request URL not the redirected URL * NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): If a cache entry involved a redirect synthesize a minimal willSendRequest message so that WebCore side runs through the same code paths as when receiving a redirect from network. 2015-09-21 Babak Shafiei Roll out r189944. 2015-09-20 Babak Shafiei Merge r189997. 2015-09-18 Andy Estes [iOS] did{Start,Finish}LoadForQuickLookDocumentInMainFrame is never called on WKNavigationDelegate https://bugs.webkit.org/show_bug.cgi?id=149360 Reviewed by Tim Horton. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::didStartLoadForQuickLookDocumentInMainFrame): Called on m_navigationDelegate if non-null. (WebKit::WebPageProxy::didFinishLoadForQuickLookDocumentInMainFrame): Ditto. 2015-09-20 Babak Shafiei Merge r189944. 2015-09-17 Beth Dakin Heavy taps on links are sometimes interpreted as the preview gesture https://bugs.webkit.org/show_bug.cgi?id=149304 -and corresponding- rdar://problem/22689258 Reviewed by Tim Horton. If the preview gesture starts and stop and less than 250 milliseconds have passed, then call _attemptClickAtLocation to treat it as a normal tap. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): (-[WKContentView _interactionStartedFromPreviewItemController:]): (-[WKContentView _interactionStoppedFromPreviewItemController:]): 2015-09-03 Babak Shafiei Merge r188991. 2015-08-26 Wenson Hsieh Fix crash due to animationDidEnd called on deallocated RemoteLayerTreeHost https://bugs.webkit.org/show_bug.cgi?id=148442 Reviewed by Tim Horton. A PlatformCAAnimationRemote's backpointer to a deallocated RemoteLayerTreeHost is not invalidated when its host removes its reference to it. * UIProcess/mac/RemoteLayerTreeHost.mm: (WebKit::RemoteLayerTreeHost::layerWillBeRemoved): Invalidate a backpointer from the PlatformCAAnimationRemotes to the RemoteLayerTreeHost. 2015-08-26 Babak Shafiei Merge r188933. 2015-08-25 Beth Dakin Speculative build fix. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): 2015-08-26 Babak Shafiei Merge r188924. 2015-08-25 Beth Dakin Long press gesture recognizer should adjust delay based on other recognizers https://bugs.webkit.org/show_bug.cgi?id=148402 -and corresponding- rdar://problem/22278723 Reviewed by Tim Horton. Call _setAdjustsDelayBasedOnOtherRecognizers with a value of YES. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): 2015-08-12 Babak Shafiei Merge r188349. 2015-08-12 Enrica Casucci Element interaction should not be canceled when the menu is already being shown. https://bugs.webkit.org/show_bug.cgi?id=147945 rdar://problem/22206433 Reviewed by Beth Dakin. When preview is canceled by the action menu gesture, we should not stop interacting with the element, since the information about the element is used for the menu actions. We now expose a new method in the action sheet assistant to know if the action sheed is being shown and we use this as an indication that we should not stop the interaction with the element. * UIProcess/ios/WKActionSheetAssistant.h: * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant isShowingSheet]): Added. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interactionStoppedFromPreviewItemController:]): Do not stop the interaction if the sheet is being shown. 2015-08-11 Matthew Hanson Merge r188285. rdar://problem/22206433 2015-08-11 Beth Dakin REGRESSION (r188053): Sometimes unable to save an image from Google Search/ imgur via long press https://bugs.webkit.org/show_bug.cgi?id=147896 Reviewed by Enrica Casucci. http://trac.webkit.org/changeset/188053 added code to call cleanupSheet when the long press gesture is cancelled. However, the gesture will be called with the cancelled state when then user taps an item in the action sheet (such as “save image”), and sometimes the “cancel” comes in before the image has been saved. That is a problem because we need to avoid cleaning up the sheet until after the image is saved. Before that patch, we never cleaned up the sheet on cancel, so this patch goes back to that behavior. We also have to remove some assertions that assume that everything will be totally cleaned up when a new sheet is created, but that is not necessarily true due to interactions between the preview gesture and the long press gesture. Remove assertions. * UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]): (-[WKActionSheetAssistant showImageSheet]): (-[WKActionSheetAssistant showLinkSheet]): (-[WKActionSheetAssistant showDataDetectorsSheet]): Revert the part of Enrica’s patch that called cleanupSheet when the gesture is cancelled. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _longPressRecognized:]): 2015-08-10 Babak Shafiei Merge r188223. 2015-08-10 Commit Queue Unreviewed, rolling out r187131 and r187286. https://bugs.webkit.org/show_bug.cgi?id=147839 Causing mroe frequent crashes with invalid layer bounds (rdar://problem/21465328) (Requested by smfr on #webkit). Reverted changesets: "[iOS] Menu drop down such as on nike.com does not stay" https://bugs.webkit.org/show_bug.cgi?id=147047 http://trac.webkit.org/changeset/187131 "[iOS] REGRESSION (187131): Loading CuteOverload zooms in to the top left corner." https://bugs.webkit.org/show_bug.cgi?id=147251 http://trac.webkit.org/changeset/187286 2015-08-09 Babak Shafiei Merge r188162. 2015-08-07 Wenson Hsieh Temporarily allow programmatic input assistance for adding Gmail account https://bugs.webkit.org/show_bug.cgi?id=147792 Reviewed by Enrica Casucci. Temporary fix for keyboard input sliding out and immediately back in upon user interaction in the Gmail 2-factor authentication page. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Early return no longer triggers due to lack of user interaction when adding a new Gmail account through Settings. 2015-08-07 Lucas Forschler Merge r188115 2015-08-06 Beth Dakin TextIndicator can have stale contentImage data and crash https://bugs.webkit.org/show_bug.cgi?id=147770 -and corresponding- rdar://problem/22181735 Reviewed by Tim Horton. If there is no contentImage or contentImageWithHighlight, set them to nullptr. * Shared/WebCoreArgumentCoders.cpp: (IPC::ArgumentCoder::decode): 2015-08-07 Lucas Forschler Merge r188112 2015-08-06 Dan Bernstein Fixed all the builds after trying to fix the non-HAVE(LINK_PREVIEW) build. * UIProcess/ios/WKContentViewInteraction.mm: 2015-08-07 Lucas Forschler Merge r188111 2015-08-06 Dan Bernstein Fixed the non-HAVE(LINK_PREVIEW) build. * UIProcess/ios/WKContentViewInteraction.mm: 2015-08-07 Lucas Forschler Merge r188109 2015-08-06 Enrica Casucci Cleanup action sheet only when long press is canceled (non ended). https://bugs.webkit.org/show_bug.cgi?id=147766 rdar://problem/22181842 Reviewed by Tim Horton. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _longPressRecognized:]): 2015-08-07 Lucas Forschler Merge r188058 2015-08-06 Enrica Casucci Build fix for iOS after http://trac.webkit.org/changeset/188053. Unreviewed. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _registerPreview]): 2015-08-07 Lucas Forschler Merge r188053 2015-08-06 Enrica Casucci Allow long press to cancel link preview. https://bugs.webkit.org/show_bug.cgi?id=147743 rdar://problem/22128839 Reviewed by Tim Horton. We should be able to show the context menu at the beginnig of link preview. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _removeDefaultGestureRecognizers]): (-[WKContentView _addDefaultGestureRecognizers]): (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): (-[WKContentView _longPressRecognized:]): (-[WKContentView _singleTapRecognized:]): (-[WKContentView _registerPreview]): (-[WKContentView _unregisterPreview]): 2015-08-06 Babak Shafiei Roll out r188053. 2015-08-06 Babak Shafiei Roll out r188058. 2015-08-06 Babak Shafiei Merge r188058. 2015-08-06 Enrica Casucci Build fix for iOS after http://trac.webkit.org/changeset/188053. Unreviewed. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _registerPreview]): 2015-08-06 Babak Shafiei Merge r188053. 2015-08-06 Enrica Casucci Allow long press to cancel link preview. https://bugs.webkit.org/show_bug.cgi?id=147743 rdar://problem/22128839 Reviewed by Tim Horton. We should be able to show the context menu at the beginnig of link preview. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _removeDefaultGestureRecognizers]): (-[WKContentView _addDefaultGestureRecognizers]): (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): (-[WKContentView _longPressRecognized:]): (-[WKContentView _singleTapRecognized:]): (-[WKContentView _registerPreview]): (-[WKContentView _unregisterPreview]): 2015-08-06 Babak Shafiei Merge r186849. 2015-07-14 Enrica Casucci [iOS] Add support for updateSelectionWithExtentPoint:withBoundary. https://bugs.webkit.org/show_bug.cgi?id=146951 rdar://problem/20864286 Reviewed by Tim Horton. Add implementation for new method used by text selection engine on iOS. The new function modifies the selection near the given point and snaps it at the boundary of the specified granularity. * UIProcess/WebPageProxy.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView updateSelectionWithExtentPoint:completionHandler:]): (-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]): (-[WKContentView _characterBeforeCaretSelection]): * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::updateSelectionWithExtentPoint): (WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary): (WebKit::WebPageProxy::requestDictationContext): * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::rangeForGranularityAtPoint): (WebKit::WebPage::selectTextWithGranularityAtPoint): (WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): 2015-08-05 Matthew Hanson Merge r187962. rdar://problem/21827815 2015-08-05 Daniel Bates REGRESSION (r185111): Clicking phone numbers doesn't prompt to call sometimes https://bugs.webkit.org/show_bug.cgi?id=147678 Reviewed by Brady Eidson. Teach WebKit to save and restore the "should open external URLs" policy. * Shared/SessionState.cpp: (WebKit::isValidEnum): Added. (WebKit::PageState::encode): Modified to encode the "should open external URLs" policy. (WebKit::PageState::decode): Modified to decode the "should open external URLs" policy. * Shared/SessionState.h: Added ShouldOpenExternalURLsPolicy to PageState (defaults to WebCore::ShouldOpenExternalURLsPolicy::ShouldNotAllow). * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _killWebContentProcessAndResetState]): Added; used in the unit test TestWebKitAPI/Tests/WebKit2Cocoa/ShouldOpenExternalURLsInNewWindowActions.mm. * UIProcess/API/Cocoa/WKWebViewPrivate.h: Declare -[WKWebView _killWebContentProcessAndResetState]. * UIProcess/mac/LegacySessionStateCoding.cpp: Defined constant sessionHistoryEntryShouldOpenExternalURLsPolicyKey. (WebKit::encodeSessionHistory): Modified to encode the "should open external URLs" policy. (WebKit::decodeSessionHistoryEntry): Modified to decode the "should open external URLs" policy. * WebProcess/WebCoreSupport/SessionStateConversion.cpp: (WebKit::toPageState): Copy "should open external URLs" policy from specified history item. (WebKit::toHistoryItem): Apply "should open external URLs" policy from PageState to HistoryItem. 2015-08-05 Matthew Hanson Merge r187764. rdar://problem/22077836 2015-08-03 Beth Dakin Need WKWebView API to enable/disable link preview https://bugs.webkit.org/show_bug.cgi?id=147573 -and corresponding- rdar://problem/22077836 Reviewed by Dan Bernstein. WKView implementation. * UIProcess/API/Cocoa/WKViewPrivate.h: New API. Call into WKView to handle Mac. * UIProcess/API/Cocoa/WKWebView.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView initWithFrame:configuration:]): (-[WKWebView allowsLinkPreview]): (-[WKWebView setAllowsLinkPreview:]): Remove the SPI declaration from WKWebViewPrivate in order to make this API. * UIProcess/API/Cocoa/WKWebViewPrivate.h: Handle the Mac side. * UIProcess/API/mac/WKView.mm: (-[WKView viewDidMoveToWindow]): (-[WKView initWithFrame:processPool:configuration:webView:]): (-[WKView allowsBackForwardNavigationGestures]): (-[WKView allowsLinkPreview]): (-[WKView setAllowsLinkPreview:]): Don’t register previews when link preview is prevented. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _registerPreview]): 2015-08-05 Matthew Hanson Merge r187756. rdar://problem/22119648 2015-08-03 Tim Horton [iOS] Link previews sometimes don't hide the link highlight https://bugs.webkit.org/show_bug.cgi?id=147585 Reviewed by Beth Dakin. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interactionStartedFromPreviewItemController:]): (-[WKContentView _interactionStoppedFromPreviewItemController:]): (-[WKContentView _previewItemController:didDismissPreview:committing:]): (-[WKContentView _previewItemController:willPresentPreview:forPosition:inSourceView:]): Deleted. Use interactionStarted/Stopped, which are always called, instead of didDismiss/willPresent, which are only called if we return a custom view controller from _presentedViewControllerForPreviewItemController. We continue using didDismiss to inform clients of dismissal because they'll only care if they customized the view controller. 2015-08-03 Matthew Hanson Merge r187751. rdar://problem/22018044 2015-08-03 Wenson Hsieh Inputs with the autofocus attribute cause the keyboard to not deploy https://bugs.webkit.org/show_bug.cgi?id=147555 Reviewed by Andreas Kling. Upon submitting a form by pressing "Go" on the keyboard, an on the next page with the autofocus attribute may become non-interactible. When attempting to tap on the input, nothing seems to happen. This is because the state of WebPage upon invoking WebPage::elementDidFocus indicates (incorrectly) that the input element is already focused, and therefore hits an early return. To solve this, we explicitly reset m_hasFocusedDueToUserInteraction upon transitioning to a new page. * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didStartPageTransition): On iOS, resets m_hasFocusedDueToUserInteraction as well. It was previously thought that this would be handled by blur() called on the assisted element when submitting a form. However, pressing "Go" on the iOS keyboard is an implicit submission and does not trigger a blur event. 2015-07-31 Matthew Hanson Merge r187614. rdar://problem/22064327 2015-07-30 Eric Carlson [iOS] Set AirPlay discovery mode to disabled when page is hidden https://bugs.webkit.org/show_bug.cgi?id=147455 Reviewed by Enrica Casucci. * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: (-[WKAirPlayRoutePicker _dismissAirPlayRoutePickerIPad]): Set discovery mode to disabled after the picker has been closed. (-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]): Ditto. 2015-07-31 Lucas Forschler Merge r187530 2015-07-28 Chris Fleizach AX: iOS: VoiceOver hangs indefinitely when an JS alert appears https://bugs.webkit.org/show_bug.cgi?id=147386 Reviewed by Anders Carlsson. Support the iOS platform API to notify accessibility clients when the WebProcess is about to suspend (because of some modal dialog). Luckily, we did all the hardwork for OSX a few years ago to support this paradigm. * Platform/IPC/mac/ConnectionMac.mm: (IPC::AccessibilityProcessSuspendedNotification): (IPC::Connection::willSendSyncMessage): (IPC::Connection::didReceiveSyncReply): 2015-07-31 Lucas Forschler Merge r187522 2015-07-28 Said Abou-Hallawa [iOS] REGRESSION(r168075): Fullscreen web video doesn't pause on screen lock https://bugs.webkit.org/show_bug.cgi?id=147269 Reviewed by Andreas Kling. Media elements should pause when the application is going to EnterBackground under lock regardless whether it is in full screen or not. * Platform/spi/ios/UIKitSPI.h: Forward declare [UIApplication isSuspendedUnderLock]. * UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationDidEnterBackground): [UIApp isSuspendedUnderLock] can only be called in the UIProcess. We need to call it here and pass it to the WebPage in the WebProcess as part of the ApplicationDidEnterBackground message. * WebProcess/WebPage/WebPage.h: * WebProcess/WebPage/WebPage.messages.in: Add the new parameter: 'isSuspendedUnderLock' to the ApplicationDidEnterBackground message. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::applicationDidEnterBackground): On iOS, the WebPage needs to notify the MediaSessionManagerIOS that it received the message ApplicationDidEnterBackground. 2015-07-31 Lucas Forschler Merge r187491 2015-07-28 Jer Noble [iOS] Notify fullscreen controller in UIProcess whether external playback is allowed https://bugs.webkit.org/show_bug.cgi?id=147343 Reviewed by Brady Eidson. Pass the boolean property wirelessVideoPlaybackDisabled across the UIProcess/WebProcess boundary. * UIProcess/ios/WebVideoFullscreenManagerProxy.mm: (WebKit::WebVideoFullscreenManagerProxy::setWirelessVideoPlaybackDisabled): * WebProcess/ios/WebVideoFullscreenManager.mm: (WebKit::WebVideoFullscreenInterfaceContext::setWirelessVideoPlaybackDisabled): (WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager): (WebKit::WebVideoFullscreenManager::setWirelessVideoPlaybackDisabled): 2015-07-31 Lucas Forschler Merge r187471 2015-07-27 Tim Horton First in-window viewStateChange synchronously blocks despite not previously being in-window https://bugs.webkit.org/show_bug.cgi?id=147344 Reviewed by Simon Fraser. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updateViewState): (WebKit::WebPageProxy::dispatchViewStateChange): The whole point of m_viewWasEverInWindow was so that we would not synchronously wait when a view was added to a window for the first time, only all subsequent times. However, since m_viewWasEverInWindow was being set *before* being checked in dispatchViewStateChange, we were always blocking. This is a huge waste of main-thread time, because there's no reason to wait for the first paint if you've never seen the view before (and shouldn't expect it to have content). Instead, set the flag after dispatching a view state change, so it becomes "have we ever sent a view state with IsInWindow set" instead. 2015-07-31 Lucas Forschler Merge r187462 2015-07-27 Tim Horton [iOS] Long press or link click can sometimes trigger during/after a preview https://bugs.webkit.org/show_bug.cgi?id=147338 Reviewed by Enrica Casucci. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _longPressRecognized:]): Bail if we're previewing. (-[WKContentView _dataForPreviewItemController:atPosition:type:]): (-[WKContentView _presentedViewControllerForPreviewItemController:]): Always avoid allowing clicks and start interaction when previewing a link. 2015-07-31 Lucas Forschler Merge r187459 2015-07-27 Andreas Kling [iOS] Occasional crashes in WebPage::elementDidBlur()'s async block. Reviewed by Anders Carlsson. Protect the WebPage object until the dispatch_async block has finished. I have no way to repro this, but there's evidence of some crashing here. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::elementDidBlur): 2015-07-31 Lucas Forschler Merge r187375 2015-07-24 Anders Carlsson WKWebsiteDataStore remove methods don't properly delete cookies https://bugs.webkit.org/show_bug.cgi?id=147282 rdar://problem/21948230 Reviewed by Sam Weinig. * NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): Call deleteCookiesForHostnames instead of iterating over each hostname. * WebProcess/Cookies/WebCookieManager.cpp: (WebKit::WebCookieManager::deleteCookiesForHostname): Call deleteCookiesForHostnames. 2015-07-30 Matthew Hanson Merge r187565. rdar://problem/22061043 2015-07-29 Enrica Casucci Preview should not start if touch handler prevents default. https://bugs.webkit.org/show_bug.cgi?id=147423 rdar://problem/22061043 Reviewed by Tim Horton. We need to check if _highlightLongPressCanClick has not been reset before we allow the preview. It can be reset by a touch handler preventing default. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): 2015-07-30 Matthew Hanson Merge r187517. rdar://problem/21645007 2015-07-28 Yongjun Zhang Bounds in InteractionInformationAtPosition should be always in main frame coordinate space. https://bugs.webkit.org/show_bug.cgi?id=147372 When we prepare the bounds for InteractionInformationAtPosition, we should convert the rect to main frame space since WKContent in UIProcess expects it to be in the web view space. Reviewed by Tim Horton. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): Convert the bounding rect to main frame space if the element is inside a sub-frame. 2015-07-30 Matthew Hanson Merge r187478. rdar://problem/21838764 2015-07-27 Andreas Kling WebsiteDataStore should clean up its storage in the network process when destroyed. Reviewed by Darin Adler. Have ~WebsiteDataStore() send a DestroyPrivateBrowsingSession message to all networking processes for ephemeral sessions. This plugs a NetworkStorageSession leak that could retain a large CFNetwork object graph. This complements r187115 which did the same for network process storage owned by API::Session objects. * UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::~WebsiteDataStore): 2015-07-27 Babak Shafiei Roll out r187376. 2015-07-27 Matthew Hanson Merge r187412. rdar://problem/22003112 2015-07-26 Chris Dumez [WK2][iOS] WebContent process main thread should have fixed priority https://bugs.webkit.org/show_bug.cgi?id=147313 Reviewed by Darin Adler. WebContent process main thread should have fixed priority on iOS 9. Priority decay regresses PLT and fixing the main thread's priority gives up a ~3% progression on warm PLT (tested on iPhone 5s). * WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): 2015-07-27 Matthew Hanson Merge r187376. rdar://problem/22000647 2015-07-24 Yongjun Zhang Don't create UIWebFormAccessory if we don't require accessory view. https://bugs.webkit.org/show_bug.cgi?id=147283 Don't try to intialize _formAccessoryView if requiresAccessoryView returns false since we don't need it yet. Reviewed by Dan Bernstein. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView inputAccessoryView]): 2015-07-27 Babak Shafiei Merge r187364. 2015-07-24 Anders Carlsson Networking process crash in NetworkConnectionToWebProcess::convertMainResourceLoadToDownload while attempting to download a blob https://bugs.webkit.org/show_bug.cgi?id=147276 rdar://problem/21423353 Reviewed by Andreas Kling. We currently don't support downloading blobs, so for now just bail if we encounter a null loader inside convertMainResourceLoadToDownload (which happens when trying to download a blob URL). * NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::didCleanupResourceLoader): Rewrite the assertion to be more clear - it's fine to do an extra hash lookup in debug builds. (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): Bail if loader is null. 2015-07-26 Babak Shafiei Merge r187345. 2015-07-24 Simon Fraser Recode.net gets into a continual resize loop in split fullscreen https://bugs.webkit.org/show_bug.cgi?id=147266 rdar://problem/21409047 Reviewed by Tim Horton. In split fullscreen, we use fixed layout and scale to shrink pages down to fit a given width. This is re-evaluated every time the document width changes. However some pages, like recode.net, end up continually resizing because when laid out unconstrained they use a narrower width than when laid out with a fixed layout size. In fixed layout, they actually use more width than the fixed layout size. Detect and break this cycle by just not re-scaling when we've done one fixed layout, and the document is now taking more width than the fixed layout width. * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded): 2015-07-26 Babak Shafiei Merge r187178. 2015-07-21 Simon Fraser Add logging for TiledCoreAnimationDrawingArea resizing https://bugs.webkit.org/show_bug.cgi?id=147180 Reviewed by Tim Horton. Add a "Resize" log channel for WebKit2, and use it to log data in scaleViewToFitDocumentIfNeeded(). * Platform/Logging.h: * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::scaleViewToFitDocumentIfNeeded): 2015-07-24 Jer Noble Merge r187251, r187252, r187262, r187263, r187272, r187289. rdar://problem/20689512 2015-07-23 Alex Christensen Fix 32-bit build after r187272. * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): Added some WK_API_ENABLED. 2015-07-23 Alex Christensen [iOS] Unreviewed build fix after r187251. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): Use the correct name for the boolean to pass along to SetAllowsMediaDocumentInlinePlayback. 2015-07-21 Jer Noble Notify the UI delegate when a MediaDocument's natural size changes https://bugs.webkit.org/show_bug.cgi?id=147182 Reviewed by Simon Fraser. Pipe notifications of media document natural size changes up from the chrome client, through to the UIProcess, through the page client, through the WKWebView, to the UIDelegate. * UIProcess/API/APIUIClient.h: (API::UIClient::mediaDocumentNaturalSizeChanged): * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _mediaDocumentNaturalSizeChanged:]): * UIProcess/API/Cocoa/WKWebViewInternal.h: * UIProcess/Cocoa/UIDelegate.h: * UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::mediaDocumentNaturalSizeChanged): * UIProcess/PageClient.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::mediaDocumentNaturalSizeChanged): * UIProcess/WebPageProxy.h: * UIProcess/WebPageProxy.messages.in: * UIProcess/ios/PageClientImplIOS.h: * UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): * UIProcess/mac/PageClientImpl.h: * UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): * WebProcess/WebCoreSupport/WebChromeClient.h: * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::mediaDocumentNaturalSizeChanged): * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::mediaDocumentNaturalSizeChanged): * WebProcess/WebPage/WebPage.h: * UIProcess/API/gtk/PageClientImpl.h: Add default, empty implementation of new pure-virtual method. * UIProcess/efl/WebViewEfl.h: Ditto. 2015-07-23 Jer Noble Unreviewed build fix after r187251; rename flag -> allows. * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): 2015-07-23 Jer Noble [WK2] Add a WKWebView property for whether the view is displaying a media document https://bugs.webkit.org/show_bug.cgi?id=147233 Reviewed by Beth Dakin. Add a _isDisplayingStandaloneMediaDocument property, which queries the frame for whether the current MIME type is one which our media engines support. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _isDisplayingStandaloneMediaDocument]): * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::isDisplayingStandaloneMediaDocument): * UIProcess/WebFrameProxy.h: 2015-07-21 Jer Noble [iOS] Add an explicit API to allow media documents to (temporarily) play inline https://bugs.webkit.org/show_bug.cgi?id=147181 Reviewed by Beth Dakin. Add a WKWebView(Private) API which allows MediaDocuments loaded by the view to play their contents inline, regardless of whether inline playback is restricted on the current device. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setRequiresUserActionForMediaPlayback:]): Added. Pass through to WebPageProxy. (-[WKWebView _allowsMediaDocumentInlinePlayback]): Ditto. * UIProcess/API/Cocoa/WKWebViewPrivate.h: * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::allowsMediaDocumentInlinePlayback): Simple getter. (WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): Set, and conditionally pass the new value to WebPage. * UIProcess/WebPageProxy.h: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setAllowsMediaDocumentInlinePlayback): Set, and conditionally notify WebCore page of the change. * WebProcess/WebPage/WebPage.h: (WebKit::WebPage::allowsMediaDocumentInlinePlayback): Simple getter. * WebProcess/WebPage/WebPage.messages.in: Add new messages. 2015-07-24 Matthew Hanson Merge r187268. rdar://problem/21664211 2015-07-23 Enrica Casucci Removing one incorrect annotation from the previous change. Unreviewed. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: 2015-07-24 Matthew Hanson Merge r187288. rdar://problem/21929532 2015-07-23 Dan Bernstein REGRESSION (r184026): Safari AutoFill with Contact info for phone number is broken https://bugs.webkit.org/show_bug.cgi?id=147249 Reviewed by Sam Weinig. * Shared/API/Cocoa/WKRemoteObjectCoder.mm: (encodeObject): Use encodeString only for strings that encode as NSString or NSMutableString. It can’t encode arbitrary NSString subclasses. (decodeObject): Use decodeString for NSMutableString as well. 2015-07-24 Matthew Hanson Merge r187286. rdar://problem/21953359 2015-07-23 Zalan Bujtas [iOS] REGRESSION (187131): Loading CuteOverload zooms in to the top left corner. https://bugs.webkit.org/show_bug.cgi?id=147251 rdar://problem/21953359 Calling zoomToRect() should result in essentially the same zoom scale as if we called setZoomScale with the new page scale factor. Reviewed by Benjamin Poulain. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): 2015-07-24 Matthew Hanson Merge r187267. rdar://problem/21664211 2015-07-23 Enrica Casucci [iOS] Add another preview delegate for didDismissPreview. https://bugs.webkit.org/show_bug.cgi?id=147241 rdar://problem/21664211 Reviewed by Tim Horton and Yongjun Zhang. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _previewItemController:didDismissPreview:committing:]): 2015-07-24 Matthew Hanson Merge r187266. rdar://problem/21910578 2015-07-23 Dan Bernstein Second pass at [iOS] Keyboard shortcuts that take focus away from the web view end up typing a letter into the newly focused field https://bugs.webkit.org/show_bug.cgi?id=146732 Reviewed by Darin Adler. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _interpretKeyEvent:isCharEvent:]): Rather than checking if the view is first responder, which it might still be when the Web Content processes invokes this callback, check if we are in editable content before forwarding the event to the keyboard. 2015-07-24 Matthew Hanson Merge r187255. rdar://problem/21875510 2015-07-23 Yongjun Zhang Adopt the new _previewItemControllerDidCancelPreview delegate method. https://bugs.webkit.org/show_bug.cgi?id=147238 Don't allow hightlight long press to trigger tap if the link preview is cancelled because the link is not preview-able. Reviewed by Beth Dakin. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _previewItemControllerDidCancelPreview:]): 2015-07-24 Matthew Hanson Merge r187250. rdar://problem/21968460 2015-07-23 Beth Dakin Should not allow previews of 1x1 images https://bugs.webkit.org/show_bug.cgi?id=147237 -and corresponding- rdar://problem/21968460 Reviewed by Tim Horton. 1x1 images are used on some sites to cover actual images, which leads to a misleading preview experience. There is not any reason why you would really want to preview an image this small nor any reason to believe that the preview would result in anything useful. * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-07-24 Matthew Hanson Merge r187248. rdar://problem/21949735 2015-07-23 Brady Eidson Crash in WebPlatformStrategies::createPingHandle - Deref a null NetworkingContext. and https://bugs.webkit.org/show_bug.cgi?id=147227 Reviewed by Alexey Proskuryakov. * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: (WebKit::WebPlatformStrategies::createPingHandle): Skip it if there's a null NetworkingContext. 2015-07-24 Matthew Hanson Merge r187215. rdar://problem/21032083 2015-07-22 James Savage Use updated CoreAnimation snapshot SPI. https://bugs.webkit.org/show_bug.cgi?id=147197 Reviewed by Tim Horton. Patch by James Savage. * Platform/spi/ios/UIKitSPI.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): 2015-07-24 Matthew Hanson Merge r187212. rdar://problem/21945775 2015-07-22 Timothy Horton Fix the build * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView cleanupInteraction]): 2015-07-24 Matthew Hanson Merge r187199. rdar://problem/21945775 2015-07-22 Tim Horton Fix the build * UIProcess/ios/WKContentViewInteraction.h: 2015-07-24 Matthew Hanson Merge r187198. rdar://problem/21945775 2015-07-22 Tim Horton [iOS] Adjust the preview architecture https://bugs.webkit.org/show_bug.cgi?id=147203 Reviewed by Simon Fraser. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _dataForPreviewItemController:atPosition:type:]): Link previews should win over image previews if both are possible. 2015-07-24 Matthew Hanson Merge r187193. rdar://problem/21945775 2015-07-22 Tim Horton [iOS] Adjust the preview architecture https://bugs.webkit.org/show_bug.cgi?id=147203 Reviewed by Beth Dakin. * Platform/spi/ios/UIKitSPI.h: * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setAllowsLinkPreview:]): Deleted. * UIProcess/ios/WKContentView.mm: (-[WKContentView willMoveToWindow:]): Deleted. * UIProcess/ios/WKContentViewInteraction.h: * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView cleanupInteraction]): (-[WKContentView _registerPreview]): (-[WKContentView _unregisterPreview]): (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): (-[WKContentView _dataForPreviewItemController:atPosition:type:]): (-[WKContentView _presentationRectForPreviewItemController:]): (-[WKContentView _presentedViewControllerForPreviewItemController:]): (-[WKContentView _previewItemController:commitPreview:]): (-[WKContentView _previewItemController:willPresentPreview:forPosition:inSourceView:]): (-[WKContentView _previewItemController:didDismissPreview:committing:]): (-[WKContentView _presentationSnapshotForPreviewItemController:]): (-[WKContentView _presentationRectsForPreviewItemController:]): (-[WKContentView gestureRecognizerShouldBegin:]): Deleted. (-[WKContentView _registerPreviewInWindow:]): Deleted. (-[WKContentView _unregisterPreviewInWindow:]): Deleted. (-[WKContentView previewViewControllerForPosition:inSourceView:]): Deleted. (-[WKContentView commitPreviewViewController:]): Deleted. (-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): Deleted. (-[WKContentView didDismissPreviewViewController:committing:]): Deleted. Register and unregister in setup/cleanupInteraction instead of when moving between windows. Implement 'shouldBegin' instead of interacting directly with the recognizer. Make use of system enums instead of our own. Let UIPreviewItemController handle shrink-wrapping and the indicator view. 2015-07-24 Matthew Hanson Merge r187174. rdar://problem/21818117 2015-07-22 Sam Weinig Encode/Decode underlying errors when serializing NSErrors https://bugs.webkit.org/show_bug.cgi?id=147199 Reviewed by Anders Carlsson. * Shared/mac/WebCoreArgumentCodersMac.mm: (IPC::ArgumentCoder::decode): (IPC::encodeNSError): (IPC::ArgumentCoder::encodePlatformData): (IPC::decodeNSError): (IPC::ArgumentCoder::decodePlatformData): Break out encoding/decoding of the NSErrors into a helpers so they can be called for the underlying error. 2015-07-24 Matthew Hanson Merge r187173. rdar://problem/21637698 2015-07-22 Beth Dakin Animated images should animate in previews https://bugs.webkit.org/show_bug.cgi?id=147173 -and corresponding- rdar://problem/21637698 Reviewed by Dan Bernstein. InteractionInformationAtPosition needs to know if it’s an animated image. * Shared/InteractionInformationAtPosition.cpp: (WebKit::InteractionInformationAtPosition::encode): (WebKit::InteractionInformationAtPosition::decode): * Shared/InteractionInformationAtPosition.h: New delegate method to create a link preview view controller for animated images. * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Treat animated images more like link previews. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView previewViewControllerForPosition:inSourceView:]): Set info.isAnimatedImage * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation): 2015-07-24 Lucas Forschler Merge r187131 2015-07-21 Zalan Bujtas [iOS] Menu drop down such as on nike.com does not stay https://bugs.webkit.org/show_bug.cgi?id=147047 rdar://problem/21046961 Reviewed by Benjamin Poulain. This is a workaround for unintended scrolling while scaling. (Based on Benjamin Poulain's WIP patch for webkit.org/b/136904) In certain cases when scaling would result in moving the scrollview (which would trigger a scroll event on WebCore side), zoomRect is called instead of setZoomScale to ensure that the scroll position stays intact. * UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _didCommitLayerTree:]): 2015-07-24 Lucas Forschler Merge r187136 2015-07-21 Daniel Bates Fix the build following (https://bugs.webkit.org/show_bug.cgi?id=147112) * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::reinstateNetworkProcessAssertionState): Guard implementation with PLATFORM(IOS) since this logic is specific to the iOS port. 2015-07-23 Lucas Forschler Merge r187129 2015-07-21 Daniel Bates WTFCrash() in WebKit::WebProcess::networkConnection() https://bugs.webkit.org/show_bug.cgi?id=147112 Reviewed by Gavin Barraclough. Fixes an issue where a newly launched network process may be jetsam'd because it has not taken a process assertion between the time it was launched and the time when a web process makes use of it. Initially a network process does not have a process assertion. A process assertion is taken (if one has not been taken) for the network process when a process assertion is taken for at least one web process. When the network process crashes a WebProcess may ultimately launch a new network process in WebProcess::networkConnection(). The new network process may be jetsam'd immediately when the system is under some measure pressure because it has a low jetsam priority, 0 (since it does not have a process assertion and higher priority implies that a process is less likely to be jetsam'd). And the logic in WebProcess::networkConnection() explicitly calls CRASH() if the newly launched network process crashes immediately. Towards preventing the newly launched network process from being jetsam'd we should obtain a process assertion for it. * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::WebProcessPool): Initialize m_didNetworkProcessCrash to false. (WebKit::WebProcessPool::ensureNetworkProcess): If the network process crashed (m_didNetworkProcessCrash == true) then tell each process in the pool to reinstate their network activity token for the new network process. (WebKit::WebProcessPool::networkProcessCrashed): Set m_didNetworkProcessCrash to true when the network process crashed. * UIProcess/WebProcessPool.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::reinstateNetworkProcessAssertionState): Added. (WebKit::WebProcessProxy::didSetAssertionState): Add assert to ensure we never have both a background- and foreground- activity token for the network process. * UIProcess/WebProcessProxy.h: 2015-07-23 Lucas Forschler Merge r187117 2015-07-21 Tim Horton [iOS] Avoid using a TextIndicator if there are non-text things to indicate https://bugs.webkit.org/show_bug.cgi?id=147152 Reviewed by Beth Dakin. * UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView willPresentPreviewViewController:forPosition:inSourceView:]): * WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::shouldUseTextIndicatorForLink): (WebKit::WebPage::getPositionInformation): Fall back to a rectangular area instead of a TextIndicator if there are any non-inline elements inside the link. 2015-07-23 Lucas Forschler Merge r187115 2015-07-21 Andreas Kling API::Session should clean up its storage in the network process when destroyed. Reviewed by Anders Carlsson. Have ~Session() send a DestroyPrivateBrowsingSession message to all networking processes for ephemeral sessions. This plugs a NetworkStorageSession leak that could retain a large CFNetwork object graph. * UIProcess/API/APISession.cpp: (API::Session::~Session): 2015-07-23 Lucas Forschler Merge r187045 2015-07-20 Antti Koivisto NSURLCache fallback does not work on iOS due to sandboxing https://bugs.webkit.org/show_bug.cgi?id=146314 Reviewed by Anders Carlsson. This broke with earlier cache path computation changes. * NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): NSURLCache path is relative to the container cache path so "." is sufficient. This puts the cache files under /Library/Caches/com.apple.WebKit.Networking/ == Rolled over to ChangeLog-2015-07-23 ==