Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 1f8bdc8eab5985a9e2a250e26ad9be088a55dafe
      
https://github.com/WebKit/WebKit/commit/1f8bdc8eab5985a9e2a250e26ad9be088a55dafe
  Author: Sihui Liu <[email protected]>
  Date:   2024-07-13 (Sat, 13 Jul 2024)

  Changed paths:
    A LayoutTests/http/tests/site-isolation/permissions-policy-expected.txt
    A 
LayoutTests/http/tests/site-isolation/permissions-policy-nested-expected.txt
    A LayoutTests/http/tests/site-isolation/permissions-policy-nested.html
    A LayoutTests/http/tests/site-isolation/permissions-policy.html
    A 
LayoutTests/http/tests/site-isolation/resources/permissions-policy-expected.txt
    A 
LayoutTests/http/tests/site-isolation/resources/permissions-policy-iframe.html
    A 
LayoutTests/http/tests/site-isolation/resources/permissions-policy-nested-iframe.html
    A LayoutTests/http/tests/site-isolation/resources/simple.html
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/dom/Document.h
    M Source/WebCore/html/HTMLIFrameElement.cpp
    M Source/WebCore/html/HTMLIFrameElement.h
    M Source/WebCore/html/PermissionsPolicy.cpp
    M Source/WebCore/html/PermissionsPolicy.h
    M Source/WebCore/page/Frame.cpp
    M Source/WebCore/page/Frame.h
    M Source/WebCore/page/LocalFrame.h
    M Source/WebKit/Shared/LoadParameters.h
    M Source/WebKit/Shared/LoadParameters.serialization.in
    M Source/WebKit/Shared/NavigationActionData.h
    M Source/WebKit/Shared/NavigationActionData.serialization.in
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    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/WebCoreSupport/WebLocalFrameLoaderClient.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h

  Log Message:
  -----------
  [Site Isolation] Make permissions policy work when site isolation is enabled
https://bugs.webkit.org/show_bug.cgi?id=276203
rdar://131080252

Reviewed by Youenn Fablet.

When site isolation is enabled, subframe can be in a different process than its 
parent. However, for document of the
subframe to compute permissions policy, it needs policy information of its 
owner element (parent frame). To make
permissions policy work with site isolation, we include owner's policy in 
navigation data, which is sent from web
process to UI process on deciding policy for navigation. UI process can then 
forward the owner's policy to correct frame
process by including it in LoadParameters.

Tests: http/tests/site-isolation/permissions-policy.html
       http/tests/site-isolation/permissions-policy-nested.html

* LayoutTests/http/tests/site-isolation/permissions-policy-expected.txt: Added.
* LayoutTests/http/tests/site-isolation/permissions-policy-nested-expected.txt: 
Added.
* LayoutTests/http/tests/site-isolation/permissions-policy-nested.html: Added.
* LayoutTests/http/tests/site-isolation/permissions-policy.html: Added.
* 
LayoutTests/http/tests/site-isolation/resources/permissions-policy-expected.txt:
 Added.
* 
LayoutTests/http/tests/site-isolation/resources/permissions-policy-iframe.html: 
Added.
* 
LayoutTests/http/tests/site-isolation/resources/permissions-policy-nested-iframe.html:
 Added.
* LayoutTests/http/tests/site-isolation/resources/simple.html: Added.
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::ownerPermissionsPolicy const):
* Source/WebCore/dom/Document.h:
* Source/WebCore/html/HTMLIFrameElement.cpp:
(WebCore::HTMLIFrameElement::attributeChanged):
(WebCore::HTMLIFrameElement::permissionsPolicyDirective const): Deleted.
* Source/WebCore/html/HTMLIFrameElement.h:
* Source/WebCore/html/PermissionsPolicy.cpp:
(WebCore::PermissionsPolicy::computeInheritedPolicyValueInContainer const):
(WebCore::PermissionsPolicy::PermissionsPolicy):
* Source/WebCore/html/PermissionsPolicy.h:
* Source/WebCore/page/Frame.cpp:
(WebCore::Frame::setOwnerPermissionsPolicy):
(WebCore::Frame::ownerPermissionsPolicy const):
* Source/WebCore/page/Frame.h:
* Source/WebCore/page/LocalFrame.h:
* Source/WebKit/Shared/LoadParameters.h:
* Source/WebKit/Shared/LoadParameters.serialization.in:
* Source/WebKit/Shared/NavigationActionData.h:
* Source/WebKit/Shared/NavigationActionData.serialization.in:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/API/APINavigation.h:
(API::Navigation::ownerPermissionsPolicy const):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::receivedNavigationActionPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
* 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::didSameDocumentNavigationForFrameViaJSHistoryAPI):
(WebKit::WebLocalFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
* Source/WebKit/WebProcess/WebPage/WebPage.h:

Canonical link: https://commits.webkit.org/280942@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

Reply via email to