tor-browser

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

file_bug1328501_framescript.js (998B)


      1 // Forward iframe loaded event.
      2 
      3 /* eslint-env mozilla/frame-script */
      4 
      5 addEventListener(
      6  "frames-loaded",
      7  () => sendAsyncMessage("test:frames-loaded"),
      8  true,
      9  true
     10 );
     11 
     12 let requestObserver = {
     13  observe(subject, topic) {
     14    if (topic == "http-on-opening-request") {
     15      // Get DOMWindow on all child docshells to force about:blank
     16      // content viewers being created.
     17      getChildDocShells().map(ds => {
     18        ds
     19          .QueryInterface(Ci.nsIInterfaceRequestor)
     20          .getInterface(Ci.nsILoadContext).associatedWindow;
     21      });
     22    }
     23  },
     24  QueryInterface: ChromeUtils.generateQI(["nsIObserver"]),
     25 };
     26 Services.obs.addObserver(requestObserver, "http-on-opening-request");
     27 addEventListener("unload", e => {
     28  if (e.target == this) {
     29    Services.obs.removeObserver(requestObserver, "http-on-opening-request");
     30  }
     31 });
     32 
     33 function getChildDocShells() {
     34  return docShell.getAllDocShellsInSubtree(
     35    Ci.nsIDocShellTreeItem.typeAll,
     36    Ci.nsIDocShell.ENUMERATE_FORWARDS
     37  );
     38 }