[tor-commits] [torbutton/master] Bug 10760: bring back review changes that got lost by mistake

gk at torproject.org gk at torproject.org
Tue Aug 27 11:11:51 UTC 2019


commit 11c41cf294050dbe364f287e35f06da8b437214b
Author: Alex Catarineu <acat at torproject.org>
Date:   Tue Aug 27 11:26:44 2019 +0200

    Bug 10760: bring back review changes that got lost by mistake
---
 chrome/content/aboutTor/aboutTor-content.js | 10 +++-------
 chrome/content/tor-circuit-display.js       |  2 +-
 chrome/content/torbutton.js                 | 31 +++++++----------------------
 chrome/content/torbutton_util.js            |  1 -
 components/cookie-jar-selector.js           | 25 ++++++-----------------
 components/domain-isolator.js               |  9 ++-------
 components/dragDropFilter.js                |  4 ++--
 components/external-app-blocker.js          |  9 ++++-----
 components/startup-observer.js              | 30 +++++-----------------------
 components/torCheckService.js               |  4 ++--
 components/torbutton-logger.js              |  7 ++-----
 modules/noscript-control.js                 |  4 ++--
 modules/tor-control-port.js                 |  2 +-
 modules/utils.js                            |  2 +-
 14 files changed, 38 insertions(+), 102 deletions(-)

diff --git a/chrome/content/aboutTor/aboutTor-content.js b/chrome/content/aboutTor/aboutTor-content.js
index d4399624..01b4c2c7 100644
--- a/chrome/content/aboutTor/aboutTor-content.js
+++ b/chrome/content/aboutTor/aboutTor-content.js
@@ -14,11 +14,9 @@
  *   AboutTor:ChromeData      privileged data        chrome -> content
  */
 
-var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
-
-Cu.import("resource://gre/modules/Services.jsm");
-let { bindPrefAndInit, show_torbrowser_manual } = Cu.import("resource://torbutton/modules/utils.js", {});
+let { bindPrefAndInit, show_torbrowser_manual } = ChromeUtils.import("resource://torbutton/modules/utils.js", {});
 
 
 var AboutTorListener = {
@@ -139,9 +137,7 @@ var AboutTorListener = {
     // Display the Tor Browser product name and version.
     try {
       const kBrandBundle = "chrome://branding/locale/brand.properties";
-      let brandBundle = Cc["@mozilla.org/intl/stringbundle;1"]
-                          .getService(Ci.nsIStringBundleService)
-                          .createBundle(kBrandBundle);
+      let brandBundle = Services.strings.createBundle(kBrandBundle);
       let productName = brandBundle.GetStringFromName("brandFullName");
       let tbbVersion = Services.prefs.getCharPref("torbrowser.version");
       let elem = content.document.getElementById("torbrowser-version");
diff --git a/chrome/content/tor-circuit-display.js b/chrome/content/tor-circuit-display.js
index 05dc14de..d21b0770 100644
--- a/chrome/content/tor-circuit-display.js
+++ b/chrome/content/tor-circuit-display.js
@@ -357,7 +357,7 @@ let setupGuardNote = function () {
              ["div", {},
               noteBefore, ["span", {class: "circuit-guard-name"}, name],
               noteAfter, " ",
-              ["span", {onclick: `gBrowser.selectedTab = gBrowser.addTab('https://support.torproject.org/${localeCode}/tbb/tbb-2/', {triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()});`,
+              ["span", {onclick: `gBrowser.selectedTab = gBrowser.addWebTab('https://support.torproject.org/${localeCode}/tbb/tbb-2/');`,
                         class: "circuit-link"},
                learnMoreString]]);
 };
diff --git a/chrome/content/torbutton.js b/chrome/content/torbutton.js
index 605f6d29..0ad9d620 100644
--- a/chrome/content/torbutton.js
+++ b/chrome/content/torbutton.js
@@ -200,9 +200,7 @@ var torbutton_tor_check_observer = {
           }
 
           if (!foundTab) {
-            gBrowser.selectedTab = gBrowser.addTab("about:tor", {
-              triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-            });
+            gBrowser.selectedTab = gBrowser.addTrustedTab("about:tor");
           }
         }
       }
@@ -883,7 +881,6 @@ function torbutton_new_identity() {
     // conditions leading to failures (see bug 11783 for an example).
     // TODO: Remove the Torbutton menu entry again once we have done our
     // security control redesign.
-    // document.getElementById("torbutton-new-identity").disabled = true;
     document.getElementById("menu_newIdentity").disabled = true;
     document.getElementById("appMenuNewIdentity").disabled = true;
 
@@ -909,7 +906,6 @@ function torbutton_new_identity() {
       } else {
         // TODO: Remove the Torbutton menu entry again once we have done our
         // security control redesign.
-        // document.getElementById("torbutton-new-identity").disabled = false;
         document.getElementById("menu_newIdentity").disabled = false;
         document.getElementById("appMenuNewIdentity").disabled = false;
       }
@@ -923,7 +919,6 @@ function torbutton_new_identity() {
     // security control redesign.
     torbutton_log(5, "Unexpected error on new identity: " + e);
     window.alert("Torbutton: Unexpected error on new identity: " + e);
-    // document.getElementById("torbutton-new-identity").disabled = false;
     document.getElementById("menu_newIdentity").disabled = false;
     document.getElementById("appMenuNewIdentity").disabled = false;
   }
@@ -1575,7 +1570,7 @@ function torbutton_close_tabs_on_new_identity() {
 
     let tabCount = browser.browsers.length;
     torbutton_log(3, "Tab count for window: " + tabCount);
-    let tabsToRemove = new Array();
+    let tabsToRemove = [];
     for (let i = 0; i < tabCount; i++) {
       let tab = browser.getTabForBrowser(browser.browsers[i]);
       if (!tab) {
@@ -1586,9 +1581,7 @@ function torbutton_close_tabs_on_new_identity() {
     }
 
     if (win == window) {
-      browser.addTab("about:blank", {
-        triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
-      });
+      browser.addWebTab("about:blank");
     } else {
       // It is a bad idea to alter the window list while iterating
       // over it, so add this window to an array and close it later.
@@ -1641,7 +1634,6 @@ function torbutton_check_protections()
   if (!m_tb_control_pass || (!m_tb_control_ipc_file && !m_tb_control_port)) {
     // TODO: Remove the Torbutton menu entry again once we have done our
     // security control redesign.
-    document.getElementById("torbutton-new-identity").disabled = true;
     document.getElementById("menu_newIdentity").disabled = true;
     document.getElementById("appMenuNewIdentity").disabled = true;
   }
@@ -1651,12 +1643,6 @@ function torbutton_check_protections()
   }
 }
 
-// Bug 1506 P2: I think cookie protections is a neat feature.
-function torbutton_open_cookie_dialog() {
-  showDialog(window, 'chrome://torbutton/content/torcookiedialog.xul',
-             'Cookie Protections', 'centerscreen,chrome,dialog,modal,resizable');
-}
-
 // -------------- HISTORY & COOKIES ---------------------
 
 // Bug 1506 P4: Used by New Identity if cookie protections are
@@ -1680,9 +1666,7 @@ function torbutton_disable_browser_js(browser) {
         if (!browser.contentWindow)
             torbutton_log(3, "No content window to disable JS events.");
         else
-            eventSuppressor = browser.contentWindow.
-                QueryInterface(Ci.nsIInterfaceRequestor).
-                       getInterface(Ci.nsIDOMWindowUtils);
+            eventSuppressor = browser.contentWindow.windowUtils;
     } catch(e) {
         torbutton_log(4, "Failed to disable JS events: "+e)
     }
@@ -1805,8 +1789,8 @@ function torbutton_do_startup()
 {
     if(m_tb_prefs.getBoolPref("extensions.torbutton.startup")) {
         // Bug 1506: Still want to do this
-        // torbutton_toggle_plugins(
-        //         m_tb_prefs.getBoolPref("plugin.disable"));
+        torbutton_toggle_plugins(
+                m_tb_prefs.getBoolPref("plugin.disable"));
 
         // Bug 1506: Should probably be moved to an XPCOM component
         torbutton_do_main_window_startup();
@@ -1894,10 +1878,9 @@ function showSecurityPreferencesPanel(chromeWindow) {
 
   if (settingsTab === null) {
       // Open up the settings panel in a new tab.
-      tabBrowser.addTab(SECURITY_PREFERENCES_URI, {
+      tabBrowser.addTrustedTab(SECURITY_PREFERENCES_URI, {
           "selected": true,
           "parentId": tabBrowser.selectedTab.id,
-          triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
       });
   } else {
       // Activate an existing settings panel tab.
diff --git a/chrome/content/torbutton_util.js b/chrome/content/torbutton_util.js
index c7116a09..e6446cde 100644
--- a/chrome/content/torbutton_util.js
+++ b/chrome/content/torbutton_util.js
@@ -3,7 +3,6 @@
 // code directly. I don't see any of them as essential for 1506,
 // really.
 
-// let { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm", {});
 var m_tb_torlog = Cc["@torproject.org/torbutton-logger;1"]
 .getService(Ci.nsISupports).wrappedJSObject;
 
diff --git a/components/cookie-jar-selector.js b/components/cookie-jar-selector.js
index b3eeda53..79a66e8a 100644
--- a/components/cookie-jar-selector.js
+++ b/components/cookie-jar-selector.js
@@ -21,9 +21,9 @@ const kMODULE_CID = Components.ID("e6204253-b690-4159-bfe8-d4eedab6b3be");
 ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {})
   .ensureDefaultPrefs();
 
-const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
 
-// XXX: Must match the definition in torcookie.js :/
 function Cookie(number,name,value,isDomain,host,rawHost,HttpOnly,path,isSecure,isSession,
                 expires,isProtected) {
   this.number = number;
@@ -88,9 +88,7 @@ function CookieJarSelector() {
         if (typeof(cookiesAsJS) == "undefined" || !cookiesAsJS)
             return;
 
-        var cookieManager =
-            Cc["@mozilla.org/cookiemanager;1"]
-            .getService(Ci.nsICookieManager2);
+        var cookieManager = Services.cookies;
 
         for (var i = 0; i < cookiesAsJS.length; i++) {
             var cookie = cookiesAsJS[i];
@@ -299,9 +297,7 @@ function CookieJarSelector() {
         this.clearCookies();
         return;
       }
-      var cookiemanager =
-        Cc["@mozilla.org/cookiemanager;1"]
-        .getService(Ci.nsICookieManager2);
+      var cookiemanager = Services.cookies;
 
       var enumerator = cookiemanager.enumerator;
       var count = 0;
@@ -329,7 +325,7 @@ function CookieJarSelector() {
       }
       // Emit cookie-changed event. This instructs other components to clear their identifiers
       // (Specifically DOM storage and safe browsing, but possibly others)
-      var obsSvc = Cc["@mozilla.org/observer-service;1"].getService(nsIObserverService);
+      var obsSvc = Services.obs;
       obsSvc.notifyObservers(this, "cookie-changed", "cleared");
     } catch (e) {
       this.logger.log(5, "Error deleting unprotected cookies: " + e);
@@ -367,10 +363,6 @@ function CookieJarSelector() {
     this.logger.log(2, "Cookies reloaded");
   };
 
-  // Check firefox version to know filename
-  // var appInfo = Services.appinfo;
-  // var versionChecker = Services.vc;
-
   // This JSObject is exported directly to chrome
   this.wrappedJSObject = this;
 
@@ -399,13 +391,9 @@ function CookieJarSelector() {
 
 }
 
-const nsISupports = Ci.nsISupports;
 const nsIClassInfo = Ci.nsIClassInfo;
 const nsIObserver = Ci.nsIObserver;
 const nsITimer = Ci.nsITimer;
-const nsIComponentRegistrar = Ci.nsIComponentRegistrar;
-const nsIObserverService = Ci.nsIObserverService;
-const nsICategoryManager = Ci.nsICategoryManager;
 
 // Start1506: You may or may not care about this:
 CookieJarSelector.prototype =
@@ -446,7 +434,7 @@ CookieJarSelector.prototype =
             }
             break;
         case "profile-after-change":
-            var obsSvc = Cc["@mozilla.org/observer-service;1"].getService(nsIObserverService);
+            var obsSvc = Services.obs;
             obsSvc.addObserver(this, "cookie-changed");
             // after profil loading, initialize a timer to call timerCallback
             // at a specified interval
@@ -464,7 +452,6 @@ CookieJarSelector.prototype =
 * XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
 * XPCOMUtils.generateNSGetModule is for Mozilla 1.9.2 (Firefox 3.6).
 */
-const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
 if (XPCOMUtils.generateNSGetFactory)
     var NSGetFactory = XPCOMUtils.generateNSGetFactory([CookieJarSelector]);
 else
diff --git a/components/domain-isolator.js b/components/domain-isolator.js
index 891a19cc..f6a6d598 100644
--- a/components/domain-isolator.js
+++ b/components/domain-isolator.js
@@ -8,7 +8,8 @@
 
 // ### Abbreviations
 
-const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
 
 // Make the logger available.
 let logger = Cc["@torproject.org/torbutton-logger;1"]
@@ -17,9 +18,6 @@ let logger = Cc["@torproject.org/torbutton-logger;1"]
 let { ensureDefaultPrefs } = ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {});
 ensureDefaultPrefs();
 
-// Import Services object
-ChromeUtils.import("resource://gre/modules/Services.jsm");
-
 // Import crypto object (FF 37+).
 Cu.importGlobalProperties(["crypto"]);
 
@@ -163,9 +161,6 @@ const kMODULE_NAME = "TorBrowser Domain Isolator";
 const kMODULE_CONTRACTID = "@torproject.org/domain-isolator;1";
 const kMODULE_CID = Components.ID("e33fd6d4-270f-475f-a96f-ff3140279f68");
 
-// Import XPCOMUtils object.
-const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
-
 // DomainIsolator object.
 function DomainIsolator() {
     this.wrappedJSObject = this;
diff --git a/components/dragDropFilter.js b/components/dragDropFilter.js
index 66dbe3a4..9d6f74c8 100644
--- a/components/dragDropFilter.js
+++ b/components/dragDropFilter.js
@@ -8,8 +8,8 @@
 
 ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
 
-const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
-const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
 // Module specific constants
 const kMODULE_NAME = "Torbutton Drag and Drop Handler";
diff --git a/components/external-app-blocker.js b/components/external-app-blocker.js
index 1cc2000f..afd5c002 100644
--- a/components/external-app-blocker.js
+++ b/components/external-app-blocker.js
@@ -12,9 +12,9 @@
  * handle an URL (e.g., when the user clicks on a mailto: URL).
  *************************************************************************/
 
-const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
-const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
-const {PromptUtils} = ChromeUtils.import("resource://gre/modules/SharedPromptUtils.jsm");
+const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { PromptUtils } = ChromeUtils.import("resource://gre/modules/SharedPromptUtils.jsm");
 
 // Module specific constants
 const kMODULE_NAME = "Torbutton External App Handler";
@@ -33,8 +33,7 @@ ExternalAppBlocker.prototype =
 {
   _helperAppLauncher: undefined,
 
-  QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver,
-                                         Ci.nsIHelperAppWarningDialog]),
+  QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver, Ci.nsIHelperAppWarningDialog]),
 
   // make this an nsIClassInfo object
   flags: Ci.nsIClassInfo.DOM_OBJECT,
diff --git a/components/startup-observer.js b/components/startup-observer.js
index eea9e8db..742b1a0f 100644
--- a/components/startup-observer.js
+++ b/components/startup-observer.js
@@ -12,18 +12,14 @@
  *
  *************************************************************************/
 
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cr = Components.results;
-const Cu = Components.utils;
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
 
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
                                   "resource://gre/modules/FileUtils.jsm");
 
-Cu.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
-let NoScriptControl = Cu.import("resource://torbutton/modules/noscript-control.js", {});
+ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
+let NoScriptControl = ChromeUtils.import("resource://torbutton/modules/noscript-control.js", {});
 
 // Module specific constants
 const kMODULE_NAME = "Startup";
@@ -158,15 +154,7 @@ StartupObserver.prototype = {
       Services.prefs.savePrefFile(null);
     },
 
-  QueryInterface: function(iid) {
-    if (iid.equals(Ci.nsISupports)) {
-        return this;
-    }
-    if(iid.equals(Ci.nsIClassInfo)) {
-      return this;
-    }
-    return this;
-  },
+  QueryInterface: ChromeUtils.generateQI([Ci.nsIClassInfo]),
 
   // method of nsIClassInfo
   classDescription: "Torbutton Startup Observer",
@@ -175,14 +163,6 @@ StartupObserver.prototype = {
 
   // Hack to get us registered early to observe recovery
   _xpcom_categories: [{category:"profile-after-change"}],
-
-  getInterfaces: function(count) {
-    var interfaceList = [nsIClassInfo];
-    count.value = interfaceList.length;
-    return interfaceList;
-  },
-  getHelperForLanguage: function(count) { return null; }
-
 };
 
 var NSGetFactory = XPCOMUtils.generateNSGetFactory([StartupObserver]);
diff --git a/components/torCheckService.js b/components/torCheckService.js
index d4815ee2..409cc2c5 100644
--- a/components/torCheckService.js
+++ b/components/torCheckService.js
@@ -7,7 +7,8 @@
  * Tor check service
  *************************************************************************/
 
-const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
 
 // Module specific constants
 const kMODULE_NAME = "Torbutton Tor Check Service";
@@ -130,5 +131,4 @@ TBTorCheckService.prototype =
   },
 };
 
-const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
 var NSGetFactory = XPCOMUtils.generateNSGetFactory([TBTorCheckService]);
diff --git a/components/torbutton-logger.js b/components/torbutton-logger.js
index 22c664fa..52fdfc23 100644
--- a/components/torbutton-logger.js
+++ b/components/torbutton-logger.js
@@ -15,7 +15,8 @@ const kMODULE_CID = Components.ID("f36d72c9-9718-4134-b550-e109638331d7");
 
 ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
 
-const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
 
 function TorbuttonLogger() {
     // Register observer
@@ -44,10 +45,7 @@ function TorbuttonLogger() {
  * Everything below is boring boilerplate and can probably be ignored.
  */
 
-const nsISupports = Ci.nsISupports;
 const nsIClassInfo = Ci.nsIClassInfo;
-const nsIComponentRegistrar = Ci.nsIComponentRegistrar;
-const nsIObserverService = Ci.nsIObserverService;
 
 const logString = { 1:"VERB", 2:"DBUG", 3: "INFO", 4:"NOTE", 5:"WARN" };
 
@@ -162,7 +160,6 @@ TorbuttonLogger.prototype =
 * XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
 * XPCOMUtils.generateNSGetModule is for Mozilla 1.9.2 (Firefox 3.6).
 */
-const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
 if (XPCOMUtils.generateNSGetFactory)
     var NSGetFactory = XPCOMUtils.generateNSGetFactory([TorbuttonLogger]);
 else
diff --git a/modules/noscript-control.js b/modules/noscript-control.js
index 0daf15e1..0383b9b5 100644
--- a/modules/noscript-control.js
+++ b/modules/noscript-control.js
@@ -100,7 +100,7 @@ var initialize = () => {
 
   try {
     // LegacyExtensionContext is not there anymore. Using raw
-    // Services.mm.broadcastAsyncMessage mecanism to communicate with
+    // Services.cpmm.sendAsyncMessage mechanism to communicate with
     // NoScript.
 
     // The component that handles WebExtensions' sendMessage.
@@ -113,7 +113,7 @@ var initialize = () => {
 
     // TODO: Is there a better way?
     let sendNoScriptSettings = settings =>
-      Services.mm.broadcastAsyncMessage("MessageChannel:Messages", [{
+      Services.cpmm.sendAsyncMessage("MessageChannel:Messages", [{
         messageName: "Extension:Message",
         sender: { id: noscriptID, extensionId: noscriptID },
         recipient: { extensionId: noscriptID },
diff --git a/modules/tor-control-port.js b/modules/tor-control-port.js
index f1d9ed14..afb3d606 100644
--- a/modules/tor-control-port.js
+++ b/modules/tor-control-port.js
@@ -22,7 +22,7 @@
 let { Constructor: CC } = Components;
 
 // ### Import Mozilla Services
-const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
 // __log__.
 // Logging function
diff --git a/modules/utils.js b/modules/utils.js
index 7b81819d..ea41fce9 100644
--- a/modules/utils.js
+++ b/modules/utils.js
@@ -2,7 +2,7 @@
 // Various helpful utility functions.
 
 // ### Import Mozilla Services
-const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
 
 // ### About firstPartyDomain literal
 const k_tb_about_uri_first_party_domain = "about.ef2a7dd5-93bc-417f-a698-142c3116864f.mozilla";



More information about the tor-commits mailing list