Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 03852b7874f5b8fa0eb41c44f6b5eb8a4aa03216
https://github.com/WebKit/WebKit/commit/03852b7874f5b8fa0eb41c44f6b5eb8a4aa03216
Author: Elijah Sawyers <[email protected]>
Date: 2025-04-25 (Fri, 25 Apr 2025)
Changed paths:
M Source/WebCore/loader/DocumentLoader.h
M Source/WebCore/loader/FrameLoadRequest.h
M Source/WebCore/loader/FrameLoader.cpp
M Source/WebCore/loader/NavigationAction.h
M Source/WebCore/loader/PolicyChecker.cpp
M Source/WebCore/loader/cache/CachedResourceLoader.cpp
M Source/WebKit/Shared/NavigationActionData.h
M Source/WebKit/Shared/NavigationActionData.serialization.in
M Source/WebKit/UIProcess/API/APINavigationAction.h
M Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm
M Source/WebKit/UIProcess/API/Cocoa/WKNavigationActionPrivate.h
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp
Log Message:
-----------
dNR: redirect rule won’t redirect to extensionPath
https://bugs.webkit.org/show_bug.cgi?id=292072
rdar://145569361
Reviewed by Timothy Hatcher.
This patch fixes a dNR bug where redirects to extension resources does not work.
The fix for this is to introduce a new, private NavigationAction property that
indicates whether or not the action is a content extension redirect. This is
necessary for Safari to know so that it can do the right thing when deciding the
policy in webView:decidePolicyForNavigationAction:preferences:decisionHandler:.
This property is set in the cached resource loader where we kick off a new load
in a different process, and it is plumbed through to the aforementioned policy
decision delegate method call.
* Source/WebCore/loader/DocumentLoader.h:
(WebCore::DocumentLoader::isContentExtensionRedirect const):
(WebCore::DocumentLoader::setIsContentExtensionRedirect):
* Source/WebCore/loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::isContentExtensionRedirect const):
(WebCore::FrameLoadRequest::setIsContentExtensionRedirect):
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):
* Source/WebCore/loader/NavigationAction.h:
(WebCore::NavigationAction::isContentExtensionRedirect const):
(WebCore::NavigationAction::setIsContentExtensionRedirect):
* Source/WebCore/loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
* Source/WebCore/loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
* Source/WebKit/Shared/NavigationActionData.h:
* Source/WebKit/Shared/NavigationActionData.serialization.in:
* Source/WebKit/UIProcess/API/APINavigationAction.h:
* Source/WebKit/UIProcess/API/Cocoa/WKNavigationAction.mm:
(-[WKNavigationAction _isContentExtensionRedirect]):
* Source/WebKit/UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
* Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::navigationActionData const):
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:
(WebKit::WebLocalFrameLoaderClient::didSameDocumentNavigationForFrameViaJS):
(WebKit::WebLocalFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
Canonical link: https://commits.webkit.org/294141@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes