URL set by document.open() is not communicated to the UIProcess
[WebKit-https.git] / Source / WebKit / ChangeLog
index 756328e..9bf6a91 100644 (file)
+2019-04-16  Chris Dumez  <cdumez@apple.com>
+
+        URL set by document.open() is not communicated to the UIProcess
+        https://bugs.webkit.org/show_bug.cgi?id=196941
+        <rdar://problem/49237544>
+
+        Reviewed by Geoff Garen.
+
+        Whenever the UIProcess is notified of an explicit document.open() call, update the
+        PageLoadState to make sure the URL is up-to-date. Also make sure the page / process
+        knows it committed a load (i.e. It is no longer showing the initially empty document).
+
+        * UIProcess/PageLoadState.cpp:
+        (WebKit::PageLoadState::didExplicitOpen):
+        * UIProcess/PageLoadState.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didExplicitOpenForFrame):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchDidExplicitOpen):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+
+2019-04-16  Chris Dumez  <cdumez@apple.com>
+
+        Show prompt for device orientation access if the client does not implement the corresponding API delegate
+        https://bugs.webkit.org/show_bug.cgi?id=196971
+        <rdar://problem/49945840>
+
+        Reviewed by Alex Christensen.
+
+        Show prompt for device orientation access if the client does not implement the corresponding
+        API delegate, instead of rejecting access by default.
+
+        * UIProcess/Cocoa/UIDelegate.mm:
+        (WebKit::UIDelegate::UIClient::shouldAllowDeviceOrientationAndMotionAccess):
+        * UIProcess/Cocoa/WKOrientationAccessAlert.h: Added.
+        * UIProcess/Cocoa/WKOrientationAccessAlert.mm: Added.
+        (WebKit::presentOrientationAccessAlert):
+        * WebKit.xcodeproj/project.pbxproj:
+
+2019-04-16  Zalan Bujtas  <zalan@apple.com>
+
+        REGRESSION(r243557)[ContentChangeObserver] Need to double tap text formatting elements in MS Word web app
+        https://bugs.webkit.org/show_bug.cgi?id=196975
+        <rdar://problem/49489849>
+
+        Reviewed by Simon Fraser.
+
+        This patch ensures that we always proceed with synthetic click on form elements.
+
+        Covered by existing tests.
+
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::handleSyntheticClick):
+
+2019-04-16  Timothy Hatcher  <timothy@apple.com>
+
+        FrameView base background color always starts white.
+        https://bugs.webkit.org/show_bug.cgi?id=196976
+
+        Reviewed by Beth Dakin.
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::WebPage): Set m_backgroundColor before calling
+        WebFrame::createWithCoreMainFrame so the call to create the FrameView
+        for the empty page in transitionToCommittedForNewPage() gets
+        the correct color from WebPage.
+
+2019-04-16  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, fix the build with recent SDKs.
+
+        * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
+        (WebKit::WKWebViewState::store):
+
+2019-04-16  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r244321.
+        https://bugs.webkit.org/show_bug.cgi?id=196968
+
+        Causing all WK2 Debug builds to exit early after Assertion
+        failures. (Requested by ShawnRoberts on #webkit).
+
+        Reverted changeset:
+
+        "URL set by document.open() is not communicated to the
+        UIProcess"
+        https://bugs.webkit.org/show_bug.cgi?id=196941
+        https://trac.webkit.org/changeset/244321
+
+2019-04-15  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: CRASH when reopening tab with docked inspector on crashed page
+        https://bugs.webkit.org/show_bug.cgi?id=196954
+        <rdar://problem/48716433>
+
+        Reviewed by Ryosuke Niwa.
+
+        * UIProcess/mac/WebInspectorProxyMac.mm:
+        (WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
+
+2019-04-15  Chris Dumez  <cdumez@apple.com>
+
+        URL set by document.open() is not communicated to the UIProcess
+        https://bugs.webkit.org/show_bug.cgi?id=196941
+        <rdar://problem/49237544>
+
+        Reviewed by Geoffrey Garen.
+
+        Whenever the UIProcess is notified of an explicit document.open() call, update the
+        PageLoadState to make sure the URL is up-to-date. Also make sure the page / process
+        knows it committed a load (i.e. It is no longer showing the initially empty document).
+
+        * UIProcess/PageLoadState.cpp:
+        (WebKit::PageLoadState::didExplicitOpen):
+        * UIProcess/PageLoadState.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didExplicitOpenForFrame):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchDidExplicitOpen):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+
+2019-04-15  Alex Christensen  <achristensen@webkit.org>
+
+        Stop using hyphenationFactor
+        https://bugs.webkit.org/show_bug.cgi?id=196949
+        <rdar://problem/49779594>
+
+        Reviewed by Geoffrey Garen.
+
+        * UIProcess/Cocoa/WKSafeBrowsingWarning.mm:
+        (-[WKSafeBrowsingTextView initWithAttributedString:forWarning:]):
+        I added this use of hyphenationFactor in r241124 but the other changes in that revision make the use of hyphenationFactor redundant.
+        There is a reason to remove it in the radar.
+
+2019-04-15  Alex Christensen  <achristensen@webkit.org>
+
+        Forward declare WKWebView in _WKDiagnosticLoggingDelegate.h
+
+        * UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
+        This fixes builds where _WKDiagnosticLoggingDelegate.h is the only WebKit header included, such as my work on rdar://problem/35175989
+
+2019-04-15  Jer Noble  <jer.noble@apple.com>
+
+        Add a DiagnosticLogging method taking an arbitrary dictionary of values.
+        https://bugs.webkit.org/show_bug.cgi?id=196773
+
+        Reviewed by Alex Christensen.
+
+        In addition to adding the new logging delegate method (and piping everything into it), 
+        add a new APIObject class to represent a signed integer.
+
+        * Shared/API/APINumber.h:
+        * Shared/API/APIObject.h:
+        * Shared/Cocoa/APIObject.mm:
+        (API::Object::newObject):
+        * Shared/Cocoa/WKNSNumber.mm:
+        (-[WKNSNumber dealloc]):
+        (-[WKNSNumber objCType]):
+        (-[WKNSNumber getValue:]):
+        (-[WKNSNumber longLongValue]):
+        (-[WKNSNumber _apiObject]):
+        * Shared/UserData.cpp:
+        (WebKit::UserData::encode):
+        (WebKit::UserData::decode):
+        * UIProcess/API/APIDiagnosticLoggingClient.h:
+        * UIProcess/API/C/WKPageDiagnosticLoggingClient.h:
+        * UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
+        * UIProcess/Cocoa/DiagnosticLoggingClient.h:
+        * UIProcess/Cocoa/DiagnosticLoggingClient.mm:
+        (WebKit::DiagnosticLoggingClient::logDiagnosticMessageWithValueDictionary):
+        * UIProcess/ProvisionalPageProxy.cpp:
+        (WebKit::ProvisionalPageProxy::didReceiveMessage):
+        * UIProcess/WebPageDiagnosticLoggingClient.cpp:
+        (WebKit::WebPageDiagnosticLoggingClient::logDiagnosticMessageWithValueDictionary):
+        * UIProcess/WebPageDiagnosticLoggingClient.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::logDiagnosticMessageWithValueDictionary):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
+        (WebKit::WebDiagnosticLoggingClient::logDiagnosticMessageWithValueDictionary):
+        * WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
+
+2019-04-15  Dean Jackson  <dino@apple.com>
+
+        Provide option to not create a longpress gesture recognizer
+        https://bugs.webkit.org/show_bug.cgi?id=196937
+        <rdar://problem/49918278>
+
+        Build fix for iOS platforms that don't have link preview.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView setupInteraction]):
+
+2019-04-15  Brent Fulgham  <bfulgham@apple.com>
+
+        InjectedBundle parameters often need initialization function called before unarchiving
+        https://bugs.webkit.org/show_bug.cgi?id=189709
+        <rdar://problem/44573653>
+
+        Reviewed by Ryosuke Niwa.
+
+        Handle the case where the InjectedBundle parameters do not successfully decode because they contain
+        an unexpected class from the embedding program. If this happens, try decoding the bundle parameters
+        after the bundle initialiation function runs, which gives the embedding program the opportunity to
+        register additional classes that are safe for serialization.
+
+        Extend WKWebProcessPlugIn with a method that returns the names of any custom classes that need
+        to be serialized by the InjectedBundle.
+        
+        Create a new 'decodeBundleParameters' method that contains the logic that used to live in 'initialize'.
+        Revise 'initialize' to call this new method.
+
+        * WebProcess/InjectedBundle/InjectedBundle.h:
+        * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
+        (WebKit::InjectedBundle::initialize): Use the new method.
+        (WebKit::InjectedBundle::decodeBundleParameters): Added.
+        (WebKit::InjectedBundle::setBundleParameters): Use 'decodeObjectOfClasses' with the more complete
+        'classesForCoder' method to unarchive the passed bundle parameters, rather than the
+        NSDictionary-specific method, since InjectedBundles often encode other types of objects, and the
+        NSDictionary object may itself hold other kinds of objects.
+        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
+        (WebKit::WKWebProcessPlugIn::additionalClassesForParameterCoder): Added.
+
+2019-04-15  Dean Jackson  <dino@apple.com>
+
+        Provide option to not create a longpress gesture recognizer
+        https://bugs.webkit.org/show_bug.cgi?id=196937
+        <rdar://problem/49918278>
+
+        Reviewed by Antoine Quint.
+
+        A WebKitAdditions file has changed name to WKContentViewInteractionWKInteraction.mm.
+
+        Add a property to toggle if we should add a long press gesture
+        recognizer.
+
+        * UIProcess/ios/WKContentViewInteraction.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView setupInteraction]):
+        (shouldUsePreviewForLongPress):
+        (-[WKContentView shouldUsePreviewForLongPress]):
+
+2019-04-15  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] WebCore derived sources should only be referenced inside WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=196904
+
+        Reviewed by Konstantin Tokarev.
+
+        Remove reference to DERIVED_SOURCES_WEBCORE_DIR in PlatformMac.cmake.
+
+        * PlatformMac.cmake:
+
+2019-04-15  Zalan Bujtas  <zalan@apple.com>
+
+        DrawingArea should only capture painting related milestones
+        https://bugs.webkit.org/show_bug.cgi?id=196926
+        <rdar://problem/48003845>
+
+        Reviewed by Tim Horton.
+
+        While dispatching layout milestones (mixture of layout and painting items), the associated drawing areas should only capture the painting related milestones.
+        These captured milestones get dispatched later in the commit handler to ensure that they are not forwarded prematurely.
+        However the truly layout related milestones (e.g. DidFirstVisuallyNonEmptyLayout) should be dispatched right away with no delay.
+
+        * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
+        (WebKit::RemoteLayerTreeTransaction::newlyReachedPaintingMilestones const):
+        (WebKit::RemoteLayerTreeTransaction::setNewlyReachedPaintingMilestones):
+        (WebKit::RemoteLayerTreeTransaction::newlyReachedLayoutMilestones const): Deleted.
+        (WebKit::RemoteLayerTreeTransaction::setNewlyReachedLayoutMilestones): Deleted.
+        * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
+        (WebKit::RemoteLayerTreeTransaction::encode const):
+        (WebKit::RemoteLayerTreeTransaction::decode):
+        * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
+        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
+        * WebProcess/WebPage/DrawingArea.h:
+        (WebKit::DrawingArea::addMilestonesToDispatch):
+        (WebKit::DrawingArea::dispatchDidReachLayoutMilestone): Deleted.
+        * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
+        (WebKit::RemoteLayerTreeDrawingArea::addMilestonesToDispatch):
+        * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
+        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
+        (WebKit::RemoteLayerTreeDrawingArea::dispatchDidReachLayoutMilestone): Deleted.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::dispatchDidReachLayoutMilestone):
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
+        (WebKit::TiledCoreAnimationDrawingArea::addMilestonesToDispatch):
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+        (WebKit::TiledCoreAnimationDrawingArea::sendPendingNewlyReachedPaintingMilestones):
+        (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
+        (WebKit::TiledCoreAnimationDrawingArea::sendPendingNewlyReachedLayoutMilestones): Deleted.
+        (WebKit::TiledCoreAnimationDrawingArea::dispatchDidReachLayoutMilestone): Deleted.
+
+2019-04-15  John Wilander  <wilander@apple.com>
+
+        Send delayed Ad Click Attribution conversion requests to the click source
+        https://bugs.webkit.org/show_bug.cgi?id=196838
+        <rdar://problem/47650157>
+
+        Reviewed by Chris Dumez and Youenn Fablet.
+
+        This patch schedules a conversion request with appropriate data going to the
+        click source as a result of an ad click conversion.
+
+        WebKit::AdClickAttributionManager makes use of existing WebKit::PingLoad
+        infrastructure to make the request. This will probably be reworked into a
+        dedicated load class further on.
+
+        New test infrastructure allows for an override of both the conversion URL
+        and the 24-48 hour timer.
+
+        * NetworkProcess/AdClickAttributionManager.cpp: Added.
+        (WebKit::AdClickAttributionManager::ensureDestinationMapForSource):
+        (WebKit::AdClickAttributionManager::store):
+        (WebKit::AdClickAttributionManager::startTimer):
+            Convenience function to support test override.
+        (WebKit::AdClickAttributionManager::convert):
+            This function now sets the timer.
+        (WebKit::AdClickAttributionManager::fireConversionRequest):
+            Fire an individual request.
+        (WebKit::AdClickAttributionManager::firePendingConversionRequests):
+            This is the timer function that iterates over all pending attributions.
+        (WebKit::AdClickAttributionManager::clear):
+            Now clears the two new test settings members.
+        (WebKit::AdClickAttributionManager::toString const):
+        * NetworkProcess/AdClickAttributionManager.h: Renamed from Source/WebKit/NetworkProcess/NetworkAdClickAttribution.h.
+        (WebKit::AdClickAttributionManager::AdClickAttributionManager):
+        (WebKit::AdClickAttributionManager::setPingLoadFunction):
+        (WebKit::AdClickAttributionManager::setOverrideTimerForTesting):
+        (WebKit::AdClickAttributionManager::setConversionURLForTesting):
+        * NetworkProcess/NetworkAdClickAttribution.cpp: Renamed from Source/WebKit/NetworkProcess/NetworkAdClickAttribution.cpp.
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::storeAdClickAttribution):
+        (WebKit::NetworkProcess::dumpAdClickAttribution):
+        (WebKit::NetworkProcess::clearAdClickAttribution):
+        (WebKit::NetworkProcess::setAdClickAttributionOverrideTimerForTesting):
+        (WebKit::NetworkProcess::setAdClickAttributionConversionURLForTesting):
+        * NetworkProcess/NetworkProcess.h:
+        * NetworkProcess/NetworkProcess.messages.in:
+        * NetworkProcess/NetworkSession.cpp:
+        (WebKit::NetworkSession::NetworkSession):
+        (WebKit::NetworkSession::setAdClickAttributionOverrideTimerForTesting):
+        (WebKit::NetworkSession::setAdClickAttributionConversionURLForTesting):
+        * NetworkProcess/NetworkSession.h:
+        * NetworkProcess/PingLoad.cpp:
+        (WebKit::PingLoad::PingLoad):
+        (WebKit::m_blobFiles):
+        (WebKit::PingLoad::initialize):
+            The PingLoad constructor is now split in two to allow for construction
+            without a WebKit::NetworkConnectionToWebProcess object. The body of
+            the constructor was moved into the new initialize() function which is
+            shared between constructors.
+        * NetworkProcess/PingLoad.h:
+        * Sources.txt:
+            Removed NetworkProcess/NetworkAdClickAttribution.cpp and added
+            NetworkProcess/NetworkAdClickAttribution.cpp.
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetAdClickAttributionOverrideTimerForTesting):
+        (WKPageSetAdClickAttributionConversionURLForTesting):
+        * UIProcess/API/C/WKPagePrivate.h:
+        * UIProcess/Network/NetworkProcessProxy.cpp:
+        (WebKit::NetworkProcessProxy::dumpAdClickAttribution): Deleted.
+        (WebKit::NetworkProcessProxy::clearAdClickAttribution): Deleted.
+        * UIProcess/Network/NetworkProcessProxy.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::dumpAdClickAttribution):
+        (WebKit::WebPageProxy::clearAdClickAttribution):
+        (WebKit::WebPageProxy::setAdClickAttributionOverrideTimerForTesting):
+        (WebKit::WebPageProxy::setAdClickAttributionConversionURLForTesting):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::dumpAdClickAttribution): Deleted.
+        (WebKit::WebProcessPool::clearAdClickAttribution): Deleted.
+        * UIProcess/WebProcessPool.h:
+        * WebKit.xcodeproj/project.pbxproj:
+
+2019-04-15  Devin Rousso  <drousso@apple.com>
+
+        WebDriver: Set Cookie endpoint does not correctly set subdomain cookies
+        https://bugs.webkit.org/show_bug.cgi?id=196872
+        <rdar://problem/49233240>
+
+        Reviewed by Joseph Pecoraro.
+
+        * UIProcess/Automation/WebAutomationSession.cpp:
+        (WebKit::WebAutomationSession::addSingleCookie):
+        Rather than try to "force" the cookie to be set on the current active URL, use the cookie
+        itself to figure out which domain it should be set on.
+
+2019-04-15  Philippe Normand  <pnormand@igalia.com>
+
+        [GTK][WPE] Add enable-media websetting
+        https://bugs.webkit.org/show_bug.cgi?id=196863
+
+        Reviewed by Michael Catanzaro.
+
+        It can be useful for headless browsers, for instance. The setting is enabled by default.
+
+        * Shared/WebPreferences.yaml:
+        * UIProcess/API/glib/WebKitSettings.cpp:
+        (webKitSettingsSetProperty):
+        (webKitSettingsGetProperty):
+        (webkit_settings_class_init):
+        (webkit_settings_get_enable_media):
+        (webkit_settings_set_enable_media):
+        * UIProcess/API/gtk/WebKitSettings.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
+        * UIProcess/API/wpe/WebKitSettings.h:
+        * UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
+
+2019-04-14  Rob Buis  <rbuis@igalia.com>
+
+        Link prefetch not useful for top-level navigation
+        https://bugs.webkit.org/show_bug.cgi?id=195623
+
+        Reviewed by Youenn Fablet.
+
+        Cache cross-domain top-level prefetches in a dedicated cache. When a navigation
+        to the same url is done within a threshold (5 seconds), reuse the
+        prefetch cache entry, move it to the disk cache and navigate to
+        the url, meaning no extra network trip is needed. When not used within
+        the threshold period, the prefetch entry will be erased using a timer.
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::lowMemoryHandler):
+        * NetworkProcess/NetworkProcess.h:
+        (WebKit::NetworkProcess::prefetchCache):
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        (WebKit::NetworkResourceLoader::retrieveCacheEntry):
+        (WebKit::NetworkResourceLoader::didReceiveResponse):
+        (WebKit::NetworkResourceLoader::didReceiveBuffer):
+        (WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
+        (WebKit::NetworkResourceLoader::isCrossOriginPrefetch const):
+        * NetworkProcess/NetworkResourceLoader.h:
+        * NetworkProcess/cache/PrefetchCache.cpp: Added.
+        (WebKit::PrefetchCache::Entry::Entry):
+        (WebKit::PrefetchCache::PrefetchCache):
+        (WebKit::PrefetchCache::~PrefetchCache):
+        (WebKit::PrefetchCache::clear):
+        (WebKit::PrefetchCache::take):
+        (WebKit::PrefetchCache::store):
+        (WebKit::PrefetchCache::sessionPrefetchMap const):
+        (WebKit::PrefetchCache::clearExpiredEntries):
+        * NetworkProcess/cache/PrefetchCache.h: Added.
+        (WebKit::PrefetchCache::Entry::response const):
+        (WebKit::PrefetchCache::Entry::releaseBuffer):
+        * Shared/WebPreferences.yaml:
+        * Sources.txt:
+        * WebKit.xcodeproj/project.pbxproj:
+
+2019-04-14  Andy Estes  <aestes@apple.com>
+
+        [Cocoa] WKCustomProtocolLoader should store a WeakPtr to its LegacyCustomProtocolManagerProxy
+        https://bugs.webkit.org/show_bug.cgi?id=196893
+        <rdar://problem/48318983>
+
+        Reviewed by Anders Carlsson.
+
+        In addition to manually invalidating each WKCustomProtocolLoader's _customProtocolManagerProxy
+        pointer when the LegacyCustomProtocolManagerClient is invalidated, use a WeakPtr in case the
+        LegacyCustomProtocolManagerProxy is ever destroyed without first invalidating the client.
+        Also add null pointer checks to NSURLConnectionDelegate methods, which might be called after
+        the LegacyCustomProtocolManagerProxy has been destroyed.
+
+        * UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm:
+        (-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]):
+        (-[WKCustomProtocolLoader cancel]):
+        (-[WKCustomProtocolLoader connection:didFailWithError:]):
+        (-[WKCustomProtocolLoader connection:didReceiveResponse:]):
+        (-[WKCustomProtocolLoader connection:didReceiveData:]):
+        (-[WKCustomProtocolLoader connection:willSendRequest:redirectResponse:]):
+        (-[WKCustomProtocolLoader connectionDidFinishLoading:]):
+        (WebKit::LegacyCustomProtocolManagerClient::startLoading):
+        (WebKit::LegacyCustomProtocolManagerClient::invalidate):
+        (-[WKCustomProtocolLoader customProtocolManagerProxyDestroyed]): Deleted.
+        * UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h:
+
+2019-04-14  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] JavaScriptCore derived sources should only be referenced inside JavaScriptCore
+        https://bugs.webkit.org/show_bug.cgi?id=196742
+
+        Reviewed by Konstantin Tokarev.
+
+        Don't set JavaScriptCore_SCRIPTS_DIR now that it is set within WebKitFS.
+
+        * CMakeLists.txt:
+        * PlatformWin.cmake:
+        
+        Remove use of DERIVED_SOURCES_JAVASCRIPTCORE_DIR.
+
+2019-04-13  Chris Dumez  <cdumez@apple.com>
+
+        [ Mac Debug ] TestWebKitAPI.ProcessSwap.ReuseSuspendedProcessForRegularNavigationRetainBundlePage is a flaky crash
+        https://bugs.webkit.org/show_bug.cgi?id=196548
+        <rdar://problem/49567254>
+
+        Reviewed by Darin Adler.
+
+        Update ProvisionalPageProxy methods to more consistently ignore unexpected IPC from the process. Previously,
+        some of the methods were doing this, but some other like didFailProvisionalLoadForFrame() weren't and this
+        was leading to this flaky crash. The issue is that if we do the load in an existing process that was recently
+        doing, there may be leftover IPC for the same pageID and this IPC gets received by the ProvisionalPageProxy
+        even though it is from a previous navigation. For this reason, the ProvisionalPageProxy should ignore all
+        incoming IPC that is not for its associated navigation.
+
+        * UIProcess/ProvisionalPageProxy.cpp:
+        (WebKit::ProvisionalPageProxy::didPerformClientRedirect):
+        (WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame):
+        (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
+        (WebKit::ProvisionalPageProxy::didCommitLoadForFrame):
+        (WebKit::ProvisionalPageProxy::didNavigateWithNavigationData):
+        (WebKit::ProvisionalPageProxy::didChangeProvisionalURLForFrame):
+        (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync):
+        (WebKit::ProvisionalPageProxy::decidePolicyForResponse):
+        (WebKit::ProvisionalPageProxy::didPerformServerRedirect):
+        (WebKit::ProvisionalPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
+        (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync):
+
+2019-04-13  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Unreviewed, try to fix the internal build after r244239
+
+        Force the bots to regenerate WKWebpagePreferences.h by touching the file. Adds a `Foundation/Foundation.h`
+        import that was missing anyways.
+
+        * UIProcess/API/Cocoa/WKWebpagePreferences.h:
+
+2019-04-12  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Enable modern compatibility mode by default in WKWebView on some devices
+        https://bugs.webkit.org/show_bug.cgi?id=196883
+        <rdar://problem/49864527>
+
+        Reviewed by Tim Horton.
+
+        Make some minor adjustments to new API.
+
+        * Shared/WebCompatibilityMode.h:
+
+        Rename WebCompatibilityMode::Default to WebCompatibilityMode::Recommended.
+
+        * Shared/WebPreferences.yaml:
+        * Shared/WebPreferencesDefaultValues.h:
+
+        Now that the role of the UseModernCompatibilityModeByDefault debug preference is limited to bypassing linked-on-
+        or-after and app bundle compatibility hacks, we no longer make this default to true in iOSMac.
+
+        * UIProcess/API/APIWebsitePolicies.h:
+        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
+
+        Rename the withPreferences: label to just preferences:.
+
+        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
+        * UIProcess/Cocoa/NavigationState.mm:
+        (WebKit::NavigationState::setNavigationDelegate):
+        (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
+        * UIProcess/Cocoa/VersionChecks.h:
+        * UIProcess/ios/WebPageProxyIOS.mm:
+
+2019-04-12  Brian Burg  <bburg@apple.com>
+
+        WebDriver: fix typo in EnterFullscreen.js in error-handling code
+        https://bugs.webkit.org/show_bug.cgi?id=196882
+        <rdar://problem/49867122>
+
+        Reviewed by Devin Rousso.
+
+        * UIProcess/Automation/atoms/EnterFullscreen.js:
+        (enterFullscreen):
+
+2019-04-12  Ross Kirsling  <ross.kirsling@sony.com>
+
+        Unreviewed fix for non-unified build.
+
+        * Shared/PrintInfo.cpp:
+        Add missing include from r244202.
+
+2019-04-12  Saam barati  <sbarati@apple.com>
+
+        Sometimes we need to user fewer CPUs in our threading calculations
+        https://bugs.webkit.org/show_bug.cgi?id=196794
+        <rdar://problem/49389497>
+
+        Reviewed by Yusuke Suzuki.
+
+        * WebProcess/com.apple.WebProcess.sb.in:
+
+2019-04-12  Devin Rousso  <drousso@apple.com>
+
+        WebDriver: evaluating javascript shouldn't fail if a dialog is shown
+        https://bugs.webkit.org/show_bug.cgi?id=196847
+        <rdar://problem/49609396>
+
+        Reviewed by Brian Burg.
+
+        * UIProcess/Automation/WebAutomationSession.cpp:
+        (WebKit::WebAutomationSession::willShowJavaScriptDialog):
+
+2019-04-12  Ross Kirsling  <ross.kirsling@sony.com>
+
+        WebKit should build successfully even with -DENABLE_UNIFIED_BUILDS=OFF
+        https://bugs.webkit.org/show_bug.cgi?id=196845
+
+        Reviewed by Ryosuke Niwa.
+
+        * NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
+        * NetworkProcess/NetworkCORSPreflightChecker.cpp:
+        * NetworkProcess/NetworkDataTask.cpp:
+        * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp:
+        * NetworkProcess/NetworkHTTPSUpgradeChecker.h: Include wtf/Forward.h for String and CompletionHandler fwd decls.
+        * NetworkProcess/NetworkProcess.cpp:
+        * NetworkProcess/NetworkResourceLoadMap.cpp:
+        * NetworkProcess/NetworkResourceLoadMap.h:
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        * NetworkProcess/PingLoad.h:
+        * Shared/WebCompiledContentRuleListData.cpp:
+        * Shared/gtk/WebEventFactory.cpp:
+        * UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
+        (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore):
+        (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
+        (WKWebsiteDataStoreStatisticsResetToConsistentState):
+        * UIProcess/Downloads/DownloadProxyMap.cpp:
+        * UIProcess/InspectorTargetProxy.cpp:
+        * UIProcess/PageClient.h:
+        * UIProcess/ProcessAssertion.cpp:
+        * UIProcess/ProvisionalPageProxy.h:
+        * UIProcess/WebPageInspectorTargetAgent.h:
+        * UIProcess/geoclue/GeoclueGeolocationProvider.cpp:
+        * WebProcess/Cache/WebCacheStorageConnection.cpp:
+        (WebKit::WebCacheStorageConnection::updateQuotaBasedOnSpaceUsage):
+        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
+        (WKBundleSetDatabaseQuota):
+        * WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
+        Add missing includes / forward declarations to address compiler errors on GTK / WinCairo.
+
+2019-04-12  Eric Carlson  <eric.carlson@apple.com>
+
+        Update AudioSession route sharing policy
+        https://bugs.webkit.org/show_bug.cgi?id=196776
+        <rdar://problem/46501611>
+
+        Reviewed by Jer Noble.
+
+        * UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
+        (-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:hasVideo:]):
+
+2019-04-12  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        WebsitePolicies doesn't copy its media source policy in WebsitePolicies::copy
+        https://bugs.webkit.org/show_bug.cgi?id=196862
+
+        Reviewed by Darin Adler.
+
+        Add a missing bit of code to copy m_mediaSourcePolicy over when making a copy of WebsitePolicies. This doesn't
+        have any observable effect, since m_mediaSourcePolicy isn't currently exposed as SPI on WKWebpagePreferences.
+
+        * UIProcess/API/APIWebsitePolicies.cpp:
+        (API::WebsitePolicies::copy const):
+
+2019-04-12  Simon Fraser  <simon.fraser@apple.com>
+
+        [iOS WK2] Make -webkit-overflow-scrolling be a no-op
+        https://bugs.webkit.org/show_bug.cgi?id=196803
+        rdar://problem/49078202
+
+        Reviewed by Antti Koivisto.
+
+        Flip LegacyOverflowScrollingTouchEnabled to false.
+
+        * Shared/WebPreferences.yaml:
+
+2019-04-12  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [iOS] Software keyboard is shown too frequently on some websites
+        https://bugs.webkit.org/show_bug.cgi?id=195856
+        <rdar://problem/49191395>
+
+        Reviewed by Darin Adler.
+
+        On some websites, hidden editable elements are very frequently focused upon user interaction. Currently, this
+        causes the software keyboard to pop in and out unexpectedly; luckily, these same sites also apply
+        inputmode="none" to the hidden editable element, which ought to ensure that the software keyboard doesn't appear
+        when the element is focused.
+
+        However, since we disabled support for inputmode="none" in r240497, the software keyboard is no longer
+        suppressed, and becomes a big nuissance. r240497 removed support for this feature because, when using a hardware
+        keyboard, pressing the globe key no longer showed UI for switching languages. However, support for inputmode
+        none makes a much larger impact when a software keyboard is used (since the entire software keyboard animates in
+        and out), whereas a hardware keyboard only displays an input accessory view. For this reason, we can mitigate
+        this bug without reintroducing <rdar://problem/47406553> by re-enabling inputmode="none", but only when a
+        hardware keyboard is not attached.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (hardwareKeyboardAvailabilityChangedCallback):
+        * UIProcess/ios/WKContentViewInteraction.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView shouldShowAutomaticKeyboardUI]):
+
+        Don't show the keyboard if inputmode is none and a hardware keyboard is not attached.
+
+        (-[WKContentView _hardwareKeyboardAvailabilityChanged]):
+
+        Reload input views if the inputmode is none to ensure that if a hardware keyboard is attached while editing an
+        element with inputmode="none", we'll show the input accessory view once again.
+
+2019-04-12  Antoine Quint  <graouts@apple.com>
+
+        Opt some websites into the simulated mouse events dispatch quirk when in modern compatibility mode
+        https://bugs.webkit.org/show_bug.cgi?id=196830
+        <rdar://problem/49124313>
+
+        Reviewed by Wenson Hsieh.
+
+        We add a new policy to determine whether simulated mouse events dispatch are allowed.
+
+        * Shared/WebsitePoliciesData.cpp:
+        (WebKit::WebsitePoliciesData::encode const):
+        (WebKit::WebsitePoliciesData::decode):
+        (WebKit::WebsitePoliciesData::applyToDocumentLoader):
+        * Shared/WebsitePoliciesData.h:
+        * Shared/WebsiteSimulatedMouseEventsDispatchPolicy.h: Added.
+        * UIProcess/API/APIWebsitePolicies.cpp:
+        (API::WebsitePolicies::copy const):
+        (API::WebsitePolicies::data):
+        * UIProcess/API/APIWebsitePolicies.h:
+        * WebKit.xcodeproj/project.pbxproj:
+
+2019-04-12  Chris Dumez  <cdumez@apple.com>
+
+        [iOS Sim Debug] ASSERTION FAILED: m_downloads.isEmpty() Layout Test http/tests/websocket/tests/hybi/network-process-crash-error.html is a flaky crash
+        https://bugs.webkit.org/show_bug.cgi?id=196781
+        <rdar://problem/49789381>
+
+        Reviewed by Darin Adler.
+
+        When the network process gets terminated by the client, the NetworkProcessProxy object (and thus its DownloadProxyMap member) get
+        destroyed right away, before we get a call to didClose(IPC::Connection&). As a result, if there are ongoing downloads at the time
+        of the termination, we will hit the assertion above. To address the issue, update the NetworkProcessProxy destructor to invalidate
+        its DownloadProxyMap member, similator to what it does in didClose(IPC::Connection&).
+
+        * UIProcess/Downloads/DownloadProxyMap.cpp:
+        (WebKit::DownloadProxyMap::invalidate):
+        (WebKit::DownloadProxyMap::processDidClose): Deleted.
+        * UIProcess/Downloads/DownloadProxyMap.h:
+        * UIProcess/Network/NetworkProcessProxy.cpp:
+        (WebKit::NetworkProcessProxy::~NetworkProcessProxy):
+        (WebKit::NetworkProcessProxy::didClose):
+
+2019-04-11  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] REGRESSION(r243860): Many tests failing
+        https://bugs.webkit.org/show_bug.cgi?id=196791
+
+        Reviewed by Joanmarie Diggs.
+
+        Calling updateAccessibilityTree() on document loaded was causing a re-layout because of the backing store update
+        that confused all those tests. We shouldn't need to update the accessibility tree on document load, it should
+        happen automatically when root object is attached/detached. This patch emits children-changed::add when the root
+        object wrapper is attached and children-changed::remove when the root object is detached. That way ATs are
+        notified of the changes in the accessibility tree.
+
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad): Remove call to WebPage::updateAccessibilityTree().
+        * WebProcess/WebPage/WebPage.h: Remove updateAccessibilityTree().
+        * WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.cpp:
+        (coreRootObjectWrapperDetachedCallback): Emit children-changed::remove.
+        (rootWebAreaWrapper): Helper to get the root WebArea wrapper.
+        (accessibilityRootObjectWrapper): Set the parent here when root object is created and emit children-changed::add.
+        (webkitWebPageAccessibilityObjectRefChild): Dot no set the parent here, it's now set when the root object is created.
+        * WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.h: Remove webkitWebPageAccessibilityObjectRefresh().
+        * WebProcess/WebPage/gtk/WebPageGtk.cpp:
+
+2019-04-11  Megan Gardner  <megan_gardner@apple.com>
+
+        Update 'Save Image' to more clear instructions
+        https://bugs.webkit.org/show_bug.cgi?id=196833
+        <rdar://problem/47446845>
+
+        Reviewed by Wenson Hsieh.
+
+        Just updating to a new string.
+
+        * UIProcess/API/Cocoa/_WKElementAction.mm:
+        (+[_WKElementAction _elementActionWithType:customTitle:assistant:]):
+
+2019-04-11  Chris Dumez  <cdumez@apple.com>
+
+        Unable to run system Safari with trunk WebKit
+        https://bugs.webkit.org/show_bug.cgi?id=196777
+        <rdar://problem/49784574>
+
+        Reviewed by Alex Christensen.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _initializeWithConfiguration:]):
+        Add a linkedOnAfter check so that throwing exceptions when related web views use a different
+        data store only happens for apps rebuilt using recent SDK.
+
+        * UIProcess/Cocoa/VersionChecks.h:
+        * UIProcess/Cocoa/VersionChecks.mm:
+        (WebKit::linkedOnOrAfter):
+        - By default, linkedOnOrAfter assumed Safari / MobileSafari is always linked-on-after. To satisfy my
+          use cases, I introduced a new AssumeSafariIsAlwaysLinkedOnAfter parameter so that this behavior can
+          be controlled by the caller.
+        - In the header, DYLD_IOS_VERSION_* / DYLD_MACOS_VERSION_* constants are 0 when building with the
+          non-internal SDK. As a result, the check instead linkedOnOrAfter() would cause us to always return
+          true, which was wrong. I therefore updated the check inside linkedOnOrAfter() to special-case the
+          0 value for sdkVersion.
+
+2019-04-11  Zalan Bujtas  <zalan@apple.com>
+
+        Add @page margin support
+        https://bugs.webkit.org/show_bug.cgi?id=196680
+        <rdar://problem/45217707>
+
+        Reviewed by Tim Horton.
+
+        * Shared/PrintInfo.cpp:
+        (WebKit::PrintInfo::encode const):
+        (WebKit::PrintInfo::decode):
+        * Shared/PrintInfo.h:
+        * Shared/WebPreferences.yaml:
+        * Shared/gtk/PrintInfoGtk.cpp:
+        (WebKit::PrintInfo::PrintInfo):
+        * Shared/mac/PrintInfoMac.mm:
+        (WebKit::PrintInfo::PrintInfo):
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageComputePagesForPrinting):
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetPageAtRuleSupportEnabled):
+        (WKPreferencesGetPageAtRuleSupportEnabled):
+        * UIProcess/API/C/WKPreferencesRefPrivate.h:
+        * UIProcess/GenericCallback.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::computedPagesCallback):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * UIProcess/mac/WKPrintingView.mm:
+        (pageDidComputePageRects):
+        (-[WKPrintingView _askPageToComputePageRects]):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::beginPrinting):
+        (WebKit::WebPage::computePagesForPrinting):
+        (WebKit::WebPage::computePagesForPrintingImpl):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::computePagesForPrintingAndDrawToPDF):
+
+2019-04-11  Dean Jackson  <dino@apple.com>
+
+        Extract UTI mapping and allow for additions
+        https://bugs.webkit.org/show_bug.cgi?id=196822
+        <rdar://problem/49822339>
+
+        Reviewed by Tim Horton.
+
+        Use the new helper to map MIME type to UTI.
+
+        * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
+        (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
+        * UIProcess/ios/WKSystemPreviewView.mm:
+        (getUTIForSystemPreviewMIMEType):
+
+
+2019-04-11  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        REGRESSION (r244182): RemoteLayerTreeDrawingArea::flushLayers() should not be reentrant
+        https://bugs.webkit.org/show_bug.cgi?id=196825
+
+        Reviewed by Simon Fraser.
+
+        Ensure the layer transactions IDs are sequential. So bail out of
+        RemoteLayerTreeDrawingArea::flushLayers() if reentrancy is detected.
+
+        * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
+        * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
+        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
+
+2019-04-11  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Allow the MediaSource API to be enabled via website policy
+        https://bugs.webkit.org/show_bug.cgi?id=196429
+        <rdar://problem/48774333>
+
+        Reviewed by Tim Horton.
+
+        Adds support for using WebsitePolicies to determine whether to enable the MediaSource API.
+
+        * Shared/WebPreferences.yaml:
+
+        Disengage the mediaSourceEnabled internal preference from the corresponding WebCore setting; to ensure that
+        setting the preference to `true` still results in enabling the MediaSource API, we instead make it such that
+        turning on mediaSourceEnabled causes WebsitePolicies to set its WebsiteMediaSourcePolicy to Enable.
+
+        In the future, we should deprecate and remove this preference, in favor of simply setting preferred
+        compatibility mode on WKWebpagePreferences.
+
+        * Shared/WebPreferences.yaml:
+        * Shared/WebsiteMediaSourcePolicy.h: Copied from Source/WebKit/Shared/WebsitePoliciesData.h.
+        * Shared/WebsitePoliciesData.cpp:
+        (WebKit::WebsitePoliciesData::encode const):
+        (WebKit::WebsitePoliciesData::decode):
+
+        Add plumbing for m_mediaSourcePolicy in the set of website policies.
+
+        (WebKit::WebsitePoliciesData::applyToDocumentLoader):
+
+        Update the document loader with the given media source policy. There are two possibilities when applying the set
+        of policies to the document loader; either the document loader is already attached to a Frame, or the document
+        loader is yet to be attached to a Frame.
+
+        In the first case, we update Frame's settings on the spot, by calling the new applyPoliciesToSettings helper
+        method. In the second scenario, we stash the policy state on DocumentLoader; when the DocumentLoader is attached
+        to a Frame, we'll then update the Frame's settings using DocumentLoader's policy.
+
+        * Shared/WebsitePoliciesData.h:
+        * UIProcess/API/APIWebsitePolicies.cpp:
+        (API::WebsitePolicies::data):
+        * UIProcess/API/APIWebsitePolicies.h:
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetPageNavigationClient):
+        * UIProcess/Cocoa/NavigationState.mm:
+        (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
+
+        Move code that adjusts website policies after deciding policies for the navigation action from NavigationClient
+        ::decidePolicyForNavigationAction to the completion handler of the policy listener. This allows us to respect
+        default website policies on the web view configuration, even when using the C API to set the navigation client,
+        and also allows us to have a single call site for adjustPoliciesForCompatibilityMode. This also enables our
+        layout tests to opt into modern compatibility mode by default, when specifying modern compatibility mode on
+        webpage preferences.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
+        (WebKit::WebPageProxy::adjustPoliciesForCompatibilityMode):
+        * UIProcess/WebPageProxy.h:
+        * WebKit.xcodeproj/project.pbxproj:
+
+2019-04-11  Antti Koivisto  <antti@apple.com>
+
+        REGRESSION: changing iPad orientation on blogger.com crashes under RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations()
+        https://bugs.webkit.org/show_bug.cgi?id=196813
+        <rdar://problem/49393264>
+
+        Reviewed by Simon Fraser.
+
+        No test, can't repro.
+
+        * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
+        (WebKit::RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations):
+
+        Null check the nodes.
+
+2019-04-10  Chris Dumez  <cdumez@apple.com>
+
+        Regression(r244144) ProcessSwap.ReuseSuspendedProcessLoadHTMLString API test is flaky
+        https://bugs.webkit.org/show_bug.cgi?id=196784
+
+        Reviewed by Antti Koivisto.
+
+        When we enter accelerated compositing mode in the new process, we supposed to *close* the last
+        SuspendedPageProxy, not destroy it. This was causing flakiness in the test because it was testing
+        that we were using the SuspendedPageProxy's process for a cross-site link navigation, which is
+        an optimization. This optimization was partly broken by r244144 as the SuspendedPageProxy would
+        not sometimes be gone by the time we need it.
+
+        * UIProcess/SuspendedPageProxy.cpp:
+        (WebKit::SuspendedPageProxy::pageEnteredAcceleratedCompositingMode):
+
+2019-04-10  Alex Christensen  <achristensen@webkit.org>
+
+        WKNavigationResponse._downloadAttribute should be nil when no download attribute is present
+        https://bugs.webkit.org/show_bug.cgi?id=196809
+        <rdar://49800762>
+
+        Reviewed by Brady Eidson.
+
+        * UIProcess/API/Cocoa/WKNavigationResponse.mm:
+        (-[WKNavigationResponse _downloadAttribute]):
+
+2019-04-10  Tim Horton  <timothy_horton@apple.com>
+
+        REGRESSION (r241734): ⌥⌘↑ and ⌥⌘↓ no longer navigate to previous/next Reading List article
+        https://bugs.webkit.org/show_bug.cgi?id=196797
+        <rdar://problem/48484715>
+
+        Reviewed by Simon Fraser.
+
+        * UIProcess/ios/WKKeyboardScrollingAnimator.mm:
+        (-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]):
+        Validate the set of modifier keys pressed when handling a key event for scrolling:
+        Ignore key events with multiple modifier keys pressed.
+        Ignore key events with an invalid modifier key pressed for a given primary key.
+
+2019-04-10  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        requestAnimationFrame should execute before the next frame
+        https://bugs.webkit.org/show_bug.cgi?id=177484
+
+        Reviewed by Simon Fraser.
+
+        Replace the calls to Page::layoutIfNeeded() and willDisplayPage() by
+        a single call to Page::updateRendering(). This new function implements 
+        "Update the rendering" step of the HTML Event Loop specification
+        <https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering>.
+
+        * WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
+        (WebKit::DrawingAreaCoordinatedGraphics::scheduleCompositingLayerFlush):
+        (WebKit::DrawingAreaCoordinatedGraphics::updateBackingStoreState):
+        (WebKit::DrawingAreaCoordinatedGraphics::display):
+        * WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:
+        (WebKit::LayerTreeHost::layerFlushTimerFired):
+
+        * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
+        (WebKit::RemoteLayerTreeDrawingArea::flushLayers):
+        -- Call Page::updateRendering() to make sure that "Update the rendering"
+           happens immediately before updating the page.
+
+        -- Move the call to RemoteLayerBackingStoreCollection::willFlushLayers()
+           to be exactly before flushing the layers. This fixes the assertion
+           ASSERT(m_inLayerFlush) which was firing when running a layout test.
+           RemoteLayerTreeDrawingArea::flushLayers() now can call itself through
+           TestRunner::notifyDone(). flushLayers() was calling willFlushLayers()
+           twice before calling didFlushLayers().
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::layoutIfNeeded):
+        (WebKit::WebPage::updateRendering):
+        (WebKit::WebPage::willDisplayPage): Deleted.
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+        (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
+
+2019-04-10  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: save sheet should be anchored underneath the tab bar when detached
+        https://bugs.webkit.org/show_bug.cgi?id=196722
+        <rdar://problem/49613280>
+
+        Reviewed by Timothy Hatcher.
+
+        * WebProcess/WebPage/WebInspectorUI.h:
+        * WebProcess/WebPage/WebInspectorUI.cpp:
+        (WebKit::WebInspectorUI::changeSheetRect): Added.
+        * UIProcess/WebInspectorProxy.messages.in:
+        * UIProcess/WebInspectorProxy.h:
+        (WebKit::WebInspectorProxy::sheetRect const): Added.
+        * UIProcess/WebInspectorProxy.cpp:
+        (WebKit::WebInspectorProxy::setSheetRect): Added.
+        (WebKit::WebInspectorProxy::platformSetSheetRect): Added.
+        * UIProcess/gtk/WebInspectorProxyGtk.cpp:
+        (WebKit::WebInspectorProxy::platformSetSheetRect): Added.
+        * UIProcess/mac/WebInspectorProxyMac.mm:
+        (-[WKWebInspectorProxyObjCAdapter window:willPositionSheet:usingRect:]): Added.
+        (WebKit::WebInspectorProxy::platformSetSheetRect): Added.
+        * UIProcess/win/WebInspectorProxyWin.cpp:
+        (WebKit::WebInspectorProxy::platformSetSheetRect): Added.
+        * UIProcess/wpe/WebInspectorProxyWPE.cpp:
+        (WebKit::WebInspectorProxy::platformSetSheetRect): Added.
+
+        * WebProcess/WebPage/RemoteWebInspectorUI.h:
+        * WebProcess/WebPage/RemoteWebInspectorUI.cpp:
+        (WebKit::RemoteWebInspectorUI::changeSheetRect): Added.
+        * UIProcess/RemoteWebInspectorProxy.messages.in:
+        * UIProcess/RemoteWebInspectorProxy.h:
+        (WebKit::RemoteWebInspectorProxy::sheetRect const): Added.
+        * UIProcess/RemoteWebInspectorProxy.cpp:
+        (WebKit::RemoteWebInspectorProxy::setSheetRect): Added.
+        (WebKit::RemoteWebInspectorProxy::platformSetSheetRect): Added.
+        * UIProcess/gtk/RemoteWebInspectorProxyGtk.cpp:
+        (WebKit::RemoteWebInspectorProxy::platformSetSheetRect): Added.
+        * UIProcess/mac/RemoteWebInspectorProxyMac.mm:
+        (-[WKRemoteWebInspectorProxyObjCAdapter window:willPositionSheet:usingRect:]): Added.
+        (WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):
+        (WebKit::RemoteWebInspectorProxy::platformSetSheetRect): Added.
+
+2019-04-10  Andy Estes  <aestes@apple.com>
+
+        [iOS] Let PDFHostViewController specify the background color to use for WKPDFView
+        https://bugs.webkit.org/show_bug.cgi?id=196785
+        <rdar://problem/48240051>
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/ios/WKPDFView.mm:
+        (-[WKPDFView web_initWithFrame:webView:mimeType:]):
+
+2019-04-10  Chris Dumez  <cdumez@apple.com>
+
+        Unreviewed, rolling out r244146.
+
+        Caused a few DeviceOrientation API test failures on iOS
+
+        Reverted changeset:
+
+        "Unable to run system Safari with trunk WebKit"
+        https://bugs.webkit.org/show_bug.cgi?id=196777
+        https://trac.webkit.org/changeset/244146
+
+2019-04-10  Devin Rousso  <drousso@apple.com>
+
+        Web Inspector: REGRESSION: lazy agents used outside of frontend/instrumentation can be accessed before being created
+        https://bugs.webkit.org/show_bug.cgi?id=196725
+        <rdar://problem/49669810>
+
+        Reviewed by Timothy Hatcher.
+
+        * WebProcess/WebPage/WebInspector.cpp:
+        (WebKit::WebInspector::showMainResourceForFrame):
+
+2019-04-10  Youenn Fablet  <youenn@apple.com>
+
+        Clear Cache Storage structures before removing all related files
+        https://bugs.webkit.org/show_bug.cgi?id=196650
+
+        Reviewed by Alex Christensen.
+
+        Previously, we were clearing files in parallel to clearing the internal CacheStorage structures.
+        To make things more deterministic, clear files/folders directly
+        after CachesStorage structures have finished being cleared.
+
+        * NetworkProcess/cache/CacheStorageEngine.cpp:
+        (WebKit::CacheStorage::Engine::clearAllCaches):
+        (WebKit::CacheStorage::Engine::clearCachesForOrigin):
+
+2019-04-10  Alex Christensen  <achristensen@webkit.org>
+
+        Add SPI WKNavigationResponse._downloadAttribute
+        https://bugs.webkit.org/show_bug.cgi?id=196755
+        <rdar://49587365>
+
+        Reviewed by Brady Eidson.
+
+        * UIProcess/API/APINavigationResponse.h:
+        * UIProcess/API/Cocoa/WKNavigationResponse.mm:
+        (-[WKNavigationResponse _downloadAttribute]):
+        * UIProcess/API/Cocoa/WKNavigationResponsePrivate.h:
+        * UIProcess/ProvisionalPageProxy.cpp:
+        (WebKit::ProvisionalPageProxy::decidePolicyForResponse):
+        * UIProcess/ProvisionalPageProxy.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::decidePolicyForResponse):
+        (WebKit::WebPageProxy::decidePolicyForResponseShared):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+
+2019-04-10  Youenn Fablet  <youenn@apple.com>
+
+        SWClientConnection should not double hop to fire some events
+        https://bugs.webkit.org/show_bug.cgi?id=196735
+
+        Reviewed by Alex Christensen.
+
+        Removed unnecessary method.
+
+        * WebProcess/Storage/WebSWClientConnection.cpp:
+        * WebProcess/Storage/WebSWClientConnection.h:
+
+2019-04-10  Per Arne Vollan  <pvollan@apple.com>
+
+        [iOS] Fix iokit-get-properties sandbox violations
+        https://bugs.webkit.org/show_bug.cgi?id=196782
+        <rdar://problem/49497720>
+
+        Reviewed by Brent Fulgham.
+
+        Add iokit properties to the WebContent sandbox on iOS.
+
+        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
+
+2019-04-10  Tim Horton  <timothy_horton@apple.com>
+
+        Add modern API for overriding the page's specified viewport configuration
+        https://bugs.webkit.org/show_bug.cgi?id=167734
+        <rdar://problem/30331795>
+
+        Reviewed by Simon Fraser.
+
+        * Shared/WebPageCreationParameters.cpp:
+        (WebKit::WebPageCreationParameters::encode const):
+        (WebKit::WebPageCreationParameters::decode):
+        * Shared/WebPageCreationParameters.h:
+        Plumb overrideViewportArguments in WebPageCreationParameters, so that
+        if the process crashes (or swaps) they are maintained.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (viewportArgumentsFromDictionary):
+        (-[WKWebView _overrideViewportWithArguments:]):
+        Add SPI to set override viewport arguments. Parse them into a ViewportArguments
+        object and use the existing (now improved) overrideViewportArguments mechanism
+        to take over the page's viewport arguments.
+
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::creationParameters):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::setOverrideViewportArguments):
+        * WebProcess/WebPage/WebPage.cpp:
+        Plumb overrideViewportArguments around more.
+
+2019-04-10  Jiewen Tan  <jiewen_tan@apple.com>
+
+        Add runJavaScriptInFrame for WebPageProxy/WebPage
+        https://bugs.webkit.org/show_bug.cgi?id=196750
+        <rdar://problem/49755738>
+
+        Reviewed by Youenn Fablet.
+
+        Tests of the new method will be covered by the internal counterpart.
+
+        * UIProcess/WebFrameProxy.cpp:
+        (WebKit::WebFrameProxy::loadData):
+        * UIProcess/WebFrameProxy.h:
+        Add a comment.
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::runJavaScriptInMainFrame):
+        (WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld):
+        Merge the above two runJavaScriptInMainFrame*.
+        (WebKit::WebPageProxy::runJavaScriptInFrame):
+        * UIProcess/WebPageProxy.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::loadDataInFrame):
+        Add an assertion.
+        (WebKit::WebPage::runJavaScript):
+        (WebKit::WebPage::runJavaScriptInMainFrameScriptWorld):
+        (WebKit::WebPage::runJavaScriptInFrame):
+        (WebKit::WebPage::runJavaScriptInMainFrame): Deleted.
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
+2019-04-10  Chris Dumez  <cdumez@apple.com>
+
+        Unable to run system Safari with trunk WebKit
+        https://bugs.webkit.org/show_bug.cgi?id=196777
+        <rdar://problem/49784574>
+
+        Reviewed by Alex Christensen.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _initializeWithConfiguration:]):
+        Add a linkedOnAfter check so that throwing exceptions when related web views use a different
+        data store only happens for apps rebuilt using recent SDK.
+
+        * UIProcess/Cocoa/VersionChecks.h:
+        * UIProcess/Cocoa/VersionChecks.mm:
+        (WebKit::linkedOnOrAfter):
+        - By default, linkedOnOrAfter assumed Safari / MobileSafari is always linked-on-after. To satisfy my
+          use cases, I introduced a new AssumeSafariIsAlwaysLinkedOnAfter parameter so that this behavior can
+          be controlled by the caller.
+        - In the header, DYLD_IOS_VERSION_* / DYLD_MACOS_VERSION_* constants are 0 when building with the
+          non-internal SDK. As a result, the check instead linkedOnOrAfter() would cause us to always return
+          true, which was wrong. I therefore updated the check inside linkedOnOrAfter() to special-case the
+          0 value for sdkVersion.
+
+2019-04-10  Chris Dumez  <cdumez@apple.com>
+
+        Regression(r240562) Audio sometimes keeps playing in previous process after a process-swap
+        https://bugs.webkit.org/show_bug.cgi?id=196774
+        <rdar://problem/49460572>
+
+        Reviewed by Alex Christensen.
+
+        r240562 added logic to prevent flashing on navigation. When we receive the DidFailToSuspendAfterProcessSwap
+        IPC from the previous process, we would delay closing the WebPage in that process until EnterAcceleratedCompositingMode
+        IPC is received from the new process. The issue is that this was racy as we would receive the EnterAcceleratedCompositingMode
+        IPC from the new process *before* receiving the DidFailToSuspendAfterProcessSwap IPC from the previous process, which which
+        case we would fail to close the WebPage and audio could keep playing.
+
+        To address the issue, the WebPageProxy keeps track of its last suspended page and notifies it whenever it receives the
+        EnterAcceleratedCompositingMode IPC. If the suspended page already received the DidFailToSuspendAfterProcessSwap IPC, it
+        will close the page. Otherwise, it will set a boolean data member indicating that we should not delay page closing when
+        the DidFailToSuspendAfterProcessSwap is eventually received.
+
+        * UIProcess/SuspendedPageProxy.cpp:
+        (WebKit::SuspendedPageProxy::SuspendedPageProxy):
+        (WebKit::SuspendedPageProxy::pageEnteredAcceleratedCompositingMode):
+        (WebKit::SuspendedPageProxy::didProcessRequestToSuspend):
+        * UIProcess/SuspendedPageProxy.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::suspendCurrentPageIfPossible):
+        (WebKit::WebPageProxy::enterAcceleratedCompositingMode):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebProcessPool.cpp:
+        * UIProcess/WebProcessPool.h:
+
+2019-04-10  Timothy Hatcher  <timothy@apple.com>
+
+        WKScrollView background color does not match WKWebView before content is loaded.
+        https://bugs.webkit.org/show_bug.cgi?id=196745
+        rdar://problem/49750810
+
+        Reviewed by Megan Gardner.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (scrollViewBackgroundColor): Default to _contentView.backgroundColor on invalid base color.
+        (-[WKWebView _processDidExit]): Reset to _contentView.backgroundColor.
+        (-[WKWebView setBackgroundColor:]): Call _updateScrollViewBackground since it can use
+        _contentView.backgroundColor and it has changed.
+
+2019-04-10  Megan Gardner  <megan_gardner@apple.com>
+
+        Fix text autoscrolling when typing in modern webkit
+        https://bugs.webkit.org/show_bug.cgi?id=196718
+        <rdar://problem/49225507>
+
+        Reviewed by Tim Horton.
+
+        For staging only. We need to turn off UIKit's scrolling behavior to land
+        the changes we are making. To keep from the build ever breaking,
+        I am temporarily circumventing the changes in UIKit. This will be removed
+        once the next UIKit submission happens.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKUIWKTextInteractionAssistant scrollSelectionToVisible]):
+        (-[WKContentView setUpTextSelectionAssistant]):
+
+2019-04-10  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [iOSMac] Opt into modern compatibility mode by default
+        https://bugs.webkit.org/show_bug.cgi?id=196763
+        <rdar://problem/49038732>
+
+        Reviewed by Tim Horton.
+
+        Achieve this by limiting legacy compatibility mode by default to non-iOSMac iOS only.
+
+        * Shared/WebPreferences.yaml:
+        * Shared/WebPreferencesDefaultValues.h:
+
+2019-04-10  Alex Christensen  <achristensen@webkit.org>
+
+        RemoteObjectRegistry message receiver should be removed when WebPage::close is called instead of waiting until dealloc
+        https://bugs.webkit.org/show_bug.cgi?id=196744
+        <rdar://49415309>
+
+        Reviewed by Chris Dumez.
+
+        This is a similar problem to the one I fixed in r241306 so I piggy-backed on the same test.
+        When you do a cross site navigation but the previous page is in a suspended process then you navigate back,
+        you can get two WebPage objects in the same process with the same IDs.  WebPage::close has been called
+        on the old one which is supposed to make it so all the message receivers associated with it have been removed
+        so we don't have any loss of communication, but we missed the RemoteObjectRegistry messages, which are owned
+        by the ObjC bundle object wrapping the WebPage (which can keep it alive if a strong reference to it is held).
+        To fix the assertion that happens in this case and the resulting communication breakage, teach the WebPage about
+        these messages so it can tear down the message receiver with the others it removes at close time.
+
+        * Shared/API/Cocoa/RemoteObjectRegistry.h:
+        * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
+        (-[WKWebProcessPlugInBrowserContextController dealloc]):
+        (-[WKWebProcessPlugInBrowserContextController _remoteObjectRegistry]):
+        * WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
+        (WebKit::WebPage::addRemoteObjectRegistry):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::close):
+        * WebProcess/WebPage/WebPage.h:
+
+2019-04-10  Chris Dumez  <cdumez@apple.com>
+
+        Unreviewed, drop SuspendedPageProxy data member that is unused after r244075.
+
+        * UIProcess/SuspendedPageProxy.h:
+
+2019-04-10  Antoine Quint  <graouts@apple.com>
+
+        Enable Pointer Events on watchOS
+        https://bugs.webkit.org/show_bug.cgi?id=196771
+        <rdar://problem/49040909>
+
+        Reviewed by Dean Jackson.
+
+        * Configurations/FeatureDefines.xcconfig:
+
+2019-04-10  Brady Eidson  <beidson@apple.com>
+
+        Background tabs are not fully reactivated after a link is opened from an external application.
+        <rdar://problem/49533278> and https://bugs.webkit.org/show_bug.cgi?id=196705
+
+        Reviewed by Chris Dumez.
+
+        If an app unparents a WKWebView right after activation but before the "applicationWillEnterForeground" notification
+        is dispatched, then that WKWebView is in a broken state with a frozen layer tree.
+
+        The WKApplicationStateTrackingView logic needs to be a little more resilient.
+
+        * UIProcess/ios/WKApplicationStateTrackingView.mm:
+        (-[WKApplicationStateTrackingView willMoveToWindow:]): When clearing the window, remember the current background state.
+        (-[WKApplicationStateTrackingView didMoveToWindow]): If our last observed background state doesn't match the current
+          background state then fake the relevant notification.
+        (-[WKApplicationStateTrackingView _applicationDidEnterBackground]): Remember that we've observed a backgrounding.
+        (-[WKApplicationStateTrackingView _applicationWillEnterForeground]): Remember that we've observed a foregrounding.
+
+2019-04-10  Diego Pino Garcia  <dpino@igalia.com>
+
+        Unreviewed, build fix for r244097
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::actualPrepareToSuspend):
+        (WebKit::NetworkProcess::resume):
+        Added guards for ENABLE(SERVICE_WORKER)
+
+2019-04-09  Keith Rollin  <krollin@apple.com>
+
+        Unreviewed build maintenance -- update .xcfilelists.
+
+        * DerivedSources-input.xcfilelist:
+        * DerivedSources-output.xcfilelist:
+
+2019-04-09  Zalan Bujtas  <zalan@apple.com>
+
+        [AutoSizing] Avoid making text paragraphs scroll horizontally when there is a wide table
+        https://bugs.webkit.org/show_bug.cgi?id=196743
+        <rdar://problem/43897551>
+
+        Reviewed by Tim Horton.
+
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::setViewLayoutSize):
+
+2019-04-09  Youenn Fablet  <youenn@apple.com>
+
+        Close service worker database on network process suspension
+        https://bugs.webkit.org/show_bug.cgi?id=196623
+        <rdar://problem/48930869>
+
+        Reviewed by Alex Christensen.
+
+        Close service worker database when preparing to suspend.
+        On resume, push changes if any is needed.
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::actualPrepareToSuspend):
+        (WebKit::NetworkProcess::cancelPrepareToSuspend):
+        (WebKit::NetworkProcess::processDidResume):
+        * UIProcess/API/Cocoa/WKProcessPool.mm:
+        (-[WKProcessPool _sendNetworkProcessWillSuspendImminently]):
+        (-[WKProcessPool _sendNetworkProcessDidResume]):
+        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
+        * UIProcess/Network/NetworkProcessProxy.h:
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::sendNetworkProcessWillSuspendImminently):
+        (WebKit::WebProcessPool::sendNetworkProcessDidResume):
+        * UIProcess/WebProcessPool.h:
+
+2019-04-09  Daniel Bates  <dabates@apple.com>
+
+        [iPad] Should open popover when the spacebar is pressed
+        https://bugs.webkit.org/show_bug.cgi?id=196360
+        <rdar://problem/49389129>
+
+        Reviewed by Brent Fulgham.
+
+        Pressing the spacebar should open the popover for a focused popup button (e.g. <select>) on iOS
+        just like it does on the Mac.
+
+        For now, we keep the iPhone behavior of blurring the element when the Done button is pressed and
+        hence pressing spacebar does nothing (because there is no focused element).
+
+        * UIProcess/ios/WKContentViewInteraction.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView accessoryOpen]): Added. Extracted the logic from -_elementDidFocus to scroll to
+        the focused element, update the accessory and then tell the accessory to begin editing.
+        (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
+        Write in terms of -accessoryOpen.
+        * UIProcess/ios/forms/WKFormPeripheralBase.mm:
+        (-[WKFormPeripheralBase handleKeyEvent:]): Interpret the spacebar when the peripheral is closed (!_editing)
+        and call -accessoryOpen to ultimately call back to this peripheral to tell it to begin editing,
+        which will cause the popover to appear again.
+
+2019-04-09  Chris Dumez  <cdumez@apple.com>
+
+        Unreviewed, fix webkitpy failure after r244085.
+
+        Use a list instead of a set for header includes so that the order is
+        maintained.
+
+        * Scripts/webkit/messages.py:
+
+2019-04-09  Andy Estes  <aestes@apple.com>
+
+        [Apple Pay] Add release logging to PaymentCoordinator
+        https://bugs.webkit.org/show_bug.cgi?id=196738
+
+        Reviewed by Alex Christensen.
+
+        * WebProcess/ApplePay/WebPaymentCoordinator.cpp:
+        (WebKit::WebPaymentCoordinator::isAlwaysOnLoggingAllowed const):
+        * WebProcess/ApplePay/WebPaymentCoordinator.h:
+
+2019-04-09  Jer Noble  <jer.noble@apple.com>
+
+        [Cocoa] Awaken UIProcess if WebContent process is awakened from suspensions unexpectedly.
+        https://bugs.webkit.org/show_bug.cgi?id=196659
+
+        Reviewed by Chris Dumez.
+
+        * Platform/IPC/Connection.h:
+        (IPC::Connection::sendWithAsyncReply):
+        * Platform/spi/ios/AssertionServicesSPI.h:
+        * Shared/Cocoa/ProcessTaskStateObserver.h: Added.
+        (WebKit::ProcessTaskStateObserver::setClient):
+        (WebKit::ProcessTaskStateObserver::client):
+        (WebKit::ProcessTaskStateObserver::taskState const):
+        * Shared/Cocoa/ProcessTaskStateObserver.mm: Added.
+        (-[WKProcessTaskStateObserverDelegate process:taskStateDidChange:]):
+        (WebKit::toProcessTaskStateObserverTaskState):
+        (WebKit::ProcessTaskStateObserver::ProcessTaskStateObserver):
+        (WebKit::ProcessTaskStateObserver::~ProcessTaskStateObserver):
+        (WebKit::ProcessTaskStateObserver::setTaskState):
+        * UIProcess/Cocoa/WebProcessProxyCocoa.mm:
+        (WebKit::WebProcessProxy::processWasUnexpectedlyUnsuspended):
+        * UIProcess/ProcessAssertion.h:
+        * UIProcess/ProcessThrottler.cpp:
+        (WebKit::ProcessThrottler::updateAssertion):
+        * UIProcess/ProcessThrottler.h:
+        (WebKit::ProcessThrottler::shouldBeRunnable const):
+        * UIProcess/WebProcessProxy.h:
+        * UIProcess/WebProcessProxy.messages.in:
+        * UIProcess/ios/ProcessAssertionIOS.mm:
+        (WebKit::reasonForState):
+        (WebKit::toBKSProcessAssertionReason):
+        (WebKit::ProcessAssertion::ProcessAssertion):
+        * WebKit.xcodeproj/project.pbxproj:
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::actualPrepareToSuspend):
+        (WebKit::WebProcess::cancelPrepareToSuspend):
+        (WebKit::WebProcess::processDidResume):
+        * WebProcess/WebProcess.h:
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::processTaskStateDidChange):
+
+2019-04-09  Alex Christensen  <achristensen@webkit.org>
+
+        Clicking "Go Back" from a safe browsing warning from an iframe should navigate the WKWebView back to the previous page
+        https://bugs.webkit.org/show_bug.cgi?id=196665
+        <rdar://45115669>
+
+        Reviewed by Geoff Garen.
+
+        It is insufficient to just not navigate the subframe.  We must leave the page that contained it.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _showSafeBrowsingWarning:completionHandler:]):
+        * UIProcess/Cocoa/WebViewImpl.mm:
+        (WebKit::WebViewImpl::showSafeBrowsingWarning):
+
+2019-04-09  John Wilander  <wilander@apple.com>
+
+        Pick up Ad Click Attribution conversions in NetworkResourceLoader::willSendRedirectedRequest()
+        https://bugs.webkit.org/show_bug.cgi?id=196558
+        <rdar://problem/47650245>
+
+        Reviewed by Youenn Fablet.
+
+        So called pixel requests have traditionally been used to send ad click
+        attribution data to click sources. The privacy implications of such
+        pixel requests are severe which is in part why browsers have started to
+        block cookies from being sent in such third-party requests.
+
+        To allow for a smooth transition to more privacy-friendly ad click
+        attribution, we should allow servers to make a redirect to
+        https://click-source.example/.well-known/ad-click-attribution/ to
+        trigger a so called conversion.
+
+        This patch checks for the well-known location in the path component of
+        the redirect URL. If the request indeed goes to the well-known location,
+        we parse the conversion data and send it to the storage in the network
+        session.
+
+        * NetworkProcess/NetworkAdClickAttribution.cpp:
+        (WebKit::NetworkAdClickAttribution::convert):
+            Reporting function.
+        * NetworkProcess/NetworkAdClickAttribution.h:
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        (WebKit::NetworkResourceLoader::willSendRedirectedRequest):
+            Now checks for the well-known location through a call to
+            WebCore::AdClickAttribution::parseConversionRequest().
+        * NetworkProcess/NetworkSession.cpp:
+        (WebKit::NetworkSession::convertAdClickAttribution):
+            Piping to WebKit::NetworkAdClickAttribution::convert().
+        * NetworkProcess/NetworkSession.h:
+
+2019-04-09  Chris Dumez  <cdumez@apple.com>
+
+        [iOS] WebContent processes should be marked as "Foreground Running" when their view is visible
+        https://bugs.webkit.org/show_bug.cgi?id=196695
+        <rdar://problem/48073787>
+
+        Reviewed by Tim Horton.
+
+        In order for WebContent processes to get marked as "Foreground Running" when their view
+        is visible on iOS, we now construct a _UILayerHostView in the UIProcess and add it as
+        a subview of the WKContentView. The _UILayerHostView's visibility target is the
+        WebContent process currently associated with the view.
+
+        * Platform/spi/ios/UIKitSPI.h:
+        * UIProcess/PageClient.h:
+        (WebKit::PageClient::didCreateContextForVisibilityPropagation):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebProcessProxy.h:
+        (WebKit::WebProcessProxy::contextIDForVisibilityPropagation):
+        * UIProcess/WebProcessProxy.messages.in:
+        * UIProcess/ios/PageClientImplIOS.h:
+        * UIProcess/ios/PageClientImplIOS.mm:
+        (WebKit::PageClientImpl::didCreateContextForVisibilityPropagation):
+        * UIProcess/ios/WKContentView.h:
+        * UIProcess/ios/WKContentView.mm:
+        (-[WKContentView _commonInitializationWithProcessPool:configuration:]):
+        (-[WKContentView _setupVisibilityPropagationView]):
+        (-[WKContentView _processDidExit]):
+        (-[WKContentView _didRelaunchProcess]):
+        (-[WKContentView _processDidCreateContextForVisibilityPropagation]):
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::didCreateContextForVisibilityPropagation):
+        * UIProcess/ios/WebProcessProxyIOS.mm:
+        (WebKit::WebProcessProxy::didCreateContextForVisibilityPropagation):
+        * WebProcess/WebProcess.h:
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+
+2019-04-09  Sihui Liu  <sihui_liu@apple.com>
+
+        Remove unnecessary network process assertion for IDB close
+        https://bugs.webkit.org/show_bug.cgi?id=196693
+
+        Reviewed by Geoffrey Garen.
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::createIDBServer):
+        (WebKit::NetworkProcess::notifyHoldingLockedFiles): Deleted.
+        * NetworkProcess/NetworkProcess.h:
+        * UIProcess/Network/NetworkProcessProxy.cpp:
+        (WebKit::NetworkProcessProxy::didClose):
+        (WebKit::NetworkProcessProxy::setIsIDBDatabaseHoldingLockedFiles): Deleted.
+        * UIProcess/Network/NetworkProcessProxy.h:
+        * UIProcess/Network/NetworkProcessProxy.messages.in:
+
+2019-04-09  Chris Dumez  <cdumez@apple.com>
+
+        Loads using loadHTMLString() cause flashing when process-swapping
+        https://bugs.webkit.org/show_bug.cgi?id=196714
+        <rdar://problem/49637354>
+
+        Reviewed by Antti Koivisto.
+
+        Our logic to decide if we should construct a SuspendedPageProxy on process-swap was assuming
+        a SuspendedPageProxy is only useful for PageCache and would therefore not create one if PageCache
+        is disabled or if there is no associated WebBackForwardListItem. However, constructing a
+        SuspendedPageProxy is also useful to prevent flashing when process-swapping as we need to keep
+        displaying the layer of the previous process until there is something meaningful to show in the
+        new process.
+
+        This patch makes it so that we now construct a SuspendedPageProxy on process-swap, even if
+        PageCache is disabled or if there is no associated WebBackForwardListItem. The process in
+        question will not be useful for PageCache but it will avoid flashing. The SuspendedPageProxy's
+        process may also get used for future navigations to the same site (as demonstrated by the
+        API test) which is beneficial for performance.
+
+        * UIProcess/SuspendedPageProxy.cpp:
+        (WebKit::SuspendedPageProxy::SuspendedPageProxy):
+        * UIProcess/SuspendedPageProxy.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::suspendCurrentPageIfPossible):
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::findReusableSuspendedPageProcess):
+
+2019-04-08  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake][WinCairo] Separate copied headers into different directories
+        https://bugs.webkit.org/show_bug.cgi?id=196655
+
+        Reviewed by Michael Catanzaro.
+
+        * CMakeLists.txt:
+        * PlatformWin.cmake:
+
+2019-04-08  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [iOS] Do not allow starting selection drags when selection views are not visible
+        https://bugs.webkit.org/show_bug.cgi?id=196686
+        <rdar://problem/49399192>
+
+        Reviewed by Tim Horton.
+
+        Currently, on iOS, it's possible to start dragging selected text in a web view even if the selection itself is
+        not visible. This can happen if the user selects some text, focuses a native text field, and then long presses
+        the previously selected text. This is because the text is still selected in the document since we don't clear
+        the selection when resigning first responder on iOS, despite the fact that the native selection view is no
+        longer present.
+
+        To fix this, we add plumbing to specify the set of allowed drag source actions when requesting drag start; this
+        set of allowed drag source actions only includes DragSourceActionSelection if the selection view can be visible
+        (i.e. the content view is first responder, and isn't suppressing text interactions). We then update WebPage's
+        allowed drag source actions with this given set of actions, while sending "dragstart" to the page.
+
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView hasSelectablePositionAtPoint:]):
+        (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
+
+        Only bail out of text selection in text that is already selected if the web view allows dragging text selections
+        (i.e. the web view is first responder, and is not suppressing text interactions).
+
+        (-[WKContentView _allowedDragSourceActions]):
+        (-[WKContentView _dragInteraction:itemsForAddingToSession:withTouchAtPoint:completion:]):
+        (-[WKContentView _dragInteraction:prepareForSession:completion:]):
+
+        Pass the set of allowed drag source actions when requesting a drag start or adding items to an existing session.
+
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::requestDragStart):
+        (WebKit::WebPageProxy::requestAdditionalItemsForDragSession):
+
+        Plumb the allowed drag source actions from the UI process (WKContentView) over to the web process (WebPage).
+
+        * WebProcess/WebCoreSupport/WebDragClient.cpp:
+        (WebKit::WebDragClient::dragSourceActionMaskForPoint):
+
+        Instead of always returning Any, consult WebPage's allowed drag source actions.
+
+        * WebProcess/WebPage/WebPage.h:
+        (WebKit::WebPage::allowedDragSourceActions const):
+        * WebProcess/WebPage/WebPage.messages.in:
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::requestDragStart):
+        (WebKit::WebPage::requestAdditionalItemsForDragSession):
+
+        Set WebPage's allowed drag source actions to the given set of actions when sending a drag start to the page.
+
+2019-04-08  Justin Fan  <justin_fan@apple.com>
+
+        [Web GPU] Fix Web GPU experimental feature on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=196632
+
+        Reviewed by Myles C. Maxfield.
+
+        Add feature conditionals for iOS 11.
+        Properly make Web GPU available on iOS 11+.
+
+        * Configurations/FeatureDefines.xcconfig:
+        * Configurations/WebKitTargetConditionals.xcconfig:
+
+2019-04-08  Alex Christensen  <achristensen@webkit.org>
+
+        Fix selector name after r243834
+        https://bugs.webkit.org/show_bug.cgi?id=196549
+
+        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+        (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
+        I forgot the colon in the setter's name.
+
+2019-04-08  Antti Koivisto  <antti@apple.com>
+
+        Compute touch actions for touch point from remote layer tree regions
+        https://bugs.webkit.org/show_bug.cgi?id=196701
+
+        Reviewed by Simon Fraser.
+
+        Add a function for finding the right layer and getting the touch actions in UI process side.
+
+        The code is not used yet.
+
+        * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:
+        * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
+        (WebKit::touchActionsForPoint):
+
+        Use the same code as overlap hit testing for collecting the candidate layers for the touch point,
+        taking event regions into account.
+        Return the touch actions from the deepest event sensitive layer hit.
+
+        (-[UIView _web_findDescendantViewAtPoint:withEvent:]):
+
+        Modernize.
+
+2019-04-08  Brent Fulgham  <bfulgham@apple.com>
+
+        Make HSTS list handling more robust against unexpected content 
+        https://bugs.webkit.org/show_bug.cgi?id=196552
+        <rdar://problem/43403817>
+
+        Reviewed by Chris Dumez.
+
+        Crash logs indicate we sometimes encounter null key values during processing.
+        This patch adds some debug assertions to catch this in test environments, and
+        allows the code to skip the bad entries if encountered.
+
+        It also avoids calling CFDictionaryApplyFunction when the HSTS policies returned
+        by _CFNetworkCopyHSTSPolicies is nullptr, which is a possible return value.
+
+        * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
+        (WebKit::filterPreloadHSTSEntry):
+        (WebKit::NetworkProcess::getHostNamesWithHSTSCache):
+
+2019-04-05  Brian Burg  <bburg@apple.com>
+
+        Web Automation: clean up some WebAutomationSession methods to use modern async IPC
+        https://bugs.webkit.org/show_bug.cgi?id=196168
+
+        Reviewed by Devin Rousso.
+
+        Modern WebKit IPC is capable of providing completion handlers and can track callback IDs.
+        So, most messages between WebAutomationSession and its proxy can use this facility and stop
+        keeping track of callback IDs manually. This makes most code easier to read on both the
+        sender and receiver side.
+
+        There are two cases that could not be converted:
+        - For evaluateJavaScript, we cannot use async IPC because WebAutomationSession expects to
+        be able to cancel all pending replies when a page navigates away, the web process crashes,
+        or when handling an alert.
+        - For takeScreenshot, there is not currently support in the modern async IPC code paths for
+        sending the result back. ShareableBitmap and friends lack a modern decoder implementation.
+
+        * UIProcess/Automation/WebAutomationSession.cpp:
+        (WebKit::WebAutomationSession::resolveChildFrameHandle):
+        (WebKit::WebAutomationSession::resolveParentFrameHandle):
+        (WebKit::WebAutomationSession::computeElementLayout):
+        (WebKit::WebAutomationSession::selectOptionElement):
+        (WebKit::WebAutomationSession::getAllCookies):
+        (WebKit::WebAutomationSession::deleteSingleCookie):
+        (WebKit::WebAutomationSession::viewportInViewCenterPointOfElement):
+        (WebKit::WebAutomationSession::didResolveChildFrame): Deleted.
+        (WebKit::WebAutomationSession::didResolveParentFrame): Deleted.
+        (WebKit::WebAutomationSession::didComputeElementLayout): Deleted.
+        (WebKit::WebAutomationSession::didSelectOptionElement): Deleted.
+        (WebKit::WebAutomationSession::didGetCookiesForFrame): Deleted.
+        (WebKit::WebAutomationSession::didDeleteCookie): Deleted.
+        * UIProcess/Automation/WebAutomationSession.h:
+        * UIProcess/Automation/WebAutomationSession.messages.in:
+        * WebProcess/Automation/WebAutomationSessionProxy.cpp:
+        (WebKit::WebAutomationSessionProxy::resolveChildFrameWithOrdinal):
+        (WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle):
+        (WebKit::WebAutomationSessionProxy::resolveChildFrameWithName):
+        (WebKit::WebAutomationSessionProxy::resolveParentFrame):
+        (WebKit::WebAutomationSessionProxy::computeElementLayout):
+        (WebKit::WebAutomationSessionProxy::selectOptionElement):
+        (WebKit::WebAutomationSessionProxy::getCookiesForFrame):
+        (WebKit::WebAutomationSessionProxy::deleteCookie):
+        * WebProcess/Automation/WebAutomationSessionProxy.h:
+        * WebProcess/Automation/WebAutomationSessionProxy.messages.in:
+
+2019-04-08  Alex Christensen  <achristensen@webkit.org>
+
+        REGRESSION(236463) DownloadManager can call a null CompletionHandler
+        https://bugs.webkit.org/show_bug.cgi?id=196414
+        <rdar://problem/48389434>
+
+        Reviewed by Geoff Garen.
+
+        * NetworkProcess/NetworkResourceLoader.cpp:
+        (WebKit::NetworkResourceLoader::convertToDownload):
+        DownloadManager::continueDecidePendingDownloadDestination is being called when there is no completion handler.
+        r236463 introduced an unchecked code path that can allow this to happen.
+
+2019-04-07  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r243956.
+        https://bugs.webkit.org/show_bug.cgi?id=196688
+
+        Broke API Test SafeBrowsing.WKWebViewGoBackIFrame (Requested
+        by aakashjain on #webkit).
+
+        Reverted changeset:
+
+        "Clicking "Go Back" from a safe browsing warning from an
+        iframe should navigate the WKWebView back to the previous
+        page"
+        https://bugs.webkit.org/show_bug.cgi?id=196665
+        https://trac.webkit.org/changeset/243956
+
+2019-04-07  Geoffrey Garen  <ggaren@apple.com>
+
+        Remove stray byte added by r241131
+        https://bugs.webkit.org/show_bug.cgi?id=196682
+
+        Reviewed by Alexey Proskuryakov.
+
+        Sublime Text thinks WKWebView.mm is binary instead of text.
+
+        According to online documentation and bisecting, this is because r241131
+        introduced a stray byte (probably a null byte?) into the file.
+
+        I fixed this with Cmd-C Cmd-V.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _initializeWithConfiguration:]):
+
+2019-04-06  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Hide next and previous form control buttons when WKWebView is editable
+        https://bugs.webkit.org/show_bug.cgi?id=196672
+        <rdar://problem/35625321>
+
+        Reviewed by Tim Horton.
+
+        Adopt new UIKit SPI to hide or show next and previous controls in the form accessory view when changing
+        editability.
+
+        Test: KeyboardInputTests.FormNavigationAssistantBarButtonItems
+
+        * Platform/spi/ios/UIKitSPI.h:
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _setEditable:]):
+        * UIProcess/ios/WKContentViewInteraction.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView _updateAccessory]):
+        (-[WKContentView _didChangeWebViewEditability]):
+
+2019-04-06  Antti Koivisto  <antti@apple.com>
+
+        Combine event and touch action regions into a single class
+        https://bugs.webkit.org/show_bug.cgi?id=196644
+        <rdar://problem/49643614>
+
+        Reviewed by Darin Adler.
+
+        * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
+        * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
+        (WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
+        * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:
+        (WebKit::RemoteLayerTreeNode::eventRegion const):
+        * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
+        (WebKit::RemoteLayerTreeNode::setEventRegion):
+        * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
+        (WebKit::PlatformCALayerRemote::setEventRegion):
+        * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
+
+2019-04-05  Yongjun Zhang  <yongjun_zhang@apple.com>
+
+        We should pass minimumEffectiveDeviceWidth to web process on new page creation.
+        https://bugs.webkit.org/show_bug.cgi?id=196077
+        <rdar://problem/49108202>
+
+        Reviewed by Chris Dumez.
+
+        When a new web view is created, it is possible we don't have the web content process till a load
+        is requested. This patch stashes minimumEffectiveDeviceWidth in WebPageProxy.cpp and passes that
+        value down to web process via WebPageCreationParameters when a new process is created, just like
+        we did for other values like viewportConfigurationLayoutSizeScaleFactor or viewportConfigurationViewLayoutSize.
+
+        * Shared/WebPageCreationParameters.cpp:
+        (WebKit::WebPageCreationParameters::encode const): Encode viewportConfigurationMinimumEffectiveDeviceWidth value.
+        (WebKit::WebPageCreationParameters::decode): Decode viewportConfigurationMinimumEffectiveDeviceWidth value.
+        * Shared/WebPageCreationParameters.h:
+        * UIProcess/API/Cocoa/WKWebView.mm: Now that we stash the minimumEffectiveDeviceWidth value in WebPageProxy, we
+            don't need the iVar in WKWebView any more.
+        (-[WKWebView _dispatchSetViewLayoutSize:]): Use _page->minimumEffectiveDeviceWidth().
+        (-[WKWebView _setViewScale:]): Ditto.
+        (-[WKWebView _setMinimumEffectiveDeviceWidth:]): Ditto.
+        (-[WKWebView _minimumEffectiveDeviceWidth]): Ditto.
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::creationParameters): Also add viewportConfigurationMinimumEffectiveDeviceWidth to
+            web process creation parameter.
+        * UIProcess/WebPageProxy.h:
+        (WebKit::WebPageProxy::minimumEffectiveDeviceWidth const): Returns m_viewportConfigurationMinimumEffectiveDeviceWidth.
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize): Pass parameters.viewportConfigurationMinimumEffectiveDeviceWidth
+            to web process.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::WebPage): Take viewportConfigurationMinimumEffectiveDeviceWidth value from the parameter and
+            set that to viewport configuration.
+
+2019-04-05  Jer Noble  <jer.noble@apple.com>
+
+        [Cocoa] Deactivate the audio session before the WebProcess suspends.
+        https://bugs.webkit.org/show_bug.cgi?id=196658
+
+        Reviewed by Eric Carlson.
+
+        Notify the PlatformMediaSessionManager when the process suspends or resumes.
+
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::actualPrepareToSuspend):
+        (WebKit::WebProcess::cancelPrepareToSuspend):
+        (WebKit::WebProcess::processDidResume):
+
+2019-04-05  Sihui Liu  <sihui_liu@apple.com>
+
+        [iOS] Web process gets suspended while holding locked database files
+        https://bugs.webkit.org/show_bug.cgi?id=196519
+        <rdar://problem/49531797>
+
+        Reviewed by Chris Dumez.
+
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::actualPrepareToSuspend):
+
 2019-04-05  Alex Christensen  <achristensen@webkit.org>
 
         Clicking "Go Back" from a safe browsing warning from an iframe should navigate the WKWebView back to the previous page