Add support for the frames() timing function
[WebKit-https.git] / Source / WebKit / ChangeLog
index baae967..3d9beb5 100644 (file)
@@ -1,3 +1,215 @@
+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