[tor-commits] [torbutton/master] Bug 11783: Avoid double-clicking on New Identity.

mikeperry at torproject.org mikeperry at torproject.org
Mon May 26 19:48:19 UTC 2014


commit 0a2b0782af6e0d2608e2542542222764f31d9681
Author: Georg Koppen <gk at torproject.org>
Date:   Tue May 20 13:32:31 2014 +0000

    Bug 11783: Avoid double-clicking on New Identity.
    
    It turns out that clicking several times on New Identity very quickly
    may lead to unexpected behavior, to errors like "TypeError:
    b.webProgress is undefined" and a somewhat broken browser: clicking on
    New Identity again after this error showed up shuts the browser down,
    for example. Thanks to a patch by a cypherpunk we disable the New
    Identity menuitem after the first click which resolves this issue.
---
 src/chrome/content/torbutton.js |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 43d5374..6161995 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -1431,8 +1431,14 @@ function torbutton_send_ctrl_cmd(command) {
 // Bug 1506 P4: Needed for New Identity.
 function torbutton_new_identity() {
   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).
+    document.getElementById("torbutton-new-identity").disabled = true;
     torbutton_do_new_identity();
   } catch(e) {
+    // If something went wrong make sure we have the New Identity button
+    // enabled (again).
+    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);
   }



More information about the tor-commits mailing list