tor-browser

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

thrown-error-in-events.html (1304B)


      1 <!DOCTYPE html>
      2 <title>Errors thrown in XMLHttpRequest events get to window.onerror</title>
      3 <link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
      4 
      5 <script src="/resources/testharness.js"></script>
      6 <script src="/resources/testharnessreport.js"></script>
      7 
      8 <script>
      9 "use strict";
     10 
     11 setup({ allow_uncaught_exception: true });
     12 
     13 promise_test(() => {
     14  const error = new Error("oh no!");
     15  let resolve;
     16 
     17  window.addEventListener("error", event => {
     18    assert_equals(event.error, error);
     19    resolve();
     20  });
     21 
     22  const xhr = new window.XMLHttpRequest();
     23 
     24  xhr.addEventListener("load", () => {
     25    throw error;
     26  });
     27 
     28  xhr.open("GET", location.href);
     29  xhr.send();
     30 
     31  return new Promise(r => {
     32    resolve = r;
     33  });
     34 
     35 }, "errors thrown in XMLHttpRequest's load event (using addEventListener) goes to window.onerror");
     36 
     37 promise_test(() => {
     38  const error = new Error("oh no 2!");
     39  let resolve;
     40 
     41  window.addEventListener("error", event => {
     42    assert_equals(event.error, error);
     43    resolve();
     44  });
     45 
     46  const xhr = new window.XMLHttpRequest();
     47 
     48  xhr.onload = () => {
     49    throw error;
     50  };
     51 
     52  xhr.open("GET", location.href);
     53  xhr.send();
     54 
     55  return new Promise(r => {
     56    resolve = r;
     57  });
     58 
     59 }, "errors thrown in XMLHttpRequest's load event (using onload) goes to window.onerror");
     60 </script>