tor-browser

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

permissions-iframe.https.html (2201B)


      1 <!doctype html>
      2 <meta charset=utf-8>
      3 
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testdriver.js"></script>
      6 <script src="/resources/testdriver-vendor.js"></script>
      7 <!-- no testharnessreport.js -->
      8 <script src="../helpers.js"></script>
      9 <div id=log></div>
     10 <script>
     11 "use strict";
     12 
     13 test_driver.set_test_context(window.top);
     14 
     15 promise_test(async t => {
     16  const permission = await navigator.permissions.query({name: "storage-access"});
     17  assert_equals(permission.name, "storage-access");
     18  assert_equals(permission.state, "prompt");
     19 }, "Permission default state can be queried");
     20 
     21 promise_test(async t => {
     22  t.add_cleanup(async () => {
     23    await test_driver.set_permission({ name: 'storage-access' }, 'prompt');
     24  });
     25  await test_driver.set_permission({ name: 'storage-access' }, 'granted');
     26 
     27  const permission = await navigator.permissions.query({name: "storage-access"});
     28  assert_equals(permission.name, "storage-access");
     29  assert_equals(permission.state, "granted");
     30 }, "Permission granted state can be queried");
     31 
     32 promise_test(async t => {
     33  t.add_cleanup(async () => {
     34    await test_driver.set_permission({ name: 'storage-access' }, 'prompt');
     35  });
     36  await test_driver.set_permission({ name: 'storage-access' }, 'denied');
     37 
     38  const permission = await navigator.permissions.query({name: "storage-access"});
     39  assert_equals(permission.name, "storage-access");
     40  assert_equals(permission.state, "prompt");
     41 
     42  await test_driver.set_permission({ name: 'storage-access' }, 'prompt');
     43 }, "Permission denied state is hidden");
     44 
     45 promise_test(async t => {
     46  t.add_cleanup(async () => {
     47    await test_driver.set_permission({ name: 'storage-access' }, 'prompt');
     48  });
     49 
     50  const permission = await navigator.permissions.query({name: "storage-access"});
     51 
     52  const p = new Promise(resolve => {
     53    permission.addEventListener("change", (event) => resolve(event), { once: true });
     54  });
     55 
     56  await test_driver.set_permission({ name: 'storage-access' }, 'granted');
     57  await document.requestStorageAccess();
     58 
     59  const event = await p;
     60 
     61  assert_equals(event.target.name, "storage-access");
     62  assert_equals(event.target.state, "granted");
     63 }, "Permission state can be observed");
     64 
     65 </script>