[Pkg-mozext-commits] [SCM] torbutton Debian packaging branch, master, updated. debian/1.4.6-1
Jérémy Bobbio
lunar at debian.org
Sat Jun 23 14:03:55 UTC 2012
The following commit has been merged in the master branch:
commit 133b1926a9e7750b5d2a601c756aa4c3e0cc3742
Merge: 1158fcdf6c54a879894851e93cb65b5a7eab4410 643461f1b6ceb7184c7230f314d63e3604dc4184
Author: Jérémy Bobbio <lunar at debian.org>
Date: Sat Jun 23 15:16:04 2012 +0200
Merge commit 'upstream/1.4.6'
diff --combined src/chrome/content/torbutton.js
index ca370d2,f80b5a2..8dc9ee9
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@@ -352,18 -352,10 +352,18 @@@ function torbutton_set_panel_view()
if (!o_statuspanel || !o_prefbranch) return;
// Firefox 4 has no toolbar panel
- var display_panel = o_prefbranch.getBoolPref('display_panel')
- && !m_tb_ff4;
+ var display_panel = o_prefbranch.getBoolPref('display_panel');
torbutton_log(2, 'setting panel visibility');
o_statuspanel.setAttribute('collapsed', !display_panel);
+
+ // Prevent the FF4 nav bar from making our menu invisible...
+ var o_toolbutton = torbutton_get_toolbutton();
+ if (o_toolbutton) {
+ var context = document.getElementById('torbutton-context-menu');
+ context.style.visibility = "visible";
+ context.hidden = false;
+ torbutton_log(3, "Set new context menu.");
+ }
}
function torbutton_set_panel_style() {
@@@ -477,6 -469,16 +477,6 @@@ function torbutton_init_toolbutton(
{
try {
torbutton_log(3, "Initializing the Torbutton button.");
- // Prevent the FF4 status bar from making our menu invisible...
- /* Not needed
- var o_toolbutton = torbutton_get_toolbutton();
- if (o_toolbutton) {
- var context = document.getElementById('torbutton-context-menu');
- context.style.visibility = "visible";
- context.hidden = false;
- torbutton_log(3, "Set new context menu.");
- }
- */
torbutton_update_toolbutton(torbutton_check_status());
} catch(e) {
torbutton_log(4, "Error Initializing Torbutton button: "+e);
@@@ -627,6 -629,28 +627,28 @@@ function torbutton_prompt_for_language_
m_tb_prefs.setBoolPref("extensions.torbutton.prompted_language", true);
}
+ 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 checkbox = {value: false};
+
+ var sb = Components.classes["@mozilla.org/intl/stringbundle;1"]
+ .getService(Components.interfaces.nsIStringBundleService);
+ var browserstrings = sb.createBundle("chrome://browser/locale/browser.properties");
+
+ var askagain = browserstrings.GetStringFromName("privateBrowsingNeverAsk");
+
+ var response = prompts.alertCheck(null, title, message, askagain, checkbox);
+
+ // Update preferences to reflect their response and to prevent the prompt from
+ // being displayed again.
+ m_tb_prefs.setBoolPref("extensions.torbutton.prompt_torbrowser", !checkbox.value);
+ }
+
//this function checks to see if the context menu is being clicked on a link.
//if it is, then we show the two context menu items
function torbutton_check_contextmenu() {
@@@ -721,7 -745,7 +743,7 @@@ function torbutton_init_prefs()
torprefs.setBoolPref('use_privoxy', true);
if (torprefs.getBoolPref('use_privoxy')) {
- proxy_host = '127.0.0.1';
+ proxy_host = 'localhost';
proxy_port = 8118;
} else {
proxy_host = '';
@@@ -883,6 -907,71 +905,71 @@@ function torbutton_restore_nontor_setti
torbutton_log(2, 'settings restored');
}
+ function torbutton_do_async_versioncheck() {
+ if (!m_tb_tbb || !m_tb_prefs.getBoolPref("extensions.torbutton.versioncheck_enabled")) {
+ return;
+ }
+ torbutton_log(3, "Checking version");
+ try {
+ var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
+ .createInstance(Components.interfaces.nsIXMLHttpRequest);
+ //var req = new XMLHttpRequest(); Blocked by content policy
+ var url = m_tb_prefs.getCharPref("extensions.torbutton.versioncheck_url");
+ req.open('GET', url, true);
+ req.channel.loadFlags |= Ci.nsIRequest.LOAD_BYPASS_CACHE;
+ req.overrideMimeType("text/json");
+ req.onreadystatechange = function (oEvent) {
+ if (req.readyState === 4) {
+ if(req.status == 200) {
+ if(!req.responseText) {
+ torbutton_log(5, "Version check failed! No JSON present!");
+ return -1;
+ }
+ try {
+ var locale = m_tb_prefs.getCharPref("general.useragent.locale");
+ var version_list = JSON.parse(req.responseText);
+ var my_version = m_tb_prefs.getCharPref("torbrowser.version");
+ for (var v in version_list) {
+ if (version_list[v] == my_version) {
+ torbutton_log(3, "Version check passed.");
+ var homepage = m_tb_prefs.getCharPref("browser.startup.homepage");
+ if (homepage.indexOf("https://check.torproject.org/") == 0) {
+ m_tb_prefs.setCharPref("browser.startup.homepage",
+ "https://check.torproject.org/?lang="+locale+"&small=1&uptodate=1");
+ }
+ return;
+ }
+ }
+ torbutton_log(5, "Your Tor Browser is out of date.");
+ // Not up to date
+ m_tb_prefs.setCharPref("browser.startup.homepage",
+ "https://check.torproject.org/?lang="+locale+"&small=1&uptodate=0");
+ return;
+ } catch(e) {
+ torbutton_log(5, "Version check failed! JSON parsing error: "+e);
+ return;
+ }
+ } else if (req.status == 404) {
+ // We're going to assume 404 means the service is not implemented yet.
+ torbutton_log(3, "Version check failed. Versions file is 404.");
+ return -1;
+ }
+ torbutton_log(5, "Version check failed! Web server error: "+req.status);
+ return -1;
+ }
+ };
+ req.send(null);
+ } catch(e) {
+ if(e.result == 0x80004005) { // NS_ERROR_FAILURE
+ torbutton_log(5, "Version check failed! Is tor running?");
+ return -1;
+ }
+ torbutton_log(5, "Version check failed! Tor internal error: "+e);
+ return -1;
+ }
+
+ }
+
function torbutton_check_version() {
torbutton_log(3, "Checking version");
try {
@@@ -1370,7 -1459,7 +1457,7 @@@ function torbutton_new_identity()
* 2. Disables Javascript and plugins on all tabs
* 3. Clears state:
* a. OCSP
- * b. Cache
+ * b. Cache + image cache
* c. Site-specific zoom
* d. Cookies+DOM Storage+safe browsing key
* e. google wifi geolocation token
@@@ -1379,6 -1468,8 +1466,8 @@@
* h. last open location url
* i. clear content prefs
* 4. Sends tor the NEWNYM signal to get a new circuit
+ * 5. Opens a new window with the default homepage
+ * 6. Closes this window
*
* XXX: intermediate SSL certificates are not cleared.
*/
@@@ -1430,6 -1521,16 +1519,16 @@@ function torbutton_do_new_identity()
torbutton_close_on_toggle(true, true);
+ var searchBar = window.document.getElementById("searchbar");
+ if (searchBar)
+ searchBar.textbox.reset();
+
+ if (gFindBarInitialized) {
+ var findbox = gFindBar.getElement("findbar-textbox");
+ findbox.reset();
+ gFindBar.close();
+ }
+
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);
@@@ -1479,6 -1580,10 +1578,10 @@@
m_tb_prefs.setIntPref("browser.sessionstore.max_tabs_undo", 0);
m_tb_prefs.setIntPref("browser.sessionstore.max_tabs_undo", tabs);
+ var imgCache = Components.classes["@mozilla.org/image/cache;1"].
+ getService(Components.interfaces.imgICache);
+ imgCache.clearCache(false); // evict all but chrome cache
+
var cache = Components.classes["@mozilla.org/network/cache-service;1"].
getService(Components.interfaces.nsICacheService);
try {
@@@ -1504,6 -1609,7 +1607,7 @@@
obsSvc.notifyObservers(this, "net:prune-all-connections", null);
// XXX: This may not clear zoom site-specific
+ // browser.content.full-zoom
var cps = Cc["@mozilla.org/content-pref/service;1"].
createInstance(Ci.nsIContentPrefService);
cps.removeGroupedPrefs();
@@@ -1528,10 -1634,13 +1632,13 @@@
}
}
- // gBrowser should always be here.
- torbutton_set_window_size(gBrowser.contentWindow);
+ // Open a new window with the TBB check homepage
+ OpenBrowserWindow();
torbutton_log(3, "New identity successful");
+
+ // Close the current window for added safety
+ window.close();
}
// toggles plugins: true for disabled, false for enabled
@@@ -1936,6 -2045,14 +2043,14 @@@ function torbutton_update_status(mode,
return;
}
+ // #5758: Last ditch effort to keep Vanilla Torbutton users from totally
+ // being pwnt. This is a pretty darn ugly hack, too. But because of #5863,
+ // we really don't care about preserving the user's values for this.
+ if (!m_tb_tbb) {
+ m_tb_prefs.setBoolPref("network.websocket.enabled", false);
+ m_tb_prefs.setBoolPref("dom.indexedDB.enabled", false);
+ }
+
torbutton_set_timezone(mode, false);
// This call also has to be here for 3rd party proxy changers.
@@@ -2124,6 -2241,10 +2239,10 @@@ function torbutton_check_protections(
if (!m_tb_control_pass || !m_tb_control_port)
document.getElementById("torbutton-new-identity").disabled = true;
+
+ if (!m_tb_tbb && m_tb_prefs.getBoolPref("extensions.torbutton.prompt_torbrowser")) {
+ torbutton_inform_about_tbb();
+ }
}
function torbutton_open_cookie_dialog() {
@@@ -2935,7 -3056,7 +3054,7 @@@ function torbutton_set_launch_state(sta
torbutton_enable_tor(true);
torbutton_log(3, "Tor state updated.");
- torbutton_do_versioncheck();
+ torbutton_do_async_versioncheck();
// Load our homepage again. We just killed it via the toggle.
if (!session_restore) {
@@@ -2950,7 -3071,7 +3069,7 @@@
if(state) torbutton_enable_tor(true);
else torbutton_disable_tor();
- torbutton_do_versioncheck();
+ torbutton_do_async_versioncheck();
// Load our homepage again. We just killed it via the toggle.
if (!session_restore) {
@@@ -3933,6 -4054,14 +4052,14 @@@ function torbutton_do_startup(
m_tb_prefs.setCharPref('extensions.torbutton.socks_host', '127.0.0.1');
}
+ 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 prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
+ prompts.alert(null, title, warning);
+ }
+
m_tb_prefs.setBoolPref("extensions.torbutton.startup", false);
}
}
@@@ -4034,6 -4163,7 +4161,7 @@@ function torbutton_do_resize(ev
m_tb_window_width = window.outerWidth;
}
+ // XXX: unused. Use torbutton_set_window_size instead
function torbutton_check_round(browser)
{
if(torbutton_is_windowed(window)
@@@ -4076,12 -4206,21 +4204,21 @@@ function torbutton_set_window_size(bWin
// at this point...
bWin.innerWidth = 200;
bWin.innerHeight = 200;
+
+ // XXX: This is sufficient to prevent some kind of weird resize race condition on Linux.
+ // Why or how, you ask? I have no fucking clue, man.
+ if (bWin.innerWidth != 200 || bWin.innerHeight != 200) {
+ bWin.innerHeight = 200;
+ bWin.innerWidth = 200;
+ }
torbutton_log(3, "About to resize new window: "+window.outerWidth+"x"+window.outerHeight
+" inner: "+bWin.innerWidth+"x"+bWin.innerHeight+
" in state "+window.windowState+" Have "+availWidth.value+"x"+availHeight.value);
- var maxHeight = availHeight.value - (window.outerHeight - bWin.innerHeight) - 101;
+ var maxHeight = availHeight.value - (window.outerHeight - bWin.innerHeight) - 51;
var maxWidth = availWidth.value - (window.outerWidth - bWin.innerWidth);
+
+ torbutton_log(3, "Got max dimensions: "+maxWidth+"x"+maxHeight);
var width;
var height;
@@@ -4132,7 -4271,8 +4269,8 @@@ function torbutton_new_window(event
torbutton_set_window_size(browser.contentWindow);
- //window.addEventListener("resize", torbutton_do_resize, true);
+ // Check the version on every new window. We're already pinging check in these cases.
+ torbutton_do_async_versioncheck();
}
function torbutton_close_window(event) {
@@@ -4365,7 -4505,6 +4503,6 @@@ function torbutton_update_tags(win, new
// NoScript
torbutton_log(3, "Javascript changed from "+browser.docShell.allowJavascript+" to: "+js_enabled);
browser.docShell.allowJavascript = js_enabled;
- torbutton_check_round(browser);
// Tag this specially, so that the next onLocationChange
// doesn't redo these hooks.
@@@ -4374,10 -4513,6 +4511,6 @@@
// JS was not fully enabled for some page elements.
// Need to reload
browser.reload();
- } else {
- // We need to do the resize here as well in case the window
- // was minimized during toggle...
- torbutton_check_round(browser);
}
}
--
torbutton Debian packaging
More information about the Pkg-mozext-commits
mailing list