tor-browser

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

browser_bug410900.js (1548B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 function test() {
      5  waitForExplicitFinish();
      6 
      7  // Setup a phony handler to ensure the app pane will be populated.
      8  var handler = Cc["@mozilla.org/uriloader/web-handler-app;1"].createInstance(
      9    Ci.nsIWebHandlerApp
     10  );
     11  handler.name = "App pane alive test";
     12  handler.uriTemplate = "http://test.mozilla.org/%s";
     13 
     14  var extps = Cc[
     15    "@mozilla.org/uriloader/external-protocol-service;1"
     16  ].getService(Ci.nsIExternalProtocolService);
     17  var info = extps.getProtocolHandlerInfo("apppanetest");
     18  info.possibleApplicationHandlers.appendElement(handler);
     19 
     20  var hserv = Cc["@mozilla.org/uriloader/handler-service;1"].getService(
     21    Ci.nsIHandlerService
     22  );
     23  hserv.store(info);
     24 
     25  openPreferencesViaOpenPreferencesAPI("general", { leaveOpen: true })
     26    .then(() => gBrowser.selectedBrowser.contentWindow.promiseLoadHandlersList)
     27    .then(() => runTest(gBrowser.selectedBrowser.contentWindow));
     28 }
     29 
     30 function runTest(win) {
     31  var rbox = win.document.getElementById("handlersView");
     32  ok(rbox, "handlersView is present");
     33 
     34  var items = rbox && rbox.getElementsByTagName("richlistitem");
     35  ok(items && !!items.length, "App handler list populated");
     36 
     37  var handlerAdded = false;
     38  for (let i = 0; i < items.length; i++) {
     39    if (items[i].getAttribute("type") == "apppanetest") {
     40      handlerAdded = true;
     41    }
     42  }
     43  ok(handlerAdded, "apppanetest protocol handler was successfully added");
     44 
     45  gBrowser.removeCurrentTab();
     46  finish();
     47 }