blob: e0fc6b39bae9fe3c5817bc707361cf2d8e3d0072 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
'use strict';
self.testRunner.setPermission('wake-lock-screen', 'granted', location.origin, location.origin);
promise_test(t => {
window.testRunner.setPageVisibility('hidden');
assert_true(document.hidden);
return promise_rejects(t, "NotAllowedError", WakeLock.request('screen'));
}, "WakeLock.request('screen') fails when the document is hidden");
promise_test(t => {
window.testRunner.setPageVisibility('visible');
const screenLock = WakeLock.request('screen');
window.testRunner.setPageVisibility('hidden');
assert_true(document.hidden);
return promise_rejects(t, "NotAllowedError", screenLock);
}, "WakeLock.request('screen') aborts when the page is hidden");
promise_test(async t => {
window.testRunner.setPageVisibility('visible');
const controller = new AbortController();
const screenLock = WakeLock.request('screen', { signal: controller.signal });
window.testRunner.setPageVisibility('hidden');
assert_true(document.hidden);
await promise_rejects(t, "NotAllowedError", screenLock);
controller.abort();
}, "Aborting a rejected wake lock does not crash");
</script>
</body>
</html>