[webkit-changes] [WebKit/WebKit] 801abd: Check the correct network connection integrity pol...

Charlie Wolfe noreply at github.com
Wed Apr 26 11:18:35 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 801abd6bee994cae2784a4307c52ad737c345b2b
      https://github.com/WebKit/WebKit/commit/801abd6bee994cae2784a4307c52ad737c345b2b
  Author: Charlie Wolfe <charliew at apple.com>
  Date:   2023-04-26 (Wed, 26 Apr 2023)

  Changed paths:
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/loader/DocumentLoader.h
    M Source/WebCore/loader/FrameLoadRequest.h
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebKit/Shared/LoadParameters.cpp
    M Source/WebKit/Shared/LoadParameters.h
    M Source/WebKit/Shared/NavigationActionData.h
    M Source/WebKit/Shared/NavigationActionData.serialization.in
    M Source/WebKit/Shared/WebsitePoliciesData.cpp
    M Source/WebKit/UIProcess/API/APINavigation.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
    M Source/WebKit/WebProcess/WebPage/WebFrame.cpp
    M Source/WebKit/WebProcess/WebPage/WebFrame.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp

  Log Message:
  -----------
  Check the correct network connection integrity policy after a navigation
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




More information about the webkit-changes mailing list