tor-browser

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

precommitHandler-addHandler-throws.html (1513B)


      1 <!doctype html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <body>
      5 <script>
      6 
      7 promise_test(async t => {
      8  let precommit_controller;
      9  navigation.onnavigate = t.step_func(e => {
     10    e.intercept({ precommitHandler: async controller => precommit_controller = controller });
     11  });
     12  await navigation.navigate("#").finished;
     13  assert_throws_dom("InvalidStateError", () => precommit_controller.addHandler(() => {}));
     14 }, "addHandler() after finish");
     15 
     16 promise_test(async t => {
     17  let precommit_controller;
     18  navigation.onnavigate = t.step_func(e => {
     19    e.intercept({
     20      precommitHandler: async controller => precommit_controller = controller,
     21      handler: t.step_func(async () => {
     22        assert_throws_dom("InvalidStateError", () => precommit_controller.addHandler(() => {}));
     23      })
     24    });
     25  });
     26  await navigation.navigate("#").finished;
     27 }, "addHandler() after commit");
     28 
     29 promise_test(async t => {
     30  let i = document.createElement("iframe");
     31  i.src = "about:blank";
     32  document.body.appendChild(i);
     33  i.contentWindow.navigation.onnavigate = t.step_func(e => {
     34    e.intercept({
     35      precommitHandler: t.step_func(controller => {
     36        let iframe_constructor = i.contentWindow.DOMException;
     37        i.remove();
     38        assert_throws_dom("InvalidStateError", iframe_constructor, () => controller.addHandler(() => {}));
     39      })
     40    });
     41  });
     42  i.contentWindow.navigation.navigate("#");
     43 }, "addHandler() in detached iframe");
     44 
     45 </script>
     46 </body>