Add API test to validate setting of service worker and cache storage directories
[WebKit-https.git] / Source / WebKit / ChangeLog
index 05166ea..84ff1ee 100644 (file)
+2018-03-01  Youenn Fablet  <youenn@apple.com>
+
+        Add API test to validate setting of service worker and cache storage directories
+        https://bugs.webkit.org/show_bug.cgi?id=182543
+
+        Reviewed by Chris Dumez.
+
+        Add cache engine directory path to its representation dump.
+        This is used in API tests to check that the path is correctly set.
+
+        Add a way for to know whether a service worker was registered from a WKWebsiteDataStore.
+        This is used in API tests to check that the path is correctly set.
+
+        * NetworkProcess/cache/CacheStorageEngine.cpp:
+        (WebKit::CacheStorage::Engine::representation):
+        * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
+        (-[WKWebsiteDataStore _hasRegisteredServiceWorker]):
+        * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
+
+2018-03-01  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Fix some errors due to some mach port APIs being unavailable on watchOS
+        https://bugs.webkit.org/show_bug.cgi?id=183262
+        <rdar://problem/38028521>
+
+        Reviewed by Tim Horton.
+
+        Minor build fix; mach_port_guard and mach_port_unguard are not available on this platform.
+
+        * Platform/IPC/mac/ConnectionMac.mm:
+        (IPC::Connection::platformInvalidate):
+        (IPC::Connection::platformInitialize):
+        (IPC::Connection::open):
+
+2018-03-01  Per Arne Vollan  <pvollan@apple.com>
+
+        Unreviewed build fix after r229140.
+
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+
+2018-03-01  Per Arne Vollan  <pvollan@apple.com>
+
+        Scrollbar preferences are ignored when the WebContent process doesn't have access to the WindowServer.
+        https://bugs.webkit.org/show_bug.cgi?id=183231
+        <rdar://problem/37793457>
+
+        Reviewed by Brent Fulgham.
+
+        When the WebContent process doesn't have access to the WindowServer, the scrollbars are always of the overlay type.
+        The notification about scrollbar preferences is never received by the WebContent process when there is no
+        WindowServer access. This can be fixed by adding an observer of scrollbar preferences in the UI process, and
+        notifying the WebProcess about this by sending it a message. This message should also contain the preferred
+        scrollbar type, since the call '[NSScroller preferredScrollerStyle]' will always return the overlay style when
+        there is no WindowServer access.
+
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::registerNotificationObservers):
+        (WebKit::WebProcessPool::unregisterNotificationObservers):
+        * UIProcess/WebProcessPool.h:
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::initializeProcess):
+        * WebProcess/WebProcess.h:
+        * WebProcess/WebProcess.messages.in:
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::scrollerStylePreferenceChanged):
+
+2018-03-01  Antti Koivisto  <antti@apple.com>
+
+        Crash when updating cache entry after validation in apps that uses class A file protection
+        https://bugs.webkit.org/show_bug.cgi?id=183242
+        <rdar://problem/33289058>
+
+        Reviewed by Chris Dumez.
+
+        When validating a cache entry, we keep it alive until we get a network response. With 304 response
+        we then update the headers of this existing entry. This accesses the body data of the entry which
+        may be backed by a mapped file. If the app uses class A protection, user might have locked
+        the device and the entry might have become inaccessible, leading to a crash.
+
+        * NetworkProcess/cache/NetworkCacheEntry.cpp:
+        (WebKit::NetworkCache::Entry::setNeedsValidation):
+
+        In case of class A protection, pull the data to a memory buffer immediately before starting a revalidation request.
+        This makes the window where the file could become inaccessible much shorter (since it no longer depends on network).
+
+2018-03-01  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        REGRESSION(r221514): [GTK] UI process crash in WebKit::WaylandCompositor::Surface::flushPendingFrameCallbacks
+        https://bugs.webkit.org/show_bug.cgi?id=183091
+
+        Reviewed by Michael Catanzaro.
+
+        Invalidate the surface in the page map when the backing store is destroyed.
+
+        * UIProcess/gtk/WaylandCompositor.cpp:
+        (WebKit::WaylandCompositor::willDestroySurface):
+        * UIProcess/gtk/WaylandCompositor.h:
+
+2018-02-28  Brian Burg  <bburg@apple.com>
+
+        [Cocoa] Web Automation: provide a way to ask clients the type of a JavaScript dialog
+        https://bugs.webkit.org/show_bug.cgi?id=182660
+        <rdar://problem/37408183>
+
+        Reviewed by Tim Horton and Carlos Garcia Campos.
+
+        Add another delegate method to ask what type of dialog is being shown.
+        This is used to implement §18.4 Step 5, where sending text to a dialog
+        without a prompt will return several different kinds of errors.
+
+        No new tests, covered by web platform tests once Safari side has landed.
+
+        * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: Update FIXME radar numbers.
+        * UIProcess/Cocoa/AutomationSessionClient.h:
+        * UIProcess/Cocoa/AutomationSessionClient.mm:
+        (WebKit::AutomationSessionClient::AutomationSessionClient):
+        (WebKit::toImpl):
+        (WebKit::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage):
+        If there is no current dialog to be checked, the client can return the 'None'
+        type. This gets converted into a std::nullopt and causes a command error later.
+
+2018-02-28  John Wilander  <wilander@apple.com>
+
+        Remove assertion from ResourceLoadStatisticsClassifier::calculateResourcePrevalence() which causes crashes when domains are explicitly set as prevalent without the associated statistics
+        https://bugs.webkit.org/show_bug.cgi?id=183233
+
+        Unreviewed removal of an assertion that's causing layout test crashes.
+
+        * Platform/classifier/ResourceLoadStatisticsClassifier.cpp:
+        (WebKit::ResourceLoadStatisticsClassifier::calculateResourcePrevalence):
+            Removed ASSERT(currentPrevalence == Low).
+
+2018-02-28  John Wilander  <wilander@apple.com>
+
+        Add a second tier of prevalence to facilitate telemetry on very prevalent domains
+        https://bugs.webkit.org/show_bug.cgi?id=183218
+        <rdar://problem/37992388>
+
+        Reviewed by Brent Fulgham.
+
+        * Platform/classifier/ResourceLoadStatisticsClassifier.cpp:
+        (WebKit::vectorLength):
+            New convenience function.
+        (WebKit::ResourceLoadStatisticsClassifier::calculateResourcePrevalence):
+            Renamed from ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics().
+            Now returns a value from the enum ResourceLoadPrevalence.
+        (WebKit::ResourceLoadStatisticsClassifier::classifyWithVectorThreshold):
+            Now uses the new vectorLength() convenience function.
+        (WebKit::ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics): Deleted.
+            Renamed to ResourceLoadStatisticsClassifier::calculateResourcePrevalence().
+        * Platform/classifier/ResourceLoadStatisticsClassifier.h:
+            Added enum ResourceLoadPrevalence.
+        * Shared/WebCoreArgumentCoders.cpp:
+        (IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
+        (IPC::ArgumentCoder<ResourceLoadStatistics>::decode):
+            Handling of the new boolean field isVeryPrevalentResource.
+        * UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
+        (WKWebsiteDataStoreSetStatisticsVeryPrevalentResource):
+        (WKWebsiteDataStoreIsStatisticsVeryPrevalentResource):
+            Test infrastructure.
+        * UIProcess/API/C/WKWebsiteDataStoreRef.h:
+        * UIProcess/WebResourceLoadStatisticsStore.cpp:
+        (WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
+        (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
+        (WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource):
+        (WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource):
+        (WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
+            All of these are for handling of the two-tier classification.
+            Also bumped the statisticsModelVersion to 12.
+        * UIProcess/WebResourceLoadStatisticsStore.h:
+
+2018-02-28  Alex Christensen  <achristensen@webkit.org>
+
+        Reduce use of NetworkingContext in WebKit
+        https://bugs.webkit.org/show_bug.cgi?id=183213
+
+        Reviewed by Brady Eidson.
+
+        * NetworkProcess/RemoteNetworkingContext.h:
+        * WebProcess/Network/WebLoaderStrategy.cpp:
+        (WebKit::WebLoaderStrategy::loadResourceSynchronously):
+        (WebKit::WebLoaderStrategy::preconnectTo):
+        * WebProcess/Network/WebLoaderStrategy.h:
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::proxiesForURL):
+        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
+        * WebProcess/WebPage/WebFrame.cpp:
+
+2018-02-28  Brent Fulgham  <bfulgham@apple.com>
+
+        Remove network access from the WebContent process sandbox
+        https://bugs.webkit.org/show_bug.cgi?id=183192
+        <rdar://problem/35369115>
+
+        Reviewed by Alex Christensen.
+
+        Remove the 'system-network', 'allow-network-common', and 'network-client' access from the WebContent process.
+        That's why we have a Network Process! 
+
+        * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
+        * WebProcess/com.apple.WebProcess.sb.in:
+
+2018-02-27  Tim Horton  <timothy_horton@apple.com>
+
+        Ensure target triple is propagated correctly to DerivedSources.make
+        https://bugs.webkit.org/show_bug.cgi?id=183189
+        <rdar://problem/37959694>
+
+        Reviewed by Dan Bernstein.
+
+        * Configurations/Base.xcconfig:
+        * DerivedSources.make:
+        Ditto the WebCore ChangeLog.
+
+2018-02-27  Yongjun Zhang  <yongjun_zhang@apple.com>
+
+        Make it possible to set suggestions in extra zoom mode.
+        https://bugs.webkit.org/show_bug.cgi?id=183154
+        <rdar://problem/35227450>
+
+        Reviewed by Tim Horton.
+
+        In extra zoom mode, when presenting WKFocusedFormControlViewController, make it the inputDelegate for
+        WKContentView. This is needed to ensure we can capture/cache the suggestions when _WKInputSession's
+        suggestions is updated. Later, when we present WKTextInputViewController, we can pass the cached
+        suggestions.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView presentFocusedFormControlViewController:]): Set _focusedFormControlViewController as
+            the inputDelegate for WKContentView.
+        (-[WKContentView dismissFocusedFormControlViewController:]): Null the inputDelegate on dismissal.
+        (-[WKContentView presentTextInputViewController:]): Pass the suggestions from WKFocusedFormControlViewController to
+            WKTextInputViewController when the latter is presented.
+        (-[WKContentView textInputController:didCommitText:]): Call the new delegate method textInputController:didCommitText:withSuggestion:.
+        (-[WKContentView textInputController:didCommitText:withSuggestion:]): When a suggestions is selected, insert the
+            suggestion which will notify the client.
+        (-[WKContentView focusedFormControllerDidUpdateSuggestions:]): Called when the suggestion is updated after the input
+            view controller is presented.
+
+2018-02-27  Tim Horton  <timothy_horton@apple.com>
+
+        Stop using deprecated CADisplay SPI
+        https://bugs.webkit.org/show_bug.cgi?id=183150
+        <rdar://problem/37918297>
+
+        Reviewed by Simon Fraser.
+
+        * Platform/spi/ios/FrontBoardServicesSPI.h: Added.
+        * Platform/spi/ios/UIKitSPI.h:
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
+        * WebKit.xcodeproj/project.pbxproj:
+        Switch to the more modern way of getting the display name.
+
+2018-02-27  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r229055.
+
+        Breaks internal builds.
+
+        Reverted changeset:
+
+        "Stop using deprecated CADisplay SPI"
+        https://bugs.webkit.org/show_bug.cgi?id=183150
+        https://trac.webkit.org/changeset/229055
+
+2018-02-27  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [Extra zoom mode] Implement additional SPI for adjusting viewport shrink-to-fit behavior
+        https://bugs.webkit.org/show_bug.cgi?id=183100
+        <rdar://problem/37840987>
+
+        Reviewed by Tim Horton.
+
+        Add new SPI hooks to provide finer control over certain aspects of the shrink-to-fit viewport heuristic.
+        Currently, in certain cases of iPad multitasking, Safari allows shrinking content to fit by default. This means
+        that even when "width=device-width" is used, if the contents of the page are too wide to fit within the
+        viewport's width, we'll adjust the initial scale such that the viewport can fit all of the content.
+
+        However, in certain viewport dimensions, this heuristic is insufficient to ensure that pages are laid out and
+        displayed properly within the viewport. Namely, one could imagine that an element with a hard-coded width that
+        is larger than the real viewport width would cause all other elements with dimensions relative to the body to be
+        excessively shrunk down once shrink-to-fit is applied, so the page would still look broken even if the contents
+        of the page all fit within the viewport.
+
+        To mitigate this, we decouple the notions of minimum layout size from the size of the actual viewport (which we
+        simply refer to as "view size"). This allows us to introduce a mechanism where we lay out the page at a given
+        minimum layout size that is larger than the size of the view; later, when we determine the initial scale, we
+        then apply shrink-to-fit scaling using the view size rather than the minimum layout size. This grants us the
+        ability to lay out content as if our view were large, but still ensure that the contents of the page fit within
+        the actual view.
+
+        * Shared/VisibleContentRectUpdateInfo.cpp:
+        (WebKit::VisibleContentRectUpdateInfo::encode const):
+        (WebKit::VisibleContentRectUpdateInfo::decode):
+        (WebKit::operator<<):
+        * Shared/VisibleContentRectUpdateInfo.h:
+        (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
+        (WebKit::VisibleContentRectUpdateInfo::forceHorizontalShrinkToFit const):
+        (WebKit::operator==):
+
+        Plumb the forceHorizontalShrinkToFit flag through VisibleContentRectUpdateInfo.
+
+        * Shared/WebPageCreationParameters.cpp:
+        (WebKit::WebPageCreationParameters::encode const):
+        (WebKit::WebPageCreationParameters::decode):
+        * Shared/WebPageCreationParameters.h:
+
+        Plumb viewSize through IPC to WebPage.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _initializeWithConfiguration:]):
+
+        Start off WKWebView flags at their initial values.
+
+        (-[WKWebView _minimumAllowedLayoutWidth]):
+        (-[WKWebView _setMinimumAllowedLayoutWidth:]):
+
+        This provides the minimum width at which the page will lay out, such that if the view width dips below this
+        value, we'll use this minimum allowed layout width instead. 0 by default.
+
+        (-[WKWebView activeMinimumLayoutSizes:]):
+
+        Refactor this from a static function to a helper method on WKWebView that computes both the minimum layout size
+        (which takes minimum allowed layout width into account) as well as the real view size. Refactor all call sites
+        to use this new method, and also propagate the view size down via IPC, alongside the minimum layout size.
+
+        (-[WKWebView _dispatchSetMinimumLayoutSize:viewSize:]):
+        (-[WKWebView _frameOrBoundsChanged]):
+        (-[WKWebView _setMinimumLayoutSizeOverride:]):
+        (-[WKWebView _setForceHorizontalViewportShrinkToFit:]):
+        (-[WKWebView _forceHorizontalViewportShrinkToFit]):
+
+        Setting this flag to YES forces us to always shrink-to-fit in the horizontal axis. NO by default.
+
+        (-[WKWebView _beginAnimatedResizeWithUpdates:]):
+        (-[WKWebView _endAnimatedResize]):
+        (activeMinimumLayoutSize): Deleted.
+
+        More refactoring to replace activeMinimumLayoutSize() with -activeMinimumLayoutSizes:.
+
+        (-[WKWebView _dispatchSetMinimumLayoutSize:]): Deleted.
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::creationParameters):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/ios/WKContentView.mm:
+        (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
+
+        Pass _forceHorizontalViewportShrinkToFit into the visible content rect update.
+
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
+        (WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize):
+
+        Plumb viewSize alongside the existing minimumLayoutSize.
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::m_credentialsMessenger):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::setViewportConfigurationMinimumLayoutSize):
+        (WebKit::WebPage::dynamicViewportSizeUpdate):
+        (WebKit::WebPage::updateVisibleContentRects):
+
+        Set forceHorizontalShrinkToFit on the viewport configuration here.
+
+2018-02-27  Tim Horton  <timothy_horton@apple.com>
+
+        Stop using deprecated CADisplay SPI
+        https://bugs.webkit.org/show_bug.cgi?id=183150
+        <rdar://problem/37918297>
+
+        Reviewed by Simon Fraser.
+
+        * Platform/spi/ios/FrontBoardServicesSPI.h: Added.
+        * Platform/spi/ios/UIKitSPI.h:
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
+        * WebKit.xcodeproj/project.pbxproj:
+        Switch to the more modern way of getting the display name.
+
+2018-02-26  Youenn Fablet  <youenn@apple.com>
+
+        Caches::m_storage should be set to null in case of error at initialization time
+        https://bugs.webkit.org/show_bug.cgi?id=183068
+
+        Reviewed by Chris Dumez.
+
+        In case of error, we need to set m_storage back to nullptr so that
+        next tries to initialize it will restart from scratch.
+        If we do not set it to nullptr, we end up storing the initialize
+        callback in a queue and the callback will never be called.
+
+        This is difficult to test as we need the following conditions:
+        - we need to have an error case, like a disk writing error
+        - we need the web app to open a cache in two different pages/frames at about the same time.
+
+        * NetworkProcess/cache/CacheStorageEngineCaches.cpp:
+        (WebKit::CacheStorage::Caches::initialize):
+
+2018-02-26  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r226330.
+        https://bugs.webkit.org/show_bug.cgi?id=183152
+
+        incorrectly assumes enumeration callback happens once
+        (Requested by alexchristensen on #webkit).
+
+        Reverted changeset:
+
+        "Use BlockPtrs and lambdas instead of new/delete to pass
+        parameters to blocks in WebViewImpl::performDragOperation"
+        https://bugs.webkit.org/show_bug.cgi?id=180795
+        https://trac.webkit.org/changeset/226330
+
+2018-02-26  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Release assertion in WebPage::updatePreferences
+        https://bugs.webkit.org/show_bug.cgi?id=183075
+
+        Reviewed by Youenn Fablet and Chris Dumez.
+
+        Replaced the release assertion added in r228589 with a more graceful disabling of the feature when the entitlement is missing.
+
+        * StorageProcess/StorageProcess.cpp:
+        (WebKit::StorageProcess::didReceiveMessage): Added an early exit with an entitlement check to disable the feature.
+        (WebKit::StorageProcess::initializeWebsiteDataStore): Ditto.
+        (WebKit::StorageProcess::createStorageToWebProcessConnection): Replaced the release assertion with a debug assertion.
+        (WebKit::StorageProcess::swServerForSession): Removed the assertion. This code can be reached when the service worker is disabled.
+        (WebKit::StorageProcess::registerSWServerConnection): Replaced the release assertion with a debug assertion.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences): Disable the feature instead of crashing when the entitlement is missing.
+
+2018-02-26  Chris Dumez  <cdumez@apple.com>
+
+        Regression(r223431): Crash under didReceiveChallenge in NetworkSessionCocoa
+        https://bugs.webkit.org/show_bug.cgi?id=183134
+        <rdar://problem/36339049>
+
+        Reviewed by Alex Christensen.
+
+        Like other delegates functions in this file, it is possible for didReceiveChallenge to get called
+        after _session has been nulled out. Other delegate functions already had early returns when
+        _session is null. However, such early return was missing in didReceiveChallenge.
+
+        This patch ends the early return to didReceiveChallenge so that we do not end up calling
+        _session->downloadID(taskIdentifier) on a null _session.
+
+        * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+        (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
+
+2018-02-26  Youenn Fablet  <youenn@apple.com>
+
+        MessagePort is not always destroyed in the right thread
+        https://bugs.webkit.org/show_bug.cgi?id=183053
+
+        Reviewed by Chris Dumez.
+
+        Update code to pass a lambda to MessagePort::existingMessagePortForIdentifier.
+
+        * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:
+        (WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::messagesAvailableForPort):
+
+2018-02-25  Alexey Proskuryakov  <ap@apple.com>
+
+        Font smoothing doesn't get disabled if the preference is set before launching WebContent process
+        https://bugs.webkit.org/show_bug.cgi?id=183108
+
+        Reviewed by Tim Horton.
+
+        * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
+        Fix the bug. While at it, also avoid the anti-pattern in setAlwaysUsesComplexTextCodePath.
+
+2018-02-25  Philippe Normand  <pnormand@igalia.com>
+
+        Unreviewed GTK Debug build fix after r228942.
+
+        * UIProcess/API/glib/IconDatabase.cpp:
+        (WebKit::IconDatabase::iconDatabaseSyncThread):
+        (WebKit::IconDatabase::syncThreadMainLoop):
+        (WebKit::IconDatabase::readFromDatabase):
+        (WebKit::IconDatabase::writeToDatabase):
+        (WebKit::IconDatabase::cleanupSyncThread):
+
+2018-02-25  Chris Dumez  <cdumez@apple.com>
+
+        Service workers do not work well inside Web.app
+        https://bugs.webkit.org/show_bug.cgi?id=183105
+        <rdar://problem/37864140>
+
+        Reviewed by Youenn Fablet.
+
+        * StorageProcess/StorageProcess.cpp:
+        (WebKit::StorageProcess::didReceiveMessage):
+        We were failing to forward IPC messages to the ChildProcess class here. As a result,
+        the ChildProcess::RegisterURLSchemeServiceWorkersCanHandle IPC was being ignored
+        by the StorageProcess.
+
+2018-02-24  Zan Dobersek  <zdobersek@igalia.com>
+
+        Unreviewed WPE breakage fix.
+
+        * WebProcess/wpe/WebProcessMainWPE.cpp: Call g_set_prgname() in WebProcess 
+        to prepare the GLib state for subsequent GStreamer initialization.
+
+2018-02-23  John Wilander  <wilander@apple.com>
+
+        Introduce ITP debug logging as an opt-in developer feature
+        https://bugs.webkit.org/show_bug.cgi?id=183065
+        <rdar://problem/37803761>
+
+        Reviewed by Brent Fulgham.
+
+        * Platform/Logging.h:
+            Added a dedicated channel for Resource Load Statistics debug logging
+            since this will be part of a developer-facing feature and should not
+            be mixed with general Resource Load Statistics logging.
+        * UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:
+        (WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded):
+            Now picks up the user default setting for
+            ResourceLoadStatisticsDebugLoggingEnabled.
+        * UIProcess/WebResourceLoadStatisticsStore.cpp:
+        (WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
+            Now logs for which domains it purges website data if
+            ResourceLoadStatisticsDebugLoggingEnabled is set.
+        (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning):
+            Now logs for which domains it partitions and blocks cookies
+            in third-party contexts if ResourceLoadStatisticsDebugLoggingEnabled
+            is set.
+        * UIProcess/WebResourceLoadStatisticsStore.h:
+
+2018-02-23  Brent Fulgham  <bfulgham@apple.com>
+
+        [macOS] Correct sandbox violation during media playback
+        https://bugs.webkit.org/show_bug.cgi?id=183092
+        <rdar://problem/37718495>
+
+        Reviewed by Eric Carlson.
+
+        * WebProcess/com.apple.WebProcess.sb.in:
+
+2018-02-23  Yousuke Kimoto  <yousuke.kimoto@sony.com>
+
+        [MSVC] Unknown a type definition error in WebResourceLoadStatisticsStore on wincairo webkit
+        https://bugs.webkit.org/show_bug.cgi?id=182873
+
+        Reviewed by Yusuke Suzuki.
+
+        * UIProcess/WebResourceLoadStatisticsStore.h:
+
+2018-02-23  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GStreamer][MiniBrowser] Honor GStreamer command line parameters in MiniBrowser
+        https://bugs.webkit.org/show_bug.cgi?id=173655
+        <rdar://problem/37706341>
+
+        Reviewed by Philippe Normand.
+
+        Actually pass the gst command line options to the WebProcess. The options in /proc/self/cmdline are separated by
+        null characters, so we are effectively passing always the first option only, which is the program name. Then, in
+        the web process we always ignore the first option and providing WebProcess unconditionally, so we were doing
+        nothing.
+
+        * UIProcess/gtk/WebProcessPoolGtk.cpp:
+        (WebKit::WebProcessPool::platformInitializeWebProcess): Use WebCore::extractGStreamerOptionsFromCommandLine()
+        * UIProcess/wpe/WebProcessPoolWPE.cpp:
+        (WebKit::WebProcessPool::platformInitializeWebProcess): Ditto.
+        * WebProcess/soup/WebProcessSoup.cpp:
+        (WebKit::WebProcess::platformInitializeWebProcess): Move the vector.
+
+2018-02-22  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Remove currentTime() / currentTimeMS()
+        https://bugs.webkit.org/show_bug.cgi?id=183052
+
+        Reviewed by Mark Lam.
+
+        * NetworkProcess/cache/CacheStorageEngineCache.cpp:
+        * PluginProcess/WebProcessConnection.cpp:
+        * Shared/WebProcessCreationParameters.h:
+        * Shared/linux/WebMemorySamplerLinux.cpp:
+        (WebKit::WebMemorySampler::sampleWebKit const):
+        * Shared/mac/WebMemorySampler.mac.mm:
+        (WebKit::WebMemorySampler::sampleWebKit const):
+        * UIProcess/API/C/WKContext.cpp:
+        (WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):
+        * UIProcess/API/glib/IconDatabase.cpp:
+        (WebKit::IconDatabase::setIconDataForIconURL):
+        (WebKit::IconDatabase::synchronousLoadDecisionForIconURL):
+        (WebKit::IconDatabase::performURLImport):
+        * UIProcess/DrawingAreaProxyImpl.cpp:
+        * UIProcess/Plugins/PlugInAutoStartProvider.cpp:
+        (WebKit::expirationTimeFromNow):
+        (WebKit::PlugInAutoStartProvider::addAutoStartOriginHash):
+        (WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy const):
+        (WebKit::PlugInAutoStartProvider::setAutoStartOriginsTable):
+        (WebKit::PlugInAutoStartProvider::setAutoStartOriginsFilteringOutEntriesAddedAfterTime):
+        (WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest):
+        (WebKit::PlugInAutoStartProvider::didReceiveUserInteraction):
+        * UIProcess/Plugins/PlugInAutoStartProvider.h:
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::processDidFinishLaunching):
+        (WebKit::WebProcessPool::startMemorySampler):
+        (WebKit::WebProcessPool::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):
+        * UIProcess/WebProcessPool.h:
+        * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:
+        (API::InjectedBundle::PageLoaderClient::willPerformClientRedirectForFrame):
+        * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
+        (WebKit::InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame):
+        * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
+        * WebProcess/WebProcess.cpp:
+        (WebKit::m_webSQLiteDatabaseTracker):
+        (WebKit::WebProcess::isPlugInAutoStartOriginHash):
+        (WebKit::WebProcess::plugInDidStartFromOrigin):
+        (WebKit::WebProcess::didAddPlugInAutoStartOriginHash):
+        (WebKit::WebProcess::resetPlugInAutoStartOriginDefaultHashes):
+        (WebKit::WebProcess::resetPlugInAutoStartOriginHashes):
+        (WebKit::WebProcess::plugInDidReceiveUserInteraction):
+        * WebProcess/WebProcess.h:
+        * WebProcess/WebProcess.messages.in:
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        * WebProcess/wpe/WebProcessMainWPE.cpp:
+
+2018-02-22  Matt Baker  <mattbaker@apple.com>
+
+        Web Inspector: REGRESSION (r228349): ImageBitmap builtin is now runtime guarded
+        https://bugs.webkit.org/show_bug.cgi?id=183056
+        <rdar://problem/37799067>
+
+        Reviewed by Joseph Pecoraro.
+
+        * WebProcess/WebPage/WebInspectorUI.cpp:
+        (WebKit::WebInspectorUI::WebInspectorUI):
+
+2018-02-22  Youenn Fablet  <youenn@apple.com>
+
+        Caches::initialize should call all pending initialization callbacks in case of error
+        https://bugs.webkit.org/show_bug.cgi?id=183062
+
+        Reviewed by Chris Dumez.
+
+        * NetworkProcess/cache/CacheStorageEngineCaches.cpp:
+        (WebKit::CacheStorage::Caches::initialize):
+        (WebKit::CacheStorage::Caches::initializeSize):
+
+2018-02-22  Youenn Fablet  <youenn@apple.com>
+
+        CacheStorage::Engine::Caches::writeRecord is not always calling the completion handler
+        https://bugs.webkit.org/show_bug.cgi?id=183055
+
+        Reviewed by Chris Dumez.
+
+        Add a completion handler to Storage::store.
+        Use it instead in Caches::writeRecord.
+        This ensures that the Cache add/put promise will be called once all write operations have been done.
+
+        * NetworkProcess/cache/CacheStorageEngineCaches.cpp:
+        (WebKit::CacheStorage::Caches::writeRecord):
+        * NetworkProcess/cache/NetworkCacheStorage.cpp:
+        (WebKit::NetworkCache::Storage::WriteOperation::WriteOperation):
+        (WebKit::NetworkCache::Storage::finishWriteOperation):
+        (WebKit::NetworkCache::Storage::store):
+        * NetworkProcess/cache/NetworkCacheStorage.h:
+        (WebKit::NetworkCache::Storage::store):
+
+2018-02-22  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Add an entitlement check for service worker on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=182865
+
+        Reviewed by Dan Bernstein.
+
+        Addressed Dan's comment by using xpc_connection_copy_entitlement_value instead of obtaining the audit token first.
+
+        * Shared/mac/SandboxUtilities.h:
+        * Shared/mac/SandboxUtilities.mm:
+        (WebKit::connectedProcessHasEntitlement):
+        * StorageProcess/ios/StorageProcessIOS.mm:
+        (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const):
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const):
+
+2018-02-22  Youenn Fablet  <youenn@apple.com>
+
+        Fetch event release assert should take into account the fetch mode
+        https://bugs.webkit.org/show_bug.cgi?id=183047
+
+        Reviewed by Chris Dumez.
+
+        In case of navigation tasks, we should use the request URL and not the origin of the loading client.
+
+        * WebProcess/Storage/WebSWContextManagerConnection.cpp:
+        (WebKit::isValidFetch):
+        (WebKit::WebSWContextManagerConnection::startFetch):
+
+2018-02-22  Yousuke Kimoto  <yousuke.kimoto@sony.com>
+
+        [WinCairo] Fix compile errors in WebPageWin.cpp and WebProcessWin.cpp due to WebCore forwarding header paths
+        https://bugs.webkit.org/show_bug.cgi?id=182969
+
+        Reviewed by Konstantin Tokarev.
+
+        * WebProcess/WebPage/win/WebPageWin.cpp:
+        * WebProcess/win/WebProcessWin.cpp:
+
+2018-02-22  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Remove sleep(double) and sleepMS(double) interfaces
+        https://bugs.webkit.org/show_bug.cgi?id=183038
+
+        Reviewed by Mark Lam.
+
+        * PluginProcess/WebProcessConnection.cpp:
+        (WebKit::WebProcessConnection::createPluginAsynchronously):
+        * UIProcess/linux/MemoryPressureMonitor.cpp:
+        (WebKit::pollIntervalForUsedMemoryPercentage):
+        (WebKit::MemoryPressureMonitor::MemoryPressureMonitor):
+        * WebProcess/wpe/WebProcessMainWPE.cpp:
+
+2018-02-22  Youenn Fablet  <youenn@apple.com>
+
+        Add release logging for CacheStorage::Engine disk related functions
+        https://bugs.webkit.org/show_bug.cgi?id=183042
+
+        Reviewed by Chris Dumez.
+
+        * NetworkProcess/cache/CacheStorageEngine.cpp:
+        (WebKit::CacheStorage::Engine::writeFile):
+        (WebKit::CacheStorage::Engine::readFile):
+
+2018-02-22  Matt Lewis  <jlewis3@apple.com>
+
+        Unreviewed, rolling out r228902.
+
+        This broke internal builds.
+
+        Reverted changeset:
+
+        "[Cocoa] Web Automation: provide a way to ask clients the type
+        of a JavaScript dialog"
+        https://bugs.webkit.org/show_bug.cgi?id=182660
+        https://trac.webkit.org/changeset/228902
+
+2018-02-22  Youenn Fablet  <youenn@apple.com>
+
+        Add release asserts for service worker fetch and postMessage events
+        https://bugs.webkit.org/show_bug.cgi?id=183025
+        rdar://problem/37765052
+
+        Reviewed by Daniel Bates.
+
+        Add assertion to protect interception of a fetch load by a service worker with
+        a different origin from the page.
+
+        * WebProcess/Storage/WebSWContextManagerConnection.cpp:
+        (WebKit::WebSWContextManagerConnection::startFetch):
+
+2018-02-22  Ms2ger  <Ms2ger@igalia.com>
+
+        [GTK][WPE] Fix some build errors in service workers code
+        https://bugs.webkit.org/show_bug.cgi?id=182966
+
+        Reviewed by Žan Doberšek.
+
+        * CMakeLists.txt: add missing files.
+        * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: add missing includes.
+        * UIProcess/ServiceWorkerProcessProxy.cpp: use #include rather than #import in C++; add missing ifdef.
+        * UIProcess/ServiceWorkerProcessProxy.h: add missing ifdef.
+        * WebProcess/Storage/WebSWClientConnection.cpp: add missing includes.
+        * WebProcess/Storage/WebSWContextManagerConnection.cpp: add missing includes.
+        (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
+          call the function that exists outside cocoa.
+
+2018-02-21  Per Arne Vollan  <pvollan@apple.com>
+
+        The WebContent process should not use NSScreen in the screenAvailableRect/screenRect implementations.
+        https://bugs.webkit.org/show_bug.cgi?id=182855
+
+        Reviewed by Brent Fulgham.
+
+        On macOS, the functions screenAvailableRect and screenRect is implemented using NSScreen, which is communicating
+        with the WindowServer. To avoid this WindowServer communication from the WebContent process when calling
+        screenAvailableRect and screenRect, it is possible to let the UIProcess send a message to the WebContent
+        process whenever there is a change in the display properties, and have the WebContent process cache these
+        display properties. This message should also be sent to a newly started WebContent process.
+
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::displayReconfigurationCallBack):
+        (WebKit::registerDisplayConfigurationCallback):
+        (WebKit::WebProcessPool::initializeNewWebProcess):
+        (WebKit::WebProcessPool::warmInitialProcess):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::setScreenProperties):
+        * WebProcess/WebProcess.h:
+        * WebProcess/WebProcess.messages.in:
+
+2018-02-21  Christopher Reid  <chris.reid@sony.com>
+
+        [Curl] Curl Cookie Database File should be configurable using NetworkProcessCreationParameters
+        https://bugs.webkit.org/show_bug.cgi?id=182751
+
+        Reviewed by Youenn Fablet.
+
+        Adding a cookiePersistentStorageFile parameter to Curl's NetworkProcessCreationParameters.
+        This parameter is based on Soup's cookiePersistentStoragePath.
+        This parameter is not used yet, it is added to prepare for WinCairo WebKit support.
+
+        * NetworkProcess/NetworkProcessCreationParameters.cpp:
+        * NetworkProcess/NetworkProcessCreationParameters.h:
+        * NetworkProcess/curl/NetworkProcessCurl.cpp:
+        * WebProcess/Cookies/WebCookieManager.h:
+        * WebProcess/Cookies/curl/WebCookieManagerCurl.cpp:
+
+2018-02-21  Brian Burg  <bburg@apple.com>
+
+        [Cocoa] Web Automation: provide a way to ask clients the type of a JavaScript dialog
+        https://bugs.webkit.org/show_bug.cgi?id=182660
+        <rdar://problem/37408183>
+
+        Reviewed by Tim Horton and Carlos Garcia Campos.
+
+        Add another delegate method to ask what type of dialog is being shown.
+        This is used to implement §18.4 Step 5, where sending text to a dialog
+        without a prompt will return several different kinds of errors.
+
+        No new tests, covered by web platform tests once Safari side has landed.
+
+        * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: Update FIXME radar numbers.
+        * UIProcess/Cocoa/AutomationSessionClient.h:
+        * UIProcess/Cocoa/AutomationSessionClient.mm:
+        (WebKit::AutomationSessionClient::AutomationSessionClient):
+        (WebKit::toImpl):
+        (WebKit::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage):
+        If there is no current dialog to be checked, the client can return the 'None'
+        type. This gets converted into a std::nullopt and causes a command error later.
+
+2018-02-21  Yousuke Kimoto  <yousuke.kimoto@sony.com>
+
+        [WinCairo] Fix compile errors of WebProcess and NetworkProcess due to no implementation for windows
+        https://bugs.webkit.org/show_bug.cgi?id=182870
+
+        Reviewed by Youenn Fablet.
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
+        * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
+        (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
+        * WebProcess/WebPage/WebInspector.cpp:
+        (WebKit::WebInspector::openFrontendConnection):
+        * WebProcess/WebPage/WebInspectorUI.cpp:
+        (WebKit::WebInspectorUI::establishConnection):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::ensureNetworkProcessConnection):
+
+2018-02-21  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake][Win] Use cmakeconfig.h rather than config.h and Platform.h
+        https://bugs.webkit.org/show_bug.cgi?id=182883
+
+        Reviewed by Per Arne Vollan.
+
+        * config.h:
+
+2018-02-21  Brian Burg  <bburg@apple.com>
+
+        Web Automation: failed provisional loads cause "Navigate To" command to hang
+        https://bugs.webkit.org/show_bug.cgi?id=183007
+        <rdar://problem/37751819>
+
+        Reviewed by Andy Estes.
+
+        This hang was revealed by WPT test current_url.py::get_current_url_file_protocol. Now the
+        test simply fails because Safari chooses a policy of 'Ignore' for externally-opened files.
+        I filed an upstream issue with the test here: https://github.com/w3c/webdriver/issues/1232
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
+        Notify the session that the load failed in the frame, just like we do
+        for non-provisional failed loads and successful loads.
+
+2018-02-20  Nan Wang  <n_wang@apple.com>
+
+        AX: Keyboard focus not following VoiceOver cursor into web content or within web content.
+        https://bugs.webkit.org/show_bug.cgi?id=182752
+        <rdar://problem/37518233>
+
+        Reviewed by Ryosuke Niwa.
+
+        * UIProcess/PageClient.h:
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * UIProcess/ios/PageClientImplIOS.h:
+        * UIProcess/ios/PageClientImplIOS.mm:
+        (WebKit::PageClientImpl::assistiveTechnologyMakeFirstResponder):
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::assistiveTechnologyMakeFirstResponder):
+        * UIProcess/mac/PageClientImplMac.h:
+        * UIProcess/mac/PageClientImplMac.mm:
+        (WebKit::PageClientImpl::assistiveTechnologyMakeFirstResponder):
+        * UIProcess/mac/WebPageProxyMac.mm:
+        (WebKit::WebPageProxy::assistiveTechnologyMakeFirstResponder):
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::assistiveTechnologyMakeFirstResponder):
+        * WebProcess/WebCoreSupport/WebChromeClient.h:
+
+2018-02-14  Brian Burg  <bburg@apple.com>
+
+        Web Automation: combine session commands to resize and move top-level browsing contexts
+        https://bugs.webkit.org/show_bug.cgi?id=182749
+        <rdar://problem/37515170>
+
+        Reviewed by Andy Estes.
+
+        Since moving and resizing the window are both accomplished by setting the window frame,
+        and the W3C WebDriver specification has a Get/Set Window Rect command, it's time to
+        deduplicate these two methods which basically do the same thing.
+
+        Adopt modern JSON::Value getters that return std::optional<float>. I have been trying
+        to move the protocol over to this style wholesale, but it is probably easier to do
+        this conversion in smaller pieces. And so, I have started to do so.
+
+        This change is covered by existing WebDriver tests.
+
+        * UIProcess/Automation/Automation.json: Add new command.
+        * UIProcess/Automation/WebAutomationSession.cpp:
+        (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): Added.
+        (WebKit::WebAutomationSession::resizeWindowOfBrowsingContext): Deleted.
+        (WebKit::WebAutomationSession::moveWindowOfBrowsingContext): Deleted.
+        * UIProcess/Automation/WebAutomationSession.h:
+
+2018-02-20  Brian Burg  <bburg@apple.com>
+
+        ASSERT under WebAutomationSession::setProcessPool() when running W3C test suite a second time
+        https://bugs.webkit.org/show_bug.cgi?id=182991
+        <rdar://problem/37620578>
+
+        Reviewed by Timothy Hatcher.
+
+        Sometimes when running more than one session end-to-end with the same browser instance,
+        UIProcess would crash under addMessageReceiver because another WebAutomationSession was still
+        registered. This is hard to reproduce, but upon code inspection, the receiver management code
+        is somewhat problematic because it only runs when the WebAutomationSession destructor runs.
+        In some cases the client could retain two sessions and cause the first one to never remove itself
+        as the message receiver.
+
+        Instead of unregistering the session as a message receiver underneath the session's destructor,
+        do this whenever a new session supplants an old session since there is only one active session at a time.
+
+        * UIProcess/Automation/WebAutomationSession.cpp:
+        (WebKit::WebAutomationSession::~WebAutomationSession):
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::setAutomationSession):
+
+2018-02-20  Tim Horton  <timothy_horton@apple.com>
+
+        Introduce HAVE(IOSURFACE_ACCELERATOR)
+        https://bugs.webkit.org/show_bug.cgi?id=182955
+        <rdar://problem/37699510>
+
+        Reviewed by Sam Weinig.
+
+        * Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
+        * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
+        * Shared/cg/ShareableBitmapCG.cpp:
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
+        * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
+        * UIProcess/mac/ViewSnapshotStore.h:
+        * UIProcess/mac/ViewSnapshotStore.mm:
+
+2018-02-20  Chris Dumez  <cdumez@apple.com>
+
+        Provisional load may get committed before receiving the decidePolicyForNavigationResponse response
+        https://bugs.webkit.org/show_bug.cgi?id=182720
+        <rdar://problem/37515204>
+
+        Reviewed by Alex Christensen.
+
+        * WebProcess/Network/WebResourceLoader.cpp:
+        (WebKit::WebResourceLoader::didReceiveResponse):
+        * WebProcess/Storage/ServiceWorkerClientFetch.cpp:
+        (WebKit::ServiceWorkerClientFetch::didReceiveResponse):
+        * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
+        (WebKit::WebURLSchemeTaskProxy::didReceiveResponse):
+
+2018-02-20  Matt Lewis  <jlewis3@apple.com>
+
+        Unreviewed, rolling out r228829.
+
+        This caused a consistent failure in the API test
+        WebKit.InteractionDeadlockAfterCrash on iOS Simulator
+
+        Reverted changeset:
+
+        "Switch to UIWKTextInteractionAssistant for non-editable text"
+        https://bugs.webkit.org/show_bug.cgi?id=182834
+        https://trac.webkit.org/changeset/228829
+
+2018-02-20  Megan Gardner  <megan_gardner@apple.com>
+
+        Switch to UIWKTextInteractionAssistant for non-editable text
+        https://bugs.webkit.org/show_bug.cgi?id=182834
+        
+        Reviewed by Wenson Hsieh and Tim Horton.
+        
+        Switching to only using the UIWKTextInteractionAssistant. Only character granularity is now supported. 
+        Also keep the from regressing gating the keyboard bring up on user interaction. The presents of a  
+        textInteractionAssistant can no longer be used as proxy for the presence of the keyboard.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView useSelectionAssistantWithGranularity:]):
+        (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
+
+2018-02-20  John Wilander  <wilander@apple.com>
+
+        Make WebResourceLoadStatisticsStore::processStatisticsAndDataRecords() call WebProcessProxy::notifyPageStatisticsAndDataRecordsProcessed() in a proper callback
+        https://bugs.webkit.org/show_bug.cgi?id=182719
+        <rdar://problem/37517370>
+
+        Reviewed by Brent Fulgham.
+
+        This will allow the page notification, statistics pruning, and persistence write
+        to be done at the right time and hopefully stabilize the layout tests including:
+        http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html
+
+        * UIProcess/WebResourceLoadStatisticsStore.cpp:
+        (WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
+            Now takes a callback parameter.
+        (WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
+        * UIProcess/WebResourceLoadStatisticsStore.h:
+            Now calls WebProcessProxy::notifyPageStatisticsAndDataRecordsProcessed()
+            in a callback provided to WebResourceLoadStatisticsStore::removeDataRecords().
+
+2018-02-20  Zan Dobersek  <zdobersek@igalia.com>
+
+        [Cairo] Drop target GraphicsContext usage in Cairo operations
+        https://bugs.webkit.org/show_bug.cgi?id=182964
+
+        Reviewed by Carlos Garcia Campos.
+
+        The GraphicsContext parameters in various Cairo operations are not used
+        anymore, so they can be removed. Callsites are updated to reflect this.
+
+        * Shared/cairo/ShareableBitmapCairo.cpp:
+        (WebKit::ShareableBitmap::paint):
+        * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
+        (WebKit::convertCairoSurfaceToShareableBitmap):
+
+2018-02-20  Philippe Normand  <pnormand@igalia.com>
+
+        [GStreamer][MiniBrowser] Honor GStreamer command line parameters in MiniBrowser
+        https://bugs.webkit.org/show_bug.cgi?id=173655
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        The FIXME in GStreamerUtilities.cpp asks to pass the command line
+        parameters to the GStreamer initialization function.
+
+        Based on initial patch by: Vanessa Chipirrás Navalón  <vchipirras@igalia.com>
+
+        * Shared/WebProcessCreationParameters.cpp:
+        (WebKit::WebProcessCreationParameters::encode const):
+        (WebKit::WebProcessCreationParameters::decode):
+        * Shared/WebProcessCreationParameters.h: Define the vector which contains the GStreamer options.
+        * UIProcess/gtk/WebProcessPoolGtk.cpp:
+        (WebKit::WebProcessPool::platformInitializeWebProcess): Read from cmdline file
+        the GStreamer options written by console.
+        * WebProcess/soup/WebProcessSoup.cpp:
+        (WebKit::WebProcess::platformInitializeWebProcess): Call initializeGStreamer() method passing
+        the vector which contains the options.
+
+2018-02-20  Yousuke Kimoto  <yousuke.kimoto@sony.com>
+
+        [Win] Fix MSVC's treating __attribute__((warn_unused_result))
+        https://bugs.webkit.org/show_bug.cgi?id=182479
+
+        Reviewed by Darin Adler.
+
+        Since MSVC doesn't understand "__attribute__", "_Check_return_" is used instead.
+        If clang and VisualStudio 2017 are used, a macro with "__attriute__" will be chosen.
+
+        * UIProcess/API/cpp/WKRetainPtr.h:
+
+2018-02-19  Brady Eidson  <beidson@apple.com>
+
+        Add WebProcessPool option for process swapping on navigation.
+        https://bugs.webkit.org/show_bug.cgi?id=182945
+
+        Reviewed by Alex Christensen.
+
+        Just the most basic groundwork for testing a new WK2 feature.
+
+        * UIProcess/API/APIProcessPoolConfiguration.h:
+
+        * UIProcess/API/C/WKContextConfigurationRef.cpp:
+        (WKContextConfigurationProcessSwapsOnNavigation):
+        (WKContextConfigurationSetProcessSwapsOnNavigation):
+        * UIProcess/API/C/WKContextConfigurationRef.h:
+
+        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
+        * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
+        (-[_WKProcessPoolConfiguration setProcessSwapsOnNavigation:]):
+        (-[_WKProcessPoolConfiguration processSwapsOnNavigation]):
+
+2018-02-19  Daniel Bates  <dabates@apple.com>
+
+        Null pointer dereference in WebPageProxy::urlSchemeHandlerForScheme()
+        https://bugs.webkit.org/show_bug.cgi?id=182905
+        <rdar://problem/37676775>
+
+        Reviewed by Alex Christensen.
+
+        Return nullptr when querying for the scheme handler of the null string.
+
+        Before a navigation is performed WebKit checks if the destination URL is associated with an app
+        unless the embedding client overrides the WKNavigationDelegate delegate callback -webView:decidePolicyForNavigationAction:decisionHandler.
+        If the URL is not associated with an app then WebKit may fall back to checking if the embedding
+        client registered a scheme handler for it. Currently we assume that the scheme is a non-null
+        string when checking the scheme handler registry. However the scheme can be a null string if
+        it is part of a malformed URL. And this leads to bad news bears when we try to use it to look
+        for a scheme handler. Instead check that the scheme is a non-null string before checking to see
+        if it is in the scheme handler registry.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::urlSchemeHandlerForScheme):
+
+2018-02-19  Eric Carlson  <eric.carlson@apple.com>
+
+        [Extra zoom mode] Don't allow PiP media playback
+        https://bugs.webkit.org/show_bug.cgi?id=182930
+        <rdar://problem/37676259>
+
+        Reviewed by Andy Estes.
+
+        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+        (-[WKWebViewConfiguration init]): Don't enable PiP mode. Require user interaction for
+        all media types.
+
+2018-02-19  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r228696.
+
+        The API test added with this change is timing out on macOS.
+
+        Reverted changeset:
+
+        "Null pointer dereference in
+        WebPageProxy::urlSchemeHandlerForScheme()"
+        https://bugs.webkit.org/show_bug.cgi?id=182905
+        https://trac.webkit.org/changeset/228696
+
+2018-02-19  Daniel Bates  <dabates@apple.com>
+
+        Null pointer dereference in WebPageProxy::urlSchemeHandlerForScheme()
+        https://bugs.webkit.org/show_bug.cgi?id=182905
+
+        Reviewed by Alex Christensen.
+
+        Return nullptr when querying for the scheme handler of the null string.
+
+        Before a navigation is performed WebKit checks if the destination URL is associated with an app
+        unless the embedding client overrides the WKNavigationDelegate delegate callback -webView:decidePolicyForNavigationAction:decisionHandler.
+        If the URL is not associated with an app then WebKit may fall back to checking if the embedding
+        client registered a scheme handler for it. Currently we assume that the scheme is a non-null
+        string when checking the scheme handler registry. However the scheme can be a null string if
+        it is part of a malformed URL. And this leads to bad news bears when we try to use it to look
+        for a scheme handler. Instead check that the scheme is a non-null string before checking to see
+        if it is in the scheme handler registry.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::urlSchemeHandlerForScheme):
+
+2018-02-19  Ms2ger  <Ms2ger@igalia.com>
+
+        Explicitly qualify some method calls on this in lamdas in Service Worker code.
+        https://bugs.webkit.org/show_bug.cgi?id=182875
+
+        Reviewed by Chris Dumez.
+
+        This is necessary for the code to build with GCC 5. Other code already
+        appears to have been adapted similarly.
+
+        * StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
+        (WebKit::WebSWServerConnection::startFetch):
+
+2018-02-18  Reza Abbasian  <rabbasian@apple.com>
+
+        Set the appropriate AutoFill context for suggested passwords.
+        https://bugs.webkit.org/show_bug.cgi?id=182718
+        <rdar://problem/36326863>
+
+        Reviewed by Wenson Hsieh and Tim Horton.
+
+        Before starting the input session, call the new delegate to query if AutoFill password suggestion assistance
+        is required for the focused element.
+
+        * UIProcess/API/Cocoa/_WKFormInputSession.h:
+        * UIProcess/API/Cocoa/_WKInputDelegate.h:
+        Introduce a new delegate to be called  before starting an input session to query if AutoFill password suggestion
+        assistance is required for the focused element.
+        * UIProcess/ios/WKContentViewInteraction.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKFormInputSession initWithContentView:focusedElementInfo:requiresStrongPasswordAssistance:]):
+        (-[WKFormInputSession requiresStrongPasswordAssistance]):
+        (-[WKContentView cleanupInteraction]):
+        (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
+        Call the delegate to find out if AutoFill suggested password assistance is required.
+        (-[WKContentView _stopAssistingNode]):
+        (-[WKContentView _autofillContext]): If the first responder is a password element and requires
+        assistance for AutoFill suggested password, set the appropriate AutoFill context.
+        (-[WKFormInputSession initWithContentView:focusedElementInfo:]): Deleted.
+
+2018-02-17  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [Extra zoom mode] Form control values are stale after dismissing and representing input view controllers
+        https://bugs.webkit.org/show_bug.cgi?id=182877
+        <rdar://problem/37604395>
+
+        Reviewed by Tim Horton.
+
+        Currently, when presenting an input view controller for a focused element, we populate the initial form control
+        value using the WKContentView's assisted node information when it was last focused. However, if the user edits
+        the value of a form control, dismisses to the form control view controller (while the element is still focused)
+        and then begins editing the field again, the initial text will be the previous value of the input, since the
+        AssistedNodeInformation isn't up to date.
+
+        To fix this, we introduce a mechanism to update WKContentView's AssistedNodeInformation for the current assisted
+        node. This overwrites _assistedNodeInformation with new information computed from the web process, as long as
+        the assisted node before and after the request is made in the UI process has not changed. We accomplish this by
+        adding an identifier to AssistedNodeInformation, which is monotonically incremented when an element is focused
+        in the web process. The UI process may then use this identifier to determine whether AssistedNodeInformations
+        are describing the same focused element.
+
+        One interesting consideration here is that a normal AssistedNodeInformation update (propagated when focusing an
+        element) may be deferred in the UI process until the next layer tree commit. In the absence of the assisted node
+        identifier check, one could imagine a scenario in which the assisted node information in the UI process gets
+        "updated" from a new value to an old value:
+
+        1. The web process focuses an element and sends AssistedNodeInformation `A`.
+        2. WKContentView calls -updateCurrentAssistedNodeInformation.
+        3. The web process sends AssistedNodeInformation `B`.
+        4. `A` is received in the UI process, but deferred.
+        5. The UI process receives `B` and sets _assistedNodeInformation to `B`.
+        6. The UI process calls -_startAssistingNode: and sets _assistedNodeInformation to `A`.
+
+        This would mean that the _assistedNodeInformation is set to an earlier value, `A`, after being set to a later
+        value, `B`. However, because the AssistedNodeInformation identifier in step (2) refers to the assisted node
+        prior to step (1), the assisted node identifier in (5) would not match this identifier, and we would simply bail
+        instead of overwriting assisted node information.
+
+        We use this AssistedNodeInformation update mechanism after inserting text via input view controllers, and also
+        after reentering edit mode from the focused form control view controller. This fixes two issues where changing
+        the size of the focused element after editing it results in the focused form overlay highlighting a stale frame,
+        and also when setting the initial text when reentering edit mode for a form control that is already focused.
+
+        * Shared/AssistedNodeInformation.cpp:
+        (WebKit::AssistedNodeInformation::encode const):
+        (WebKit::AssistedNodeInformation::decode):
+        * Shared/AssistedNodeInformation.h:
+
+        Add a new monotonically increasing identifier (per WebPage) which associates a AssistedNodeInformation with a
+        focused element. In the event that the web process crashes and relaunches (thus resetting this identifier),
+        AssistedNodeInformation state in the UI process is now also reset (see -cleanupInteraction), so we won't end up
+        confusing AssistedNodeInformations computed by different WebPages between a web process crash.
+
+        * UIProcess/WebPageProxy.h:
+
+        A bit of related refactoring here to remove an unnecessary bool flag that indicates whether we have a deferred
+        assisted node information. Instead, just use the presence of m_deferredNodeAssistanceArguments.
+
+        * UIProcess/WebPageProxy.messages.in:
+
+        Add a AssistedNodeInformationCallback IPC message.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView cleanupInteraction]):
+
+        Clear out the previous AssistedNodeInformation. See above for details.
+
+        (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
+        (-[WKContentView updateCurrentAssistedNodeInformation:]):
+
+        Tries to update AssistedNodeInformation for the current assisted node, invoking the completion callback when
+        finished. This may result in the assisted node information not being updated due to the current assisted node
+        changing in the time between the start of the request and the information being received in the UI process.
+
+        (-[WKContentView presentViewControllerForCurrentAssistedNode]):
+
+        Refactored from -presentViewControllerForAssistedNode:, such that it no longer takes an AssistedNodeInformation
+        as an argument, but rather just uses WKContentView's current _assistedNodeInformation. This was just being
+        called with _assistedNodeInformation from all call sites anyways.
+
+        (-[WKContentView textInputController:didCommitText:]):
+
+        Request an AssistedNodeInformation update after setting the value of a form control; if the assisted node hasn't
+        changed, update the focused form control overlay. This is needed to handle cases where the focused element's
+        frame may have changed after inserting text (e.g. due to line wrapping), and the focused form control overlay
+        needs to be updated to reflect this change.
+
+        (-[WKContentView focusedFormControlControllerDidBeginEditing:]):
+
+        Request an AssistedNodeInformation update before reentering edit mode; if the assisted node hasn't changed since
+        the start of the request, present the appropriate input view controller.
+
+        (-[WKContentView presentViewControllerForAssistedNode:]): Deleted.
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::assistedNodeInformationCallback):
+        (WebKit::WebPageProxy::requestAssistedNodeInformation):
+        (WebKit::WebPageProxy::didCommitLayerTree):
+        (WebKit::WebPageProxy::startAssistingNode):
+        (WebKit::WebPageProxy::stopAssistingNode):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::elementDidFocus):
+
+        Increment the assisted node identifier.
+
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::requestAssistedNodeInformation):
+
+        Compute and return an AssistedNodeInformation.
+
+        (WebKit::WebPage::getAssistedNodeInformation):
+
+2018-02-16  Dean Jackson  <dino@apple.com>
+
+        Use OPENGL macros to be more clear about which OpenGL/ES WebGL uses on Cocoa
+        https://bugs.webkit.org/show_bug.cgi?id=182894
+
+        Reviewed by Tim Horton.
+
+        Rename OPENGL_ES_2 to OPENGL_ES.
+
+        * CMakeLists.txt:
+        * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
+        * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
+        (WebKit::AcceleratedBackingStoreWayland::paint):
+        * UIProcess/gtk/WaylandCompositor.cpp:
+        (WebKit::WaylandCompositor::initializeEGL):
+
+2018-02-16  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Add an entitlement check for service worker on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=182865
+        <rdar://problem/37505903>
+
+        Reviewed by Brady Eidson.
+
+        Added an entitlement check to enable service workers on iOS.
+
+        * Shared/mac/SandboxUtilities.h:
+        * Shared/mac/SandboxUtilities.mm:
+        (WebKit::connectedProcessHasEntitlement): Added.
+        * StorageProcess/StorageProcess.cpp:
+        (WebKit::StorageProcess::createStorageToWebProcessConnection): Enforce the entitlement check by crashing
+        when this code is executed without the parent process having the service worker entitlement. This should
+        never happen unless someone is trying to bypass the entitlement check in UI Process since we ordinarily
+        disable service worker gracefully in WKWebView _initializeWithConfiguration.
+        (WebKit::StorageProcess::swServerForSession): Ditto.
+        (WebKit::StorageProcess::registerSWServerConnection): Ditto.
+        * StorageProcess/StorageProcess.h:
+        (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Added.
+        * StorageProcess/ios/StorageProcessIOS.mm:
+        (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Added.
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _initializeWithConfiguration:]): Disable the service workers when the entitlement is
+        missing from the current process. The entitlement is enforced by WebContent and Storage process.
+        This check avoids crashing WebContent process and gracefully disabling the feature.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences): Enforce the entitlement check.
+        * WebProcess/WebPage/WebPage.h:
+        (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const): Added.
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const): Added.
+
+2018-02-16  Youenn Fablet  <youenn@apple.com>
+
+        Allow specifying which plug-ins are supported
+        https://bugs.webkit.org/show_bug.cgi?id=182748
+
+        Reviewed by Chris Dumez.
+
+        Add a C and ObjC API to set which plug-ins are specified.
+        Plug-ins may be allowed by origin of the main page or for all origins.
+
+        If the API to set a supported plug-in is called, WebKit enters a mode
+        where it will block any plug-in that is not on the list.
+
+        The list of supported plug-ins is stored in UIProcess and sent to WebProcess.
+        This allows to compute the list of visible plug-ins according supported plugins.
+
+        PluginInfoStore is storing the list of supported plugins and can
+        answer whether a plug-in creation request is to be made unsupported or not.
+        It also creates the structure sent to WebProcess for computing plugin visibility.
+
+        Updated ArgumentCoders to accept modern HashSet decoders.
+
+        * Platform/IPC/ArgumentCoders.h:
+        * UIProcess/API/C/WKContext.cpp:
+        (WKContextAddSupportedPlugin):
+        (WKContextClearSupportedPlugins):
+        * UIProcess/API/C/WKContextPrivate.h:
+        * UIProcess/API/Cocoa/WKProcessPool.mm:
+        (-[WKProcessPool _addSupportedPlugin:named:withMimeTypes:withExtensions:]):
+        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
+        * UIProcess/Plugins/PluginInfoStore.cpp:
+        (WebKit::PluginInfoStore::isSupportedPlugin):
+        (WebKit::PluginInfoStore::SupportedPlugins::isSupported):
+        (WebKit::PluginInfoStore::SupportedPlugin::isSupported):
+        (WebKit::PluginInfoStore::supportedPluginNames):
+        (WebKit::PluginInfoStore::addSupportedPlugin):
+        * UIProcess/Plugins/PluginInfoStore.h:
+        (WebKit::PluginInfoStore::clearSupportedPlugins):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::findPlugin):
+        (WebKit::WebPageProxy::unavailablePluginButtonClicked):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::addSupportedPlugin):
+        (WebKit::WebProcessPool::clearSupportedPlugins):
+        * UIProcess/WebProcessPool.h:
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::getPlugins):
+        * UIProcess/WebProcessProxy.h:
+        * UIProcess/WebProcessProxy.messages.in:
+        * WebProcess/Plugins/WebPluginInfoProvider.cpp:
+        (WebKit::WebPluginInfoProvider::getPluginInfo):
+        (WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo):
+        (WebKit::WebPluginInfoProvider::populatePluginCache):
+        * WebProcess/Plugins/WebPluginInfoProvider.h:
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::shouldUnavailablePluginMessageBeButton const):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::createPlugin):
+        (WebKit::WebPage::canPluginHandleResponse):
+
+2018-02-16  Jiewen Tan  <jiewen_tan@apple.com>
+
+        [WebAuthN] Implement PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
+        https://bugs.webkit.org/show_bug.cgi?id=182771
+        <rdar://problem/36459988>
+
+        Reviewed by Brent Fulgham.
+
+        This patch utilizes LocalAuthentication Framework to determine if biometrics
+        are enrolled on a device, which is the user verifying platform authenticator.
+        To do so, it links the framework to WebKit.
+
+        * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp:
+        (WebKit::WebCredentialsMessengerProxy::isUserVerifyingPlatformAuthenticatorAvailable):
+        (WebKit::WebCredentialsMessengerProxy::isUserVerifyingPlatformAuthenticatorAvailableReply):
+        * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h:
+        * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in:
+        * UIProcess/CredentialManagement/cocoa/WebCredentialsMessengerProxyCocoa.mm:
+        (WebKit::WebCredentialsMessengerProxy::platformIsUserVerifyingPlatformAuthenticatorAvailable):
+        * WebKit.xcodeproj/project.pbxproj:
+        * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp:
+        (WebKit::WebCredentialsMessenger::isUserVerifyingPlatformAuthenticatorAvailable):
+        (WebKit::WebCredentialsMessenger::isUserVerifyingPlatformAuthenticatorAvailableReply):
+        * WebProcess/CredentialManagement/WebCredentialsMessenger.h:
+        * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in:
+
+2018-02-16  Per Arne Vollan  <pvollan@apple.com>
+
+        Implement stopping of run loop in the WebContent process when using NSRunLoop.
+        https://bugs.webkit.org/show_bug.cgi?id=182499
+        <rdar://problem/37247424>
+
+        Reviewed by Brent Fulgham.
+
+        Add the method ChildProcess::stopNSRunLoop to end the WebContent process by executing a block
+        with 'exit(0)' on the main run loop. 
+
+        * Shared/ChildProcess.h:
+        * Shared/mac/ChildProcessMac.mm:
+        (WebKit::ChildProcess::stopNSRunLoop):
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::platformInitializeWebProcess):
+        (WebKit::WebProcess::stopRunLoop):
+
+2018-02-16  Yousuke Kimoto  <yousuke.kimoto@sony.com>
+
+        [WinCario] Add NetworkSessionCurl
+        https://bugs.webkit.org/show_bug.cgi?id=182680
+
+        Reviewed by Konstantin Tokarev.
+
+        * NetworkProcess/NetworkSession.cpp:
+        (WebKit::NetworkSession::create):
+        * PlatformWin.cmake:
+
+2018-02-16  Chris Dumez  <cdumez@apple.com>
+
+        ASSERTION FAILED: !m_processes[i] || *m_processes[i] == process in MessagePortChannel::entanglePortWithProcess()
+        https://bugs.webkit.org/show_bug.cgi?id=182054
+        <rdar://problem/36871207>
+
+        Reviewed by Brady Eidson.
+
+        Pipe postMessage messages to and from service workers via the UIProcess instead of going
+        directly to the StorageProcess. This is temporarily needed to avoid races due to the
+        MessagePort registry currently living in the UIProcess and postMessage messages potentially
+        sending MessagePort objects.
+
+        This change is covered by tests on the bots that currently flakily crash in debug.
+
+        * StorageProcess/ServiceWorker/WebSWServerConnection.h:
+        * StorageProcess/StorageProcess.cpp:
+        (WebKit::StorageProcess::postMessageToServiceWorker):
+        * StorageProcess/StorageProcess.h:
+        * StorageProcess/StorageProcess.messages.in:
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::postMessageToServiceWorkerClient):
+        (WebKit::WebProcessPool::postMessageToServiceWorker):
+        * UIProcess/WebProcessPool.h:
+        * UIProcess/WebProcessPool.messages.in:
+        * WebProcess/Storage/WebSWClientConnection.cpp:
+        (WebKit::WebSWClientConnection::postMessageToServiceWorker):
+        * WebProcess/Storage/WebSWContextManagerConnection.cpp:
+        (WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient):
+
+2018-02-16  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [Extra zoom mode] Add basic support for <input type='date'> using date picker UI
+        https://bugs.webkit.org/show_bug.cgi?id=182847
+        <rdar://problem/35143111>
+
+        Reviewed by Tim Horton.
+
+        Add support for presenting date pickers when focusing a date input.
+
+        * UIProcess/ios/WKContentViewInteraction.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView _stopAssistingNode]):
+        (-[WKContentView dismissAllInputViewControllers]):
+
+        Pull logic to dismiss input view controllers into a single helper.
+
+        (-[WKContentView presentDatePickerViewController:]):
+        (-[WKContentView dismissDatePickerViewController:]):
+        (-[WKContentView presentViewControllerForAssistedNode:]):
+        (-[WKContentView textInputController:didCommitText:]):
+        (-[WKContentView _wheelChangedWithEvent:]):
+
+        Delegate wheel events to the date picker.
+
+        * UIProcess/ios/forms/WKDatePickerViewController.h: Added.
+        * UIProcess/ios/forms/WKDatePickerViewController.mm: Added.
+
+        Add harness files for the WKDatePickerViewController implementation in WebKitAdditions.
+
+        * WebKit.xcodeproj/project.pbxproj:
+
+2018-02-15  Youenn Fablet  <youenn@apple.com>
+
+        Resources loaded from service workers are not downloadable
+        https://bugs.webkit.org/show_bug.cgi?id=182848
+
+        Reviewed by Chris Dumez.
+
+        Downloads are not supporting resources loaded through service worker.
+        As a temporary solution, we will let network process handle it.
+        Note that this would not work if the URL can only be loaded through service worker.
+        Note also that for navigation loads, if the content type is the default one (application/octet-stream) we are overriding it to
+        text/html as we do not support mime sniffing yet from service worker responses.
+        This might interfere with automatic downloads from navigation.
+
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):
+
+2018-02-15  Megan Gardner  <megan_gardner@apple.com>
+
+        Support scrolling for non-editable web-selection and start autoscroll when near screen edges
+        https://bugs.webkit.org/show_bug.cgi?id=182815
+
+        Add support for autoscrolling during a selection. This also takes into account the edges of the screen
+        and starts autoscrolling when you get close, while still allowing autoscrolling when you are past the bounds
+        of the WebView.
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView startAutoscroll:]):
+        (-[WKContentView resignFirstResponderForWebView]):
+        (-[WKContentView useSelectionAssistantWithGranularity:]):
+        (-[WKContentView selectedTextRange]):
+        * UIProcess/ios/WebPageProxyIOS.mm:
+        (WebKit::WebPageProxy::startAutoscrollAtPosition):
+        * WebProcess/WebPage/ios/WebPageIOS.mm:
+        (WebKit::WebPage::startAutoscrollAtPosition):
+        (WebKit::WebPage::cancelAutoscroll):
+
+2018-02-15  John Wilander  <wilander@apple.com>
+
+        Resource Load Statistics: Make sure WebResourceLoadStatisticsStore::mergeWithDataFromDecoder() can ingest older plist versions and not reset the database
+        https://bugs.webkit.org/show_bug.cgi?id=182812
+        <rdar://problem/37511406>
+
+        Reviewed by Brent Fulgham.
+
+        * UIProcess/WebResourceLoadStatisticsStore.cpp:
+        (WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder):
+            Now does the following:
+            - Logs when there is a model version mismatch.
+            - Does not ingest statistics if the version on disk is newer than the supported one.
+            - Does ingest statistics if the version on disk is older than the supported one.
+            - Passes on the version found on disk to WebCore::ResourceLoadStatistics::decode().
+
+2018-02-15  Jiewen Tan  <jiewen_tan@apple.com>
+
+        [WebAuthN] Revisit the whole async model of task dispatching, timeout and aborting
+        https://bugs.webkit.org/show_bug.cgi?id=181946
+        <rdar://problem/37258262>
+
+        Reviewed by Chris Dumez.
+
+        Dummy WebCredentialsMessenger and WebCredentialsMessengerProxy are crafted to establish
+        a message exchange channel between UIProcess and WebProcess.
+
+        * DerivedSources.make:
+        * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
+        (WebKit::WebCredentialsMessengerProxy::WebCredentialsMessengerProxy):
+        (WebKit::WebCredentialsMessengerProxy::~WebCredentialsMessengerProxy):
+        (WebKit::WebCredentialsMessengerProxy::makeCredential):
+        (WebKit::WebCredentialsMessengerProxy::getAssertion):
+        * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
+        * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: Added.
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::m_configurationPreferenceValues):
+        (WebKit::WebPageProxy::reattachToWebProcess):
+        (WebKit::WebPageProxy::resetState):
+        * UIProcess/WebPageProxy.h:
+        * WebKit.xcodeproj/project.pbxproj:
+        * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
+        (WebKit::WebCredentialsMessenger::WebCredentialsMessenger):
+        (WebKit::WebCredentialsMessenger::~WebCredentialsMessenger):
+        (WebKit::WebCredentialsMessenger::makeCredential):
+        (WebKit::WebCredentialsMessenger::getAssertion):
+        (WebKit::WebCredentialsMessenger::makeCredentialReply):
+        (WebKit::WebCredentialsMessenger::getAssertionReply):
+        * WebProcess/CredentialManagement/WebCredentialsMessenger.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
+        * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: Added.
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::m_credentialsMessenger):
+        (WebKit::m_cpuLimit): Deleted.
+        * WebProcess/WebPage/WebPage.h:
+
+2018-02-15  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        [WPE] Unify build of platform-specific files in WebKit layer
+        https://bugs.webkit.org/show_bug.cgi?id=182696
+
+        Reviewed by Žan Doberšek.
+
+        This is easy, because all needed changes were made in the previously-landed patch.
+
+        * CMakeLists.txt:
+        * PlatformWPE.cmake:
+
 2018-02-15  Don Olmstead  <don.olmstead@sony.com>
 
         WebCore headers should not be included relatively within dependent projects