tor-browser

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

commit 93fa8e17a32e1d39001870e464e4d2139384b737
parent 850aae4548ea835103da4adaa8475ff37135db5e
Author: Sergio <svillar@igalia.com>
Date:   Thu,  9 Oct 2025 18:06:49 +0000

Bug 1992105 [wpt PR 55128] - WebKit export of https://bugs.webkit.org/show_bug.cgi?id=299302, a=testonly

Automatic update from web-platform-tests
WebKit export of https://bugs.webkit.org/show_bug.cgi?id=299302 (#55128)

--

wpt-commits: d40a535bb5e226ad642a611da0fa5b94d302ba30
wpt-pr: 55128

Diffstat:
Atesting/web-platform/tests/webxr/xrSession_visibilityState_inline.https.html | 73+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+), 0 deletions(-)

diff --git a/testing/web-platform/tests/webxr/xrSession_visibilityState_inline.https.html b/testing/web-platform/tests/webxr/xrSession_visibilityState_inline.https.html @@ -0,0 +1,73 @@ +<!DOCTYPE html> +<html> +<title>View transitions: Transition in a hidden page</title> +<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> +<meta name="timeout" content="long"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="resources/webxr_util.js"></script> +<script src="resources/webxr_test_constants.js"></script> +<script src="../page-visibility/resources/window_state_context.js"></script> +<script> +let watcherDone = new Event("watcherdone"); + +let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE; +let testName = "Ensures that the XRSession's visibilityState is correctly " + + "reported and that the associated visibilitychange event fires for " + + "non-immersive sessions."; + +promise_test( + async (setup) => { + xr_session_promise_test( + testName, + (session, fakeDeviceController, t) => { + let wsc = null; + let eventWatcher = new EventWatcher( + t, session, ["visibilitychange", "watcherdone"]); + let eventPromise = eventWatcher.wait_for( + ["visibilitychange", "visibilitychange", "watcherdone"]); + + async function showDocument() { + await wsc.restore(); + } + + async function hideDocument() { + wsc = window_state_context(t); + await wsc.minimize(); + } + + function onSessionVisibilityChangeVisible(event) { + t.step( () => { + assert_equals(session.visibilityState, "visible"); + }); + t.step_timeout(()=>{ + session.dispatchEvent(watcherDone); + }, 300); + } + + function onSessionVisibilityChangeHidden(event) { + t.step( () => { + assert_equals(session.visibilityState, "hidden"); + }); + session.removeEventListener("visibilitychange", onSessionVisibilityChangeHidden, false); + session.addEventListener("visibilitychange", onSessionVisibilityChangeVisible, false); + showDocument(); + } + + assert_equals(session.visibilityState, "visible"); + + session.addEventListener("visibilitychange", onSessionVisibilityChangeHidden, false); + hideDocument(); + + return eventPromise; + }, + fakeDeviceInitParams, 'inline' + ); + }, + "setup" +); +</script> +</body> +</html>