commit 6f3904e16b829715b230d927f29d2cf02f1e4964 Author: Georg Koppen gk@torproject.org Date: Mon Dec 1 15:36:51 2014 +0000
Bug 9387: Version 0.3 of the Security Slider.
It contains the following, small improvements: * custom settings are not overwritten on restart/New Identity * the custom checkbox is disabled and not hidden anymore by default * the security level can be chosen by clicking on the respective description --- src/chrome/content/preferences.js | 20 ++++++++++++-------- src/chrome/content/preferences.xul | 19 +++++++++++-------- src/chrome/content/torbutton.js | 9 ++++++--- 3 files changed, 29 insertions(+), 19 deletions(-)
diff --git a/src/chrome/content/preferences.js b/src/chrome/content/preferences.js index 20a6c9f..75937eb 100644 --- a/src/chrome/content/preferences.js +++ b/src/chrome/content/preferences.js @@ -194,7 +194,7 @@ function torbutton_prefs_init(doc) { // non-responding. We need to handle |movetoclick| as well. sec_slider.setAttribute("movetoclick", !custom_values); sec_custom.checked = custom_values; - sec_custom.collapsed = !custom_values; + sec_custom.disabled = !custom_values;
torbutton_prefs_set_field_attributes(doc); } @@ -447,14 +447,18 @@ function torbutton_prefs_reset_defaults() { prefService.savePrefFile(null); }
-function torbutton_toggle_slider(doc) { +function torbutton_toggle_slider(doc, pos) { let slider = doc.getElementById("torbutton_sec_slider"); - if (doc.getElementById("torbutton_sec_custom").checked) { - slider.disabled = true; - slider.setAttribute("movetoclick", false); + // onclick is active even if the element it belongs to is disabled. + if (pos && !slider.disabled) { + slider.value = pos; } else { - slider.disabled = false; - slider.setAttribute("movetoclick", true); + if (doc.getElementById("torbutton_sec_custom").checked) { + slider.disabled = true; + slider.setAttribute("movetoclick", false); + } else { + slider.disabled = false; + slider.setAttribute("movetoclick", true); + } } } - diff --git a/src/chrome/content/preferences.xul b/src/chrome/content/preferences.xul index 7c5633b..cb5f1ab 100644 --- a/src/chrome/content/preferences.xul +++ b/src/chrome/content/preferences.xul @@ -97,7 +97,7 @@ <radiogroup align="center" orient="horizontal" id="torbutton_socksGroup"> <radio id="torbutton_socksv4" label="&torbutton.prefs.socks_vfour;"/> - <radio id="torbutton_socksv5" + <radio id="torbutton_socksv5" label="&torbutton.prefs.socks_vfive;"/> </radiogroup> </row> @@ -129,8 +129,7 @@ oncommand="torbutton_prefs_set_field_attributes(document)"/>
</radiogroup> - - + <hbox> <spacer flex="1"/> <button id="torbutton_testSettings" @@ -162,22 +161,26 @@ </vbox> <vbox height="200"> <hbox flex="1" align="center"> - <description id="torbutton_sec_low"> + <description id="torbutton_sec_low" + onclick="torbutton_toggle_slider(document, 1);"> &torbutton.prefs.sec_low; </description> </hbox> <hbox flex="1" align="center"> - <description id="torbutton_sec_med_low"> + <description id="torbutton_sec_med_low" + onclick="torbutton_toggle_slider(document, 2);"> &torbutton.prefs.sec_med_low; </description> </hbox> <hbox flex="1" align="center"> - <description id="torbutton_sec_med_high"> + <description id="torbutton_sec_med_high" + onclick="torbutton_toggle_slider(document, 3);"> &torbutton.prefs.sec_med_high; </description> </hbox> <hbox flex="1" align="center"> - <description id="torbutton_sec_high"> + <description id="torbutton_sec_high" + onclick="torbutton_toggle_slider(document, 4);"> &torbutton.prefs.sec_high; </description> </hbox> @@ -185,7 +188,7 @@ </hbox> <hbox> <checkbox id="torbutton_sec_custom" flex="1" - oncommand="torbutton_toggle_slider(document);" + oncommand="torbutton_toggle_slider(document, 0);" label="&torbutton.prefs.sec_custom;"/> </hbox> </groupbox> diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js index da39864..2ba4159 100644 --- a/src/chrome/content/torbutton.js +++ b/src/chrome/content/torbutton.js @@ -552,8 +552,11 @@ function torbutton_init() {
// initialize preferences before we start our prefs observer torbutton_init_prefs(); - // set some important security prefs according to the chosen security level - torbutton_update_security_slider(); + // Set some important security prefs according to the chosen security level + // if there are no custom settings to respect. + if (!m_tb_prefs.getBoolPref("extensions.torbutton.security_custom")) { + torbutton_update_security_slider(); + }
// set panel style from preferences torbutton_set_panel_style(); @@ -562,7 +565,7 @@ function torbutton_init() { torbutton_init_toolbutton();
torbutton_log(1, 'registering pref observer'); - torbutton_window_pref_observer.register(); + torbutton_window_pref_observer.register();
torbutton_log(1, "registering Tor check observer"); torbutton_tor_check_observer.register();