Commit 6c423a9a authored by Arthur Edelstein's avatar Arthur Edelstein Committed by Georg Koppen
Browse files

Bug 20264: Change security slider to 3 options (H,M,L)

parent 4e436580
......@@ -7,11 +7,16 @@ let { getBoolPref, getIntPref, setBoolPref, setIntPref } =
// Description elements have the follow names.
const descNames =
[, "desc_high", "desc_medium_high", "desc_medium_low", "desc_low"];
[, "desc_high", "desc_medium", "desc_low"];
// A single `state` object that reflects the user settings in this UI.
let state = { slider : 0, custom : false};
// Utility functions to convert between the legacy 4-value pref index
// and the 3-valued security slider.
let sliderPositionToPrefSetting = pos => [, 1, 2, 4][pos];
let prefSettingToSliderPosition = pref => [, 1, 2, 2, 3][pref];
// Set the desired slider value and update UI.
function torbutton_set_slider(sliderPosition) {
state.slider = sliderPosition;
......@@ -33,12 +38,14 @@ function torbutton_set_custom(customValue) {
// Read prefs 'extensions.torbutton.security_slider' and
// 'extensions.torbutton.security_custom', and initialize the UI.
function torbutton_init_security_ui() {
torbutton_set_slider(getIntPref("extensions.torbutton.security_slider"));
torbutton_set_slider(prefSettingToSliderPosition(
getIntPref("extensions.torbutton.security_slider")));
torbutton_set_custom(getBoolPref("extensions.torbutton.security_custom"));
};
// Write the two prefs from the current settings.
function torbutton_save_security_settings() {
setIntPref("extensions.torbutton.security_slider", state.slider);
setIntPref("extensions.torbutton.security_slider",
sliderPositionToPrefSetting(state.slider));
setBoolPref("extensions.torbutton.security_custom", state.custom);
};
......@@ -28,7 +28,7 @@
<vbox>
<hbox height="200">
<vbox>
<scale id="torbutton_sec_slider" flex="1" min="1" max="4"
<scale id="torbutton_sec_slider" flex="1" min="1" max="3"
movetoclick="true" orient="vertical"
onchange="torbutton_set_slider(this.value)"/>
</vbox>
......@@ -41,22 +41,15 @@
</description>
</hbox>
<hbox flex="1" align="center">
<description id="torbutton_sec_med_high"
<description id="torbutton_sec_medium"
onclick="torbutton_set_slider(2);"
tooltip="mh_preview">
&torbutton.prefs.sec_med_high;
</description>
</hbox>
<hbox flex="1" align="center">
<description id="torbutton_sec_med_low"
onclick="torbutton_set_slider(3);"
tooltip="ml_preview">
&torbutton.prefs.sec_med_low;
tooltip="medium_preview">
&torbutton.prefs.sec_medium;
</description>
</hbox>
<hbox flex="1" align="end">
<description id="torbutton_sec_low"
onclick="torbutton_set_slider(4);"
onclick="torbutton_set_slider(3);"
tooltip="low_preview">
&torbutton.prefs.sec_low;
</description>
......@@ -101,7 +94,7 @@
&torbutton.prefs.sec_webfonts_desc;
</description>
</vbox>
<vbox id="desc_medium_high" collapsed="true">
<vbox id="desc_medium" collapsed="true">
<description
class="slider-text-size, slider-text-weight">
&torbutton.prefs.sec_gen_desc;
......@@ -127,24 +120,6 @@
&torbutton.prefs.sec_font_rend_desc;
</description>
</vbox>
<vbox id="desc_medium_low" collapsed="true">
<description
class="slider-text-size, slider-text-weight">
&torbutton.prefs.sec_gen_desc;
</description>
<description class="slider-text-size"
tooltiptext="&torbutton.prefs.sec_jit_desc_tooltip;">
&torbutton.prefs.sec_some_jit_desc; &torbutton.prefs.sec_jit_slower_desc;
</description>
<description class="slider-text-size"
tooltiptext="&torbutton.prefs.sec_html5_tooltip;">
&torbutton.prefs.sec_html5_desc;
</description>
<description class="slider-text-size"
tooltiptext="&torbutton.prefs.sec_mathml_desc_tooltip;">
&torbutton.prefs.sec_mathml_desc;
</description>
</vbox>
<vbox id="desc_low" collapsed="false">
<description
class="slider-text-size, slider-text-weight">
......@@ -185,7 +160,7 @@
<html:div>&torbutton.prefs.sec_svg_desc;</html:div>
<html:div>&torbutton.prefs.sec_webfonts_desc;</html:div>
</tooltip>
<tooltip id="mh_preview">
<tooltip id="medium_preview">
<html:b>&torbutton.prefs.sec_gen_desc;</html:b>
<html:br></html:br>
<html:br></html:br>
......@@ -195,14 +170,6 @@
<html:div>&torbutton.prefs.sec_mathml_desc;</html:div>
<html:div>&torbutton.prefs.sec_font_rend_desc;</html:div>
</tooltip>
<tooltip id="ml_preview">
<html:b>&torbutton.prefs.sec_gen_desc;</html:b>
<html:br></html:br>
<html:br></html:br>
<html:div>&torbutton.prefs.sec_some_jit_desc; &torbutton.prefs.sec_jit_slower_desc;</html:div>
<html:div>&torbutton.prefs.sec_html5_desc;</html:div>
<html:div>&torbutton.prefs.sec_mathml_desc;</html:div>
</tooltip>
<tooltip id="low_preview">
<html:b>&torbutton.prefs.sec_low_desc;</html:b>
<html:br></html:br>
......
......@@ -37,7 +37,6 @@
<!ENTITY torbutton.prefs.sec_low_usable_desc "This provides the most usable experience.">
<!ENTITY torbutton.prefs.sec_low_desc "At this security level, all browser features are enabled.">
<!ENTITY torbutton.prefs.sec_font_rend_svg_tooltip "The SVG OpenType font rendering mechanism is disabled.">
<!ENTITY torbutton.prefs.sec_med_low "Medium-Low">
<!ENTITY torbutton.prefs.sec_gen_desc "At this security level, the following changes apply (mouseover for details):">
<!ENTITY torbutton.prefs.sec_html5_desc "HTML5 video and audio media become click-to-play via NoScript.">
<!ENTITY torbutton.prefs.sec_html5_tooltip "On some sites, you might need to use the NoScript toolbar button to enable these media objects.">
......@@ -47,7 +46,7 @@
<!ENTITY torbutton.prefs.sec_jit_slower_desc "Scripts on some sites may run slower.">
<!ENTITY torbutton.prefs.sec_mathml_desc "Some mechanisms of displaying math equations are disabled.">
<!ENTITY torbutton.prefs.sec_mathml_desc_tooltip "MathML is disabled.">
<!ENTITY torbutton.prefs.sec_med_high "Medium-High">
<!ENTITY torbutton.prefs.sec_medium "Medium">
<!ENTITY torbutton.prefs.sec_all_jit_desc "On sites where JavaScript is enabled, performance optimizations are disabled.">
<!ENTITY torbutton.prefs.sec_font_rend_desc "Some font rendering features are disabled.">
<!ENTITY torbutton.prefs.sec_font_rend_graphite_tooltip "The Graphite font rendering mechanism is disabled.">
......
......@@ -15,18 +15,19 @@ let log = (level, msg) => logger.log(level, msg);
// __kSecuritySettings__.
// A table of all prefs bound to the security slider, and the value
// for each security setting.
// for each security setting. Note that 2-m and 3-m are identical,
// corresponding to the old 2-medium-high setting.
const kSecuritySettings = {
// Preference name : [0, 1-high 2-mh 3-ml 4-low]
// Preference name : [0, 1-high 2-m 3-m 4-low]
"javascript.options.ion.content" : [, false, false, false, true ],
"javascript.options.typeinference" : [, false, false, false, true ],
"noscript.forbidMedia" : [, true, true, true, false],
"media.webaudio.enabled" : [, false, false, false, true ],
"mathml.disabled" : [, true, true, true, false],
"javascript.options.baselinejit.content" : [, false, false, true, true ],
"gfx.font_rendering.opentype_svg.enabled" : [, false, false, true, true ],
"noscript.global" : [, false, false, true, true ],
"noscript.globalHttpsWhitelist" : [, false, true, false, false],
"javascript.options.baselinejit.content" : [, false, false, false, true ],
"gfx.font_rendering.opentype_svg.enabled" : [, false, false, false, true ],
"noscript.global" : [, false, false, false, true ],
"noscript.globalHttpsWhitelist" : [, false, true, true, false],
"noscript.forbidFonts" : [, true, false, false, false],
"svg.in-content.enabled" : [, false, true, true, true ],
};
......@@ -123,6 +124,12 @@ var initialize = function () {
setBoolPref(kCustomPref, false);
}
});
// Migrate from old medium-low (3) to new medium (2).
if (getBoolPref("extensions.torbutton.security_custom") === false &&
getIntPref("extensions.torbutton.security_slider") === 3) {
setIntPref("extensions.torbutton.security_slider", 2);
write_setting_to_prefs(2);
}
log(4, "security-prefs.js initialization complete");
};
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment