tbb-commits
Threads by month
- ----- 2026 -----
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 20130 discussions
07 Aug '19
commit 45b990730502ac878e39ba9bbd86347b4e8e533e
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Aug 2 12:01:50 2019 +0200
Remove nsISupports from ChromeUtils.generateQI
This was causing an assert on debug builds of the browser.
---
components/domain-isolator.js | 2 +-
components/dragDropFilter.js | 2 +-
components/external-app-blocker.js | 2 +-
components/torCheckService.js | 2 +-
components/torbutton-logger.js | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/components/domain-isolator.js b/components/domain-isolator.js
index e04005a5..891a19cc 100644
--- a/components/domain-isolator.js
+++ b/components/domain-isolator.js
@@ -173,7 +173,7 @@ function DomainIsolator() {
// Firefox component requirements
DomainIsolator.prototype = {
- QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver]),
classDescription: kMODULE_NAME,
classID: kMODULE_CID,
contractID: kMODULE_CONTRACTID,
diff --git a/components/dragDropFilter.js b/components/dragDropFilter.js
index 4465187e..66dbe3a4 100644
--- a/components/dragDropFilter.js
+++ b/components/dragDropFilter.js
@@ -32,7 +32,7 @@ function DragDropFilter() {
DragDropFilter.prototype =
{
- QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver]),
// make this an nsIClassInfo object
flags: Ci.nsIClassInfo.DOM_OBJECT,
diff --git a/components/external-app-blocker.js b/components/external-app-blocker.js
index 747824d1..1cc2000f 100644
--- a/components/external-app-blocker.js
+++ b/components/external-app-blocker.js
@@ -33,7 +33,7 @@ ExternalAppBlocker.prototype =
{
_helperAppLauncher: undefined,
- QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver,
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver,
Ci.nsIHelperAppWarningDialog]),
// make this an nsIClassInfo object
diff --git a/components/torCheckService.js b/components/torCheckService.js
index 4f79bef4..d4815ee2 100644
--- a/components/torCheckService.js
+++ b/components/torCheckService.js
@@ -25,7 +25,7 @@ function TBTorCheckService() {
TBTorCheckService.prototype =
{
- QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIClassInfo]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIClassInfo]),
kCheckNotInitiated: 0, // Possible values for statusOfTorCheck.
kCheckSuccessful: 1,
diff --git a/components/torbutton-logger.js b/components/torbutton-logger.js
index ce4ba70b..22c664fa 100644
--- a/components/torbutton-logger.js
+++ b/components/torbutton-logger.js
@@ -58,7 +58,7 @@ function padInt(i)
TorbuttonLogger.prototype =
{
- QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIClassInfo]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIClassInfo]),
wrappedJSObject: null, // Initialized by constructor
1
0
commit 5b13748cdf2af2db9e829cf76e52287fb2eb2445
Author: Alex Catarineu <acat(a)torproject.org>
Date: Tue May 28 15:15:36 2019 +0200
Remove aboutTor component
---
components/aboutTor.js | 53 ------------------------------------------
components/startup-observer.js | 7 ------
2 files changed, 60 deletions(-)
diff --git a/components/aboutTor.js b/components/aboutTor.js
deleted file mode 100644
index ec48d668..00000000
--- a/components/aboutTor.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/*************************************************************************
- * Copyright (c) 2017, The Tor Project, Inc.
- * See LICENSE for licensing information.
- *
- * vim: set sw=2 sts=2 ts=8 et syntax=javascript:
- *
- * about:tor component
- *************************************************************************/
-
-// Module specific constants
-const kMODULE_NAME = "about:tor";
-const kMODULE_CONTRACTID = "@mozilla.org/network/protocol/about;1?what=tor";
-const kMODULE_CID = Components.ID("84d47da6-79c3-4661-aa9f-8049476f7bf5");
-
-const kAboutTorURL = "chrome://torbutton/content/aboutTor/aboutTor.xhtml";
-
-const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
-const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
-
-function AboutTor() {}
-
-
-AboutTor.prototype =
-{
- QueryInterface: ChromeUtils.generateQI([Ci.nsIAboutModule]),
-
- // nsIClassInfo implementation:
- classDescription: kMODULE_NAME,
- classID: kMODULE_CID,
- contractID: kMODULE_CONTRACTID,
-
- // nsIAboutModule implementation:
- newChannel(aURI, aLoadInfo) {
- let ioSvc = Services.io;
- let uri = ioSvc.newURI(kAboutTorURL);
- let channel = ioSvc.newChannelFromURIWithLoadInfo(uri, aLoadInfo);
- channel.originalURI = aURI;
-
- return channel;
- },
-
- getURIFlags: function(aURI)
- {
- return Ci.nsIAboutModule.URI_SAFE_FOR_UNTRUSTED_CONTENT |
- Ci.nsIAboutModule.URI_MUST_LOAD_IN_CHILD |
- Ci.nsIAboutModule.ALLOW_SCRIPT;
- }
-};
-
-
-let factory = XPCOMUtils._getFactory(AboutTor);
-let reg = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
-reg.registerFactory(kMODULE_CID, "", kMODULE_CONTRACTID, factory);
diff --git a/components/startup-observer.js b/components/startup-observer.js
index 2d20a8ad..eea9e8db 100644
--- a/components/startup-observer.js
+++ b/components/startup-observer.js
@@ -62,13 +62,6 @@ function StartupObserver() {
} catch(e) {
this.logger.log(4, "Early proxy change failed. Will try again at profile load. Error: "+e);
}
-
- // Arrange for our about:tor handler to be loaded in the default (chrome)
- // process as well as in each content process.
- let ppmm = Cc["@mozilla.org/parentprocessmessagemanager;1"]
- .getService(Ci.nsIProcessScriptLoader);
- ppmm.loadProcessScript("resource://torbutton/components/aboutTor.js",
- true);
}
StartupObserver.prototype = {
1
0
commit 4dd346e2b81527785d7f8b68a5cff14972dd645c
Author: Alex Catarineu <acat(a)torproject.org>
Date: Mon May 13 18:35:51 2019 +0200
Remove ported overlays from jar.mn
---
jar.mn | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/jar.mn b/jar.mn
index 68fdb9ec..cfbe1476 100644
--- a/jar.mn
+++ b/jar.mn
@@ -10,24 +10,12 @@ torbutton.jar:
modules/ (modules/*)
skin/ (chrome/skin/*)
-% overlay chrome://browser/content/browser.xul chrome://torbutton/content/torbutton.xul
-% overlay chrome://browser/content/preferences/connection.xul chrome://torbutton/content/pref-connection.xul
-% overlay chrome://messenger/content/messenger.xul chrome://torbutton/content/torbutton_tb.xul
-% overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://torbutton/content/torbutton_tb.xul
-% overlay about:addons chrome://torbutton/content/torbutton-extensions.xul
-% overlay chrome://mozapps/content/extensions/extensions.xul chrome://torbutton/content/torbutton-extensions.xul
% resource torbutton %
% resource torbutton-assets resource://torbutton/skin/ contentaccessible=yes
# browser branding
% override chrome://branding/locale/brand.dtd chrome://torbutton/locale/brand.dtd
% override chrome://branding/locale/brand.properties chrome://torbutton/locale/brand.properties
-% overlay chrome://browser/content/aboutDialog.xul chrome://torbutton/content/aboutDialog.xul
-
-# UI customization
-% overlay chrome://browser/content/browser.xul chrome://torbutton/content/menu-items-overlay.xul
-% overlay chrome://browser/content/browser.xul chrome://torbutton/content/menu-overlay.xul
-% overlay chrome://browser/content/browser.xul chrome://torbutton/content/tor-circuit-display.xul
# Strings for the about:tbupdate page
% override chrome://browser/locale/aboutTBUpdate.dtd chrome://torbutton/locale/aboutTBUpdate.dtd
@@ -94,7 +82,6 @@ torbutton.jar:
locale/zh-TW/ (chrome/locale/zh-TW/*)
% skin torbutton classic/1.0 %skin/
-% style chrome://global/content/customizeToolbar.xul chrome://torbutton/skin/torbutton.css
# Firefox 4-style component registration
% component {f605ec27-d867-44b5-ad97-2a29276642c3} %components/dragDropFilter.js
1
0
commit ce346d069afa5f1a42dfa13eb8fce2a23cfbf679
Author: Alex Catarineu <acat(a)torproject.org>
Date: Mon May 13 18:31:58 2019 +0200
Remove ported overlays
---
chrome/content/aboutDialog.xul | 56 ---------------------------------
chrome/content/menu-items-overlay.xul | 31 ------------------
chrome/content/menu-overlay.xul | 29 -----------------
chrome/content/tor-circuit-display.xul | 34 --------------------
chrome/content/torbutton-extensions.xul | 28 -----------------
chrome/content/torbutton.xul | 46 ---------------------------
6 files changed, 224 deletions(-)
diff --git a/chrome/content/aboutDialog.xul b/chrome/content/aboutDialog.xul
deleted file mode 100644
index 5b89a811..00000000
--- a/chrome/content/aboutDialog.xul
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?> <!-- -*- Mode: HTML -*- -->
-<?xml-stylesheet href="chrome://torbutton/skin/aboutDialog.css" type="text/css"?>
-
-<!DOCTYPE window [
-<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
-%brandDTD;
-<!ENTITY % aboutDialogDTD SYSTEM "chrome://torbutton/locale/aboutDialog.dtd" >
-%aboutDialogDTD;
-]>
-
-<overlay id="main-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <vbox id="rightBox">
- <vbox id="detailsBox">
- <description class="text-blurb" id="projectDesc">
- &project.start;
- <label class="text-link"
- href="https://www.torproject.org/">
- &project.tpoLink;
- </label>&project.end;
- </description>
- <description class="text-blurb" id="helpDesc">
- &help.start;
- <label class="text-link"
- href="https://www.torproject.org/donate/donate.html.en">
- &help.donateLink;
- </label>
- &help.or;
- <label class="text-link"
- href="https://www.torproject.org/getinvolved/volunteer.html.en">
- &help.getInvolvedLink;
- </label>&help.end;
- </description>
- </vbox>
- </vbox>
-
- <vbox id="bottomBox">
- <hbox id="newBottom" pack="center" position="1">
- <label class="text-link bottom-link"
- href="https://www.torproject.org/docs/faq.html.en">
- &bottomLinks.questions;
- </label>
- <label class="text-link bottom-link"
- href="https://www.torproject.org/getinvolved/relays">
- &bottomLinks.grow;
- </label>
- <label class="text-link bottom-link"
- href="about:license">
- &bottomLinks.license;
- </label>
- </hbox>
- <description id="trademarkTor" insertafter="trademark">
- &tor.TrademarkStatement;
- </description>
- </vbox>
-</overlay>
diff --git a/chrome/content/menu-items-overlay.xul b/chrome/content/menu-items-overlay.xul
deleted file mode 100644
index b2e862b3..00000000
--- a/chrome/content/menu-items-overlay.xul
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?> <!-- -*- Mode: HTML -*- -->
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<overlay id="torbutton-menu-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <menuitem id="menu_newIdentity"
- accesskey="&torbutton.context_menu.new_identity_key;"
- key="torbutton-new-identity-key"
- label="&torbutton.context_menu.new_identity;"
- oncommand="torbutton_new_identity();"/>
- <menuitem id="menu_newCircuit"
- accesskey="&torbutton.context_menu.new_circuit_key;"
- key="torbutton-new-circuit-key"
- label="&torbutton.context_menu.new_circuit;"
- oncommand="torbutton_new_circuit();"/>
- <toolbarbutton id="appMenuNewIdentity"
- class="subviewbutton subviewbutton-iconic"
- key="torbutton-new-identity-key"
- label="&torbutton.context_menu.new_identity;"
- oncommand="torbutton_new_identity();"/>
- <toolbarbutton id="appMenuNewCircuit"
- class="subviewbutton subviewbutton-iconic"
- key="torbutton-new-circuit-key"
- label="&torbutton.context_menu.new_circuit;"
- oncommand="torbutton_new_circuit();"/>
- <toolbarbutton id="appMenu-private-window-button"
- hidden="true"/>
- <toolbarbutton id="appMenuRestoreLastSession"
- hidden="true"/>
-</overlay>
diff --git a/chrome/content/menu-overlay.xul b/chrome/content/menu-overlay.xul
deleted file mode 100644
index 1e812cce..00000000
--- a/chrome/content/menu-overlay.xul
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?> <!-- -*- Mode: HTML -*- -->
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/aboutTor.dtd">
-
-<overlay id="torbutton-menu-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <menupopup id="menu_HelpPopup">
- <!-- Bug 18905: Hide unused help menu items -->
- <menuitem id="menu_openHelp" removeelement="true"/>
- <menuitem id="menu_openTour" removeelement="true"/>
- <menuitem id="healthReport" removeelement="true"/>
- <menuitem id="feedbackPage" removeelement="true"/>
- <menuitem id="helpSafeMode" removeelement="true"/>
- <menuitem id="menu_HelpPopup_reportPhishingtoolmenu" removeelement="true"/>
- <menuitem id="menu_HelpPopup_reportPhishingErrortoolmenu" removeelement="true"/>
- <!-- dummy elements to avoid 'getElementById' errors -->
- <box id="feedbackPage"/>
- <box id="helpSafeMode"/>
- <box id="menu_HelpPopup_reportPhishingtoolmenu"/>
- <box id="menu_HelpPopup_reportPhishingErrortoolmenu"/>
- <!-- Add Tor Browser manual link -->
- <menuitem name="torBrowserUserManual"
- id="torBrowserUserManual"
- position="1"
- label="&aboutTor.torbrowser_user_manual.label;"
- accesskey="&aboutTor.torbrowser_user_manual.accesskey;"
- oncommand="gBrowser.selectedTab = gBrowser.addTab('https://tb-manual.torproject.org/' + Services.locale.getRequestedLocale())" />
- </menupopup>
-</overlay>
diff --git a/chrome/content/tor-circuit-display.xul b/chrome/content/tor-circuit-display.xul
deleted file mode 100644
index b4d4ac7b..00000000
--- a/chrome/content/tor-circuit-display.xul
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://torbutton/skin/tor-circuit-display.css" type="text/css"?>
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<overlay id="circuit-display-overlay"
- xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- xmlns:html="http://www.w3.org/1999/xhtml">
- <panelview id="identity-popup-mainView">
- <!-- Circuit display section -->
- <xul:hbox id="circuit-display-container"
- class="identity-popup-section"
- insertafter="identity-popup-security">
- <xul:vbox id="circuit-display-content" flex="1">
- <xul:label id="circuit-display-headline"
- class="identity-popup-headline"
- value="&torbutton.circuit_display.title;"/>
- <html:ul id="circuit-display-nodes" dir="auto">
- <li>example A</li>
- <li>example B</li>
- <li>example C</li>
- </html:ul>
- </xul:vbox>
- <xul:vbox id="circuit-reload-content" flex="1">
- <html:button id="circuit-reload-button"
- onclick="torbutton_new_circuit()">
- &torbutton.circuit_display.new_circuit;
- </html:button>
- <xul:hbox id="circuit-guard-note-container">
- </xul:hbox>
- </xul:vbox>
- </xul:hbox>
- </panelview>
-</overlay>
diff --git a/chrome/content/torbutton-extensions.xul b/chrome/content/torbutton-extensions.xul
deleted file mode 100644
index 060594df..00000000
--- a/chrome/content/torbutton-extensions.xul
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/brand.dtd">
-
-<overlay id="torbutton-extensions-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
- <vbox id="plugin-enable-button" class="alert-container" flex="1"
- hidden="true">
- <spacer class="alert-spacer-before"/>
- <vbox class="alert">
- <label value="&plugins.installed.find;"/>
- <button class="button-plugin-enable"
- label="&plugins.installed.enable;"
- command="cmd_pluginEnable"/>
- </vbox>
- <spacer class="alert-spacer-after"/>
- </vbox>
-
- <vbox id="plugin-disable-button" class="global-info" flex="1" align="end">
- <button class="button-plugin-disable"
- label="&plugins.installed.disable;"
- tooltiptext="&plugins.installed.disable.tip;"
- command="cmd_pluginDisable"/>
- <spacer flex="5000"/>
- </vbox>
-
-</overlay>
diff --git a/chrome/content/torbutton.xul b/chrome/content/torbutton.xul
deleted file mode 100644
index 2f6e72e4..00000000
--- a/chrome/content/torbutton.xul
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://torbutton/skin/torbutton.css" type="text/css"?>
-<?xul-overlay href="chrome://torbutton/content/popup.xul"?>
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<overlay id="torbutton-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
- <script type="application/x-javascript" src="chrome://torbutton/content/torbutton_util.js" />
- <script type="application/x-javascript" src="chrome://torbutton/content/tor-circuit-display.js" />
- <script type="application/x-javascript" src="chrome://torbutton/content/content-sizer.js" />
- <script type="application/x-javascript" src="chrome://torbutton/content/torbutton.js" />
- <script language="JavaScript">
- //onLoad Hander
- try{window.addEventListener("load", torbutton_init, false);}catch(e){}
- </script>
-
- <stringbundleset id="torbutton-stringbundleset">
- <stringbundle id="torbutton-bundle" src="chrome://torbutton/locale/torbutton.properties"/>
- </stringbundleset>
-
- <!-- Place the context menu in the nav bar, so that the lack
- of the status bar on FF4 doesn't make it invisible -->
- <toolbar id="nav-bar">
- <menupopup id="torbutton-context-menu"/>
- </toolbar>
-
- <toolbarpalette id="BrowserToolbarPalette">
- <toolbarbutton
- id="torbutton-button"
- class="toolbarbutton-1 chromeclass-toolbar-additional"
- type="menu"
- orient="horizontal"
- label="Torbutton"
- tooltiptext="&torbutton.button.tooltip;"
- menu="torbutton-context-menu"
- context="torbutton-context-menu"/>
- </toolbarpalette>
-
-<!-- Global keyboard shortcuts for new identity and new circuit. -->
- <keyset>
- <key id="torbutton-new-identity-key" modifiers="accel shift" key="U" oncommand="torbutton_new_identity()"/>
- <key id="torbutton-new-circuit-key" modifiers="accel shift" key="L" oncommand="torbutton_new_circuit()"/>
- </keyset>
-</overlay>
1
0
commit 9cf79bcf222cfb1ca47f2cd6f119ac1f19b2f54d
Author: Alex Catarineu <acat(a)torproject.org>
Date: Thu May 9 19:50:40 2019 +0200
Remove overlays from chrome.manifest
---
src/chrome.manifest | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/src/chrome.manifest b/src/chrome.manifest
index f6a267d7..13bef661 100644
--- a/src/chrome.manifest
+++ b/src/chrome.manifest
@@ -1,22 +1,10 @@
content torbutton chrome/content/
-overlay chrome://browser/content/browser.xul chrome://torbutton/content/torbutton.xul
-overlay chrome://browser/content/preferences/connection.xul chrome://torbutton/content/pref-connection.xul
-overlay chrome://messenger/content/messenger.xul chrome://torbutton/content/torbutton_tb.xul
-overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://torbutton/content/torbutton_tb.xul
-overlay about:addons chrome://torbutton/content/torbutton-extensions.xul
-overlay chrome://mozapps/content/extensions/extensions.xul chrome://torbutton/content/torbutton-extensions.xul
resource torbutton ./
resource torbutton-assets resource://torbutton/chrome/skin/ contentaccessible=yes
# browser branding
override chrome://branding/locale/brand.dtd chrome://torbutton/locale/brand.dtd
override chrome://branding/locale/brand.properties chrome://torbutton/locale/brand.properties
-overlay chrome://browser/content/aboutDialog.xul chrome://torbutton/content/aboutDialog.xul
-
-# UI customization
-overlay chrome://browser/content/browser.xul chrome://torbutton/content/menu-items-overlay.xul
-overlay chrome://browser/content/browser.xul chrome://torbutton/content/menu-overlay.xul
-overlay chrome://browser/content/browser.xul chrome://torbutton/content/tor-circuit-display.xul
# Strings for the about:tbupdate page
override chrome://browser/locale/aboutTBUpdate.dtd chrome://torbutton/locale/aboutTBUpdate.dtd
1
0
commit f7238d222fe4803070f65638cd5bbd4f778a477a
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri May 10 13:11:03 2019 +0200
XPI build not supported anymore
---
.gitignore | 1 -
README.BUILD | 19 ---
README.RELEASE | 107 --------------
makexpi.sh | 32 -----
update-unsigned.rdf | 392 ----------------------------------------------------
5 files changed, 551 deletions(-)
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 5fff1d9c..00000000
--- a/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-pkg
diff --git a/README.BUILD b/README.BUILD
deleted file mode 100644
index ea0803d7..00000000
--- a/README.BUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-To build an XPI that is suitable for Babelzilla, do the following:
-
- patch -p0 < no-english.diff
- chmod +x makexpi.sh
- ./makexpi.sh
- cd pkg/
-
-You should see:
-
- file torbutton-1.2.0rc1.xpi
- pkg/torbutton-1.2.0rc1.xpi: Zip archive data, at least v1.0 to extract
-
-This is to work around the fact that an xpi requires empty strings for
-incomplete translations or the formatting of various dialogs will be broken.
-Furthermore, Babelzilla doesn't know an english string from a Japanese string
-and simply records translations as matching strings. The XPI resulting from
-the above build process will be ready for Babelzilla but should not be used by
-anyone else.
-
diff --git a/README.RELEASE b/README.RELEASE
deleted file mode 100644
index 42365832..00000000
--- a/README.RELEASE
+++ /dev/null
@@ -1,107 +0,0 @@
-# Magical Torbutton Release Process Incantations
-#
-# "May this part of my job one day be replaced by a small shell script"
-#
-
-#. Decide the version number.
-
- export VERSION="1.5.2"
- vim ./src/install.rdf # edit <em:version> tag to reflect version
-
-#. Test upgrades of candidate XPI in latest Firefox and TBB product matrix
-
- # TODO: Currently manual
-
-#. Generate changelog from git shortlog
-
- # TODO: Currently manual
-
-#. tx noise: https://svn.torproject.org/svn/translation/trunk/documentation/howto.txt
-
- cd torbutton.git/trans_tools/po
- torsocks svn up
- torsocks tx pull -a
- cd ..
- ./validate_all.sh | less
-
- torsocks ./new_tb_strings.sh
-
- ./mkmoz.sh
- ./mvmoz.sh
- cd ..
- git diff .
- git commit .
-
-#. Tag the release:
-
- git tag -u mikeperry(a)fscked.org -s ${VERSION}
- torsocks git push origin-push --tags
-
-#. Create the .xpi
-
- cd /tmp/
- torsocks git clone git://git.torproject.org/git/torbutton.git torbutton-release
- cd torbutton-release
- git tag -v ${VERSION} # verify signature against git protocol haaAAXXXX
- git checkout -b tag-${VERSION} ${VERSION}
- mkdir ./pkg
- sh makexpi.sh
-
-#. SHA1 + Sign the .xpi
-
- gpg -abs ./pkg/torbutton-${VERSION}.xpi
- sha1sum ./pkg/torbutton-${VERSION}.xpi
-
-#. Upload .xpi to website
-
- chmod 664 ./pkg/torbutton-${VERSION}.xpi*
- torsocks scp ./pkg/torbutton-${VERSION}.xpi* vescum:/srv/www-master.torproject.org/htdocs/dist/torbutton/
- torsocks scp ./pkg/torbutton-${VERSION}.xpi vescum:/srv/www-master.torproject.org/htdocs/dist/torbutton/torbutton-curre…
- torsocks scp ./pkg/torbutton-${VERSION}.xpi.asc vescum:/srv/www-master.torproject.org/htdocs/dist/torbutton/torbutton-curre…
-
-#. Update update-unsigned.rdf in torbutton.git with package sha1
-
- cd torbutton.git
- vim update-unsigned.rdf # Add <li> and <description> w/ sha1 and version
-
-#. Sign the new update-unsigned.rdf.
-
- # Key creation based on these instructions:
- # Command line: http://blog.techno-barje.fr/post/2009/10/08/How-to-setup-a-mozilla-extensio…
- # Gui: https://www.binaryturf.com/steps-release-extension-firefox-3/
-
- # TODO: Process currently manual due to offline signing.
- # No need to fear the reaper, man. We can do online signing if we just put
- # our minds to it: https://trac.torproject.org/projects/tor/ticket/6011
-
- # Special note: I was unable to update an already signed
- # copy of the update.rdf for a new release. We probably need to
- # keep the unsigned version around as input? See the root directory
- # of the torbutton.git for a copy.
- ./mccoy-cli.x86/mccoy -profile ./.mozilla/mccoy/*.default/ -signRDF update-unsigned.rdf -key Torbutton
-
- # Copy the signed update.rdf into place in the website svn
-
-#. Update update.rdf
-
- cd website-svn
- vim ./include/versions.wmi # Add sha1 and version
- cp /mnt/update-signed.rdf ./torbutton/update.rdf
-
-#. Update website
-
- torsocks svn up .
- torsocks svn commit .
-
- torsocks ssh vescum "/home/mirroradm/bin/trigger-mirrors"
-
-#. Test firefox autoupdate
-
- # Wait for mirrors to sync first.. Pester phobos/weasel/helix/Sebastian for
- # website push + dist chown + mirror update.
- # TODO: Currently manual
-
-#. Announce on tor-talk
-
- # FIXME: May need eventual minor improvements
- echo "Troll food." | mail tor-talk(a)lists.torproject.org -s "Feed the trolls"
diff --git a/makexpi.sh b/makexpi.sh
deleted file mode 100755
index 243fbd6b..00000000
--- a/makexpi.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-APP_NAME=torbutton
-#VERSION=`grep em:version src/install.rdf | sed -e 's/["]//g' | cut -f2 -d=`
-XPI_NAME="$APP_NAME-`grep em:version src/install.rdf | sed -e 's/[<>]/ /g' | cut -f3`.xpi"
-
-if [ -e "pkg/$XPI_NAME" ]; then
- echo pkg/$XPI_NAME already exists.
- rm pkg/$XPI_NAME # meh.
- # exit 1
-fi
-
-# create jar file (we're just storing files here)
-echo ---------- create $APP_NAME.jar file ----------
-cd src/chrome
-#zip -r0 ../../$APP_NAME.jar ./ -x "*.svn/*"
-cd ../..
-
-# create .xpi
-echo ---------- create $APP_NAME.xpi ----------
-# create the pkg directory if it doesn't exist yet
-mkdir -p pkg
-cd src
-echo zip -X -9r ../pkg/$XPI_NAME ./ -x "chrome/*" -x "*.diff" -x "*.svn/*"
-zip -X -9r ../pkg/$XPI_NAME ./ -x "*.svn/*" -x "*.diff" #-x "chrome/*"
-#mv ../$APP_NAME.jar ./chrome
-#zip -9m ../pkg/$XPI_NAME chrome/$APP_NAME.jar
-cd ..
-
-#cp ./pkg/$XPI_NAME ~/
-#zip -9m ../../downloads/$sXpiName chrome/$APP_NAME.jar
-#zip -9 ../../downloads/$sXpiName install.rdf
-#cd ..
diff --git a/update-unsigned.rdf b/update-unsigned.rdf
deleted file mode 100644
index d4a013a7..00000000
--- a/update-unsigned.rdf
+++ /dev/null
@@ -1,392 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}">
- <em:updates>
- <Seq>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.14-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.15-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.16-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.17-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.18alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc1"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc2"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc3"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc4"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc5"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc6"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.3.2-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.3.3-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.0"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.1"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.2"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.3"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.4"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.4.1"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.5"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.5.1"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.1"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.2"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.3"/>
- </Seq>
- </em:updates>
-
- </Description>
-
- <!-- version 1.1.14 -->
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.14-alpha">
- <em:version>1.1.14-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.0b*</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.1.14-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:b316f9d84930ecf23b0797f93a6433334a4c38d5</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.15-alpha">
- <em:version>1.1.15-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.0b*</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.1.15-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:fa0d47c98d258ba904d828bea15b140ab438eb56</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.16-alpha">
- <em:version>1.1.16-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.0b*</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.1.16-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:f892dac7e5da8c63005f896c9aa1436e3f77ab4b</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.17-alpha">
- <em:version>1.1.17-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.0b*</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.1.17-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:93e17f955655eb31e5a6ff9f71dfde479a5b7a6d</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.18alpha">
- <em:version>1.1.18alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.0b*</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.1.18alpha.xpi</em:updateLink>
- <em:updateHash>sha1:6fdcebcb1e6cc694b45065c2b6df07ffb12ea164</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc1">
- <em:version>1.2.0rc1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc1.xpi</em:updateLink>
- <em:updateHash>sha1:8c8cb5e7e3844b8310151c5b56fb622134ea67f6</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc2">
- <em:version>1.2.0rc2</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc2.xpi</em:updateLink>
- <em:updateHash>sha1:f0d6e121e2b0fbd4d1db7c3f333b8d7ab5c1d906</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc3">
- <em:version>1.2.0rc3</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc3.xpi</em:updateLink>
- <em:updateHash>sha1:184294b480119bb7b943ede116345c52ee7772fc</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc4">
- <em:version>1.2.0rc4</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc4.xpi</em:updateLink>
- <em:updateHash>sha1:23df6a12c7140b5817338136da1cd7737412bbbb</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc5">
- <em:version>1.2.0rc5</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc5.xpi</em:updateLink>
- <em:updateHash>sha1:050925e2c02e61f2f0ceb4683600fc0c58a835bb</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc6">
- <em:version>1.2.0rc6</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc6.xpi</em:updateLink>
- <em:updateHash>sha1:7f01c577641b6222781cd880c9825d6f50ff1cc4</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0">
- <em:version>1.2.0</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0.xpi</em:updateLink>
- <em:updateHash>sha1:086e2a05b8e5393f2f28533cdb715e69465c3169</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.1">
- <em:version>1.2.1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.1.xpi</em:updateLink>
- <em:updateHash>sha1:204766e5c9112aba7313e3ab98023f57f1668978</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.3.2-alpha">
- <em:version>1.3.2-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>4.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.3.2-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:4231cf0e568fe61f49011d4626e85cdb467c6a48</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.3.3-alpha">
- <em:version>1.3.3-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.3.3-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:c7323cd408ebee28ee23b6a91fe056d59de668f5</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.0">
- <em:version>1.4.0</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.0.xpi</em:updateLink>
- <em:updateHash>sha1:4df99e70b2991bb51ea70d0c217961174b24a98e</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.1">
- <em:version>1.4.1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.1.xpi</em:updateLink>
- <em:updateHash>sha1:7f80cf8eea6d523fdb0bac94eefce52ebbb192be</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.2">
- <em:version>1.4.2</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.2.xpi</em:updateLink>
- <em:updateHash>sha1:a724c55165f81a86e2ec1d56026c9160964c5b87</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.3">
- <em:version>1.4.3</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.3.xpi</em:updateLink>
- <em:updateHash>sha1:e048d53b3e36c161ccfb75b09c6aece8b7f1e94f</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.4">
- <em:version>1.4.4</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.4.xpi</em:updateLink>
- <em:updateHash>sha1:3f352e7d8577fc576a9011d858a8b34f4fea4b09</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.4.1">
- <em:version>1.4.4.1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.4.1.xpi</em:updateLink>
- <em:updateHash>sha1:95dc1e079da873aae9ca1beb7354fb8fdeaa7414</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.5">
- <em:version>1.4.5</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.5.xpi</em:updateLink>
- <em:updateHash>sha1:5f2e2d72343b2d4702ec24491a11babedd3650b9</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.5.1">
- <em:version>1.4.5.1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.5.1.xpi</em:updateLink>
- <em:updateHash>sha1:0002e2d61613504e41d8b773c30ff6307b8286da</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6">
- <em:version>1.4.6</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.6.xpi</em:updateLink>
- <em:updateHash>sha1:eedadda6e5aacb8dabe2118e6c14c4dd4441fed0</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.1">
- <em:version>1.4.6.1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.6.1.xpi</em:updateLink>
- <em:updateHash>sha1:fb1df9ce40c5b1282e701f2a96694b0bfbdc2687</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.2">
- <em:version>1.4.6.2</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.6.2.xpi</em:updateLink>
- <em:updateHash>sha1:1182fa2dcb095ad8054a218c41bc0a849b5b30ed</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.3">
- <em:version>1.4.6.3</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.6.3.xpi</em:updateLink>
- <em:updateHash>sha1:968455a5b702b3cabb6c16499e531a5a8f4c5f21</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
-</RDF>
1
0
[torbutton/master] Fix components and modules, and minor style changes
by gk@torproject.org 07 Aug '19
by gk@torproject.org 07 Aug '19
07 Aug '19
commit 18e7226776301a82bb2c5715739b25f9c2b281ad
Author: Alex Catarineu <acat(a)torproject.org>
Date: Thu May 9 19:48:10 2019 +0200
Fix components and modules, and minor style changes
---
src/chrome/content/preferences-mobile.js | 10 +-
src/chrome/content/tor-circuit-display.js | 18 +--
src/chrome/content/torbutton.js | 230 +++++++++++++-----------------
src/chrome/content/torbutton_util.js | 14 +-
src/components/aboutTor.js | 21 +--
src/components/cookie-jar-selector.js | 131 +++++------------
src/components/domain-isolator.js | 19 ++-
src/components/dragDropFilter.js | 16 +--
src/components/external-app-blocker.js | 13 +-
src/components/torCheckService.js | 27 +---
src/components/torbutton-logger.js | 38 ++---
src/modules/default-prefs.js | 2 +-
src/modules/noscript-control.js | 50 ++++---
src/modules/security-prefs.js | 9 +-
src/modules/tor-control-port.js | 10 +-
src/modules/utils.js | 16 +--
16 files changed, 243 insertions(+), 381 deletions(-)
diff --git a/src/chrome/content/preferences-mobile.js b/src/chrome/content/preferences-mobile.js
index e2da9b88..fa79dce8 100644
--- a/src/chrome/content/preferences-mobile.js
+++ b/src/chrome/content/preferences-mobile.js
@@ -1,12 +1,12 @@
// # Security Settings User Interface for Mobile
// Utilities
-let { utils: Cu } = Components;
-let { getBoolPref, getIntPref, setBoolPref, setIntPref, getCharPref } =
- Cu.import("resource://gre/modules/Services.jsm", {}).Services.prefs;
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { getBoolPref, getIntPref, setBoolPref, setIntPref, getCharPref }
+ = Services.prefs;
let { getLocale, show_torbrowser_manual } =
- Cu.import("resource://torbutton/modules/utils.js", {});
+ ChromeUtils.import("resource://torbutton/modules/utils.js", {});
// Description elements have the follow names.
const descNames =
@@ -64,7 +64,7 @@ function torbutton_set_learn_more_links() {
locale = getLocale();
}
let links = linkNames.map(name => document.getElementById(name));
- links.forEach(link => {;
+ links.forEach(link => {
if (show_manual && locale != "") {
link.href= "https:/tb-manual.torproject.org/" + locale +
"/security-slider.html";
diff --git a/src/chrome/content/tor-circuit-display.js b/src/chrome/content/tor-circuit-display.js
index 5ecbe7d7..05dc14de 100644
--- a/src/chrome/content/tor-circuit-display.js
+++ b/src/chrome/content/tor-circuit-display.js
@@ -26,18 +26,17 @@ let createTorCircuitDisplay = (function () {
"use strict";
// Mozilla utilities
-const { Cu : utils , Ci : interfaces } = Components.utils;
-Cu.import("resource://gre/modules/Services.jsm");
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
// Import the controller code.
-let { controller } = Cu.import("resource://torbutton/modules/tor-control-port.js", {});
+let { controller } = ChromeUtils.import("resource://torbutton/modules/tor-control-port.js", {});
// Utility functions
-let { bindPrefAndInit, observe, getLocale, getDomainForBrowser } = Cu.import("resource://torbutton/modules/utils.js", {});
+let { bindPrefAndInit, observe, getLocale, getDomainForBrowser } = ChromeUtils.import("resource://torbutton/modules/utils.js", {});
// Make the TorButton logger available.
let logger = Cc["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ .getService(Ci.nsISupports).wrappedJSObject;
// ## Circuit/stream credentials and node monitoring
@@ -209,18 +208,13 @@ let uiString = function (shortName) {
return torbuttonBundle.GetStringFromName("torbutton.circuit_display." + shortName);
};
-// __regionBundle__.
-// A list of localized region (country) names.
-let regionBundle = Services.strings.createBundle(
- "chrome://global/locale/regionNames.properties");
-
// __localizedCountryNameFromCode(countryCode)__.
// Convert a country code to a localized country name.
// Example: `'de'` -> `'Deutschland'` in German locale.
let localizedCountryNameFromCode = function (countryCode) {
if (!countryCode) return uiString("unknown_country");
try {
- return regionBundle.GetStringFromName(countryCode.toLowerCase());
+ return Services.intl.getRegionDisplayNames(undefined, [countryCode])[0];
} catch (e) {
return countryCode.toUpperCase();
}
@@ -363,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/');`,
+ ["span", {onclick: `gBrowser.selectedTab = gBrowser.addTab('https://support.torproject.org/${localeCode}/tbb/tbb-2/', {triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()});`,
class: "circuit-link"},
learnMoreString]]);
};
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index a7bd4f8c..d73ddf73 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -7,16 +7,20 @@
// TODO: Double-check there are no strange exploits to defeat:
// http://kb.mozillazine.org/Links_to_local_pages_don%27t_work
-let { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
-const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
+/* global torbutton_log, gBrowser, torbutton_safelog, CustomizableUI,
+ createTorCircuitDisplay, torbutton_get_property_string, gFindBarInitialized,
+ gFindBar, OpenBrowserWindow, PrivateBrowsingUtils, torbutton_get_stringbundle,
+ Services, AppConstants
+ */
+
let {
showDialog,
show_torbrowser_manual,
unescapeTorString,
bindPrefAndInit,
getDomainForBrowser,
-} = Cu.import("resource://torbutton/modules/utils.js", {});
-let SecurityPrefs = Cu.import("resource://torbutton/modules/security-prefs.js", {});
+} = ChromeUtils.import("resource://torbutton/modules/utils.js", {});
+let SecurityPrefs = ChromeUtils.import("resource://torbutton/modules/security-prefs.js", {});
const k_tb_last_browser_version_pref = "extensions.torbutton.lastBrowserVersion";
const k_tb_browser_update_needed_pref = "extensions.torbutton.updateNeeded";
@@ -44,8 +48,7 @@ var m_tb_control_host = null; // Set if using TCP.
var m_tb_control_pass = null;
var m_tb_control_desc = null; // For logging.
-var m_tb_domWindowUtils = window.QueryInterface(Ci.nsIInterfaceRequestor).
- getInterface(Ci.nsIDOMWindowUtils);
+var m_tb_domWindowUtils = window.windowUtils;
// Bug 1506 P1: This object is only for updating the UI for toggling and style
var torbutton_window_pref_observer =
@@ -91,9 +94,8 @@ var torbutton_unique_pref_observer =
m_tb_prefs.addObserver("privacy.resistFingerprinting", this, false);
// We observe xpcom-category-entry-added for plugins w/ Gecko-Content-Viewers
- var observerService = Cc["@mozilla.org/observer-service;1"].
- getService(Ci.nsIObserverService);
- observerService.addObserver(this, "xpcom-category-entry-added", false);
+ var observerService = Services.obs;
+ observerService.addObserver(this, "xpcom-category-entry-added");
},
unregister: function()
@@ -106,8 +108,7 @@ var torbutton_unique_pref_observer =
m_tb_prefs.removeObserver("privacy.firstparty.isolate", this);
m_tb_prefs.removeObserver("privacy.resistFingerprinting", this);
- var observerService = Cc["@mozilla.org/observer-service;1"].
- getService(Ci.nsIObserverService);
+ var observerService = Services.obs;
observerService.removeObserver(this, "xpcom-category-entry-added");
},
@@ -165,11 +166,9 @@ var torbutton_unique_pref_observer =
}
var torbutton_tor_check_observer = {
- register: function()
- {
- this._obsSvc = Cc["@mozilla.org/observer-service;1"]
- .getService(Ci.nsIObserverService);
- this._obsSvc.addObserver(this, k_tb_tor_check_failed_topic, false);
+ register() {
+ this._obsSvc = Services.obs;
+ this._obsSvc.addObserver(this, k_tb_tor_check_failed_topic);
},
unregister: function()
@@ -189,22 +188,24 @@ var torbutton_tor_check_observer = {
// If the user does not have an about:tor tab open in the front most
// window, open one.
- var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
+ var wm = Services.wm;
var win = wm.getMostRecentWindow("navigator:browser");
if (win == window) {
let foundTab = false;
- let tabBrowser = top.getBrowser();
+ let tabBrowser = top.gBrowser;
for (let i = 0; !foundTab && (i < tabBrowser.browsers.length); ++i) {
let b = tabBrowser.getBrowserAtIndex(i);
foundTab = (b.currentURI.spec.toLowerCase() == "about:tor");
}
- if (!foundTab)
- gBrowser.selectedTab = gBrowser.addTab("about:tor");
+ if (!foundTab) {
+ gBrowser.selectedTab = gBrowser.addTab("about:tor", {
+ triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
+ });
+ }
}
}
- }
+ },
};
function torbutton_init_toolbutton()
@@ -268,8 +269,8 @@ function torbutton_init() {
} catch(e) {}
// Bug 1506 P4: These vars are very important for New Identity
- var environ = Components.classes["@mozilla.org/process/environment;1"]
- .getService(Components.interfaces.nsIEnvironment);
+ var environ = Cc["@mozilla.org/process/environment;1"]
+ .getService(Ci.nsIEnvironment);
if (environ.exists("TOR_CONTROL_PASSWD")) {
m_tb_control_pass = environ.get("TOR_CONTROL_PASSWD");
@@ -282,10 +283,12 @@ function torbutton_init() {
} catch(e) {
torbutton_log(4, 'unable to read authentication cookie');
}
- } else try {
+ } else {
+ try {
// Try to get password from Tor Launcher.
m_tb_control_pass = tlps.TorGetPassword(false);
- } catch(e) {}
+ } catch (e) {}
+ }
// Try to get the control port IPC file (an nsIFile) from Tor Launcher,
// since Tor Launcher knows how to handle its own preferences and how to
@@ -341,9 +344,8 @@ function torbutton_init() {
// This works only by setting the pref to `true` otherwise we get an
// exception and nothing is happening.
m_tb_prefs.setBoolPref("dom.quotaManager.testing", true);
- Cc["@mozilla.org/dom/quota-manager-service;1"]
- .getService(Ci.nsIQuotaManagerService).clear();
- } catch(e) {
+ Services.qms.clear();
+ } catch (e) {
} finally {
m_tb_prefs.setBoolPref("dom.quotaManager.testing", orig_quota_test);
}
@@ -503,8 +505,7 @@ function torbutton_confirm_plugins() {
torbutton_log(3, "Confirming plugin usage.");
- var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Components.interfaces.nsIPromptService);
+ var prompts = Services.prompt;
// Display two buttons, both with string titles.
var flags = prompts.STD_YES_NO_BUTTONS + prompts.BUTTON_DELAY_ENABLE;
@@ -513,8 +514,7 @@ function torbutton_confirm_plugins() {
var askAgainText = torbutton_get_property_string("torbutton.popup.never_ask_again");
var askAgain = {value: false};
- var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
+ var wm = Services.wm;
var win = wm.getMostRecentWindow("navigator:browser");
var no_plugins = (prompts.confirmEx(win, "", message, flags, null, null, null,
askAgainText, askAgain) == 1);
@@ -531,8 +531,6 @@ function torbutton_confirm_plugins() {
// Now, if any tabs were open to about:addons, reload them. Our popup
// messed up that page.
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
var browserEnumerator = wm.getEnumerator("navigator:browser");
// Check each browser instance for our URL
@@ -553,15 +551,13 @@ function torbutton_confirm_plugins() {
}
function torbutton_inform_about_tbb() {
- var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Components.interfaces.nsIPromptService);
+ var prompts = Services.prompt;
var message = torbutton_get_property_string("torbutton.popup.prompt_torbrowser");
var title = torbutton_get_property_string("torbutton.title.prompt_torbrowser");
var checkbox = {value: false};
- var sb = Components.classes["@mozilla.org/intl/stringbundle;1"]
- .getService(Components.interfaces.nsIStringBundleService);
+ var sb = Services.strings;
var browserstrings = sb.createBundle("chrome://browser/locale/browser.properties");
var askagain = browserstrings.GetStringFromName("privateBrowsingNeverAsk");
@@ -761,14 +757,14 @@ function torbutton_socket_readline(input) {
// Bug 1506 P4: Control port interaction. Needed for New Identity.
function torbutton_read_authentication_cookie(path) {
- var file = Components.classes['@mozilla.org/file/local;1']
- .createInstance(Components.interfaces.nsIFile);
+ var file = Cc["@mozilla.org/file/local;1"]
+ .createInstance(Ci.nsIFile);
file.initWithPath(path);
- var fileStream = Components.classes['@mozilla.org/network/file-input-stream;1']
- .createInstance(Components.interfaces.nsIFileInputStream);
+ var fileStream = Cc["@mozilla.org/network/file-input-stream;1"]
+ .createInstance(Ci.nsIFileInputStream);
fileStream.init(file, 1, 0, false);
- var binaryStream = Components.classes['@mozilla.org/binaryinputstream;1']
- .createInstance(Components.interfaces.nsIBinaryInputStream);
+ var binaryStream = Cc["@mozilla.org/binaryinputstream;1"]
+ .createInstance(Ci.nsIBinaryInputStream);
binaryStream.setInputStream(fileStream);
var array = binaryStream.readByteArray(fileStream.available());
binaryStream.close();
@@ -795,8 +791,7 @@ function torbutton_send_ctrl_cmd(command) {
// suppressing/unsuppressing user initiated events in a window's document to
// be sure that these events are not interfering with processing events being
// in the event queue.
- var thread = Cc["@mozilla.org/thread-manager;1"].
- getService(Ci.nsIThreadManager).currentThread;
+ var thread = Services.tm.currentThread;
m_tb_domWindowUtils.suppressEventHandling(true);
while (thread.processNextEvent(false)) {}
m_tb_domWindowUtils.suppressEventHandling(false);
@@ -871,15 +866,14 @@ 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("torbutton-new-identity").disabled = true;
document.getElementById("menu_newIdentity").disabled = true;
document.getElementById("appMenuNewIdentity").disabled = true;
let shouldConfirm = m_tb_prefs.getBoolPref("extensions.torbutton.confirm_newnym");
if (shouldConfirm) {
- let prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Ci.nsIPromptService);
+ let prompts = Services.prompt;
// Display two buttons, both with string titles.
let flags = prompts.STD_YES_NO_BUTTONS;
@@ -898,7 +892,7 @@ 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("torbutton-new-identity").disabled = false;
document.getElementById("menu_newIdentity").disabled = false;
document.getElementById("appMenuNewIdentity").disabled = false;
}
@@ -910,11 +904,11 @@ function torbutton_new_identity() {
// enabled (again).
// TODO: Remove the Torbutton menu entry again once we have done our
// security control redesign.
- document.getElementById("torbutton-new-identity").disabled = false;
+ 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;
- torbutton_log(5, "Unexpected error on new identity: "+e);
- window.alert("Torbutton: Unexpected error on new identity: "+e);
}
}
@@ -941,7 +935,7 @@ function torbutton_new_identity() {
*/
// Bug 1506 P4: Needed for New Identity.
function torbutton_do_new_identity() {
- var obsSvc = Components.classes["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
+ var obsSvc = Services.obs;
torbutton_log(3, "New Identity: Disabling JS");
torbutton_disable_all_js();
@@ -995,9 +989,9 @@ function torbutton_do_new_identity() {
torbutton_log(3, "New Identity: Clearing HTTP Auth");
- if(m_tb_prefs.getBoolPref('extensions.torbutton.clear_http_auth')) {
- var auth = Components.classes["@mozilla.org/network/http-auth-manager;1"].
- getService(Components.interfaces.nsIHttpAuthManager);
+ if (m_tb_prefs.getBoolPref("extensions.torbutton.clear_http_auth")) {
+ var auth = Cc["@mozilla.org/network/http-auth-manager;1"].
+ getService(Ci.nsIHttpAuthManager);
auth.clearAll();
}
@@ -1006,8 +1000,8 @@ function torbutton_do_new_identity() {
// Clear all crypto auth tokens. This includes calls to PK11_LogoutAll(),
// nsNSSComponent::LogoutAuthenticatedPK11() and clearing the SSL session
// cache.
- let sdr = Components.classes["@mozilla.org/security/sdr;1"].
- getService(Components.interfaces.nsISecretDecoderRing);
+ let sdr = Cc["@mozilla.org/security/sdr;1"].
+ getService(Ci.nsISecretDecoderRing);
sdr.logoutAndTeardown();
// This clears the OCSP cache.
@@ -1047,8 +1041,7 @@ function torbutton_do_new_identity() {
torbutton_log(3, "New Identity: Clearing Offline Cache");
try {
- const LoadContextInfo = Cc["@mozilla.org/load-context-info-factory;1"]
- .getService(Ci.nsILoadContextInfoFactory);
+ const LoadContextInfo = Services.loadContextInfo;
for (let contextInfo of [LoadContextInfo.default, LoadContextInfo.private]) {
let appCacheStorage = Services.cache2.appCacheStorage(contextInfo, null);
@@ -1089,19 +1082,18 @@ function torbutton_do_new_identity() {
// This works only by setting the pref to `true` otherwise we get an
// exception and nothing is happening.
m_tb_prefs.setBoolPref("dom.quotaManager.testing", true);
- Cc["@mozilla.org/dom/quota-manager-service;1"]
- .getService(Ci.nsIQuotaManagerService).clear();
- } catch(e) {
- torbutton_log(5, "Exception on storage clearing: "+e);
+ Services.qms.clear();
+ } catch (e) {
+ torbutton_log(5, "Exception on storage clearing: " + e);
} finally {
m_tb_prefs.setBoolPref("dom.quotaManager.testing", orig_quota_test);
}
torbutton_log(3, "New Identity: Clearing Cookies and DOM Storage");
- if (m_tb_prefs.getBoolPref('extensions.torbutton.cookie_protections')) {
- var selector = Components.classes["@torproject.org/cookie-jar-selector;1"]
- .getService(Components.interfaces.nsISupports)
+ if (m_tb_prefs.getBoolPref("extensions.torbutton.cookie_protections")) {
+ var selector = Cc["@torproject.org/cookie-jar-selector;1"]
+ .getService(Ci.nsISupports)
.wrappedJSObject;
// This emits "cookie-changed", "cleared", which kills DOM storage
// and the safe browsing API key
@@ -1119,18 +1111,12 @@ function torbutton_do_new_identity() {
// XXX: This may not clear zoom site-specific
// browser.content.full-zoom
- if (Ci.nsIContentPrefService2) { // Firefox >= 20
- XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
- "resource://gre/modules/PrivateBrowsingUtils.jsm");
- var pbCtxt = PrivateBrowsingUtils.privacyContextFromWindow(window);
- var cps = Cc["@mozilla.org/content-pref/service;1"]
- .getService(Ci.nsIContentPrefService2);
- cps.removeAllDomains(pbCtxt);
- } else { // Firefox < 20
- var cps = Cc["@mozilla.org/content-pref/service;1"].
- createInstance(Ci.nsIContentPrefService);
- cps.removeGroupedPrefs();
- }
+ ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils",
+ "resource://gre/modules/PrivateBrowsingUtils.jsm");
+ var pbCtxt = PrivateBrowsingUtils.privacyContextFromWindow(window);
+ var cps = Cc["@mozilla.org/content-pref/service;1"]
+ .getService(Ci.nsIContentPrefService2);
+ cps.removeAllDomains(pbCtxt);
torbutton_log(3, "New Identity: Syncing prefs");
@@ -1139,8 +1125,7 @@ function torbutton_do_new_identity() {
torbutton_log(3, "New Identity: Clearing permissions");
- let pm = Cc["@mozilla.org/permissionmanager;1"].
- getService(Ci.nsIPermissionManager);
+ let pm = Services.perms;
pm.removeAll();
// Clear the domain isolation state.
@@ -1234,8 +1219,7 @@ function torbutton_clear_image_caches()
// Try to clear the private browsing cache. To do so, we must locate
// a content document that is contained within a private browsing window.
let didClearPBCache = false;
- let wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator);
+ let wm = Services.wm;
let enumerator = wm.getEnumerator("navigator:browser");
while (!didClearPBCache && enumerator.hasMoreElements()) {
let win = enumerator.getNext();
@@ -1243,7 +1227,7 @@ function torbutton_clear_image_caches()
if (!browserDoc.hasAttribute("privatebrowsingmode"))
continue;
- let tabbrowser = win.getBrowser();
+ let tabbrowser = win.gBrowser;
if (!tabbrowser)
continue;
@@ -1372,8 +1356,7 @@ function torbutton_local_tor_check()
if (socksAddr && socksAddr.startsWith("file:")) {
// Convert the file URL to a file path.
try {
- let ioService = Cc["@mozilla.org/network/io-service;1"]
- .getService(Ci.nsIIOService);
+ let ioService = Services.io;
let fph = ioService.getProtocolHandler("file")
.QueryInterface(Ci.nsIFileProtocolHandler);
socksIPCPath = fph.getFileFromURLSpec(socksAddr).path;
@@ -1440,11 +1423,8 @@ function torbutton_local_tor_check()
} // torbutton_local_tor_check
-function torbutton_initiate_remote_tor_check()
-{
- let obsSvc = Cc["@mozilla.org/observer-service;1"]
- .getService(Ci.nsIObserverService);
-
+function torbutton_initiate_remote_tor_check() {
+ let obsSvc = Services.obs;
try {
let checkSvc = Cc["@torproject.org/torbutton-torCheckService;1"]
.getService(Ci.nsISupports).wrappedJSObject;
@@ -1573,13 +1553,12 @@ function torbutton_close_tabs_on_new_identity() {
// TODO: muck around with browser.tabs.warnOnClose.. maybe..
torbutton_log(3, "Closing tabs...");
- let wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator);
+ let wm = Services.wm;
let enumerator = wm.getEnumerator("navigator:browser");
- let windowsToClose = new Array();
+ let windowsToClose = [];
while (enumerator.hasMoreElements()) {
let win = enumerator.getNext();
- let browser = win.getBrowser();
+ let browser = win.gBrowser;
if (!browser) {
torbutton_log(5, "No browser for possible closed window");
continue;
@@ -1598,7 +1577,9 @@ function torbutton_close_tabs_on_new_identity() {
}
if (win == window) {
- browser.addTab("about:blank");
+ browser.addTab("about:blank", {
+ triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
+ });
} 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.
@@ -1672,9 +1653,8 @@ function torbutton_open_cookie_dialog() {
// Bug 1506 P4: Used by New Identity if cookie protections are
// not in use.
function torbutton_clear_cookies() {
- torbutton_log(2, 'called torbutton_clear_cookies');
- var cm = Components.classes["@mozilla.org/cookiemanager;1"]
- .getService(Components.interfaces.nsICookieManager);
+ torbutton_log(2, "called torbutton_clear_cookies");
+ var cm = Services.cookies;
cm.removeAll();
}
@@ -1692,7 +1672,7 @@ function torbutton_disable_browser_js(browser) {
torbutton_log(3, "No content window to disable JS events.");
else
eventSuppressor = browser.contentWindow.
- QueryInterface(Components.interfaces.nsIInterfaceRequestor).
+ QueryInterface(Ci.nsIInterfaceRequestor).
getInterface(Ci.nsIDOMWindowUtils);
} catch(e) {
torbutton_log(4, "Failed to disable JS events: "+e)
@@ -1718,8 +1698,8 @@ function torbutton_disable_browser_js(browser) {
// Bug 1506 P3: The JS-killing bits of this are used by
// New Identity as a defense-in-depth measure.
function torbutton_disable_window_js(win) {
- var browser = win.getBrowser();
- if(!browser) {
+ var browser = win.gBrowser;
+ if (!browser) {
torbutton_log(5, "No browser for plugin window...");
return;
}
@@ -1760,8 +1740,7 @@ function torbutton_disable_window_js(win) {
// This is an ugly beast.. But unfortunately it has to be so..
// Looping over all tabs twice is not somethign we wanna do..
function torbutton_disable_all_js() {
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
+ var wm = Services.wm;
var enumerator = wm.getEnumerator("navigator:browser");
while(enumerator.hasMoreElements()) {
var win = enumerator.getNext();
@@ -1817,8 +1796,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();
@@ -1839,7 +1818,7 @@ function torbutton_do_startup()
if (!m_tb_tbb && m_tb_prefs.getBoolPref("extensions.torbutton.prompt_torbrowser")) {
var warning = torbutton_get_property_string("torbutton.popup.short_torbrowser");
var title = torbutton_get_property_string("torbutton.title.prompt_torbrowser");
- var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
+ var prompts = Services.prompt;
prompts.alert(null, title, warning);
}
@@ -1867,8 +1846,8 @@ function torbutton_new_tab(event)
function torbutton_is_windowed(wind) {
torbutton_log(3, "Window: (" + wind.outerWidth + "," + wind.outerHeight + ") ?= ("
+ wind.screen.availWidth + "," + wind.screen.availHeight + ")");
- if(wind.windowState == Components.interfaces.nsIDOMChromeWindow.STATE_MINIMIZED
- || wind.windowState == Components.interfaces.nsIDOMChromeWindow.STATE_MAXIMIZED) {
+ if (wind.windowState == Ci.nsIDOMChromeWindow.STATE_MINIMIZED
+ || wind.windowState == Ci.nsIDOMChromeWindow.STATE_MAXIMIZED) {
torbutton_log(2, "Window is minimized/maximized");
return false;
}
@@ -1904,8 +1883,9 @@ function showSecurityPreferencesPanel(chromeWindow) {
if (settingsTab === null) {
// Open up the settings panel in a new tab.
tabBrowser.addTab(SECURITY_PREFERENCES_URI, {
- 'selected': true,
- 'parentId': tabBrowser.selectedTab.id
+ "selected": true,
+ "parentId": tabBrowser.selectedTab.id,
+ triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
});
} else {
// Activate an existing settings panel tab.
@@ -1984,8 +1964,7 @@ function torbutton_close_window(event) {
// But that is a major overhaul..
if (m_tb_is_main_window) {
torbutton_log(3, "Original window closed. Searching for another");
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
+ var wm = Services.wm;
var enumerator = wm.getEnumerator("navigator:browser");
while(enumerator.hasMoreElements()) {
var win = enumerator.getNext();
@@ -2016,9 +1995,8 @@ function torbutton_close_window(event) {
function torbutton_open_network_settings() {
- var obsSvc = Components.classes["@mozilla.org/observer-service;1"]
- .getService(Ci.nsIObserverService);
- obsSvc.notifyObservers(this, "TorOpenNetworkSettings", null);
+ var obsSvc = Services.obs;
+ obsSvc.notifyObservers(this, "TorOpenNetworkSettings");
}
@@ -2032,14 +2010,7 @@ var m_tb_resize_date = null;
// probably not for android.
var torbutton_resizelistener =
{
- QueryInterface: function(aIID)
- {
- if (aIID.equals(Ci.nsIWebProgressListener) ||
- aIID.equals(Ci.nsISupportsWeakReference) ||
- aIID.equals(Ci.nsISupports))
- return this;
- throw Cr.NS_NOINTERFACE;
- },
+ QueryInterface: ChromeUtils.generateQI(["nsIWebProgressListener", "nsISupportsWeakReference"]),
onLocationChange: function(aProgress, aRequest, aURI) {},
onStateChange: function(aProgress, aRequest, aFlag, aStatus) {
@@ -2072,10 +2043,8 @@ var torbutton_resizelistener =
m_tb_resize_date = Date.now();
}
- let sb = torbutton_get_stringbundle();
// No need to get "OK" translated again.
- let sbSvc = Cc["@mozilla.org/intl/stringbundle;1"].
- getService(Ci.nsIStringBundleService);
+ let sbSvc = Services.strings;
let bundle = sbSvc.
createBundle("chrome://global/locale/commonDialogs.properties");
let button_label = bundle.GetStringFromName("OK");
@@ -2141,8 +2110,7 @@ var torbutton_resizelistener =
function torbutton_get_current_accept_language_value(aURI)
{
try {
- let ioService = Cc["@mozilla.org/network/io-service;1"]
- .getService(Ci.nsIIOService);
+ let ioService = Services.io;
let channel = ioService.newChannelFromURI(aURI);
let httpChannel = channel.QueryInterface(Ci.nsIHttpChannel);
return httpChannel.getRequestHeader("Accept-Language");
diff --git a/src/chrome/content/torbutton_util.js b/src/chrome/content/torbutton_util.js
index e6de7681..c7116a09 100644
--- a/src/chrome/content/torbutton_util.js
+++ b/src/chrome/content/torbutton_util.js
@@ -3,8 +3,9 @@
// code directly. I don't see any of them as essential for 1506,
// really.
-var m_tb_torlog = Components.classes["@torproject.org/torbutton-logger;1"]
-.getService(Components.interfaces.nsISupports).wrappedJSObject;
+// let { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm", {});
+var m_tb_torlog = Cc["@torproject.org/torbutton-logger;1"]
+.getService(Ci.nsISupports).wrappedJSObject;
var m_tb_string_bundle = torbutton_get_stringbundle();
@@ -28,10 +29,8 @@ function torbutton_get_prefbranch(branch_name) {
var o_branch = false;
torbutton_log(1, "called get_prefbranch()");
- o_prefs = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefService);
- if (!o_prefs)
- {
+ o_prefs = Services.prefs;
+ if (!o_prefs) {
torbutton_log(5, "Failed to get preferences-service!");
return false;
}
@@ -52,8 +51,7 @@ function torbutton_get_stringbundle()
var o_stringbundle = false;
try {
- var oBundle = Components.classes["@mozilla.org/intl/stringbundle;1"]
- .getService(Components.interfaces.nsIStringBundleService);
+ var oBundle = Services.strings;
o_stringbundle = oBundle.createBundle("chrome://torbutton/locale/torbutton.properties");
} catch(err) {
o_stringbundle = false;
diff --git a/src/components/aboutTor.js b/src/components/aboutTor.js
index e3ee03d6..ec48d668 100644
--- a/src/components/aboutTor.js
+++ b/src/components/aboutTor.js
@@ -14,20 +14,15 @@ const kMODULE_CID = Components.ID("84d47da6-79c3-4661-aa9f-8049476f7bf5");
const kAboutTorURL = "chrome://torbutton/content/aboutTor/aboutTor.xhtml";
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-
-function AboutTor()
-{
-}
+function AboutTor() {}
AboutTor.prototype =
{
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutModule]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIAboutModule]),
// nsIClassInfo implementation:
classDescription: kMODULE_NAME,
@@ -35,11 +30,9 @@ AboutTor.prototype =
contractID: kMODULE_CONTRACTID,
// nsIAboutModule implementation:
- newChannel: function(aURI, aLoadInfo)
- {
- let ioSvc = Cc["@mozilla.org/network/io-service;1"]
- .getService(Ci.nsIIOService);
- let uri = ioSvc.newURI(kAboutTorURL, null, null);
+ newChannel(aURI, aLoadInfo) {
+ let ioSvc = Services.io;
+ let uri = ioSvc.newURI(kAboutTorURL);
let channel = ioSvc.newChannelFromURIWithLoadInfo(uri, aLoadInfo);
channel.originalURI = aURI;
diff --git a/src/components/cookie-jar-selector.js b/src/components/cookie-jar-selector.js
index 8456da3b..b3eeda53 100644
--- a/src/components/cookie-jar-selector.js
+++ b/src/components/cookie-jar-selector.js
@@ -18,12 +18,11 @@ const kMODULE_NAME = "Cookie Jar Selector";
const kMODULE_CONTRACTID = "@torproject.org/cookie-jar-selector;1";
const kMODULE_CID = Components.ID("e6204253-b690-4159-bfe8-d4eedab6b3be");
-const Cr = Components.results;
-const Cu = Components.utils;
-
-Cu.import("resource://torbutton/modules/default-prefs.js", {})
+ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {})
.ensureDefaultPrefs();
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+
// XXX: Must match the definition in torcookie.js :/
function Cookie(number,name,value,isDomain,host,rawHost,HttpOnly,path,isSecure,isSession,
expires,isProtected) {
@@ -42,73 +41,32 @@ function Cookie(number,name,value,isDomain,host,rawHost,HttpOnly,path,isSecure,i
}
function CookieJarSelector() {
- var Cc = Components.classes;
- var Ci = Components.interfaces;
-
- this.logger = Components.classes["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ this.logger = Cc["@torproject.org/torbutton-logger;1"]
+ .getService(Ci.nsISupports).wrappedJSObject;
- this.logger.log(3, "Component Load 5: New CookieJarSelector "+kMODULE_CONTRACTID);
+ this.logger.log(3, "Component Load 5: New CookieJarSelector " + kMODULE_CONTRACTID);
- this.prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
+ this.prefs = Services.prefs;
var getProfileFile = function(filename) {
- var loc = "ProfD"; // profile directory
- var file =
- Cc["@mozilla.org/file/directory_service;1"]
- .getService(Ci.nsIProperties)
+ var loc = "ProfD"; // profile directory
+ var file = Services.dirsvc
.get(loc, Ci.nsIFile)
.clone();
file.append(filename);
return file;
};
- var copyProfileFile = function(src, dest) {
- var srcfile = getProfileFile(src);
- var destfile = getProfileFile(dest);
- if (srcfile.exists()) {
- // XXX: Permissions issue with Vista roaming profiles?
- // Maybe file locking?
- try {
- if (destfile.exists()) {
- destfile.remove(false);
- }
- } catch(e) {
- this.logger.log(4, "Cookie file deletion exception: "+e);
- }
- try {
- srcfile.copyTo(null, dest);
- } catch(e) {
- this.logger.log(5, "Cookie file copy exception: "+e);
- }
- }
- };
-
- var moveProfileFile = function(src, dest) { // FIXME: Why does this not work?
- var srcfile = getProfileFile(src);
- var destfile = getProfileFile(dest);
- if (srcfile.exists()) {
- if (destfile.exists()) {
- destfile.remove(false);
- }
- srcfile.moveTo(null, dest);
- }
- };
-
this.clearCookies = function() {
try {
- Cc["@mozilla.org/cookiemanager;1"]
- .getService(Ci.nsICookieManager)
- .removeAll();
- } catch(e) {
- this.logger.log(4, "Cookie clearing exception: "+e);
+ Services.cookies.removeAll();
+ } catch (e) {
+ this.logger.log(4, "Cookie clearing exception: " + e);
}
};
this._cookiesToJS = function(getSession) {
- var cookieManager =
- Cc["@mozilla.org/cookiemanager;1"]
- .getService(Ci.nsICookieManager);
+ var cookieManager = Services.cookies;
var cookiesEnum = cookieManager.enumerator;
var cookiesAsJS = [];
var count = 0;
@@ -353,7 +311,7 @@ function CookieJarSelector() {
var nextCookie = enumerator.getNext();
if (!nextCookie) break;
- nextCookie = nextCookie.QueryInterface(Components.interfaces.nsICookie);
+ nextCookie = nextCookie.QueryInterface(Ci.nsICookie);
for (var i = 0; i < protCookies.length; i++) {
protcookie = protcookie || (nextCookie.host == protCookies[i].host &&
nextCookie.name == protCookies[i].name &&
@@ -371,7 +329,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 = Components.classes["@mozilla.org/observer-service;1"].getService(nsIObserverService);
+ var obsSvc = Cc["@mozilla.org/observer-service;1"].getService(nsIObserverService);
obsSvc.notifyObservers(this, "cookie-changed", "cleared");
} catch (e) {
this.logger.log(5, "Error deleting unprotected cookies: " + e);
@@ -410,10 +368,8 @@ function CookieJarSelector() {
};
// Check firefox version to know filename
- var appInfo = Components.classes["@mozilla.org/xre/app-info;1"]
- .getService(Components.interfaces.nsIXULAppInfo);
- var versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1"]
- .getService(Components.interfaces.nsIVersionComparator);
+ // var appInfo = Services.appinfo;
+ // var versionChecker = Services.vc;
// This JSObject is exported directly to chrome
this.wrappedJSObject = this;
@@ -424,15 +380,8 @@ function CookieJarSelector() {
this.timerCallback = {
cookie_changed: false,
- QueryInterface: function(iid) {
- if (!iid.equals(Component.interfaces.nsISupports) &&
- !iid.equals(Component.interfaces.nsITimer)) {
- Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
- return null;
- }
- return this;
- },
- notify: function() {
+ QueryInterface: ChromeUtils.generateQI(["nsITimer"]),
+ notify() {
// this refers to timerCallback object. use jarThis to reference
// CookieJarSelector object.
if(!this.cookie_changed) {
@@ -450,27 +399,18 @@ function CookieJarSelector() {
}
-const nsISupports = Components.interfaces.nsISupports;
-const nsIClassInfo = Components.interfaces.nsIClassInfo;
-const nsIObserver = Components.interfaces.nsIObserver;
-const nsITimer = Components.interfaces.nsITimer;
-const nsIComponentRegistrar = Components.interfaces.nsIComponentRegistrar;
-const nsIObserverService = Components.interfaces.nsIObserverService;
-const nsICategoryManager = Components.interfaces.nsICategoryManager;
+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 =
{
- QueryInterface: function(iid)
- {
- if (!iid.equals(nsIClassInfo) &&
- !iid.equals(nsIObserver) &&
- !iid.equals(nsISupports)) {
- Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
- return null;
- }
- return this;
- },
+ QueryInterface: ChromeUtils.generateQI(["nsIClassInfo", "nsIObserver"]),
wrappedJSObject: null, // Initialized by constructor
@@ -496,19 +436,18 @@ CookieJarSelector.prototype =
observe : function(aSubject, aTopic, aData) {
switch(aTopic) {
case "cookie-changed":
- var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
+ var prefs = Services.prefs;
this.timerCallback.cookie_changed = true;
-
+
if (aData == "added"
&& prefs.getBoolPref("extensions.torbutton.cookie_auto_protect")
- && !prefs.getBoolPref("extensions.torbutton.tor_memory_jar"))
- {
- this.addProtectedCookie(aSubject.QueryInterface(Components.interfaces.nsICookie2));//protect the new cookie!
+ && !prefs.getBoolPref("extensions.torbutton.tor_memory_jar")) {
+ this.addProtectedCookie(aSubject.QueryInterface(Ci.nsICookie2));// protect the new cookie!
}
break;
case "profile-after-change":
- var obsSvc = Components.classes["@mozilla.org/observer-service;1"].getService(nsIObserverService);
- obsSvc.addObserver(this, "cookie-changed", false);
+ var obsSvc = Cc["@mozilla.org/observer-service;1"].getService(nsIObserverService);
+ obsSvc.addObserver(this, "cookie-changed");
// after profil loading, initialize a timer to call timerCallback
// at a specified interval
this.timer.initWithCallback(this.timerCallback, 60 * 1000, nsITimer.TYPE_REPEATING_SLACK); // 1 minute
@@ -517,7 +456,7 @@ CookieJarSelector.prototype =
}
},
- timer: Components.classes["@mozilla.org/timer;1"].createInstance(nsITimer),
+ timer: Cc["@mozilla.org/timer;1"].createInstance(nsITimer),
}
@@ -525,7 +464,7 @@ CookieJarSelector.prototype =
* XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
* XPCOMUtils.generateNSGetModule is for Mozilla 1.9.2 (Firefox 3.6).
*/
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
if (XPCOMUtils.generateNSGetFactory)
var NSGetFactory = XPCOMUtils.generateNSGetFactory([CookieJarSelector]);
else
diff --git a/src/components/domain-isolator.js b/src/components/domain-isolator.js
index fc28703f..e04005a5 100644
--- a/src/components/domain-isolator.js
+++ b/src/components/domain-isolator.js
@@ -6,21 +6,19 @@
// call earlier functions). The code file can be processed
// with docco.js to provide clear documentation.
-/* jshint esversion: 6 */
-/* global Components, console, XPCOMUtils */
-
// ### Abbreviations
-const Cc = Components.classes, Ci = Components.interfaces, Cu = Components.utils;
+
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
// Make the logger available.
let logger = Cc["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ .getService(Ci.nsISupports).wrappedJSObject;
-let { ensureDefaultPrefs } = Cu.import("resource://torbutton/modules/default-prefs.js", {});
+let { ensureDefaultPrefs } = ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {});
ensureDefaultPrefs();
// Import Services object
-Cu.import("resource://gre/modules/Services.jsm");
+ChromeUtils.import("resource://gre/modules/Services.jsm");
// Import crypto object (FF 37+).
Cu.importGlobalProperties(["crypto"]);
@@ -82,6 +80,8 @@ tor.socksProxyCredentials = function (originalProxy, domain) {
proxy.port,
domain, // username
tor.noncesForDomains[domain], // password
+ "", // aProxyAuthorizationHeader
+ "", // aConnectionIsolationKey
proxy.flags,
proxy.failoverTimeout,
proxy.failoverProxy);
@@ -138,7 +138,6 @@ tor.isolateCircuitsByDomain = function () {
}
try {
let channel = aChannel.QueryInterface(Ci.nsIChannel),
- proxy = aProxy.QueryInterface(Ci.nsIProxyInfo),
firstPartyDomain = channel.loadInfo.originAttributes.firstPartyDomain;
if (firstPartyDomain === "") {
firstPartyDomain = "--unknown--";
@@ -165,7 +164,7 @@ const kMODULE_CONTRACTID = "@torproject.org/domain-isolator;1";
const kMODULE_CID = Components.ID("e33fd6d4-270f-475f-a96f-ff3140279f68");
// Import XPCOMUtils object.
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
// DomainIsolator object.
function DomainIsolator() {
@@ -174,7 +173,7 @@ function DomainIsolator() {
// Firefox component requirements
DomainIsolator.prototype = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
classDescription: kMODULE_NAME,
classID: kMODULE_CID,
contractID: kMODULE_CONTRACTID,
diff --git a/src/components/dragDropFilter.js b/src/components/dragDropFilter.js
index 916b835f..4465187e 100644
--- a/src/components/dragDropFilter.js
+++ b/src/components/dragDropFilter.js
@@ -5,13 +5,11 @@
* access to URLs (a potential proxy bypass vector).
*************************************************************************/
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
-Cu.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
+ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
-Cu.import("resource://gre/modules/XPCOMUtils.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";
@@ -26,17 +24,15 @@ function DragDropFilter() {
this.logger.log(3, "Component Load 0: New DragDropFilter.");
try {
- var observerService = Cc["@mozilla.org/observer-service;1"].
- getService(Ci.nsIObserverService);
- observerService.addObserver(this, "on-datatransfer-available", false);
- } catch(e) {
+ Services.obs.addObserver(this, "on-datatransfer-available");
+ } catch (e) {
this.logger.log(5, "Failed to register drag observer");
}
}
DragDropFilter.prototype =
{
- QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
// make this an nsIClassInfo object
flags: Ci.nsIClassInfo.DOM_OBJECT,
diff --git a/src/components/external-app-blocker.js b/src/components/external-app-blocker.js
index 1f88fc78..747824d1 100644
--- a/src/components/external-app-blocker.js
+++ b/src/components/external-app-blocker.js
@@ -12,14 +12,9 @@
* handle an URL (e.g., when the user clicks on a mailto: URL).
*************************************************************************/
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cr = Components.results;
-const Cu = Components.utils;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.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";
@@ -38,7 +33,7 @@ ExternalAppBlocker.prototype =
{
_helperAppLauncher: undefined,
- QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver,
+ QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver,
Ci.nsIHelperAppWarningDialog]),
// make this an nsIClassInfo object
diff --git a/src/components/torCheckService.js b/src/components/torCheckService.js
index 19e13f49..4f79bef4 100644
--- a/src/components/torCheckService.js
+++ b/src/components/torCheckService.js
@@ -7,16 +7,13 @@
* Tor check service
*************************************************************************/
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+
// Module specific constants
const kMODULE_NAME = "Torbutton Tor Check Service";
const kMODULE_CONTRACTID = "@torproject.org/torbutton-torCheckService;1";
const kMODULE_CID = Components.ID("5d57312b-5d8c-4169-b4af-e80d6a28a72e");
-const Cr = Components.results;
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
-
function TBTorCheckService() {
this._logger = Cc["@torproject.org/torbutton-logger;1"]
.getService(Ci.nsISupports).wrappedJSObject;
@@ -28,15 +25,7 @@ function TBTorCheckService() {
TBTorCheckService.prototype =
{
- QueryInterface: function(iid) {
- if (!iid.equals(Ci.nsIClassInfo) &&
- !iid.equals(Ci.nsISupports)) {
- Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
- return null;
- }
-
- return this;
- },
+ QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIClassInfo]),
kCheckNotInitiated: 0, // Possible values for statusOfTorCheck.
kCheckSuccessful: 1,
@@ -79,10 +68,8 @@ TBTorCheckService.prototype =
{
Cu.importGlobalProperties(["XMLHttpRequest"]);
let req = new XMLHttpRequest();
- let prefs = Cc["@mozilla.org/preferences-service;1"]
- .getService(Ci.nsIPrefBranch);
- let url = prefs.getCharPref("extensions.torbutton.test_url");
- req.open('GET', url, aAsync);
+ let url = Services.prefs.getCharPref("extensions.torbutton.test_url");
+ req.open("GET", url, aAsync);
req.channel.loadFlags |= Ci.nsIRequest.LOAD_BYPASS_CACHE;
req.overrideMimeType("text/xml");
req.timeout = 120000; // Wait at most two minutes for a response.
@@ -140,8 +127,8 @@ TBTorCheckService.prototype =
}
return ret;
- }
+ },
};
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
var NSGetFactory = XPCOMUtils.generateNSGetFactory([TBTorCheckService]);
diff --git a/src/components/torbutton-logger.js b/src/components/torbutton-logger.js
index fdf7bb7d..ce4ba70b 100644
--- a/src/components/torbutton-logger.js
+++ b/src/components/torbutton-logger.js
@@ -13,31 +13,25 @@ const kMODULE_NAME = "Torbutton Logger";
const kMODULE_CONTRACTID = "@torproject.org/torbutton-logger;1";
const kMODULE_CID = Components.ID("f36d72c9-9718-4134-b550-e109638331d7");
-const Cr = Components.results;
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
+ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
-Cu.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
-
-Cu.import("resource://gre/modules/Services.jsm");
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
function TorbuttonLogger() {
// Register observer
- Services.prefs.addObserver("extensions.torbutton", this, false);
+ Services.prefs.addObserver("extensions.torbutton", this);
this.loglevel = Services.prefs.getIntPref("extensions.torbutton.loglevel");
this.logmethod = Services.prefs.getIntPref("extensions.torbutton.logmethod");
try {
- var logMngr = Components.classes["@mozmonkey.com/debuglogger/manager;1"]
- .getService(Components.interfaces.nsIDebugLoggerManager);
+ var logMngr = Cc["@mozmonkey.com/debuglogger/manager;1"]
+ .getService(Ci.nsIDebugLoggerManager);
this._debuglog = logMngr.registerLogger("torbutton");
} catch (exErr) {
this._debuglog = false;
}
- this._console = Components.classes["@mozilla.org/consoleservice;1"]
- .getService(Components.interfaces.nsIConsoleService);
+ this._console = Services.console;
// This JSObject is exported directly to chrome
this.wrappedJSObject = this;
@@ -50,10 +44,10 @@ function TorbuttonLogger() {
* Everything below is boring boilerplate and can probably be ignored.
*/
-const nsISupports = Components.interfaces.nsISupports;
-const nsIClassInfo = Components.interfaces.nsIClassInfo;
-const nsIComponentRegistrar = Components.interfaces.nsIComponentRegistrar;
-const nsIObserverService = Components.interfaces.nsIObserverService;
+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" };
@@ -64,15 +58,7 @@ function padInt(i)
TorbuttonLogger.prototype =
{
- QueryInterface: function(iid)
- {
- if (!iid.equals(nsIClassInfo) &&
- !iid.equals(nsISupports)) {
- Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
- return null;
- }
- return this;
- },
+ QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIClassInfo]),
wrappedJSObject: null, // Initialized by constructor
@@ -176,7 +162,7 @@ TorbuttonLogger.prototype =
* XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
* XPCOMUtils.generateNSGetModule is for Mozilla 1.9.2 (Firefox 3.6).
*/
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
if (XPCOMUtils.generateNSGetFactory)
var NSGetFactory = XPCOMUtils.generateNSGetFactory([TorbuttonLogger]);
else
diff --git a/src/modules/default-prefs.js b/src/modules/default-prefs.js
index 6a2bd86c..5ea549f4 100644
--- a/src/modules/default-prefs.js
+++ b/src/modules/default-prefs.js
@@ -4,7 +4,7 @@ function ensureDefaultPrefs () {
if (loaded) {
return;
}
- Components.utils.import("resource://gre/modules/Services.jsm");
+ const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
const kDefaultPreferences = "resource://torbutton/defaults/preferences/preferences.js";
const defaultPrefBranch = Services.prefs.getDefaultBranch(null);
diff --git a/src/modules/noscript-control.js b/src/modules/noscript-control.js
index 4513dce8..0daf15e1 100644
--- a/src/modules/noscript-control.js
+++ b/src/modules/noscript-control.js
@@ -1,17 +1,16 @@
// # NoScript settings control (for binding to Security Slider)
-/* jshint esversion:6 */
-
// ## Utilities
-const { utils: Cu } = Components;
-const { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
-const { LegacyExtensionContext } =
- Cu.import("resource://gre/modules/LegacyExtensionsUtils.jsm", {});
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm", {});
const { bindPref } =
- Cu.import("resource://torbutton/modules/utils.js", {});
-let logger = Components.classes["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ ChromeUtils.import("resource://torbutton/modules/utils.js", {});
+
+const { ExtensionUtils } = ChromeUtils.import("resource://gre/modules/ExtensionUtils.jsm");
+const { MessageChannel } = ChromeUtils.import("resource://gre/modules/MessageChannel.jsm");
+
+let logger = Cc["@torproject.org/torbutton-logger;1"]
+ .getService(Ci.nsISupports).wrappedJSObject;
let log = (level, msg) => logger.log(level, msg);
// ## NoScript settings
@@ -100,20 +99,28 @@ var initialize = () => {
initialized = true;
try {
- // A mock extension object that can communicate with another extension
- // via the WebExtensions sendMessage/onMessage mechanism.
- let extensionContext = new LegacyExtensionContext({ id : noscriptID });
+ // LegacyExtensionContext is not there anymore. Using raw
+ // Services.mm.broadcastAsyncMessage mecanism to communicate with
+ // NoScript.
// The component that handles WebExtensions' sendMessage.
- let messageManager = extensionContext.messenger.messageManagers[0];
// __setNoScriptSettings(settings)__.
// NoScript listens for internal settings with onMessage. We can send
// a new settings JSON object according to NoScript's
// protocol and these are accepted! See the use of
// `browser.runtime.onMessage.addListener(...)` in NoScript's bg/main.js.
+
+ // TODO: Is there a better way?
let sendNoScriptSettings = settings =>
- extensionContext.messenger.sendMessage(messageManager, settings, noscriptID);
+ Services.mm.broadcastAsyncMessage("MessageChannel:Messages", [{
+ messageName: "Extension:Message",
+ sender: { id: noscriptID, extensionId: noscriptID },
+ recipient: { extensionId: noscriptID },
+ data: new StructuredCloneHolder(settings),
+ channelId: ExtensionUtils.getUniqueId(),
+ responseType: MessageChannel.RESPONSE_NONE,
+ }]);
// __setNoScriptSafetyLevel(safetyLevel)__.
// Set NoScript settings according to a particular safety level
@@ -129,13 +136,20 @@ var initialize = () => {
// Wait for the first message from NoScript to arrive, and then
// bind the security_slider pref to the NoScript settings.
- let messageListener = (a,b,c) => {
+ const listener = ({ data }) => {
+ for (const msg of data) {
+ if (msg.recipient.extensionId === noscriptID) {
+ messageListener(msg.data.deserialize({}), msg.sender);
+ }
+ }
+ };
+ let messageListener = (a, b, c) => {
try {
- log(3, `Message received from NoScript: ${JSON.stringify([a,b,c])}`);
+ log(3, `Message received from NoScript: ${JSON.stringify([a, b, c])}`);
if (!["started", "pageshow"].includes(a.__meta.name)) {
return;
}
- extensionContext.api.browser.runtime.onMessage.removeListener(messageListener);
+ Services.mm.removeMessageListener("MessageChannel:Messages", listener);
let noscriptPersist = Services.prefs.getBoolPref("extensions.torbutton.noscript_persist", false);
let noscriptInited = Services.prefs.getBoolPref("extensions.torbutton.noscript_inited", false);
// Set the noscript safety level once if we have never run noscript
@@ -153,7 +167,7 @@ var initialize = () => {
log(5, e.message);
}
};
- extensionContext.api.browser.runtime.onMessage.addListener(messageListener);
+ Services.mm.addMessageListener("MessageChannel:Messages", listener);
log(3, "Listening for message from NoScript.");
} catch (e) {
log(5, e.message);
diff --git a/src/modules/security-prefs.js b/src/modules/security-prefs.js
index fa97b70d..ffc5ee39 100644
--- a/src/modules/security-prefs.js
+++ b/src/modules/security-prefs.js
@@ -2,13 +2,12 @@
// ### Utilities
-let {classes: Cc, utils: Cu } = Components;
let { getBoolPref, setBoolPref, getIntPref, setIntPref } =
- Cu.import("resource://gre/modules/Services.jsm", {}).Services.prefs;
+ ChromeUtils.import("resource://gre/modules/Services.jsm", {}).Services.prefs;
let { bindPref, bindPrefAndInit } =
- Cu.import("resource://torbutton/modules/utils.js", {});
-let logger = Components.classes["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ ChromeUtils.import("resource://torbutton/modules/utils.js", {});
+let logger = Cc["@torproject.org/torbutton-logger;1"]
+ .getService(Ci.nsISupports).wrappedJSObject;
let log = (level, msg) => logger.log(level, msg);
// ### Constants
diff --git a/src/modules/tor-control-port.js b/src/modules/tor-control-port.js
index 2c399367..f1d9ed14 100644
--- a/src/modules/tor-control-port.js
+++ b/src/modules/tor-control-port.js
@@ -19,15 +19,15 @@
"use strict";
// ### Mozilla Abbreviations
-let {classes: Cc, interfaces: Ci, results: Cr, Constructor: CC, utils: Cu } = Components;
+let { Constructor: CC } = Components;
// ### Import Mozilla Services
-Cu.import("resource://gre/modules/Services.jsm");
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
// __log__.
// Logging function
let logger = Cc["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ .getService(Ci.nsISupports).wrappedJSObject;
let log = x => logger.eclog(3, x.trimRight().replace(/\r\n/g, "\n"));
// ### announce this file
@@ -42,8 +42,8 @@ let io = {};
// given ipcFile or host and port.
io.asyncSocketStreams = function (ipcFile, host, port) {
let sts = Cc["@mozilla.org/network/socket-transport-service;1"]
- .getService(Components.interfaces.nsISocketTransportService),
- UNBUFFERED = Ci.nsITransport.OPEN_UNBUFFERED;
+ .getService(Ci.nsISocketTransportService),
+ UNBUFFERED = Ci.nsITransport.OPEN_UNBUFFERED;
// Create an instance of a socket transport.
let socketTransport;
diff --git a/src/modules/utils.js b/src/modules/utils.js
index d7baca6e..7b81819d 100644
--- a/src/modules/utils.js
+++ b/src/modules/utils.js
@@ -1,14 +1,8 @@
// # Utils.js
// Various helpful utility functions.
-// ### Shortcut
-const { Cu: utils, Cr: results } = Components;
-
// ### Import Mozilla Services
-Cu.import("resource://gre/modules/Services.jsm");
-
-// ### Import global URL
-Cu.importGlobalProperties(["URL"]);
+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";
@@ -76,8 +70,8 @@ var observe = function (topic, callback) {
// __env__.
// Provides access to process environment variables.
-let env = Components.classes["@mozilla.org/process/environment;1"]
- .getService(Components.interfaces.nsIEnvironment);
+let env = Cc["@mozilla.org/process/environment;1"]
+ .getService(Ci.nsIEnvironment);
// __getEnv(name)__.
// Reads the environment variable of the given name.
@@ -88,8 +82,8 @@ var getEnv = function (name) {
// __getLocale
// Reads the browser locale, the default locale is en-US.
var getLocale = function() {
- return Services.locale.getRequestedLocale() || "en-US";
-}
+ return Services.locale.requestedLocale || "en-US";
+};
// ## Windows
1
0
[tor-launcher/master] Bug 29197: Remove use of overlays (ESR68 compatibility).
by gk@torproject.org 07 Aug '19
by gk@torproject.org 07 Aug '19
07 Aug '19
commit 8bc4a8869936cfc782d1f4c749f7608ead6ddf18
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Jul 30 16:34:27 2019 -0400
Bug 29197: Remove use of overlays (ESR68 compatibility).
Use the window.MozXULElement.parseXULToFragment() function to
parse shared XUL.
---
src/chrome/content/localePicker.xul | 4 +-
...ings-overlay.xul => network-settings-shared.js} | 48 +++++++++++-----------
src/chrome/content/network-settings-wizard.xul | 10 ++---
src/chrome/content/network-settings.js | 36 ++++++++++++++++
src/chrome/content/network-settings.xul | 18 ++++----
5 files changed, 76 insertions(+), 40 deletions(-)
diff --git a/src/chrome/content/localePicker.xul b/src/chrome/content/localePicker.xul
index 6030468..1d0987c 100644
--- a/src/chrome/content/localePicker.xul
+++ b/src/chrome/content/localePicker.xul
@@ -9,9 +9,7 @@
<?xml-stylesheet href="chrome://torlauncher/skin/network-settings.css"
type="text/css"?>
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<?xul-overlay href="chrome://torlauncher/content/network-settings-overlay.xul"?>
+<!DOCTYPE wizard SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
<wizard id="TorLauncherLocalePicker"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
diff --git a/src/chrome/content/network-settings-overlay.xul b/src/chrome/content/network-settings-shared.js
similarity index 91%
rename from src/chrome/content/network-settings-overlay.xul
rename to src/chrome/content/network-settings-shared.js
index 35b9fc7..206872b 100644
--- a/src/chrome/content/network-settings-overlay.xul
+++ b/src/chrome/content/network-settings-shared.js
@@ -1,16 +1,9 @@
-<?xml version="1.0"?>
-<!--
- - Copyright (c) 2018, The Tor Project, Inc.
- - See LICENSE for licensing information.
- - vim: set sw=2 sts=2 ts=8 et syntax=xml:
- -->
-
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<overlay id="TorNetworkSettingsOverlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- xmlns:html="http://www.w3.org/1999/xhtml">
+// Copyright (c) 2019, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+var proxySettings = `
<vbox id="proxySettings">
<hbox align="center">
<checkbox id="useProxy" groupboxID="proxySpecificSettings"
@@ -73,20 +66,16 @@
</grid>
</groupbox>
</vbox>
+`;
- <vbox id="proxyHelpContent">
+var proxyHelpContent = `
+ <vbox id="proxyHelpContent" hidden="true">
<hbox align="middle"><label>&torsettings.proxyHelpTitle;</label></hbox>
<description>&torsettings.proxyHelp1;</description>
</vbox>
+`;
- <groupbox id="firewallSpecificSettings">
- <hbox align="center">
- <label value="&torsettings.firewall.allowedPorts;"
- control="firewallAllowedPorts"/>
- <textbox id="firewallAllowedPorts" value="80,443"/>
- </hbox>
- </groupbox>
-
+var bridgeSettings = `
<vbox id="bridgeSettings">
<checkbox id="useBridges" groupboxID="bridgeSpecificSettings"
label="&torsettings.useBridges.checkbox;"
@@ -139,13 +128,17 @@
</vbox>
</groupbox>
</vbox>
+`;
- <vbox id="bridgeHelpContent">
+var bridgeHelpContent = `
+ <vbox id="bridgeHelpContent" hidden="true">
<hbox align="middle"><label>&torsettings.bridgeHelpTitle;</label></hbox>
<description>&torsettings.bridgeHelp1;</description>
<description>&torsettings.bridgeHelp2;</description>
</vbox>
+`;
+var progressContent = `
<vbox id="progressContent">
<hbox class="tbb-header" pack="center">
<image class="tbb-logo"/>
@@ -159,7 +152,9 @@
value="&torsettings.reconfigTor;"/>
</vbox>
</vbox>
+`;
+var restartContent = `
<vbox id="restartContent">
<hbox pack="center">
<description id="restartPanelMessage" flex="1"/>
@@ -170,7 +165,9 @@
oncommand="onRestartTor()"/>
</hbox>
</vbox>
+`;
+var bridgeDBRequestOverlayContent = `
<vbox id="bridgeDBRequestOverlayContent" align="center">
<vbox>
<label id="bridgeDBPrompt"/>
@@ -200,7 +197,9 @@
</hbox>
</vbox>
</vbox>
+`;
+var errorOverlayContent = `
<vbox id="errorOverlayContent">
<hbox pack="center">
<description errorElemId="message" flex="1"/>
@@ -211,10 +210,11 @@
oncommand="onDismissErrorOverlay()"/>
</hbox>
</vbox>
+`;
+var copyLogFeedbackPanel = `
<panel id="copyLogFeedbackPanel" type="arrow" fade="slow"
onclick="closeCopyLogFeedbackPanel()">
<description flex="1"/>
</panel>
-</overlay>
-
+`;
diff --git a/src/chrome/content/network-settings-wizard.xul b/src/chrome/content/network-settings-wizard.xul
index 00145a8..2eb6d6d 100644
--- a/src/chrome/content/network-settings-wizard.xul
+++ b/src/chrome/content/network-settings-wizard.xul
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!--
- - Copyright (c) 2018, The Tor Project, Inc.
+ - Copyright (c) 2019, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -9,9 +9,7 @@
<?xml-stylesheet href="chrome://torlauncher/skin/network-settings.css"
type="text/css"?>
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<?xul-overlay href="chrome://torlauncher/content/network-settings-overlay.xul"?>
+<!DOCTYPE wizard SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
<wizard id="TorNetworkSettings"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
@@ -127,8 +125,8 @@
<wizardpage class="help" pageid="helpPanel" next="notUsed"
onpageadvanced="closeHelp(); return false;">
- <vbox id="bridgeHelpContent" hidden="true"/>
- <vbox id="proxyHelpContent" hidden="true"/>
+ <vbox id="bridgeHelpContent"/>
+ <vbox id="proxyHelpContent"/>
</wizardpage>
<hbox pack="start">
diff --git a/src/chrome/content/network-settings.js b/src/chrome/content/network-settings.js
index b39a194..85dade2 100644
--- a/src/chrome/content/network-settings.js
+++ b/src/chrome/content/network-settings.js
@@ -10,6 +10,7 @@ const Ci = Components.interfaces;
const Cu = Components.utils;
const Cr = Components.results;
+Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherUtil",
"resource://torlauncher/modules/tl-util.jsm");
@@ -116,6 +117,8 @@ var gBridgeDBRequestEventListeners = [];
function initDialogCommon()
{
+ loadSharedXUL();
+
gObsService = Cc["@mozilla.org/observer-service;1"]
.getService(Ci.nsIObserverService);
@@ -158,6 +161,39 @@ function initDialogCommon()
}
+function loadSharedXUL()
+{
+ let ctxt = {};
+ Services.scriptloader.loadSubScript(
+ "chrome://torlauncher/content/network-settings-shared.js", ctxt);
+
+ let elementIDs =
+ [
+ "proxySettings",
+ "proxyHelpContent",
+ "bridgeSettings",
+ "bridgeHelpContent",
+ "progressContent",
+ "restartContent",
+ "bridgeDBRequestOverlayContent",
+ "errorOverlayContent",
+ "copyLogFeedbackPanel",
+ ];
+
+ let entityURLs = ["chrome://torlauncher/locale/network-settings.dtd"];
+ elementIDs.forEach(aID =>
+ {
+ let node = document.getElementById(aID);
+ if (node)
+ {
+ let xulStr = ctxt[aID];
+ let frag = window.MozXULElement.parseXULToFragment(xulStr, entityURLs);
+ node.parentNode.replaceChild(frag, node);
+ }
+ });
+}
+
+
function resizeDialogToFitContent()
{
// Resize this window to fit content. sizeToContent() alone will not do
diff --git a/src/chrome/content/network-settings.xul b/src/chrome/content/network-settings.xul
index 6f95183..2ba0741 100644
--- a/src/chrome/content/network-settings.xul
+++ b/src/chrome/content/network-settings.xul
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!--
- - Copyright (c) 2018, The Tor Project, Inc.
+ - Copyright (c) 2019, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -9,9 +9,7 @@
<?xml-stylesheet href="chrome://torlauncher/skin/network-settings.css"
type="text/css"?>
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<?xul-overlay href="chrome://torlauncher/content/network-settings-overlay.xul"?>
+<!DOCTYPE dialog SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
<dialog id="TorNetworkSettings"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
@@ -41,7 +39,13 @@
groupboxID="firewallSpecificSettings"
label="&torsettings.firewall.checkbox;"
oncommand="toggleElemUI(this)"/>
- <groupbox id="firewallSpecificSettings"/>
+ <groupbox id="firewallSpecificSettings">
+ <hbox align="center">
+ <label value="&torsettings.firewall.allowedPorts;"
+ control="firewallAllowedPorts"/>
+ <textbox id="firewallAllowedPorts" value="80,443"/>
+ </hbox>
+ </groupbox>
</vbox>
</vbox>
@@ -60,8 +64,8 @@
</vbox>
<vbox id="helpPanel" class="help">
- <vbox id="bridgeHelpContent" hidden="true"/>
- <vbox id="proxyHelpContent" hidden="true"/>
+ <vbox id="bridgeHelpContent"/>
+ <vbox id="proxyHelpContent"/>
</vbox>
<vbox id="restartPanel" class="messagePanel" pack="center">
1
0
[tor-launcher/master] Bug 31300: Modify Tor Launcher so it is compatible with ESR68
by gk@torproject.org 07 Aug '19
by gk@torproject.org 07 Aug '19
07 Aug '19
commit 1af54380f289426fea9dfa24c4fd6cf171046723
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Aug 2 10:23:31 2019 -0400
Bug 31300: Modify Tor Launcher so it is compatible with ESR68
Replace some wizard and dialog "on" attributes with event handlers.
Replace the XUL listbox element (which was removed by Mozilla) with
richlistbox.
Replace the XUL progressmeter element (which was removed by Mozilla) with
an HTML progress element.
Define our own CSS rules for groupbox elements (Mozilla removed the
built-in styles).
Fix some minor CSS incompatibilities.
---
src/chrome/content/localePicker.xul | 6 +-
src/chrome/content/network-settings-shared.js | 8 +--
src/chrome/content/network-settings-wizard.xul | 24 +++-----
src/chrome/content/network-settings.js | 76 +++++++++++++++++++++++---
src/chrome/content/network-settings.xul | 3 -
src/chrome/skin/network-settings.css | 14 +++--
6 files changed, 92 insertions(+), 39 deletions(-)
diff --git a/src/chrome/content/localePicker.xul b/src/chrome/content/localePicker.xul
index 1d0987c..152b54c 100644
--- a/src/chrome/content/localePicker.xul
+++ b/src/chrome/content/localePicker.xul
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!--
- - Copyright (c) 2017, The Tor Project, Inc.
+ - Copyright (c) 2019, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -16,8 +16,6 @@
title="&torlauncher.localePicker.title;"
windowtype="TorLauncher:LocalePicker"
persist="screenX screenY"
- onwizardfinish="return setLocale();"
- onwizardcancel="return onCancel();"
onload="initLocaleDialog();">
<script type="application/x-javascript"
@@ -31,7 +29,7 @@
<vbox>
<label class="question">&torlauncher.localePicker.prompt;</label>
<separator/>
- <listbox id="localeList" ondblclick="onLocaleListDoubleClick()"/>
+ <richlistbox id="localeList" ondblclick="onLocaleListDoubleClick()"/>
</vbox>
</wizardpage>
diff --git a/src/chrome/content/network-settings-shared.js b/src/chrome/content/network-settings-shared.js
index 206872b..f1bdb91 100644
--- a/src/chrome/content/network-settings-shared.js
+++ b/src/chrome/content/network-settings-shared.js
@@ -20,7 +20,7 @@ var proxySettings = `
<rows>
<row align="center">
<label value="&torsettings.useProxy.type;" control="proxyType"
- style="text-align:right"/>
+ class="rightAlign"/>
<hbox align="center">
<menulist id="proxyType" sizetopopup="always"
placeholder="&torsettings.useProxy.type.placeholder;"
@@ -38,7 +38,7 @@ var proxySettings = `
</row>
<row align="center">
<label value="&torsettings.useProxy.address;" control="proxyAddr"
- style="text-align:right"/>
+ class="rightAlign"/>
<hbox align="center">
<textbox id="proxyAddr" size="20" flex="1"
placeholder="&torsettings.useProxy.address.placeholder;"/>
@@ -50,7 +50,7 @@ var proxySettings = `
<row align="center">
<label id="proxyUsernameLabel"
value="&torsettings.useProxy.username;"
- control="proxyUsername" style="text-align:right"/>
+ control="proxyUsername" class="rightAlign"/>
<hbox align="center">
<textbox id="proxyUsername" size="14" flex="1"
placeholder="&torsettings.optional;"/>
@@ -146,7 +146,7 @@ var progressContent = `
<vbox flex="1">
<description id="progressPleaseWait"
hidden="true">&torprogress.pleaseWait;</description>
- <progressmeter id="progressMeter" mode="determined" value="0"/>
+ <html:progress id="progressMeter" value="0" max="100"/>
<description id="progressDesc" errorElemId="message"/>
<label id="progressReconfigureLabel" hidden="true"
value="&torsettings.reconfigTor;"/>
diff --git a/src/chrome/content/network-settings-wizard.xul b/src/chrome/content/network-settings-wizard.xul
index 2eb6d6d..ec48bd0 100644
--- a/src/chrome/content/network-settings-wizard.xul
+++ b/src/chrome/content/network-settings-wizard.xul
@@ -1,4 +1,3 @@
-<?xml version="1.0"?>
<!--
- Copyright (c) 2019, The Tor Project, Inc.
- See LICENSE for licensing information.
@@ -17,15 +16,13 @@
windowtype="TorLauncher:NetworkSettings"
persist="screenX screenY"
buttonlabelextra2="&torsettings.copyLog;"
- onwizardfinish="return onWizardFinish();"
- onwizardcancel="return onCancel();"
onload="initDialog();"
onunload="deinitDialog();">
<script type="application/x-javascript"
src="chrome://torlauncher/content/network-settings.js"/>
- <wizardpage pageid="first" next="configureSettings" onextra2="onCopyLog();"
+ <wizardpage pageid="first" next="configureSettings"
torShowNavButtons="false">
<hbox class="tbb-header" pack="center">
<image class="tbb-logo"/>
@@ -44,7 +41,7 @@
</vbox>
</wizardpage>
- <wizardpage pageid="configureSettings" onextra2="onCopyLog();"
+ <wizardpage pageid="configureSettings"
windowtitle="&torsettings.wizard.title.configure;"
torShowNavButtons="true">
<stack flex="1">
@@ -63,11 +60,9 @@
</stack>
</wizardpage>
- <wizardpage pageid="progress" onextra2="onCopyLog();"
+ <wizardpage pageid="progress"
windowtitle="&torsettings.wizard.title.connecting;"
- torShowNavButtons="false"
- onpageshow="onShowProgressPanel();"
- onpagehide="return resetProgressNavButtons();">
+ torShowNavButtons="false">
<vbox id="progressContent"/>
</wizardpage>
@@ -86,12 +81,12 @@
</wizardpage>
<wizardpage pageid="restartPanel" class="messagePanel" next="notUsed"
- pack="center" torShowNavButtons="false" onextra2="onCopyLog();">
+ pack="center" torShowNavButtons="false">
<vbox id="restartContent"/>
</wizardpage>
<wizardpage pageid="errorPanel" class="messagePanel" next="notUsed"
- torShowNavButtons="false" onextra2="onCopyLog();">
+ torShowNavButtons="false">
<spring flex="1"/>
<hbox pack="center">
<description errorElemId="message" flex="1"/>
@@ -104,8 +99,8 @@
<spring flex="1"/>
</wizardpage>
- <wizardpage pageid="discardSettings" next="notUsed" torShowNavButtons="false"
- onextra2="onCopyLog();">
+ <wizardpage pageid="discardSettings" next="notUsed"
+ torShowNavButtons="false">
<hbox class="tbb-header" pack="center">
<image class="tbb-logo"/>
</hbox>
@@ -123,8 +118,7 @@
<spring flex="1"/>
</wizardpage>
- <wizardpage class="help" pageid="helpPanel" next="notUsed"
- onpageadvanced="closeHelp(); return false;">
+ <wizardpage class="help" pageid="helpPanel" next="notUsed">
<vbox id="bridgeHelpContent"/>
<vbox id="proxyHelpContent"/>
</wizardpage>
diff --git a/src/chrome/content/network-settings.js b/src/chrome/content/network-settings.js
index 85dade2..a4f2866 100644
--- a/src/chrome/content/network-settings.js
+++ b/src/chrome/content/network-settings.js
@@ -157,6 +157,51 @@ function initDialogCommon()
.getService(Ci.nsIEnvironment);
if (env.exists("TOR_HIDE_BROWSER_LOGO"))
wizardElem.setAttribute("tor_hide_browser_logo", true);
+
+ // Add wizard event listeners.
+ document.addEventListener("wizardcancel", (aEvent) => {
+ if (!onCancel())
+ aEvent.preventDefault();
+ });
+
+ document.addEventListener("pageadvanced", (aEvent) => {
+ if ("helpPanel" == wizardElem.currentPage.pageid)
+ {
+ closeHelp();
+ aEvent.preventDefault();
+ }
+ });
+
+ document.addEventListener("pageshow", (aEvent) => {
+ if (kWizardProgressPageID == wizardElem.currentPage.pageid)
+ onShowProgressPanel();
+ });
+
+ document.addEventListener("pagehide", (aEvent) => {
+ if (kWizardProgressPageID == wizardElem.currentPage.pageid)
+ resetProgressNavButtons();
+ });
+
+ document.addEventListener("extra2", (aEvent) => {
+ onCopyLog();
+ });
+ }
+ else
+ {
+ // Add network settings dialog event listeners.
+ document.addEventListener("dialogaccept", (aEvent) => {
+ if (!onNetworkSettingsFinish())
+ aEvent.preventDefault();
+ });
+
+ document.addEventListener("dialogcancel", (aEvent) => {
+ if (!onCancel())
+ aEvent.preventDefault();
+ });
+
+ document.addEventListener("dialogextra2", (aEvent) => {
+ onCopyLog();
+ });
}
}
@@ -239,6 +284,12 @@ function initDialog()
let haveWizard = (wizardElem != null);
if (haveWizard)
{
+ // Add wizardfinish event handler.
+ document.addEventListener("wizardfinish", (aEvent) => {
+ if (!onWizardFinish())
+ aEvent.preventDefault();
+ });
+
// Relabel the accept button to be "Connect"
let okBtn = document.documentElement.getButton("accept");
if (okBtn)
@@ -316,6 +367,11 @@ function initLocaleDialog()
{
initDialogCommon();
+ // Add wizardfinish event handler.
+ document.addEventListener("wizardfinish", (aEvent) => {
+ setLocale();
+ });
+
// Replace the finish button's label ("Done") with the next button's
// label ("Next" or "Continue").
let nextBtn = document.documentElement.getButton("next");
@@ -324,7 +380,8 @@ function initLocaleDialog()
doneBtn.label = nextBtn.label;
let { AddonManager } = Cu.import("resource://gre/modules/AddonManager.jsm");
- AddonManager.getAddonsByTypes(["locale"], function(aLangPackAddons)
+ let addonsPromise = AddonManager.getAddonsByTypes(["locale"]);
+ addonsPromise.then(aLangPackAddons =>
{
populateLocaleList(aLangPackAddons);
resizeDialogToFitContent();
@@ -421,13 +478,15 @@ function populateLocaleList(aLangPackAddons)
langInfo.splice(0, 0,
{ langCode: code, langName: name, isSelected: isSelected });
- // Populate the XUL listbox.
+ // Populate the XUL richlistbox.
let localeList = document.getElementById(kLocaleList);
for (let infoObj of langInfo)
{
- let listItem = document.createElement("listitem");
+ let listItem = document.createElement("richlistitem");
listItem.setAttribute("value", infoObj.langCode);
- listItem.setAttribute("label", infoObj.langName);
+ let label = document.createElement("label");
+ label.value = infoObj.langName;
+ listItem.appendChild(label);
localeList.appendChild(listItem);
if (infoObj.isSelected)
localeList.selectedItem = listItem;
@@ -807,7 +866,6 @@ function resetProgressNavButtons()
restoreButtonLabel("finish");
showOrHideButton("cancel", true, false);
- return true;
}
@@ -905,7 +963,7 @@ function updateBootstrapProgress(aStatusObj)
let meter = document.getElementById("progressMeter");
if (meter)
{
- meter.value = percentComplete;
+ meter.setAttribute("value", percentComplete);
showProgressMeterIfNoError();
}
@@ -1968,7 +2026,7 @@ function showProgressPanel()
let meter = document.getElementById("progressMeter");
if (meter)
{
- meter.value = 0;
+ meter.setAttribute("value", 0);
meter.style.visibility = "hidden";
}
@@ -2428,7 +2486,7 @@ function setElemValue(aID, aValue)
}
// fallthru
case "menulist":
- case "listbox":
+ case "richlistbox":
case "label":
elem.value = (val) ? val : "";
break;
@@ -2482,7 +2540,7 @@ function getElemValue(aID, aDefaultValue)
break;
case "textbox":
case "menulist":
- case "listbox":
+ case "richlistbox":
rv = elem.value;
break;
}
diff --git a/src/chrome/content/network-settings.xul b/src/chrome/content/network-settings.xul
index 2ba0741..6a8fac4 100644
--- a/src/chrome/content/network-settings.xul
+++ b/src/chrome/content/network-settings.xul
@@ -18,9 +18,6 @@
persist="screenX screenY"
buttons="accept,cancel,extra2"
buttonlabelextra2="&torsettings.copyLog;"
- ondialogaccept="return onNetworkSettingsFinish();"
- ondialogcancel="return onCancel();"
- ondialogextra2="onCopyLog();"
onload="initDialog();"
onunload="deinitDialog();">
diff --git a/src/chrome/skin/network-settings.css b/src/chrome/skin/network-settings.css
index 40ca0f0..9fed4f2 100644
--- a/src/chrome/skin/network-settings.css
+++ b/src/chrome/skin/network-settings.css
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018, The Tor Project, Inc.
+ * Copyright (c) 2019, The Tor Project, Inc.
* See LICENSE for licensing information.
*
* vim: set sw=2 sts=2 ts=8 et syntax=css:
@@ -47,8 +47,14 @@ wizard label {
margin: 0px;
}
-wizard radiogroup {
- margin: 5px 0px 8px 25px;
+.rightAlign {
+ text-align: right;
+}
+
+groupbox {
+ margin-left: 16px;
+ padding: 8px;
+ border: 1px solid GrayText;
}
.tbb-header groupbox {
@@ -57,7 +63,7 @@ wizard radiogroup {
margin-bottom: 0px;
}
-.firstResponses label {
+.firstResponses > label {
text-align: center;
margin-top: 1.2em;
}
1
0
[tor-browser/tor-browser-60.8.0esr-9.0-1] Bug 31344: Actually register SecurityLevelPreference's 'unload' callback in privacy.js
by gk@torproject.org 07 Aug '19
by gk@torproject.org 07 Aug '19
07 Aug '19
commit d48c3fa6ace654296c78210e370838bcaaf4078c
Author: Richard Pospesel <richard(a)torproject.org>
Date: Mon Aug 5 15:44:15 2019 -0700
Bug 31344: Actually register SecurityLevelPreference's 'unload' callback in privacy.js
---
browser/components/preferences/in-content/privacy.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/browser/components/preferences/in-content/privacy.js b/browser/components/preferences/in-content/privacy.js
index d2229d136261..3997f22d63ad 100644
--- a/browser/components/preferences/in-content/privacy.js
+++ b/browser/components/preferences/in-content/privacy.js
@@ -161,6 +161,7 @@ var gPrivacyPane = {
window.removeEventListener("unload", unload);
SecurityLevelPreferences.uninit();
};
+ window.addEventListener("unload", unload);
},
/**
1
0