[webkit-changes] [WebKit/WebKit] 6dd552: Fix WKDownload.originatingFrame of downloads origi...

Alex Christensen noreply at github.com
Fri Feb 21 22:41:57 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6dd55289e6362820166b2296b07f6f3cbef97946
      https://github.com/WebKit/WebKit/commit/6dd55289e6362820166b2296b07f6f3cbef97946
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2025-02-21 (Fri, 21 Feb 2025)

  Changed paths:
    M Source/WebKit/UIProcess/API/APINavigation.h
    M Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp
    M Source/WebKit/UIProcess/Downloads/DownloadProxy.h
    M Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp
    M Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/WebProcessPool.h
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/Download.mm

  Log Message:
  -----------
  Fix WKDownload.originatingFrame of downloads originated without a frame
https://bugs.webkit.org/show_bug.cgi?id=288253
rdar://145328556

Reviewed by Chris Dumez.

WKDownload.originatingFrame is a non-nullable property, and it has non-nullable properties
WKFrameInfo.request and securityOrigin.  We were returning null for those properties, which
could cause crashes in Swift.  This will fix those crashes by making a fake WKFrameInfo that
represents a frame that doesn't exist that has loaded about:blank.

* Source/WebKit/UIProcess/API/APINavigation.h:
(API::Navigation::originatingFrameInfo const):
* Source/WebKit/UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::legacyEmptyFrameInfo):
(WebKit::DownloadProxy::DownloadProxy):
* Source/WebKit/UIProcess/Downloads/DownloadProxy.h:
* Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp:
(WebKit::DownloadProxyMap::createDownloadProxy):
* Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::createDownloadProxy):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::receivedNavigationResponsePolicyDecision):
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::download):
(WebKit::WebProcessPool::createDownloadProxy):
* Source/WebKit/UIProcess/WebProcessPool.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::createDownloadProxy):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(TestWebKitAPI::OriginatingFrameAndUserGesture)):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list