tor-browser

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

browser_webconsole_observer_notifications.js (1261B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 const TEST_URI =
      7  "data:text/html;charset=utf-8,<!DOCTYPE html><p>Web Console test for " +
      8  "observer notifications";
      9 
     10 let created = false;
     11 let destroyed = false;
     12 
     13 add_task(async function () {
     14  setupObserver();
     15  await openNewTabAndConsole(TEST_URI);
     16  await waitFor(() => created);
     17 
     18  await closeTabAndToolbox(gBrowser.selectedTab);
     19  await waitFor(() => destroyed);
     20 
     21  ok(true, "We received both created and destroyed events");
     22 });
     23 
     24 function setupObserver() {
     25  const observer = {
     26    QueryInterface: ChromeUtils.generateQI(["nsIObserver"]),
     27 
     28    observe: function observe(subject, topic) {
     29      subject = subject.QueryInterface(Ci.nsISupportsString);
     30 
     31      switch (topic) {
     32        case "web-console-created":
     33          Services.obs.removeObserver(observer, "web-console-created");
     34          created = true;
     35          break;
     36        case "web-console-destroyed":
     37          Services.obs.removeObserver(observer, "web-console-destroyed");
     38          destroyed = true;
     39          break;
     40      }
     41    },
     42  };
     43 
     44  Services.obs.addObserver(observer, "web-console-created");
     45  Services.obs.addObserver(observer, "web-console-destroyed");
     46 }