mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 854077 - Use radio buttons for "Do Not Track" options and add a neutral option r=ally
--HG-- rename : browser/metro/base/tests/mochitest/browser_sanitize_ui.js => browser/metro/base/tests/mochitest/browser_prefs_ui.js extra : rebase_source : 331345b81ff030f6cd6fa2f2e1bf20f276c82ce7
This commit is contained in:
parent
93fd95ba5e
commit
a090b35902
@ -20,8 +20,8 @@
|
||||
<xul:description anonid="onlabel" class="onlabel" value="&checkbox.on.label;" xbl:inherits="value=onlabel"/>
|
||||
<xul:description anonid="offlabel" class="offlabel" value="&checkbox.off.label;" xbl:inherits="value=offlabel"/>
|
||||
<xul:radiogroup anonid="group" xbl:inherits="disabled">
|
||||
<xul:radio anonid="on" class="checkbox-radio-on"/>
|
||||
<xul:radio anonid="off" class="checkbox-radio-off"/>
|
||||
<xul:radio type="toggle" anonid="on" class="checkbox-radio-on"/>
|
||||
<xul:radio type="toggle" anonid="off" class="checkbox-radio-off"/>
|
||||
</xul:radiogroup>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
|
@ -118,10 +118,14 @@ placelabel {
|
||||
-moz-binding: url("chrome://browser/content/bindings/bindings.xml#place-label");
|
||||
}
|
||||
|
||||
radio {
|
||||
radio[type="toggle"] {
|
||||
-moz-binding: url("chrome://global/content/bindings/radio.xml#radio");
|
||||
}
|
||||
|
||||
radiogroup {
|
||||
-moz-binding: url("chrome://global/content/bindings/radio.xml#radiogroup");
|
||||
}
|
||||
|
||||
checkbox.toggleswitch {
|
||||
-moz-binding: url("chrome://browser/content/bindings/toggleswitch.xml#checkbox-toggleswitch");
|
||||
}
|
||||
|
@ -461,8 +461,15 @@
|
||||
</hbox>
|
||||
</settings>
|
||||
<setting pref="signon.rememberSignons" title="&optionsHeader.privacy.passwords.label;" type="bool"/>
|
||||
<settings id="prefs-donottrack" label="&optionsHeader.privacy.doNotTrack.title;">
|
||||
<setting pref="privacy.donottrackheader.enabled" title="&optionsHeader.privacy.doNotTrack.label;" type="bool"/>
|
||||
<settings id="prefs-dnt" label="&doNotTrack.title;">
|
||||
<description>&doNotTrack.desc;</description>
|
||||
<setting id="prefs-dnt-value" pref="privacy.donottrackheader.value" onpreferencechanged="PreferencesPanelView.onDNTPreferenceChanged()" type="radio" >
|
||||
<radiogroup id="prefs-dnt-options">
|
||||
<radio id="prefs-dnt-notrack" label="&doNotTrack.options.trackingNotOkay;" value="1"/>
|
||||
<radio id="prefs-dnt-nopref" label="&doNotTrack.options.noPreference;" value="-1"/>
|
||||
<radio id="prefs-dnt-oktrack" label="&doNotTrack.options.trackingOkay;" value="0"/>
|
||||
</radiogroup>
|
||||
</setting>
|
||||
</settings>
|
||||
</flyoutpanel>
|
||||
|
||||
|
@ -12,5 +12,11 @@ var PreferencesPanelView = {
|
||||
SanitizeUI.init();
|
||||
}
|
||||
}, false);
|
||||
},
|
||||
onDNTPreferenceChanged: function onDNTPreferenceChanged() {
|
||||
let dntNoPref = document.getElementById("prefs-dnt-nopref");
|
||||
|
||||
// When "tell sites nothing about my preferences" is selected, disable do not track.
|
||||
Services.prefs.setBoolPref("privacy.donottrackheader.enabled", !dntNoPref.selected);
|
||||
}
|
||||
};
|
||||
|
@ -29,7 +29,7 @@ BROWSER_TESTS = \
|
||||
browser_context_menu_tests_02.html \
|
||||
browser_context_menu_tests_03.html \
|
||||
text-block.html \
|
||||
browser_sanitize_ui.js \
|
||||
browser_prefs_ui.js \
|
||||
browser_topsites.js \
|
||||
browser_tabs.js \
|
||||
$(NULL)
|
||||
|
@ -39,11 +39,8 @@ gTests.push({
|
||||
// Show options flyout
|
||||
let promise = waitForEvent(Elements.prefsFlyout, "PopupChanged", 2000);
|
||||
Elements.prefsFlyout.show();
|
||||
|
||||
yield promise;
|
||||
|
||||
ok(promise && !(promise instanceof Error), "Wait for PopupChanged");
|
||||
|
||||
// Make sure it's opened
|
||||
yield waitForEvent(Elements.prefsFlyout, "transitionend", 1000);
|
||||
|
||||
@ -93,12 +90,59 @@ gTests.push({
|
||||
});
|
||||
|
||||
// hide options flyout
|
||||
promise = waitForEvent(Elements.prefsFlyout, "PopupChanged", 2000);
|
||||
let promise = waitForEvent(Elements.prefsFlyout, "PopupChanged", 2000);
|
||||
Elements.prefsFlyout.hide();
|
||||
yield promise;
|
||||
}
|
||||
});
|
||||
|
||||
function checkDNTPrefs(aExpectedEnabled, aExpectedValue) {
|
||||
let currentEnabled = Services.prefs.getBoolPref("privacy.donottrackheader.enabled");
|
||||
let currentValue = Services.prefs.getIntPref("privacy.donottrackheader.value");
|
||||
|
||||
let enabledTestMsg = "testing privacy.donottrackheader.enabled, expected "
|
||||
+ aExpectedEnabled + " got " + currentEnabled;
|
||||
|
||||
ok(aExpectedEnabled === currentEnabled, enabledTestMsg);
|
||||
|
||||
let valueTestMsg = "testing privacy.donottrackheader.value, expected "
|
||||
+ aExpectedValue + " got " + currentValue;
|
||||
|
||||
ok(aExpectedValue === currentValue, valueTestMsg);
|
||||
}
|
||||
|
||||
gTests.push({
|
||||
desc: "Test do not track settings",
|
||||
run: function testDNT() {
|
||||
let noTrack = document.getElementById("prefs-dnt-notrack");
|
||||
let noPref = document.getElementById("prefs-dnt-nopref");
|
||||
let okTrack = document.getElementById("prefs-dnt-oktrack");
|
||||
|
||||
// Show options flyout
|
||||
let promise = waitForEvent(Elements.prefsFlyout, "PopupChanged", 2000);
|
||||
Elements.prefsFlyout.show();
|
||||
yield promise;
|
||||
|
||||
ok(promise && !(promise instanceof Error), "Wait for PopupChanged");
|
||||
noPref.click();
|
||||
// See https://mxr.mozilla.org/mozilla-central/source/modules/libpref/src/init/all.js?rev=0aab2bb76b45#755
|
||||
// -1 - tell sites nothing about preferences
|
||||
yield waitForCondition(() => Services.prefs.getIntPref("privacy.donottrackheader.value") === -1);
|
||||
checkDNTPrefs(false, -1);
|
||||
|
||||
noTrack.click();
|
||||
// 1 - tell sites tracking is unacceptable
|
||||
yield waitForCondition(() => Services.prefs.getIntPref("privacy.donottrackheader.value") === 1);
|
||||
checkDNTPrefs(true, 1);
|
||||
|
||||
okTrack.click();
|
||||
// 0 - tell sites tracking is acceptable
|
||||
yield waitForCondition(() => Services.prefs.getIntPref("privacy.donottrackheader.value") === 0);
|
||||
checkDNTPrefs(true, 0);
|
||||
|
||||
// hide options flyout
|
||||
let promise = waitForEvent(Elements.prefsFlyout, "PopupChanged", 2000);
|
||||
Elements.prefsFlyout.hide();
|
||||
yield promise;
|
||||
}
|
||||
});
|
||||
|
@ -35,8 +35,12 @@
|
||||
<!ENTITY clearPrivateData.logins "Active logins">
|
||||
|
||||
<!ENTITY optionsHeader.privacy.passwords.label "Remember Passwords">
|
||||
<!ENTITY optionsHeader.privacy.doNotTrack.title "Tracking">
|
||||
<!ENTITY optionsHeader.privacy.doNotTrack.label "Tell websites not to track me">
|
||||
<!ENTITY doNotTrack.title "Do Not Track">
|
||||
<!ENTITY doNotTrack.desc "Tell sites:">
|
||||
<!ENTITY doNotTrack.options.trackingNotOkay "I do not want to be tracked">
|
||||
<!ENTITY doNotTrack.options.noPreference "Nothing about my tracking preferences">
|
||||
<!ENTITY doNotTrack.options.trackingOkay "I want to be tracked">
|
||||
|
||||
<!-- ## Sync Flyout Panel ## -->
|
||||
|
||||
<!-- ## Sync Flyout Panel ## -->
|
||||
<!-- see sync.dtd -->
|
||||
|
@ -790,6 +790,11 @@ setting[type="directory"] > .preferences-alignment {
|
||||
-moz-box-align: center;
|
||||
}
|
||||
|
||||
/* Removes the left side title vbox on radio setting */
|
||||
setting[type="radio"] > vbox {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#prefs-homepage-options, #prefs-homepage-popup {
|
||||
min-width: 200px;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user