https://bugs.webkit.org/show_bug.cgi?id=252089
rdar://104452273
Reviewed by Alex Christensen.
In some cases where we check the network connection integrity policy, we are checking the
policy in the context of a navigation that may have occurred. This can cause issues when the
network connection integrity policy was set, but changed during navigation. In this situation,
the network connection integrity policy we are interested in checking is the one set on the page
we navigated away from. To fix this, we preserve the policy set on the old document loader to
the new one so we can check it on the destination site.
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::urlForBindings const):
(WebCore::Document::referrerForBindings):
* Source/WebCore/loader/DocumentLoader.h:
(WebCore::DocumentLoader::setOriginalNetworkConnectionIntegrityPolicy):
(WebCore::DocumentLoader::originalNetworkConnectionIntegrityPolicy const):
* Source/WebCore/loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::setNetworkConnectionIntegrityPolicy):
(WebCore::FrameLoadRequest::networkConnectionIntegrityPolicy const):
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::load):
* Source/WebKit/Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):
* Source/WebKit/Shared/LoadParameters.h:
* Source/WebKit/Shared/NavigationActionData.h:
* Source/WebKit/Shared/NavigationActionData.serialization.in:
* Source/WebKit/UIProcess/API/APINavigation.h:
(API::Navigation::setOriginatorNetworkConnectionIntegrityPolicy):
(API::Navigation::originatorNetworkConnectionIntegrityPolicy const):
* Source/WebKit/Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
* Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::didSameDocumentNavigationForFrameViaJSHistoryAPI):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* Source/WebKit/WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::info const):
(WebKit::WebFrame::networkConnectionIntegrityPolicy const):
* Source/WebKit/WebProcess/WebPage/WebFrame.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
Canonical link: https://commits.webkit.org/263421@main