Add support for the frames() timing function
[WebKit-https.git] / Source / WebKit / ChangeLog
index 3f662c0..3d9beb5 100644 (file)
@@ -1,3 +1,735 @@
+2018-01-12  Antoine Quint  <graouts@apple.com>
+
+        Add support for the frames() timing function
+        https://bugs.webkit.org/show_bug.cgi?id=181585
+        <rdar://problem/36463317>
+
+        Reviewed by Dean.
+
+        Add the ability to endode and decode the frames() timing function.
+
+        * Shared/WebCoreArgumentCoders.cpp:
+        (IPC::ArgumentCoder<FramesTimingFunction>::encode):
+        (IPC::ArgumentCoder<FramesTimingFunction>::decode):
+        * Shared/WebCoreArgumentCoders.h:
+        * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:
+        (WebKit::PlatformCAAnimationRemote::Properties::encode const):
+        (WebKit::PlatformCAAnimationRemote::Properties::decode):
+
+2018-01-11  Keith Miller  <keith_miller@apple.com>
+
+        Rename ENABLE_ASYNC_ITERATION to ENABLE_JS_ASYNC_ITERATION
+        https://bugs.webkit.org/show_bug.cgi?id=181573
+
+        Reviewed by Simon Fraser.
+
+        * Configurations/FeatureDefines.xcconfig:
+
+2018-01-11  Brent Fulgham  <bfulgham@apple.com>
+
+        REGRESSION(r219530): ResourceLoadStatisticsPersistentStorage should be read-only in ephemeral sessions
+        https://bugs.webkit.org/show_bug.cgi?id=181136
+        <rdar://problem/36116604>
+
+        Reviewed by Chris Dumez.
+
+        Some uses of WebKit involve running a UIProcess as an ephemeral session for the life of the process. In this
+        case, we do not initialize the data path for the set of load statistics triggering an assertion.
+
+        We actually intended ephemeral sessions to consume the existing resource load data (presumably captured during
+        non-ephemeral browsing). This would be a read-only mode, where it would not add new entries to the load
+        statistics, but would take advantage of existing observations. Currently that does not happen (for this type
+        of WebKit embed), which forces each run as an ephemeral session to build up in-memory browsing data until it has
+        enough observations to begin modifying loads.
+
+        We need to set the ResourceLoadStatisticsPersistentStorage object to a "read only" mode in this case, so
+        that it read (but does not write) from this database.
+
+        Tested by ephemeral website data TestWebKitAPI tests.
+
+        * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp:
+        (WebKit::ResourceLoadStatisticsPersistentStorage::create): Added to allow creation of the right style of
+        Persistent Storage.
+        (WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage): Initialize the
+        new data member.
+        (WebKit::ResourceLoadStatisticsPersistentStorage::asyncWriteTimerFired): RELEASE_ASSERT that we never run
+        this method when in "read only" mode.
+        (WebKit::ResourceLoadStatisticsPersistentStorage::writeMemoryStoreToDisk): Ditto.
+        (WebKit::ResourceLoadStatisticsPersistentStorage::scheduleOrWriteMemoryStore): Return early if asked to
+        schedule a write operation for a "read only" persistent store.
+        (WebKit::ResourceLoadStatisticsPersistentStorage::finishAllPendingWorkSynchronously): RELEASE_ASSERT if we
+        ever shut down in "read only" mode with an active write timer.
+        * UIProcess/ResourceLoadStatisticsPersistentStorage.h:
+        * UIProcess/WebResourceLoadStatisticsStore.cpp:
+        (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): Pass a flag indicating whether the
+        storage session is ephemeral or not.
+        * UIProcess/WebResourceLoadStatisticsStore.h:
+
+2018-01-11  Keith Rollin  <krollin@apple.com>
+
+        Add optional logging of ITP-related user interaction information
+        https://bugs.webkit.org/show_bug.cgi?id=181556
+
+        Reviewed by Brent Fulgham.
+
+        In order to support the tracking of the efficacy of Intelligent
+        Tracking Protection, add some logging indicating when the user
+        interacts with a page in a way that affects cookie partitioning. This
+        logging is off by default, and is enabled with `defaults write -g
+        WebKitLogCookieInformation -bool true`.
+
+        * Shared/WebProcessCreationParameters.cpp:
+        (WebKit::WebProcessCreationParameters::encode const):
+        (WebKit::WebProcessCreationParameters::decode):
+        * Shared/WebProcessCreationParameters.h:
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::platformInitializeWebProcess):
+        * WebProcess/WebProcess.cpp:
+        (WebKit::WebProcess::initializeWebProcess):
+
+2018-01-11  Megan Gardner  <megan_gardner@apple.com>
+
+        Implement MultiDocument protocol for restoring focus to a WKWebView
+        https://bugs.webkit.org/show_bug.cgi?id=181510
+
+        Reviewed by Dan Bernstein.
+
+        Support the UIKit protocol for restoring focus to a what previously had focus.
+        WebKit already has a method to silently remove and replace focus, without telling the
+        web process about the unfocus and refocusing, so we're just using that.
+
+        * Platform/spi/ios/UIKitSPI.h:
+        * UIProcess/ios/WKContentViewInteraction.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView _restoreFocusWithToken:]):
+        (-[WKContentView _preserveFocusWithToken:destructively:]):
+
+
+2018-01-11  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Don't load inline data when requesting info for an attachment element backed by a file path
+        https://bugs.webkit.org/show_bug.cgi?id=181550
+
+        Reviewed by Tim Horton
+
+        See WebCore/ChangeLog for more information.
+
+        * UIProcess/API/Cocoa/_WKAttachment.mm:
+        (-[_WKAttachmentInfo initWithInfo:]):
+        (-[_WKAttachmentInfo fileLoadingError]):
+        (-[_WKAttachment requestInfo:]):
+
+2018-01-11  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r226789 and r226794.
+        https://bugs.webkit.org/show_bug.cgi?id=181564
+
+        broke API tests (Requested by alexchristensen on #webkit).
+
+        Reverted changesets:
+
+        "Merge sync and async code paths for getting context menus"
+        https://bugs.webkit.org/show_bug.cgi?id=181423
+        https://trac.webkit.org/changeset/226789
+
+        "Revert changes accidentally committed with r226789."
+        https://bugs.webkit.org/show_bug.cgi?id=181423
+        https://trac.webkit.org/changeset/226794
+
+2018-01-11  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Send PromisedBlobInfo to the client through DragItem instead of DragClient::prepareToDragPromisedBlob
+        https://bugs.webkit.org/show_bug.cgi?id=181497
+
+        Reviewed by Tim Horton.
+
+        Refactor drag and drop support for promised blob data, so that blob info is shipped across to the client layer
+        via DragItem in the DragClient::startDrag codepath, rather than via a separate prepareToDragPromisedBlob client
+        codepath that stages promised blob info.
+
+        * UIProcess/Cocoa/WebViewImpl.h:
+        * UIProcess/Cocoa/WebViewImpl.mm:
+        (WebKit::WebViewImpl::prepareToDragPromisedBlob): Deleted.
+        * UIProcess/PageClient.h:
+        (WebKit::PageClient::prepareToDragPromisedBlob): Deleted.
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::prepareToDragPromisedBlob): Deleted.
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * UIProcess/ios/PageClientImplIOS.h:
+        * UIProcess/ios/PageClientImplIOS.mm:
+        (WebKit::PageClientImpl::prepareToDragPromisedBlob): Deleted.
+        * UIProcess/ios/WKContentViewInteraction.h:
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKContentView _startDrag:item:]):
+        * UIProcess/mac/PageClientImplMac.h:
+        * UIProcess/mac/PageClientImplMac.mm:
+        (WebKit::PageClientImpl::prepareToDragPromisedBlob): Deleted.
+        * WebProcess/WebCoreSupport/WebDragClient.cpp:
+        (WebKit::WebDragClient::prepareToDragPromisedBlob): Deleted.
+        * WebProcess/WebCoreSupport/WebDragClient.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::prepareToDragPromisedBlob): Deleted.
+        * WebProcess/WebPage/WebPage.h:
+
+2018-01-09  Per Arne Vollan  <pvollan@apple.com>
+
+        VoiceOver does not work when the WebContent process is using NSRunLoop.
+        https://bugs.webkit.org/show_bug.cgi?id=181331
+        <rdar://problem/36408004>
+
+        Reviewed by Brent Fulgham.
+
+        When the WebContent process is using NSRunLoop instead of the NSApplication run loop,
+        accessibility must be initialized for VoiceOver to work. This patch also switches to
+        using NSRunLoop in the WebContent process.
+
+        * Configurations/WebContentService.xcconfig:
+        * Platform/IPC/mac/ConnectionMac.mm:
+        (IPC::AccessibilityProcessSuspendedNotification): Remove unneccessary workaround.
+        * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist: Switch to NSRunLoop.
+        * WebProcess/cocoa/WebProcessCocoa.mm:
+        (WebKit::WebProcess::platformInitializeProcess): Initialize accessibility.
+
+2018-01-11  Don Olmstead  <don.olmstead@sony.com>
+
+        WebContextMenuListenerProxy.cpp not including config on first line
+        https://bugs.webkit.org/show_bug.cgi?id=181552
+
+        Reviewed by Alex Christensen.
+
+        * UIProcess/WebContextMenuListenerProxy.cpp:
+
+2018-01-11  Youenn Fablet  <youenn@apple.com>
+
+        Redirected iframe loading with Request.redirect=follow should fail
+        https://bugs.webkit.org/show_bug.cgi?id=181491
+
+        Reviewed by Alex Christensen.
+
+        * WebProcess/Storage/ServiceWorkerClientFetch.cpp:
+        (WebKit::ServiceWorkerClientFetch::validateResponse):
+
+2018-01-11  Youenn Fablet  <youenn@apple.com>
+
+        Replace WebRTCLegacyAPIDisabled by WebRTCLegacyAPIEnabled and switch off WebRTC legacy flag by default
+        https://bugs.webkit.org/show_bug.cgi?id=181480
+
+        Reviewed by Eric Carlson.
+
+        Renaming preference to WebRTCLegacyAPIEnabled for simplification and removing it from experimental feature.
+        Set it to off by default.
+
+        * Shared/WebPreferences.yaml:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetWebRTCLegacyAPIEnabled):
+        (WKPreferencesGetWebRTCLegacyAPIEnabled):
+        * UIProcess/API/Cocoa/WKPreferences.mm:
+        (-[WKPreferences _webRTCLegacyAPIEnabled]):
+        (-[WKPreferences _setWebRTCLegacyAPIEnabled:]):
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::ensureNetworkProcess):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+
+2018-01-11  Alex Christensen  <achristensen@webkit.org>
+
+        Merge sync and async code paths for getting context menus
+        https://bugs.webkit.org/show_bug.cgi?id=181423
+
+        Reviewed by Joseph Pecoraro.
+
+        What a mess.  We had a code path for asynchronous context menu generation and a different one for synchronous context menu generation.
+        This makes it so there is just one.  At the API level we see if there is an asynchronous delegate to call, then synchronous.
+        There is a subtle theoretical change in behaviour because m_page.contextMenuClient().showContextMenu is now called for the asynchronous
+        case and it wasn't before, but the one C API client that uses this has nullptr as it's WKPageShowContextMenuCallback, so we won't break anything!
+
+        * UIProcess/API/APIContextMenuClient.h:
+        (API::ContextMenuClient::getContextMenuFromProposedMenu):
+        (API::ContextMenuClient::getContextMenuFromProposedMenuAsync): Deleted.
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetPageContextMenuClient):
+        * UIProcess/API/glib/WebKitContextMenuClient.cpp:
+        * UIProcess/WebContextMenuProxy.h:
+        * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
+        (WebKit::WebContextMenuProxyGtk::show):
+        (WebKit::WebContextMenuProxyGtk::showContextMenuWithItems):
+        * UIProcess/gtk/WebContextMenuProxyGtk.h:
+        * UIProcess/mac/WebContextMenuProxyMac.h:
+        * UIProcess/mac/WebContextMenuProxyMac.mm:
+        (WebKit::WebContextMenuProxyMac::showContextMenuWithItems):
+        (WebKit::WebContextMenuProxyMac::showContextMenu):
+        * UIProcess/wpe/WebContextMenuProxyWPE.h:
+
+2018-01-11  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [Attachment Support] Support dragging attachment elements out as files on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=181199
+        <rdar://problem/36299316>
+
+        Reviewed by Tim Horton, Andy Estes and Joseph Pecoraro.
+
+        Implement support for registering and beginning a drag with promised blob info. See below for more detail.
+
+        * UIProcess/ios/WKContentViewInteraction.mm:
+        (-[WKDragSessionContext addTemporaryDirectory:]):
+        (-[WKDragSessionContext cleanUpTemporaryDirectories]):
+
+        Introduce WKDragSessionContext, which represents the localContext of a UIDragSession initiated in WebKit. The
+        blob promise dragging codepath uses this to register temporary directories when saving blob data to a location
+        on disk; when all data transfers are finished, or if the drag interaction is being reset, we then use
+        -cleanUpTemporaryDirectories to remove each temporary directory.
+
+        (existingLocalDragSessionContext):
+        (ensureLocalDragSessionContext):
+
+        Helper methods to set the UIDragSession's localContext to a WKDragSessionContext and query for any existing
+        context.
+
+        (-[WKContentView cleanupInteraction]):
+
+        Before the content view's UIDragInteraction goes away, clean up any temporary directories added to the
+        UIDragSession.
+
+        (-[WKContentView _prepareToDragPromisedBlob:]):
+
+        When dragging with a promised blob, register a new item provider on the pasteboard representing the blob data,
+        along with any additional metadata associated with the blob. For the promise callback, call out to the network
+        process to write the blob data to a temporary path; when done, call the NSItemProvider's completion handler with
+        the temporary blob data location.
+
+        (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]):
+        (-[WKContentView dragInteraction:sessionDidTransferItems:]):
+
+        Use this delegate hook as an opportunity to remove any temporary directories created when promised blob data is
+        requested upon drop. Since we know the drag session that has finished transferring data, we simply ask its local
+        context (a WKDragSessionContext) to remove any temporary filepaths it has created.
+
+2018-01-10  Jeff Miller  <jeffm@apple.com>
+
+        -[WKWebView _web_gestureEventWasNotHandledByWebCore:] should call -_gestureEventWasNotHandledByWebCore:
+        https://bugs.webkit.org/show_bug.cgi?id=181498
+
+        Reviewed by Alex Christensen.
+
+        WKView's API contract allows clients to override -_gestureEventWasNotHandledByWebCore:, and -[WKView
+        _web_gestureEventWasNotHandledByWebCore:] calls -_gestureEventWasNotHandledByWebCore: instead of
+        invoking WebViewImpl::gestureEventWasNotHandledByWebCoreFromViewOnly() directly. WKWebView should do
+        the same thing.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _web_gestureEventWasNotHandledByWebCore:]):
+        Call -_gestureEventWasNotHandledByWebCore:, which will call gestureEventWasNotHandledByWebCoreFromViewOnly().
+
+2018-01-10  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        REGRESSION(r222507): Composition highlight doesn't render when using IME
+        https://bugs.webkit.org/show_bug.cgi?id=181485
+        <rdar://problem/35896516>
+
+        Reviewed by Ryosuke Niwa.
+
+        Add plumbing for a `suppressUnderline` argument when setting marked text.
+
+        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
+        (WKBundlePageSetComposition):
+        * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::setCompositionForTesting):
+        * WebProcess/WebPage/WebPage.h:
+
+2018-01-10  Tim Horton  <timothy_horton@apple.com>
+
+        REGRESSION (r213590): Swipe from edge to go to previous page is significantly slower than tapping back button on Twitter
+        https://bugs.webkit.org/show_bug.cgi?id=181269
+        <rdar://problem/35110344>
+
+        Reviewed by Simon Fraser.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _processDidExit]):
+        (-[WKWebView _didCommitLayerTree:]):
+        When swiping to a page that set history.scrollRestoration = "manual",
+        we will never restore the scroll position. We will still restore
+        "state", but won't have a location. Currently, the code assumes that
+        it should wait to remove the swipe snapshot until the scroll position
+        is restored. Instead, wait until the "state" is restored, whether
+        or not that includes a scroll position/center point restoration.
+
+        Do this by making _firstTransactionIDAfterPageRestore an optional,
+        and reset it after it fires, so that we only run the restoration code
+        in _didCommitLayerTree for the first commit after state restoration,
+        not all subsequent commits. Then, tell ViewGestureController that
+        the scroll position has been restored even if the page opted out.
+
+        The reason that this is specific to pushState is that normal,
+        non-same-document loads bail from waiting for the scroll position
+        restoration in VGC::didReachMainFrameLoadTerminalState() (see the long
+        comment there for an explanation).
+
+        (-[WKWebView _beginBackSwipeForTesting]):
+        (-[WKWebView _completeBackSwipeForTesting]):
+        * Platform/spi/ios/UIKitSPI.h:
+        * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+        * UIProcess/Cocoa/ViewGestureController.h:
+        * UIProcess/ios/ViewGestureControllerIOS.mm:
+        (-[WKSwipeTransitionController transitionForDirection:]):
+        (WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting):
+        (WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting):
+        * UIProcess/mac/ViewGestureControllerMac.mm:
+        (WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting):
+        (WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting):
+        Add a mechanism to forcefully test swipe back. Instead of simulating
+        events like on Mac, we just talk to the UIKit internals and force
+        the interaction to start, pause, and then complete when we want.
+
+2018-01-10  Brent Fulgham  <bfulgham@apple.com>
+
+        Use protectedThis for the 'updatePrevalentDomainsToPartitionOrBlockCookies' lambda
+        https://bugs.webkit.org/show_bug.cgi?id=181452
+        <rdar://problem/36416912>
+        
+        Reviewed by Chris Dumez.
+
+        We forgot to use a 'protectedThis' back in r225006 for one of the lambdas used by
+        the WebsiteDataStore for processing.
+
+        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
+        (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback):
+
+2018-01-09  John Wilander  <wilander@apple.com>
+
+        Storage Access API: Turn feature on by default in WebPreferences.yaml
+        https://bugs.webkit.org/show_bug.cgi?id=181458
+
+        Reviewed by Brent Fulgham.
+
+        * Shared/WebPreferences.yaml:
+
+2018-01-09  Alex Christensen  <achristensen@webkit.org>
+
+        WKOpenPanelParameters SPI should return autoreleased objects
+        https://bugs.webkit.org/show_bug.cgi?id=181457
+        <rdar://problem/35884960>
+
+        Reviewed by Tim Horton.
+
+        In r226607 I made a mistake by returning an object that has been released.
+        I instead follow a pattern of leaking and autoreleasing that we use elsewhere in the ObjC API.
+
+        * UIProcess/API/Cocoa/WKOpenPanelParameters.mm:
+        (-[WKOpenPanelParameters _acceptedMIMETypes]):
+        (-[WKOpenPanelParameters _acceptedFileExtensions]):
+
+2018-01-09  Dan Bernstein  <mitz@apple.com>
+
+        Removed some empty directories that were left behind
+
+        * WebProcess/Cookies/cf: Removed.
+        * WebProcess/ios: Removed.
+
+2018-01-09  Paul Knight  <pknight@apple.com>
+
+        Don't record dynamic spelling corrections while in an ephemeral browsing session
+        https://bugs.webkit.org/show_bug.cgi?id=181417
+        <rdar://problem/33309104>
+
+        Dynamic spelling correction responses are kept on disk. Avoid recording
+        these responses when in an ephemeral session.
+
+        Reviewed by Tim Horton and Wenson Hsieh.
+
+        * UIProcess/mac/CorrectionPanel.h:
+        * UIProcess/mac/CorrectionPanel.mm:
+        (WebKit::CorrectionPanel::recordAutocorrectionResponse):
+            Add a WebViewImpl parameter so we can query the current session.
+            Return early before recording the response if the session is
+            ephemeral.
+        (WebKit::CorrectionPanel::handleAcceptedReplacement):
+            Update a caller to include the new parameter.
+        * UIProcess/mac/PageClientImplMac.mm:
+        (WebKit::PageClientImpl::recordAutocorrectionResponse):
+            Ditto.
+
+2018-01-09  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.5 release.
+
+        * gtk/NEWS: Add release notes for 2.19.5.
+
+2018-01-09  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Missing symbols exported in 2.19.4
+        https://bugs.webkit.org/show_bug.cgi?id=181433
+
+        Reviewed by Michael Catanzaro.
+
+        Add missing WEBKIT_API to webkit_dom_dom_window_webkit_message_handlers_post_message().
+
+        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h:
+        * webkitglib-symbols.map: Remove webkit_media_player_debug from local.
+
+2018-01-09  Youenn Fablet  <youenn@apple.com>
+
+        SWClientConnection should not keep references to service worker jobs
+        https://bugs.webkit.org/show_bug.cgi?id=181381
+
+        Reviewed by Chris Dumez.
+
+        Updated IPC handling based on WebCore refactoring.
+
+        * Scripts/webkit/messages.py:
+        (forward_declarations_and_headers):
+        (headers_for_type):
+        * StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
+        (WebKit::WebSWServerConnection::rejectJobInClient):
+        (WebKit::WebSWServerConnection::resolveRegistrationJobInClient):
+        (WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
+        (WebKit::WebSWServerConnection::startScriptFetchInClient):
+        * StorageProcess/ServiceWorker/WebSWServerConnection.h:
+        * WebProcess/Storage/WebSWClientConnection.messages.in:
+
+2018-01-09  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.4 release.
+
+        * gtk/NEWS: Add release notes for 2.19.4.
+
+2018-01-09  Ali Juma  <ajuma@chromium.org>
+
+        Implement VisualViewport API events
+        https://bugs.webkit.org/show_bug.cgi?id=179386
+
+        Reviewed by Frédéric Wang.
+
+        Change the default value of the VisualViewportAPI experimental feature flag to
+        DEFAULT_EXPERIMENTAL_FEATURES_ENABLED. This patch completes the implementation
+        of this feature as specified by https://wicg.github.io/visual-viewport/, so this
+        feature is now ready for wider testing.
+
+        * Shared/WebPreferences.yaml:
+
+2018-01-08  Alex Christensen  <achristensen@webkit.org>
+
+        Add WKNavigationDelegate SPI exposing WebProcess crash reason
+        https://bugs.webkit.org/show_bug.cgi?id=181410
+        <rdar://problem/36167199>
+
+        Reviewed by Wenson Hsieh.
+
+        We exposed it in the C SPI.
+
+        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
+        * UIProcess/Cocoa/NavigationState.h:
+        * UIProcess/Cocoa/NavigationState.mm:
+        (WebKit::NavigationState::setNavigationDelegate):
+        (WebKit::toWKProcessTerminationReason):
+        (WebKit::NavigationState::NavigationClient::processDidTerminate):
+
+2018-01-08  Alex Christensen  <achristensen@webkit.org>
+
+        Make ObjC SPI equivalent to WKPageNavigationClient.decidePolicyForPluginLoad
+        https://bugs.webkit.org/show_bug.cgi?id=181413
+        <rdar://problem/36169005>
+
+        Reviewed by Wenson Hsieh.
+
+        * UIProcess/API/APINavigationClient.h:
+        (API::NavigationClient::decidePolicyForPluginLoad):
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetPageNavigationClient):
+        * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
+        * UIProcess/Cocoa/NavigationState.h:
+        * UIProcess/Cocoa/NavigationState.mm:
+        (WebKit::NavigationState::setNavigationDelegate):
+        (WebKit::toPluginModuleLoadPolicy):
+        (WebKit::toWKPluginModuleLoadPolicy):
+        (WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad):
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::findPlugin):
+
+2018-01-08  Ryosuke Niwa  <rniwa@webkit.org>
+
+        iOS build fix attempt after r226602.
+
+        * UIProcess/API/C/WKContextMenuListener.cpp:
+        (WKContextMenuListenerUseContextMenuItems):
+
+2018-01-08  Alex Christensen  <achristensen@webkit.org>
+
+        Add SPI for WKOpenPanelParameters._acceptedMIMETypes and _acceptedFileExtensions
+        https://bugs.webkit.org/show_bug.cgi?id=181408
+        <rdar://problem/35884960>
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/API/Cocoa/WKOpenPanelParameters.mm:
+        (-[WKOpenPanelParameters _acceptedMIMETypes]):
+        (-[WKOpenPanelParameters _acceptedFileExtensions]):
+        * UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h:
+        * UIProcess/API/Cocoa/WKOpenPanelParametersPrivate.h: Added.
+        * WebKit.xcodeproj/project.pbxproj:
+
+2018-01-08  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r226532 and r226540.
+        https://bugs.webkit.org/show_bug.cgi?id=181422
+
+        jessie says basic browsing does not seem to work (Requested by
+        alexchristensen on #webkit).
+
+        Reverted changesets:
+
+        "Add CSP support to service workers"
+        https://bugs.webkit.org/show_bug.cgi?id=181385
+        https://trac.webkit.org/changeset/226532
+
+        "SWClientConnection should not keep references to service
+        worker jobs"
+        https://bugs.webkit.org/show_bug.cgi?id=181381
+        https://trac.webkit.org/changeset/226540
+
+2018-01-08  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [Attachment Support] Expose file name and content type of WKAttachment
+        https://bugs.webkit.org/show_bug.cgi?id=181390
+        <rdar://problem/36336837>
+
+        Reviewed by Tim Horton.
+
+        Add support for -[_WKAttachment requestInfo:], which fetches a snapshot of the attachment's state. This API is
+        meant to be a replacement for -requestData: that provides additional metadata about the attachment.
+
+        * Scripts/webkit/messages.py:
+        (headers_for_type):
+        * Shared/WebCoreArgumentCoders.cpp:
+        (IPC::ArgumentCoder<AttachmentInfo>::encode):
+        (IPC::ArgumentCoder<AttachmentInfo>::decode):
+        * Shared/WebCoreArgumentCoders.h:
+
+        Add IPC support for AttachmentInfo. Note that instead of using (encode|decode)SharedBuffer, we send and receive
+        data references to the shared buffer.
+
+        * UIProcess/API/APIAttachment.cpp:
+        (API::Attachment::requestInfo):
+        (API::Attachment::requestData): Deleted.
+        * UIProcess/API/APIAttachment.h:
+
+        Change requestData to requestInfo.
+
+        * UIProcess/API/Cocoa/_WKAttachment.h:
+        * UIProcess/API/Cocoa/_WKAttachment.mm:
+        (-[_WKAttachmentInfo initWithInfo:]):
+        (-[_WKAttachmentInfo data]):
+        (-[_WKAttachmentInfo name]):
+        (-[_WKAttachmentInfo filePath]):
+        (-[_WKAttachmentInfo contentType]):
+        (-[_WKAttachment requestInfo:]):
+        (-[_WKAttachment requestData:]):
+
+        Implement -requestInfo: by calling into APIAttachment, and reimplement -requestData: in terms of -requestInfo:.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::attachmentInfoCallback):
+        (WebKit::WebPageProxy::requestAttachmentInfo):
+        (WebKit::WebPageProxy::sharedBufferCallback): Deleted.
+        (WebKit::WebPageProxy::requestAttachmentData): Deleted.
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+
+        Rename the SharedBufferCallback IPC message to AttachmentInfoCallback, and make it conditional on
+        ATTACHMENT_ELEMENT. Rename requestAttachmentData to requestAttachmentInfo.
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::requestAttachmentInfo):
+        (WebKit::WebPage::invokeSharedBufferCallback): Deleted.
+        (WebKit::WebPage::requestAttachmentData): Deleted.
+
+        Rename requestAttachmentData to requestAttachmentInfo and adopt HTMLAttachmentElement::requestInfo.
+
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/WebPage.messages.in:
+
+2018-01-08  Alex Christensen  <achristensen@webkit.org>
+
+        Pass around Vector<Ref<WebContextMenuItem>> instead of WKArrayRef or Vector<WebContextMenuItemData>
+        https://bugs.webkit.org/show_bug.cgi?id=181419
+
+        Reviewed by Tim Horton.
+
+        Passing a WKArrayRef to an API object is messy and was preventing me from moving things around and making ObjC SPI.
+        No change in behavior.  Just using different layering abstractions for the same data.
+
+        * UIProcess/API/C/WKContextMenuListener.cpp:
+        (WKContextMenuListenerUseContextMenuItems):
+        * UIProcess/WebContextMenuListenerProxy.cpp:
+        (WebKit::WebContextMenuListenerProxy::useContextMenuItems):
+        * UIProcess/WebContextMenuListenerProxy.h:
+        * UIProcess/WebContextMenuProxy.h:
+        * UIProcess/mac/WebContextMenuProxyMac.h:
+        * UIProcess/mac/WebContextMenuProxyMac.mm:
+        (WebKit::WebContextMenuProxyMac::showContextMenuWithItems):
+        (WebKit::WebContextMenuProxyMac::showContextMenu):
+
+2018-01-08  John Wilander  <wilander@apple.com>
+
+        Storage Access API: Remove access for all frames under a page when the page is closed
+        https://bugs.webkit.org/show_bug.cgi?id=181398
+        <rdar://problem/36357879>
+
+        Reviewed by Alex Christensen.
+
+        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+        (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForAllFramesOnPage):
+        * NetworkProcess/NetworkConnectionToWebProcess.h:
+        * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::close):
+
+2018-01-08  Youenn Fablet  <youenn@apple.com>
+
+        SWClientConnection should not keep references to service worker jobs
+        https://bugs.webkit.org/show_bug.cgi?id=181381
+
+        Reviewed by Chris Dumez.
+
+        Updated IPC handling based on WebCore refactoring.
+
+        * Scripts/webkit/messages.py:
+        (forward_declarations_and_headers):
+        (headers_for_type):
+        * StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
+        (WebKit::WebSWServerConnection::rejectJobInClient):
+        (WebKit::WebSWServerConnection::resolveRegistrationJobInClient):
+        (WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
+        (WebKit::WebSWServerConnection::startScriptFetchInClient):
+        * StorageProcess/ServiceWorker/WebSWServerConnection.h:
+        * WebProcess/Storage/WebSWClientConnection.messages.in:
+
+2018-01-08  Joseph Pecoraro  <pecoraro@apple.com>
+
+        [Cocoa] Web Inspector: Provide a way for clients to check if an NSWindow is a Web Inspector window
+        https://bugs.webkit.org/show_bug.cgi?id=181361
+        <rdar://problem/36332865>
+
+        Reviewed by Darin Adler.
+
+        * WebKit.xcodeproj/project.pbxproj:
+        New files.
+
+        * Shared/API/Cocoa/_WKNSWindowExtras.h: Added.
+        * Shared/API/Cocoa/_WKNSWindowExtras.mm: Added.
+        (-[NSWindow _web_isWebInspectorWindow]):
+        Method to determing if a window is being used for Web Inspector content.
+
+        * UIProcess/mac/WKInspectorWindow.h: Added.
+        * UIProcess/mac/WKInspectorWindow.mm: Added.
+        Named subclass so we can use isKindOfClass.
+
+        * UIProcess/mac/WebInspectorProxyMac.mm:
+        (WebKit::WebInspectorProxy::createFrontendWindow):
+        Use the named subclass.
+
 2018-01-08  Tim Horton  <timothy_horton@apple.com>
 
         Build fix for WKPDFView