[tbb-commits] [torbutton/maint-9.0] Bug 30888: move torbutton_util.js to modules/utils.js
sysrqb at torproject.org
sysrqb at torproject.org
Fri Jan 3 20:38:36 UTC 2020
commit ed3fafebab28d005e22208aa921e5f5c7c54153f
Author: Alex Catarineu <acat at torproject.org>
Date: Mon Jun 17 19:16:47 2019 +0200
Bug 30888: move torbutton_util.js to modules/utils.js
---
chrome/content/preferences.xhtml | 1 -
chrome/content/tor-circuit-display.js | 9 +---
chrome/content/torbutton.js | 32 +++++++-------
chrome/content/torbutton_util.js | 79 -----------------------------------
components/external-app-blocker.js | 16 +++----
modules/utils.js | 54 +++++++++++++++++++++++-
6 files changed, 80 insertions(+), 111 deletions(-)
diff --git a/chrome/content/preferences.xhtml b/chrome/content/preferences.xhtml
index 6f662f5f..eafbf01e 100644
--- a/chrome/content/preferences.xhtml
+++ b/chrome/content/preferences.xhtml
@@ -6,7 +6,6 @@
<title>&torbutton.prefs.security_settings;</title>
<link type="text/css" rel="stylesheet" charset="UTF-8" href="chrome://torbutton/skin/preferences.css"/>
<link type="text/css" rel="stylesheet" charset="UTF-8" href="chrome://torbutton/skin/preferences-mobile.css"/>
- <script type="text/javascript" src="torbutton_util.js"></script>
<script type="text/javascript" src="preferences-mobile.js"></script>
<style>
</style>
diff --git a/chrome/content/tor-circuit-display.js b/chrome/content/tor-circuit-display.js
index 1e58b2b4..19b55d18 100644
--- a/chrome/content/tor-circuit-display.js
+++ b/chrome/content/tor-circuit-display.js
@@ -32,7 +32,7 @@ const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
let { controller } = ChromeUtils.import("resource://torbutton/modules/tor-control-port.js", {});
// Utility functions
-let { bindPrefAndInit, observe, getLocale, getDomainForBrowser } = ChromeUtils.import("resource://torbutton/modules/utils.js", {});
+let { bindPrefAndInit, observe, getLocale, getDomainForBrowser, torbutton_get_property_string } = ChromeUtils.import("resource://torbutton/modules/utils.js", {});
// Make the TorButton logger available.
let logger = Cc["@torproject.org/torbutton-logger;1"]
@@ -204,15 +204,10 @@ let collectBrowserCredentials = function () {
// ## User interface
-// __torbuttonBundle__.
-// Bundle of localized strings for torbutton UI.
-let torbuttonBundle = Services.strings.createBundle(
- "chrome://torbutton/locale/torbutton.properties");
-
// __uiString__.
// Read the localized strings for this UI.
let uiString = function (shortName) {
- return torbuttonBundle.GetStringFromName("torbutton.circuit_display." + shortName);
+ return torbutton_get_property_string("torbutton.circuit_display." + shortName);
};
// __localizedCountryNameFromCode(countryCode)__.
diff --git a/chrome/content/torbutton.js b/chrome/content/torbutton.js
index e75584cf..0ca37789 100644
--- a/chrome/content/torbutton.js
+++ b/chrome/content/torbutton.js
@@ -1,3 +1,9 @@
+// window globals
+var torbutton_init;
+var torbutton_new_circuit;
+var torbutton_new_identity;
+
+(() => {
// Bug 1506 P1-P5: This is the main Torbutton overlay file. Much needs to be
// preserved here, but in an ideal world, most of this code should perhaps be
// moved into an XPCOM service, and much can also be tossed. See also
@@ -7,18 +13,20 @@
// TODO: Double-check there are no strange exploits to defeat:
// http://kb.mozillazine.org/Links_to_local_pages_don%27t_work
-/* global torbutton_log, gBrowser, torbutton_safelog, CustomizableUI,
- createTorCircuitDisplay, torbutton_get_property_string, gFindBarInitialized,
- gFindBar, OpenBrowserWindow, PrivateBrowsingUtils, torbutton_get_stringbundle,
+/* global gBrowser, CustomizableUI,
+ createTorCircuitDisplay, gFindBarInitialized,
+ gFindBar, OpenBrowserWindow, PrivateBrowsingUtils,
Services, AppConstants
*/
let {
- showDialog,
show_torbrowser_manual,
unescapeTorString,
bindPrefAndInit,
getDomainForBrowser,
+ torbutton_safelog,
+ torbutton_log,
+ torbutton_get_property_string,
} = ChromeUtils.import("resource://torbutton/modules/utils.js", {});
let SecurityPrefs = ChromeUtils.import("resource://torbutton/modules/security-prefs.js", {});
let { configureControlPortModule } = Cu.import("resource://torbutton/modules/tor-control-port.js", {});
@@ -32,15 +40,10 @@ var m_tb_prefs = Services.prefs;
// status
var m_tb_wasinited = false;
-var m_tb_plugin_string = false;
var m_tb_is_main_window = false;
-var m_tb_hidden_browser = false;
var m_tb_confirming_plugins = false;
-var m_tb_window_height = window.outerHeight;
-var m_tb_window_width = window.outerWidth;
-
var m_tb_control_ipc_file = null; // Set if using IPC (UNIX domain socket).
var m_tb_control_port = null; // Set if using TCP.
var m_tb_control_host = null; // Set if using TCP.
@@ -232,7 +235,7 @@ function torbutton_is_mobile() {
// Bug 1506 P2-P4: This code sets some version variables that are irrelevant.
// It does read out some important environment variables, though. It is
// called once per browser window.. This might belong in a component.
-function torbutton_init() {
+torbutton_init = function() {
torbutton_log(3, 'called init()');
SecurityPrefs.initialize();
@@ -746,7 +749,7 @@ function torbutton_send_ctrl_cmd(command) {
}
// Bug 1506 P4: Needed for New IP Address
-function torbutton_new_circuit() {
+torbutton_new_circuit = function() {
let firstPartyDomain = getDomainForBrowser(gBrowser.selectedBrowser);
let domainIsolator = Cc["@torproject.org/domain-isolator;1"]
@@ -758,7 +761,7 @@ function torbutton_new_circuit() {
}
// Bug 1506 P4: Needed for New Identity.
-async function torbutton_new_identity() {
+torbutton_new_identity = async function() {
try {
// Make sure that we can only click once on New Identiy to avoid race
// conditions leading to failures (see bug 11783 for an example).
@@ -1720,9 +1723,6 @@ function torbutton_new_window(event)
return;
}
- m_tb_window_height = window.outerHeight;
- m_tb_window_width = window.outerWidth;
-
if (!m_tb_wasinited) {
torbutton_init();
}
@@ -1906,5 +1906,5 @@ function torbutton_init_user_manual_links() {
torbutton_abouttor_message_handler.updateAllOpenPages();
});
}
-
+})();
//vim:set ts=4
diff --git a/chrome/content/torbutton_util.js b/chrome/content/torbutton_util.js
deleted file mode 100644
index e6446cde..00000000
--- a/chrome/content/torbutton_util.js
+++ /dev/null
@@ -1,79 +0,0 @@
-// Bug 1506 P1-P3: These utility functions might be useful, but
-// you probably just want to rewrite them or use the underlying
-// code directly. I don't see any of them as essential for 1506,
-// really.
-
-var m_tb_torlog = Cc["@torproject.org/torbutton-logger;1"]
-.getService(Ci.nsISupports).wrappedJSObject;
-
-var m_tb_string_bundle = torbutton_get_stringbundle();
-
-function torbutton_safelog(nLevel, sMsg, scrub) {
- m_tb_torlog.safe_log(nLevel, sMsg, scrub);
- return true;
-}
-
-function torbutton_log(nLevel, sMsg) {
- m_tb_torlog.log(nLevel, sMsg);
-
- // So we can use it in boolean expressions to determine where the
- // short-circuit is..
- return true;
-}
-
-// get a preferences branch object
-// FIXME: this is lame.
-function torbutton_get_prefbranch(branch_name) {
- var o_prefs = false;
- var o_branch = false;
-
- torbutton_log(1, "called get_prefbranch()");
- o_prefs = Services.prefs;
- if (!o_prefs) {
- torbutton_log(5, "Failed to get preferences-service!");
- return false;
- }
-
- o_branch = o_prefs.getBranch(branch_name);
- if (!o_branch)
- {
- torbutton_log(5, "Failed to get prefs branch!");
- return false;
- }
-
- return o_branch;
-}
-
-// load localization strings
-function torbutton_get_stringbundle()
-{
- var o_stringbundle = false;
-
- try {
- var oBundle = Services.strings;
- o_stringbundle = oBundle.createBundle("chrome://torbutton/locale/torbutton.properties");
- } catch(err) {
- o_stringbundle = false;
- }
- if (!o_stringbundle) {
- torbutton_log(5, 'ERROR (init): failed to find torbutton-bundle');
- }
-
- return o_stringbundle;
-}
-
-function torbutton_get_property_string(propertyname)
-{
- try {
- if (!m_tb_string_bundle) {
- m_tb_string_bundle = torbutton_get_stringbundle();
- }
-
- return m_tb_string_bundle.GetStringFromName(propertyname);
- } catch(e) {
- torbutton_log(4, "Unlocalized string "+propertyname);
- }
-
- return propertyname;
-}
-
diff --git a/components/external-app-blocker.js b/components/external-app-blocker.js
index afd5c002..9d5cbd79 100644
--- a/components/external-app-blocker.js
+++ b/components/external-app-blocker.js
@@ -16,6 +16,8 @@ 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");
+let { torbutton_get_property_string } = ChromeUtils.import("resource://torbutton/modules/utils.js", {});
+
// Module specific constants
const kMODULE_NAME = "Torbutton External App Handler";
const kCONTRACT_ID = "@torproject.org/torbutton-extAppBlocker;1";
@@ -82,13 +84,13 @@ ExternalAppBlocker.prototype =
parentWin = Services.wm.getMostRecentWindow("navigator:browser");
}
- let title = parentWin.torbutton_get_property_string("torbutton.popup.external.title");
- let app = parentWin.torbutton_get_property_string("torbutton.popup.external.app");
- let note = parentWin.torbutton_get_property_string("torbutton.popup.external.note");
- let suggest = parentWin.torbutton_get_property_string("torbutton.popup.external.suggest");
- let launch = parentWin.torbutton_get_property_string("torbutton.popup.launch");
- let cancel = parentWin.torbutton_get_property_string("torbutton.popup.cancel");
- let dontask = parentWin.torbutton_get_property_string("torbutton.popup.dontask");
+ let title = torbutton_get_property_string("torbutton.popup.external.title");
+ let app = torbutton_get_property_string("torbutton.popup.external.app");
+ let note = torbutton_get_property_string("torbutton.popup.external.note");
+ let suggest = torbutton_get_property_string("torbutton.popup.external.suggest");
+ let launch = torbutton_get_property_string("torbutton.popup.launch");
+ let cancel = torbutton_get_property_string("torbutton.popup.cancel");
+ let dontask = torbutton_get_property_string("torbutton.popup.dontask");
let args = {
promptType: "confirmEx",
diff --git a/modules/utils.js b/modules/utils.js
index 0caf475f..b726342b 100644
--- a/modules/utils.js
+++ b/modules/utils.js
@@ -239,6 +239,58 @@ var getDomainForBrowser = (browser) => {
return fpd;
};
+var m_tb_torlog = Cc["@torproject.org/torbutton-logger;1"]
+.getService(Ci.nsISupports).wrappedJSObject;
+
+var m_tb_string_bundle = torbutton_get_stringbundle();
+
+function torbutton_safelog(nLevel, sMsg, scrub) {
+ m_tb_torlog.safe_log(nLevel, sMsg, scrub);
+ return true;
+}
+
+function torbutton_log(nLevel, sMsg) {
+ m_tb_torlog.log(nLevel, sMsg);
+
+ // So we can use it in boolean expressions to determine where the
+ // short-circuit is..
+ return true;
+}
+
+// load localization strings
+function torbutton_get_stringbundle()
+{
+ var o_stringbundle = false;
+
+ try {
+ var oBundle = Services.strings;
+ o_stringbundle = oBundle.createBundle("chrome://torbutton/locale/torbutton.properties");
+ } catch(err) {
+ o_stringbundle = false;
+ }
+ if (!o_stringbundle) {
+ torbutton_log(5, 'ERROR (init): failed to find torbutton-bundle');
+ }
+
+ return o_stringbundle;
+}
+
+function torbutton_get_property_string(propertyname)
+{
+ try {
+ if (!m_tb_string_bundle) {
+ m_tb_string_bundle = torbutton_get_stringbundle();
+ }
+
+ return m_tb_string_bundle.GetStringFromName(propertyname);
+ } catch(e) {
+ torbutton_log(4, "Unlocalized string "+propertyname);
+ }
+
+ return propertyname;
+}
+
// Export utility functions for external use.
let EXPORTED_SYMBOLS = ["bindPref", "bindPrefAndInit", "getEnv", "getLocale", "getDomainForBrowser",
- "getPrefValue", "observe", "showDialog", "show_torbrowser_manual", "unescapeTorString"];
+ "getPrefValue", "observe", "showDialog", "show_torbrowser_manual", "unescapeTorString",
+ "torbutton_safelog", "torbutton_log", "torbutton_get_property_string"];
More information about the tbb-commits
mailing list