tor-browser

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

wakelock-onrelease.https.html (1835B)


      1 <!DOCTYPE html>
      2 <link rel="help" href="https://w3c.github.io/screen-wake-lock/#the-onrelease-attribute">
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script src="/resources/testdriver.js"></script>
      6 <script src="/resources/testdriver-vendor.js"></script>
      7 <script>
      8 promise_test(async t => {
      9  await test_driver.set_permission({name: 'screen-wake-lock'}, 'granted');
     10 
     11  const lock = await navigator.wakeLock.request("screen");
     12  return new Promise(resolve => {
     13    lock.onrelease = resolve;
     14    lock.release();
     15  }).then(ev => {
     16    assert_class_string(ev, "Event", "release() must fire an Event object");
     17    assert_equals(ev.target, lock, "The event's target must be the lock that was acquired");
     18    assert_true(ev.isTrusted);
     19    assert_false(ev.bubbles);
     20    assert_false(ev.cancelable);
     21  });
     22 }, "Test onreleased event's basic properties");
     23 
     24 promise_test(async t => {
     25  await test_driver.set_permission({ name: 'screen-wake-lock' }, 'granted');
     26 
     27  const lock = await navigator.wakeLock.request("screen");
     28 
     29  let releaseFired = false;
     30  lock.onrelease = t.step_func(() => {
     31    releaseFired = true;
     32  });
     33 
     34  const releasePromise = lock.release();
     35  assert_true(releaseFired, "The 'release' event fires immediately after release() is called");
     36 
     37  return releasePromise;
     38 }, "Ensure onrelease is called before WakeLockSentinel.release() resolves");
     39 
     40 promise_test(async t => {
     41  await test_driver.set_permission({ name: 'screen-wake-lock' }, 'granted');
     42 
     43  const lock = await navigator.wakeLock.request("screen");
     44 
     45  let eventCount = 0;
     46  lock.onrelease = t.step_func(() => {
     47    eventCount++;
     48  });
     49 
     50  await lock.release();
     51  await lock.release();
     52  assert_equals(eventCount, 1, "The 'release' event was fired once");
     53 }, "Ensure onrelease is fired exactly once");
     54 </script>