[webkit-changes] [WebKit/WebKit] d55e3c: Use WKDataTask for SystemPreview downloads

Dean Jackson noreply at github.com
Tue Apr 25 16:29:47 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d55e3cae6649895b6d2aeb7235ba879bdb403868
      https://github.com/WebKit/WebKit/commit/d55e3cae6649895b6d2aeb7235ba879bdb403868
  Author: Dean Jackson <dino at apple.com>
  Date:   2023-04-25 (Tue, 25 Apr 2023)

  Changed paths:
    M Source/WebCore/PAL/pal/spi/cocoa/FoundationSPI.h
    M Source/WebCore/html/HTMLAnchorElement.cpp
    M Source/WebCore/page/ChromeClient.h
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm
    M Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm
    M Source/WebKit/UIProcess/SystemPreviewController.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm
    A Tools/TestWebKitAPI/Tests/WebKitCocoa/UnitBox.usdz
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/system-preview-trigger.html
    A Tools/TestWebKitAPI/Tests/WebKitCocoa/system-preview.html

  Log Message:
  -----------
  Use WKDataTask for SystemPreview downloads
https://bugs.webkit.org/show_bug.cgi?id=255954
rdar://108524222

Reviewed by Tim Horton.

Migrate away from LegacyDownloadClient and instead handle System Previews
directly. This will allow us to remove the horrible code in the download
client, as well eventually allow 3rd-party engines to use ARQL.

The fix is to intercept the HTMLAnchorElement click for a system
preview, and send that directly to the SystemPreviewController in
the UI Process. That object then creates a WKDataTask for the download
and presents ARQL as normal.

A followup patch will remove the old code.

* Source/WebCore/html/HTMLAnchorElement.cpp:
* Source/WebCore/page/ChromeClient.h:
* Source/WebCore/page/Page.cpp:
* Source/WebCore/page/Page.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:
* Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
* Source/WebKit/UIProcess/SystemPreviewController.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
(-[TestSystemPreviewUIDelegate _presentingViewControllerForWebView:]):
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/UnitBox.usdz: Added.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/system-preview-trigger.html:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/system-preview.html: Added.

Canonical link: https://commits.webkit.org/263393@main




More information about the webkit-changes mailing list