tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 9afedeaa9b72cc8ea36dd6549a44c81a06c7ddf1
parent ee8248f82648584f5ef44539d4b6b942a53eccc1
Author: jalonthomas <64996364+jalonthomas@users.noreply.github.com>
Date:   Tue, 21 Oct 2025 10:23:07 +0000

Bug 1994436 [wpt PR 55137] - [wdspec] add `embeddedOrigin` to permissions, a=testonly

Automatic update from web-platform-tests
[wdspec] add `embeddedOrigin` to permissions (#55137)

--

wpt-commits: 0a45e46f1b0d839672e6d7b813f8ed2c3ff81880
wpt-pr: 55137

Diffstat:
Mtesting/web-platform/tests/tools/webdriver/webdriver/bidi/modules/permissions.py | 14+++++++++-----
Mtesting/web-platform/tests/webdriver/tests/bidi/external/permissions/set_permission/set_permission.py | 50++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+), 5 deletions(-)

diff --git a/testing/web-platform/tests/tools/webdriver/webdriver/bidi/modules/permissions.py b/testing/web-platform/tests/tools/webdriver/webdriver/bidi/modules/permissions.py @@ -6,15 +6,19 @@ from ._module import BidiModule, command class Permissions(BidiModule): @command - def set_permission(self, - descriptor: Union[Optional[Mapping[str, Any]], Undefined] = UNDEFINED, - state: Union[Optional[str], Undefined] = UNDEFINED, - origin: Union[Optional[str], Undefined] = UNDEFINED, - user_context: Union[Optional[str], Undefined] = UNDEFINED) -> Mapping[str, Any]: + def set_permission( + self, + descriptor: Union[Optional[Mapping[str, Any]], Undefined] = UNDEFINED, + state: Union[Optional[str], Undefined] = UNDEFINED, + origin: Union[Optional[str], Undefined] = UNDEFINED, + user_context: Union[Optional[str], Undefined] = UNDEFINED, + embedded_origin: Union[Optional[str], Undefined] = UNDEFINED, + ) -> Mapping[str, Any]: params: MutableMapping[str, Any] = { "descriptor": descriptor, "state": state, "origin": origin, "userContext": user_context, + "embeddedOrigin": embedded_origin, } return params diff --git a/testing/web-platform/tests/webdriver/tests/bidi/external/permissions/set_permission/set_permission.py b/testing/web-platform/tests/webdriver/tests/bidi/external/permissions/set_permission/set_permission.py @@ -101,3 +101,53 @@ async def test_set_permission_origin_unknown(bidi_session, new_tab, origin, url) origin=origin, ) assert await get_permission_state(bidi_session, new_tab, "geolocation") == "prompt" + + +@pytest.mark.asyncio +async def test_set_permission_iframe( + bidi_session, new_tab, test_page_cross_origin_frame +): + await bidi_session.browsing_context.navigate( + context=new_tab["context"], + url=test_page_cross_origin_frame, + wait="complete", + ) + contexts = await bidi_session.browsing_context.get_tree(root=new_tab["context"]) + + frames = contexts[0]["children"] + assert len(frames) == 1 + iframe_context_id = frames[0]["context"] + assert iframe_context_id + iframe_context = {"context": iframe_context_id} + iframe_orgin = await get_context_origin(bidi_session, iframe_context) + + # Ensure the initial permission for the frame is prompt. + assert ( + await get_permission_state(bidi_session, iframe_context, "storage-access") + == "prompt" + ) + + # Set permissions for the top-level context's origin. + tab_origin = await get_context_origin(bidi_session, new_tab) + await bidi_session.permissions.set_permission( + descriptor={"name": "storage-access"}, + state="prompt", + origin=tab_origin, + ) + # Assert the frame's permission is still prompt. + assert ( + await get_permission_state(bidi_session, iframe_context, "storage-access") + == "prompt" + ) + + # Set permissions for the frame's origin. + await bidi_session.permissions.set_permission( + descriptor={"name": "storage-access"}, + state="granted", + origin=tab_origin, + embedded_origin=iframe_orgin, + ) + assert ( + await get_permission_state(bidi_session, iframe_context, "storage-access") + == "granted" + )