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