[tor-commits] [torbutton/master] Bug 9114: Workaround for missing translation properties.
mikeperry at torproject.org
mikeperry at torproject.org
Wed Oct 30 03:22:50 UTC 2013
commit 48c844155693bcbc5fe7bdb2f75eac87b54bdf6c
Author: Mike Perry <mikeperry-git at torproject.org>
Date: Tue Oct 29 20:04:00 2013 -0700
Bug 9114: Workaround for missing translation properties.
Displaying the property name is better than throwing uncaught exceptions...
---
src/chrome/content/preferences.js | 12 +++----
src/chrome/content/torbutton.js | 58 +++++++++++++-------------------
src/chrome/content/torbutton_util.js | 17 ++++++++++
src/components/external-app-blocker.js | 16 ++++-----
4 files changed, 52 insertions(+), 51 deletions(-)
diff --git a/src/chrome/content/preferences.js b/src/chrome/content/preferences.js
index 5a32c13..7f23ddf 100644
--- a/src/chrome/content/preferences.js
+++ b/src/chrome/content/preferences.js
@@ -236,8 +236,7 @@ function torbutton_prefs_save(doc) {
var chrome = wm.getMostRecentWindow("navigator:browser");
var ret = chrome.torbutton_test_settings();
if (ret != 4) {
- var strings = torbutton_get_stringbundle();
- var warning = strings.GetStringFromName("torbutton.popup.test.failure");
+ var warning = chrome.torbutton_get_property_string("torbutton.popup.test.failure");
window.alert(warning);
} else {
o_torprefs.setBoolPref('tor_enabled', true);
@@ -289,11 +288,10 @@ function torbutton_prefs_test_settings() {
.getService(Components.interfaces.nsIWindowMediator);
var chrome = wm.getMostRecentWindow("navigator:browser");
- var strings = torbutton_get_stringbundle();
if(chrome.m_tb_ff3) {
// FIXME: This is kind of ghetto.. can we make a progress
// bar or a window that updates itself?
- var warning = strings.GetStringFromName("torbutton.popup.test.ff3_notice");
+ var warning = chrome.torbutton_get_property_string("torbutton.popup.test.ff3_notice");
window.alert(warning);
}
var ret = chrome.torbutton_test_settings();
@@ -319,11 +317,11 @@ function torbutton_prefs_test_settings() {
window.alert("Tor proxy test: No TorCheckResult id found (response not valid XHTML)");
break;
case 4:
- var warning = strings.GetStringFromName("torbutton.popup.test.success");
+ var warning = chrome.torbutton_get_property_string("torbutton.popup.test.success");
window.alert(warning);
break;
case 5:
- var warning = strings.GetStringFromName("torbutton.popup.test.failure");
+ var warning = chrome.torbutton_get_property_string("torbutton.popup.test.failure");
window.alert(warning);
break;
case 6:
@@ -333,7 +331,7 @@ function torbutton_prefs_test_settings() {
window.alert("Tor proxy test: check.torproject.org returned bad result");
break;
case 8:
- var warning = strings.GetStringFromName("torbutton.popup.test.no_http_proxy");
+ var warning = chrome.torbutton_get_property_string("torbutton.popup.test.no_http_proxy");
window.alert(warning);
break;
}
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 2295605..b5aae62 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -310,15 +310,14 @@ function torbutton_set_status() {
var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var chrome = wm.getMostRecentWindow("navigator:browser");
- var o_stringbundle = torbutton_get_stringbundle();
- var warning1 = o_stringbundle.GetStringFromName("torbutton.popup.pref_error");
+ var warning1 = torbutton_get_property_string("torbutton.popup.pref_error");
if (e.result == 0x80520015 || e.result == 0x80520013) { // NS_ERROR_FILE_ACCESS_DENIED/NS_ERROR_FILE_READ_ONLY
- var warning2 = o_stringbundle.GetStringFromName("torbutton.popup.permission_denied");
+ var warning2 = torbutton_get_property_string("torbutton.popup.permission_denied");
chrome.alert(warning1+"\n\n"+warning2);
} else if (e.result == 0x80520010) { // NS_ERROR_FILE_NO_DEVICE_SPACE
var o_stringbundle = torbutton_get_stringbundle();
- var warning2 = o_stringbundle.GetStringFromName("torbutton.popup.device_full");
+ var warning2 = torbutton_get_property_string("torbutton.popup.device_full");
chrome.alert(warning1+"\n\n"+warning2);
} else {
// This should never happen..
@@ -342,15 +341,13 @@ function torbutton_set_status() {
var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var chrome = wm.getMostRecentWindow("navigator:browser");
- var o_stringbundle = torbutton_get_stringbundle();
- var warning1 = o_stringbundle.GetStringFromName("torbutton.popup.pref_error");
+ var warning1 = torbutton_get_property_string("torbutton.popup.pref_error");
if (e.result == 0x80520015 || e.result == 0x80520013) { // NS_ERROR_FILE_ACCESS_DENIED/NS_ERROR_FILE_READ_ONLY
- var warning2 = o_stringbundle.GetStringFromName("torbutton.popup.permission_denied");
+ var warning2 = torbutton_get_property_string("torbutton.popup.permission_denied");
chrome.alert(warning1+"\n\n"+warning2);
} else if (e.result == 0x80520010) { // NS_ERROR_FILE_NO_DEVICE_SPACE
- var o_stringbundle = torbutton_get_stringbundle();
- var warning2 = o_stringbundle.GetStringFromName("torbutton.popup.device_full");
+ var warning2 = torbutton_get_property_string("torbutton.popup.device_full");
chrome.alert(warning1+"\n\n"+warning2);
} else {
// This should never happen..
@@ -565,8 +562,7 @@ function torbutton_prompt_for_language_preference() {
// Display two buttons, both with string titles.
var flags = prompts.STD_YES_NO_BUTTONS;
- var strings = torbutton_get_stringbundle();
- var message = strings.GetStringFromName("torbutton.popup.prompted_language");
+ var message = torbutton_get_property_string("torbutton.popup.prompted_language");
var response = prompts.confirmEx(null, "", message, flags, null, null, null,
null, {value: false});
@@ -599,9 +595,8 @@ function torbutton_confirm_plugins() {
// Display two buttons, both with string titles.
var flags = prompts.STD_YES_NO_BUTTONS + prompts.BUTTON_DELAY_ENABLE;
- var strings = torbutton_get_stringbundle();
- var message = strings.GetStringFromName("torbutton.popup.confirm_plugins");
- var askAgainText = strings.GetStringFromName("torbutton.popup.never_ask_again");
+ var message = torbutton_get_property_string("torbutton.popup.confirm_plugins");
+ var askAgainText = torbutton_get_property_string("torbutton.popup.never_ask_again");
var askAgain = {value: false};
var no_plugins = (prompts.confirmEx(null, "", message, flags, null, null, null,
@@ -644,9 +639,8 @@ function torbutton_inform_about_tbb() {
var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
.getService(Components.interfaces.nsIPromptService);
- var strings = torbutton_get_stringbundle();
- var message = strings.GetStringFromName("torbutton.popup.prompt_torbrowser");
- var title = strings.GetStringFromName("torbutton.title.prompt_torbrowser");
+ 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"]
@@ -1170,8 +1164,7 @@ function torbutton_enable_tor(force)
torbutton_log(3, 'called enable_tor()');
if(!force && m_tb_prefs.getBoolPref("extensions.torbutton.test_failed")) {
- var strings = torbutton_get_stringbundle();
- var warning = strings.GetStringFromName("torbutton.popup.test.confirm_toggle");
+ var warning = torbutton_get_property_string("torbutton.popup.test.confirm_toggle");
var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var chrome = wm.getMostRecentWindow("navigator:browser");
@@ -1189,15 +1182,14 @@ function torbutton_update_toolbutton(mode)
{
var o_toolbutton = torbutton_get_toolbutton();
if (!o_toolbutton) return;
- var o_stringbundle = torbutton_get_stringbundle();
var tooltip = "";
if (mode && torbutton_tor_check_ok()) {
- tooltip = o_stringbundle.GetStringFromName("torbutton.panel.label.enabled");
+ tooltip = torbutton_get_property_string("torbutton.panel.label.enabled");
o_toolbutton.setAttribute('tbstatus', 'on');
o_toolbutton.setAttribute('tooltiptext', tooltip);
} else {
- tooltip = o_stringbundle.GetStringFromName("torbutton.panel.label.disabled");
+ tooltip = torbutton_get_property_string("torbutton.panel.label.disabled");
o_toolbutton.setAttribute('tbstatus', 'off');
o_toolbutton.setAttribute('tooltiptext', tooltip);
}
@@ -1208,20 +1200,19 @@ function torbutton_update_statusbar(mode)
{
var o_statuspanel = torbutton_get_statuspanel();
if (!window.statusbar.visible) return;
- var o_stringbundle = torbutton_get_stringbundle();
var label = "";
var tooltip = "";
if (mode && torbutton_tor_check_ok()) {
- label = o_stringbundle.GetStringFromName("torbutton.panel.label.enabled");
- tooltip = o_stringbundle.GetStringFromName("torbutton.panel.tooltip.enabled");
+ label = torbutton_get_property_string("torbutton.panel.label.enabled");
+ tooltip = torbutton_get_property_string("torbutton.panel.tooltip.enabled");
o_statuspanel.style.color = "#390";
o_statuspanel.setAttribute('label', label);
o_statuspanel.setAttribute('tooltiptext', tooltip);
o_statuspanel.setAttribute('tbstatus', 'on');
} else {
- label = o_stringbundle.GetStringFromName("torbutton.panel.label.disabled");
- tooltip = o_stringbundle.GetStringFromName("torbutton.panel.tooltip.disabled");
+ label = torbutton_get_property_string("torbutton.panel.label.disabled");
+ tooltip = torbutton_get_property_string("torbutton.panel.tooltip.disabled");
o_statuspanel.style.color = "#F00";
o_statuspanel.setAttribute('label', label);
o_statuspanel.setAttribute('tooltiptext', tooltip);
@@ -1600,14 +1591,12 @@ function torbutton_do_new_identity() {
// We only support TBB for newnym.
if (!m_tb_control_pass || !m_tb_control_port) {
- var o_stringbundle = torbutton_get_stringbundle();
- var warning = o_stringbundle.GetStringFromName("torbutton.popup.no_newnym");
+ var warning = torbutton_get_property_string("torbutton.popup.no_newnym");
torbutton_log(5, "Torbutton cannot safely newnym. It does not have access to the Tor Control Port.");
window.alert(warning);
} else {
if (!torbutton_send_ctrl_cmd("SIGNAL NEWNYM\r\n")) {
- var o_stringbundle = torbutton_get_stringbundle();
- var warning = o_stringbundle.GetStringFromName("torbutton.popup.no_newnym");
+ var warning = torbutton_get_property_string("torbutton.popup.no_newnym");
torbutton_log(5, "Torbutton was unable to request a new circuit from Tor");
window.alert(warning);
}
@@ -2078,7 +2067,7 @@ function torbutton_jar_cookies(mode) {
/*
if(m_tb_ff3) {
var o_stringbundle = torbutton_get_stringbundle();
- var warning = o_stringbundle.GetStringFromName("torbutton.popup.ff3.cookie_warning");
+ var warning = torbutton_get_property_string("torbutton.popup.ff3.cookie_warning");
window.alert(warning);
return;
}*/
@@ -2333,9 +2322,8 @@ function torbutton_do_startup()
// Still need this in case people shove this thing back into FF
if (!m_tb_tbb && m_tb_prefs.getBoolPref("extensions.torbutton.prompt_torbrowser")) {
- var o_stringbundle = torbutton_get_stringbundle();
- var warning = o_stringbundle.GetStringFromName("torbutton.popup.short_torbrowser");
- var title = o_stringbundle.GetStringFromName("torbutton.title.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);
prompts.alert(null, title, warning);
}
diff --git a/src/chrome/content/torbutton_util.js b/src/chrome/content/torbutton_util.js
index 6f69d85..1ec6dcc 100644
--- a/src/chrome/content/torbutton_util.js
+++ b/src/chrome/content/torbutton_util.js
@@ -14,6 +14,8 @@ var versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1
var m_tb_ff5 = false;
var m_tb_ff4 = false;
+var m_tb_string_bundle = torbutton_get_stringbundle();
+
if(versionChecker.compare(appInfo.version, "4.0a1") >= 0) {
m_tb_ff4 = true;
} else {
@@ -248,6 +250,21 @@ function torbutton_get_stringbundle()
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;
+}
+
function torbutton_about_init() {
try {
// Firefox 4 and later; Mozilla 2 and later
diff --git a/src/components/external-app-blocker.js b/src/components/external-app-blocker.js
index 70de039..1996179 100644
--- a/src/components/external-app-blocker.js
+++ b/src/components/external-app-blocker.js
@@ -181,15 +181,13 @@ ExternalWrapper.prototype =
prompts.BUTTON_DELAY_ENABLE +
prompts.BUTTON_POS_1_DEFAULT;
- var bundle = chrome.torbutton_get_stringbundle();
-
- var title = bundle.GetStringFromName("torbutton.popup.external.title");
- var app = bundle.GetStringFromName("torbutton.popup.external.app");
- var note = bundle.GetStringFromName("torbutton.popup.external.note");
- var suggest = bundle.GetStringFromName("torbutton.popup.external.suggest");
- var launch = bundle.GetStringFromName("torbutton.popup.launch");
- var cancel = bundle.GetStringFromName("torbutton.popup.cancel");
- var dontask = bundle.GetStringFromName("torbutton.popup.dontask");
+ var title = chrome.torbutton_get_property_string("torbutton.popup.external.title");
+ var app = chrome.torbutton_get_property_string("torbutton.popup.external.app");
+ var note = chrome.torbutton_get_property_string("torbutton.popup.external.note");
+ var suggest = chrome.torbutton_get_property_string("torbutton.popup.external.suggest");
+ var launch = chrome.torbutton_get_property_string("torbutton.popup.launch");
+ var cancel = chrome.torbutton_get_property_string("torbutton.popup.cancel");
+ var dontask = chrome.torbutton_get_property_string("torbutton.popup.dontask");
var result = prompts.confirmEx(chrome, title, app+urispec+note+suggest+" ",
flags, launch, cancel, "", dontask, check);
More information about the tor-commits
mailing list