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
74 lines
2.4 KiB
HTML
74 lines
2.4 KiB
HTML
<!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>
|