tor-browser

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

origin-from-extendablemessageevent.any.js (1017B)


      1 // META: title=`Origin.from(ExtendableMessageEvent)`
      2 // META: global=serviceworker
      3 // META: script=/common/get-host-info.sub.js
      4 
      5 function WorkerActivationPromise() {
      6  return new Promise((resolve) => {
      7    if (registration.active) {
      8      resolve();
      9      return;
     10    }
     11    self.addEventListener('activate', () => { resolve(); });
     12  });
     13 }
     14 
     15 test(t => {
     16  const e = new ExtendableMessageEvent("message", { origin: get_host_info().ORIGIN });
     17  assert_throws_js(TypeError, _ => Origin.from(e));
     18 }, "Constructed `ExtendableMessageEvent` objects have no real origins.");
     19 
     20 promise_test(async t => {
     21  await WorkerActivationPromise();
     22 
     23  return new Promise(resolve => {
     24    self.addEventListener("message", e => {
     25      const origin = Origin.from(e);
     26      assert_true(!!origin);
     27      assert_false(origin.opaque);
     28      assert_true(origin.isSameOrigin(Origin.from(self)));
     29      resolve();
     30    });
     31 
     32    self.registration.active.postMessage({ type: "Hi" });
     33  });
     34 }, "Posted `ExtendableMessageEvent` objects have origins.");