зеркало из https://github.com/mozilla/gecko-dev.git
Back out 3 changesets (bug 1042135) for robocop bustage
CLOSED TREE Backed out changeset dffed5d2a799 (bug 1042135) Backed out changeset b80a02b929cc (bug 1042135) Backed out changeset 093ea94a1697 (bug 1042135)
This commit is contained in:
Родитель
4b52f9fa07
Коммит
ab8d3a5d34
|
@ -1277,6 +1277,7 @@ pref("services.sync.prefs.sync.privacy.clearOnShutdown.passwords", true);
|
|||
pref("services.sync.prefs.sync.privacy.clearOnShutdown.sessions", true);
|
||||
pref("services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings", true);
|
||||
pref("services.sync.prefs.sync.privacy.donottrackheader.enabled", true);
|
||||
pref("services.sync.prefs.sync.privacy.donottrackheader.value", true);
|
||||
pref("services.sync.prefs.sync.privacy.sanitize.sanitizeOnShutdown", true);
|
||||
pref("services.sync.prefs.sync.privacy.trackingprotection.enabled", true);
|
||||
pref("services.sync.prefs.sync.security.OCSP.enabled", true);
|
||||
|
|
|
@ -1369,7 +1369,7 @@ BrowserGlue.prototype = {
|
|||
},
|
||||
|
||||
_migrateUI: function BG__migrateUI() {
|
||||
const UI_VERSION = 25;
|
||||
const UI_VERSION = 24;
|
||||
const BROWSER_DOCURL = "chrome://browser/content/browser.xul";
|
||||
let currentUIVersion = 0;
|
||||
try {
|
||||
|
@ -1617,20 +1617,6 @@ BrowserGlue.prototype = {
|
|||
}
|
||||
}
|
||||
|
||||
if (currentUIVersion < 25) {
|
||||
// Make sure the doNotTrack value conforms to the conversion from
|
||||
// three-state to two-state. (This reverts a setting of "please track me"
|
||||
// to the default "don't say anything").
|
||||
try {
|
||||
if (Services.prefs.getBoolPref("privacy.donottrackheader.enabled") &&
|
||||
Services.prefs.getIntPref("privacy.donottrackheader.value") != 1) {
|
||||
Services.prefs.clearUserPref("privacy.donottrackheader.enabled");
|
||||
Services.prefs.clearUserPref("privacy.donottrackheader.value");
|
||||
}
|
||||
}
|
||||
catch (ex) {}
|
||||
}
|
||||
|
||||
// Update the migration version.
|
||||
Services.prefs.setIntPref("browser.migration.version", UI_VERSION);
|
||||
},
|
||||
|
|
|
@ -162,6 +162,43 @@ var gPrivacyPane = {
|
|||
document.getElementById("historyPane").selectedIndex = selectedIndex;
|
||||
},
|
||||
|
||||
/**
|
||||
* Update the Tracking preferences based on controls.
|
||||
*/
|
||||
setTrackingPrefs: function PPP_setTrackingPrefs()
|
||||
{
|
||||
let dntRadioGroup = document.getElementById("doNotTrackSelection"),
|
||||
dntValuePref = document.getElementById("privacy.donottrackheader.value"),
|
||||
dntEnabledPref = document.getElementById("privacy.donottrackheader.enabled");
|
||||
|
||||
// if the selected radio button says "no preference", set on/off pref to
|
||||
// false and don't change the value pref.
|
||||
if (dntRadioGroup.selectedItem.value == -1) {
|
||||
dntEnabledPref.value = false;
|
||||
return dntValuePref.value;
|
||||
}
|
||||
|
||||
dntEnabledPref.value = true;
|
||||
return dntRadioGroup.selectedItem.value;
|
||||
},
|
||||
|
||||
/**
|
||||
* Obtain the tracking preference value and reflect it in the UI.
|
||||
*/
|
||||
getTrackingPrefs: function PPP_getTrackingPrefs()
|
||||
{
|
||||
// XXX avoid using bindings that might not be attached, see bug 859982
|
||||
let dntValue = Services.prefs.getIntPref("privacy.donottrackheader.value"),
|
||||
dntEnabled = Services.prefs.getBoolPref("privacy.donottrackheader.enabled");
|
||||
|
||||
// if DNT is enbaled, select the value from the selected radio
|
||||
// button, otherwise choose the "no preference" radio button
|
||||
if (dntEnabled)
|
||||
return dntValue;
|
||||
|
||||
return document.getElementById("dntnopref").value;
|
||||
},
|
||||
|
||||
/**
|
||||
* Update the private browsing auto-start pref and the history mode
|
||||
* micro-management prefs based on the history mode menulist
|
||||
|
|
|
@ -13,6 +13,9 @@
|
|||
<preference id="privacy.donottrackheader.enabled"
|
||||
name="privacy.donottrackheader.enabled"
|
||||
type="bool"/>
|
||||
<preference id="privacy.donottrackheader.value"
|
||||
name="privacy.donottrackheader.value"
|
||||
type="int"/>
|
||||
|
||||
<!-- XXX button prefs -->
|
||||
<preference id="pref.privacy.disable_button.cookie_exceptions"
|
||||
|
@ -71,20 +74,21 @@
|
|||
<!-- Tracking -->
|
||||
<groupbox id="trackingGroup" data-category="panePrivacy" hidden="true" align="start">
|
||||
<caption><label>&tracking.label;</label></caption>
|
||||
<checkbox id="privacyDoNotTrackCheckbox"
|
||||
label="&dntTrackingNotOkay.label2;"
|
||||
accesskey="&dntTrackingNotOkay.accesskey;"
|
||||
preference="privacy.donottrackheader.enabled"/>
|
||||
<separator class="thin"/>
|
||||
<vbox>
|
||||
<hbox pack="end">
|
||||
<spacer flex="1"/>
|
||||
<radiogroup id="doNotTrackSelection" orient="vertical" align="start"
|
||||
preference="privacy.donottrackheader.value"
|
||||
onsynctopreference="return gPrivacyPane.setTrackingPrefs()"
|
||||
onsyncfrompreference="return gPrivacyPane.getTrackingPrefs()">
|
||||
<radio id="dntnotrack" value="1" label="&dntTrackingNotOkay.label2;"
|
||||
accesskey="&dntTrackingNotOkay.accesskey;" />
|
||||
<radio id="dntdotrack" value="0" label="&dntTrackingOkay.label2;"
|
||||
accesskey="&dntTrackingOkay.accesskey;" />
|
||||
<radio id="dntnopref" value="-1" label="&dntTrackingNopref.label2;"
|
||||
accesskey="&dntTrackingNopref.accesskey;" />
|
||||
</radiogroup>
|
||||
<label class="text-link" id="doNotTrackInfo"
|
||||
href="https://www.mozilla.org/dnt">
|
||||
&doNotTrackInfo.label;
|
||||
</label>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</groupbox>
|
||||
|
||||
<!-- History -->
|
||||
|
|
|
@ -124,6 +124,42 @@ var gPrivacyPane = {
|
|||
document.getElementById("historyPane").selectedIndex = selectedIndex;
|
||||
},
|
||||
|
||||
/**
|
||||
* Update the Tracking preferences based on controls.
|
||||
*/
|
||||
setTrackingPrefs: function PPP_setTrackingPrefs()
|
||||
{
|
||||
let dntRadioGroup = document.getElementById("doNotTrackSelection"),
|
||||
dntValuePref = document.getElementById("privacy.donottrackheader.value"),
|
||||
dntEnabledPref = document.getElementById("privacy.donottrackheader.enabled");
|
||||
|
||||
// if the selected radio button says "no preference", set on/off pref to
|
||||
// false and don't change the value pref.
|
||||
if (dntRadioGroup.selectedItem.value == -1) {
|
||||
dntEnabledPref.value = false;
|
||||
return dntValuePref.value;
|
||||
}
|
||||
|
||||
dntEnabledPref.value = true;
|
||||
return dntRadioGroup.selectedItem.value;
|
||||
},
|
||||
|
||||
/**
|
||||
* Obtain the tracking preference value and reflect it in the UI.
|
||||
*/
|
||||
getTrackingPrefs: function PPP_getTrackingPrefs()
|
||||
{
|
||||
let dntValuePref = document.getElementById("privacy.donottrackheader.value"),
|
||||
dntEnabledPref = document.getElementById("privacy.donottrackheader.enabled");
|
||||
|
||||
// if DNT is enbaled, select the value from the selected radio
|
||||
// button, otherwise choose the "no preference" radio button
|
||||
if (dntEnabledPref.value)
|
||||
return dntValuePref.value;
|
||||
|
||||
return document.getElementById("dntnopref").value;
|
||||
},
|
||||
|
||||
/**
|
||||
* Update the private browsing auto-start pref and the history mode
|
||||
* micro-management prefs based on the history mode menulist
|
||||
|
|
|
@ -26,6 +26,9 @@
|
|||
<preference id="privacy.donottrackheader.enabled"
|
||||
name="privacy.donottrackheader.enabled"
|
||||
type="bool"/>
|
||||
<preference id="privacy.donottrackheader.value"
|
||||
name="privacy.donottrackheader.value"
|
||||
type="int"/>
|
||||
|
||||
<!-- XXX button prefs -->
|
||||
<preference id="pref.privacy.disable_button.cookie_exceptions"
|
||||
|
@ -81,19 +84,20 @@
|
|||
<!-- Tracking -->
|
||||
<groupbox id="trackingGroup" align="start">
|
||||
<caption label="&tracking.label;"/>
|
||||
<checkbox id="privacyDoNotTrackCheckbox"
|
||||
label="&dntTrackingNotOkay.label2;"
|
||||
accesskey="&dntTrackingNotOkay.accesskey;"
|
||||
preference="privacy.donottrackheader.enabled"/>
|
||||
<separator class="thin"/>
|
||||
<vbox>
|
||||
<hbox pack="end">
|
||||
<spacer flex="1"/>
|
||||
<radiogroup id="doNotTrackSelection" orient="vertical"
|
||||
preference="privacy.donottrackheader.value"
|
||||
onsynctopreference="return gPrivacyPane.setTrackingPrefs()"
|
||||
onsyncfrompreference="return gPrivacyPane.getTrackingPrefs()">
|
||||
<radio id="dntnotrack" value="1" label="&dntTrackingNotOkay.label2;"
|
||||
accesskey="&dntTrackingNotOkay.accesskey;" />
|
||||
<radio id="dntdotrack" value="0" label="&dntTrackingOkay.label2;"
|
||||
accesskey="&dntTrackingOkay.accesskey;" />
|
||||
<radio id="dntnopref" value="-1" label="&dntTrackingNopref.label2;"
|
||||
accesskey="&dntTrackingNopref.accesskey;" />
|
||||
</radiogroup>
|
||||
<label class="text-link" id="doNotTrackInfo"
|
||||
href="https://www.mozilla.org/dnt"
|
||||
value="&doNotTrackInfo.label;"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
</groupbox>
|
||||
|
||||
|
|
|
@ -4,8 +4,12 @@
|
|||
|
||||
<!ENTITY tracking.label "Tracking">
|
||||
|
||||
<!ENTITY dntTrackingNopref.label2 "Do not tell sites anything about my tracking preferences">
|
||||
<!ENTITY dntTrackingNopref.accesskey "o">
|
||||
<!ENTITY dntTrackingNotOkay.label2 "Tell sites that I do not want to be tracked">
|
||||
<!ENTITY dntTrackingNotOkay.accesskey "n">
|
||||
<!ENTITY dntTrackingOkay.label2 "Tell sites that I want to be tracked">
|
||||
<!ENTITY dntTrackingOkay.accesskey "h">
|
||||
<!ENTITY trackingProtection.label "Prevent sites from tracking me">
|
||||
<!ENTITY trackingProtection.accesskey "m">
|
||||
<!ENTITY trackingProtectionLearnMore.label "Learn more">
|
||||
|
|
|
@ -137,7 +137,8 @@ let DirectoryLinksProvider = {
|
|||
let enhanced = true;
|
||||
try {
|
||||
// Default to not enhanced if DNT is set to tell websites to not track
|
||||
if (Services.prefs.getBoolPref("privacy.donottrackheader.enabled")) {
|
||||
if (Services.prefs.getBoolPref("privacy.donottrackheader.enabled") &&
|
||||
Services.prefs.getIntPref("privacy.donottrackheader.value") == 1) {
|
||||
enhanced = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -614,14 +614,19 @@ add_task(function test_DirectoryLinksProvider_setDefaultEnhanced() {
|
|||
do_check_eq(Services.prefs.getBoolPref(kNewtabEnhancedPref), expected);
|
||||
}
|
||||
|
||||
// Use the default donottrack prefs (enabled = false)
|
||||
// Use the default donottrack prefs (enabled = false, value = 1)
|
||||
Services.prefs.clearUserPref("privacy.donottrackheader.enabled");
|
||||
Services.prefs.clearUserPref("privacy.donottrackheader.value");
|
||||
checkDefault(true);
|
||||
|
||||
// Turn on DNT - no track
|
||||
Services.prefs.setBoolPref("privacy.donottrackheader.enabled", true);
|
||||
checkDefault(false);
|
||||
|
||||
// Set DNT - do track
|
||||
Services.prefs.setIntPref("privacy.donottrackheader.value", 0);
|
||||
checkDefault(true);
|
||||
|
||||
// Turn off DNT header
|
||||
Services.prefs.clearUserPref("privacy.donottrackheader.enabled");
|
||||
checkDefault(true);
|
||||
|
|
|
@ -112,6 +112,7 @@ namespace mozilla {
|
|||
namespace dom {
|
||||
|
||||
static bool sDoNotTrackEnabled = false;
|
||||
static uint32_t sDoNotTrackValue = 1;
|
||||
static bool sVibratorEnabled = false;
|
||||
static uint32_t sMaxVibrateMS = 0;
|
||||
static uint32_t sMaxVibrateListLen = 0;
|
||||
|
@ -123,6 +124,9 @@ Navigator::Init()
|
|||
Preferences::AddBoolVarCache(&sDoNotTrackEnabled,
|
||||
"privacy.donottrackheader.enabled",
|
||||
false);
|
||||
Preferences::AddUintVarCache(&sDoNotTrackValue,
|
||||
"privacy.donottrackheader.value",
|
||||
1);
|
||||
Preferences::AddBoolVarCache(&sVibratorEnabled,
|
||||
"dom.vibrator.enabled", true);
|
||||
Preferences::AddUintVarCache(&sMaxVibrateMS,
|
||||
|
@ -624,7 +628,11 @@ NS_IMETHODIMP
|
|||
Navigator::GetDoNotTrack(nsAString &aResult)
|
||||
{
|
||||
if (sDoNotTrackEnabled) {
|
||||
if (sDoNotTrackValue == 0) {
|
||||
aResult.AssignLiteral("0");
|
||||
} else {
|
||||
aResult.AssignLiteral("1");
|
||||
}
|
||||
} else {
|
||||
aResult.AssignLiteral("unspecified");
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=629535
|
|||
<script type="application/javascript">
|
||||
|
||||
const dntPref = 'privacy.donottrackheader.enabled';
|
||||
const dntValuePref = 'privacy.donottrackheader.value';
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
|
@ -38,6 +39,8 @@ tests.push(function testDefaultValues() {
|
|||
'DNT should be disabled by default');
|
||||
is(navigator.doNotTrack, 'unspecified',
|
||||
'navigator.doNotTrack should initially be "unspecified".');
|
||||
is(SpecialPowers.getIntPref(dntValuePref), isB2G ? -1 : 1,
|
||||
'DNT value should be "1" by default');
|
||||
|
||||
nextTest();
|
||||
});
|
||||
|
@ -56,6 +59,34 @@ tests.push(function setEnabled() {
|
|||
});
|
||||
});
|
||||
|
||||
tests.push(function clearedValue() {
|
||||
SpecialPowers.pushPrefEnv({"clear": [[dntValuePref]]}, function() {
|
||||
is(navigator.doNotTrack, "1", 'after clearing value pref');
|
||||
nextTest();
|
||||
});
|
||||
});
|
||||
|
||||
tests.push(function setValue0() {
|
||||
SpecialPowers.pushPrefEnv({"set": [[dntValuePref, 0]]}, function() {
|
||||
is(navigator.doNotTrack, "0", 'after setting value pref');
|
||||
nextTest();
|
||||
});
|
||||
});
|
||||
|
||||
tests.push(function setValue42() {
|
||||
SpecialPowers.pushPrefEnv({"set": [[dntValuePref, 42]]}, function() {
|
||||
is(navigator.doNotTrack, "1", 'after setting value pref');
|
||||
nextTest();
|
||||
});
|
||||
});
|
||||
|
||||
tests.push(function clearValueAgain() {
|
||||
SpecialPowers.pushPrefEnv({"clear": [[dntValuePref]]}, function() {
|
||||
is(navigator.doNotTrack, "1", 'after clearing value pref');
|
||||
nextTest();
|
||||
});
|
||||
});
|
||||
|
||||
tests.push(function setDisabled() {
|
||||
SpecialPowers.pushPrefEnv({"set": [[dntPref, false]]}, function() {
|
||||
is(navigator.doNotTrack, "unspecified", 'after setting pref to false');
|
||||
|
|
|
@ -172,8 +172,10 @@
|
|||
<!ENTITY pref_cookies_not_accept_foreign "Enabled, excluding 3rd party">
|
||||
<!ENTITY pref_cookies_disabled "Disabled">
|
||||
|
||||
<!ENTITY pref_donottrack_title "Do not track">
|
||||
<!ENTITY pref_donottrack_summary "&brandShortName; will tell sites that you do not want to be tracked">
|
||||
<!ENTITY pref_donottrack_menu "Tracking">
|
||||
<!ENTITY pref_donottrack_disallow_tracking "Tell sites that I do not want to be tracked">
|
||||
<!ENTITY pref_donottrack_allow_tracking "Tell sites that I want to be tracked">
|
||||
<!ENTITY pref_donottrack_no_pref "Do not tell sites anything about my tracking preferences">
|
||||
|
||||
<!ENTITY pref_char_encoding "Character encoding">
|
||||
<!ENTITY pref_char_encoding_on "Show menu">
|
||||
|
|
|
@ -55,6 +55,16 @@
|
|||
<item>1</item>
|
||||
<item>2</item>
|
||||
</string-array>
|
||||
<string-array name="pref_donottrack_entries">
|
||||
<item>@string/pref_donottrack_disallow_tracking</item>
|
||||
<item>@string/pref_donottrack_allow_tracking</item>
|
||||
<item>@string/pref_donottrack_no_pref</item>
|
||||
</string-array>
|
||||
<string-array name="pref_donottrack_values">
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>0</item>
|
||||
</string-array>
|
||||
<string-array name="pref_import_android_entries">
|
||||
<item>@string/bookmarks_title</item>
|
||||
<item>@string/history_title</item>
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
android:title="@string/pref_category_privacy_short"
|
||||
android:enabled="false">
|
||||
|
||||
<CheckBoxPreference android:key="privacy.donottrackheader.enabled"
|
||||
android:title="@string/pref_donottrack_title"
|
||||
android:summary="@string/pref_donottrack_summary"
|
||||
android:defaultValue="false"
|
||||
<ListPreference android:key="privacy.donottrackheader"
|
||||
android:title="@string/pref_donottrack_menu"
|
||||
android:entries="@array/pref_donottrack_entries"
|
||||
android:entryValues="@array/pref_donottrack_values"
|
||||
android:persistent="false" />
|
||||
|
||||
<ListPreference android:key="network.cookie.cookieBehavior"
|
||||
|
|
|
@ -181,8 +181,10 @@
|
|||
<string name="pref_cookies_not_accept_foreign">&pref_cookies_not_accept_foreign;</string>
|
||||
<string name="pref_cookies_disabled">&pref_cookies_disabled;</string>
|
||||
|
||||
<string name="pref_donottrack_title">&pref_donottrack_title;</string>
|
||||
<string name="pref_donottrack_summary">&pref_donottrack_summary;</string>
|
||||
<string name="pref_donottrack_menu">&pref_donottrack_menu;</string>
|
||||
<string name="pref_donottrack_disallow_tracking">&pref_donottrack_disallow_tracking;</string>
|
||||
<string name="pref_donottrack_allow_tracking">&pref_donottrack_allow_tracking;</string>
|
||||
<string name="pref_donottrack_no_pref">&pref_donottrack_no_pref;</string>
|
||||
|
||||
<string name="pref_char_encoding">&pref_char_encoding;</string>
|
||||
<string name="pref_char_encoding_on">&pref_char_encoding_on;</string>
|
||||
|
|
|
@ -198,6 +198,12 @@ const kDefaultCSSViewportHeight = 480;
|
|||
|
||||
const kViewportRemeasureThrottle = 500;
|
||||
|
||||
const kDoNotTrackPrefState = Object.freeze({
|
||||
NO_PREF: "0",
|
||||
DISALLOW_TRACKING: "1",
|
||||
ALLOW_TRACKING: "2",
|
||||
});
|
||||
|
||||
let Log = Cu.import("resource://gre/modules/AndroidLog.jsm", {}).AndroidLog;
|
||||
|
||||
// Define the "dump" function as a binding of the Log.d function so it specifies
|
||||
|
@ -832,20 +838,6 @@ var BrowserApp = {
|
|||
Services.prefs.clearUserPref("plugins.click_to_play");
|
||||
}
|
||||
|
||||
// Migrate the "privacy.donottrackheader.value" pref. See bug 1042135.
|
||||
if (Services.prefs.prefHasUserValue("privacy.donottrackheader.value")) {
|
||||
// Make sure the doNotTrack value conforms to the conversion from
|
||||
// three-state to two-state. (This reverts a setting of "please track me"
|
||||
// to the default "don't say anything").
|
||||
if (Services.prefs.getBoolPref("privacy.donottrackheader.enabled") &&
|
||||
(Services.prefs.getIntPref("privacy.donottrackheader.value") != 1)) {
|
||||
Services.prefs.clearUserPref("privacy.donottrackheader.enabled");
|
||||
}
|
||||
|
||||
// This pref has been removed, so always clear it.
|
||||
Services.prefs.clearUserPref("privacy.donottrackheader.value");
|
||||
}
|
||||
|
||||
// Set the search activity default pref on app upgrade if it has not been set already.
|
||||
if (this._startupStatus === "upgrade" &&
|
||||
!Services.prefs.prefHasUserValue("searchActivity.default.migrated")) {
|
||||
|
@ -1289,6 +1281,21 @@ var BrowserApp = {
|
|||
case "privacy.masterpassword.enabled":
|
||||
pref.type = "bool";
|
||||
pref.value = MasterPassword.enabled;
|
||||
prefs.push(pref);
|
||||
continue;
|
||||
// Handle do-not-track preference
|
||||
case "privacy.donottrackheader":
|
||||
pref.type = "string";
|
||||
|
||||
let enableDNT = Services.prefs.getBoolPref("privacy.donottrackheader.enabled");
|
||||
if (!enableDNT) {
|
||||
pref.value = kDoNotTrackPrefState.NO_PREF;
|
||||
} else {
|
||||
let dntState = Services.prefs.getIntPref("privacy.donottrackheader.value");
|
||||
pref.value = (dntState === 0) ? kDoNotTrackPrefState.ALLOW_TRACKING :
|
||||
kDoNotTrackPrefState.DISALLOW_TRACKING;
|
||||
}
|
||||
|
||||
prefs.push(pref);
|
||||
continue;
|
||||
#ifdef MOZ_CRASHREPORTER
|
||||
|
@ -1372,6 +1379,27 @@ var BrowserApp = {
|
|||
MasterPassword.setPassword(json.value);
|
||||
return;
|
||||
|
||||
// "privacy.donottrackheader" is not "real" pref name, it's used in the setting menu.
|
||||
case "privacy.donottrackheader":
|
||||
switch (json.value) {
|
||||
// Don't tell anything about tracking me
|
||||
case kDoNotTrackPrefState.NO_PREF:
|
||||
Services.prefs.setBoolPref("privacy.donottrackheader.enabled", false);
|
||||
Services.prefs.clearUserPref("privacy.donottrackheader.value");
|
||||
break;
|
||||
// Accept tracking me
|
||||
case kDoNotTrackPrefState.ALLOW_TRACKING:
|
||||
Services.prefs.setBoolPref("privacy.donottrackheader.enabled", true);
|
||||
Services.prefs.setIntPref("privacy.donottrackheader.value", 0);
|
||||
break;
|
||||
// Not accept tracking me
|
||||
case kDoNotTrackPrefState.DISALLOW_TRACKING:
|
||||
Services.prefs.setBoolPref("privacy.donottrackheader.enabled", true);
|
||||
Services.prefs.setIntPref("privacy.donottrackheader.value", 1);
|
||||
break;
|
||||
}
|
||||
return;
|
||||
|
||||
// Enabling or disabling suggestions will prevent future prompts
|
||||
case SearchEngines.PREF_SUGGEST_ENABLED:
|
||||
Services.prefs.setBoolPref(SearchEngines.PREF_SUGGEST_PROMPTED, true);
|
||||
|
|
|
@ -940,8 +940,11 @@ pref("content.sink.pending_event_mode", 0);
|
|||
// 2 = openAbused
|
||||
pref("privacy.popups.disable_from_plugins", 2);
|
||||
|
||||
// send "do not track" HTTP header, disabled by default
|
||||
// "do not track" HTTP header, disabled by default
|
||||
pref("privacy.donottrackheader.enabled", false);
|
||||
// 0 = tracking is acceptable
|
||||
// 1 = tracking is unacceptable
|
||||
pref("privacy.donottrackheader.value", 1);
|
||||
// Enforce tracking protection
|
||||
pref("privacy.trackingprotection.enabled", false);
|
||||
|
||||
|
|
|
@ -83,6 +83,8 @@ extern PRThread *gSocketThread;
|
|||
#define INTL_ACCEPT_LANGUAGES "intl.accept_languages"
|
||||
#define BROWSER_PREF_PREFIX "browser.cache."
|
||||
#define DONOTTRACK_HEADER_ENABLED "privacy.donottrackheader.enabled"
|
||||
#define DONOTTRACK_HEADER_VALUE "privacy.donottrackheader.value"
|
||||
#define DONOTTRACK_VALUE_UNSET 2
|
||||
#define TELEMETRY_ENABLED "toolkit.telemetry.enabled"
|
||||
#define ALLOW_EXPERIMENTS "network.allow-experiments"
|
||||
#define SAFE_HINT_HEADER_VALUE "safeHint.enabled"
|
||||
|
@ -173,6 +175,7 @@ nsHttpHandler::nsHttpHandler()
|
|||
, mSendSecureXSiteReferrer(true)
|
||||
, mEnablePersistentHttpsCaching(false)
|
||||
, mDoNotTrackEnabled(false)
|
||||
, mDoNotTrackValue(1)
|
||||
, mSafeHintEnabled(false)
|
||||
, mParentalControlEnabled(false)
|
||||
, mTelemetryEnabled(false)
|
||||
|
@ -271,6 +274,7 @@ nsHttpHandler::Init()
|
|||
prefBranch->AddObserver(INTL_ACCEPT_LANGUAGES, this, true);
|
||||
prefBranch->AddObserver(BROWSER_PREF("disk_cache_ssl"), this, true);
|
||||
prefBranch->AddObserver(DONOTTRACK_HEADER_ENABLED, this, true);
|
||||
prefBranch->AddObserver(DONOTTRACK_HEADER_VALUE, this, true);
|
||||
prefBranch->AddObserver(TELEMETRY_ENABLED, this, true);
|
||||
prefBranch->AddObserver(HTTP_PREF("tcp_keepalive.short_lived_connections"), this, true);
|
||||
prefBranch->AddObserver(HTTP_PREF("tcp_keepalive.long_lived_connections"), this, true);
|
||||
|
@ -423,7 +427,8 @@ nsHttpHandler::AddStandardRequestHeaders(nsHttpHeaderArray *request)
|
|||
|
||||
// Add the "Do-Not-Track" header
|
||||
if (mDoNotTrackEnabled) {
|
||||
rv = request->SetHeader(nsHttp::DoNotTrack, NS_LITERAL_CSTRING("1"));
|
||||
rv = request->SetHeader(nsHttp::DoNotTrack,
|
||||
nsPrintfCString("%d", mDoNotTrackValue));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
}
|
||||
|
||||
|
@ -1351,6 +1356,14 @@ nsHttpHandler::PrefsChanged(nsIPrefBranch *prefs, const char *pref)
|
|||
mDoNotTrackEnabled = cVar;
|
||||
}
|
||||
}
|
||||
if (PREF_CHANGED(DONOTTRACK_HEADER_VALUE)) {
|
||||
val = 1;
|
||||
rv = prefs->GetIntPref(DONOTTRACK_HEADER_VALUE, &val);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
mDoNotTrackValue = val;
|
||||
}
|
||||
}
|
||||
|
||||
// Hint option
|
||||
if (PREF_CHANGED(SAFE_HINT_HEADER_VALUE)) {
|
||||
cVar = false;
|
||||
|
@ -1847,9 +1860,9 @@ nsHttpHandler::Observe(nsISupports *subject,
|
|||
mSessionStartTime = NowInSeconds();
|
||||
|
||||
if (!mDoNotTrackEnabled) {
|
||||
Telemetry::Accumulate(Telemetry::DNT_USAGE, 2);
|
||||
Telemetry::Accumulate(Telemetry::DNT_USAGE, DONOTTRACK_VALUE_UNSET);
|
||||
} else {
|
||||
Telemetry::Accumulate(Telemetry::DNT_USAGE, 1);
|
||||
Telemetry::Accumulate(Telemetry::DNT_USAGE, mDoNotTrackValue);
|
||||
}
|
||||
} else if (!strcmp(topic, "profile-change-net-restore")) {
|
||||
// initialize connection manager
|
||||
|
|
|
@ -450,6 +450,7 @@ private:
|
|||
|
||||
// For broadcasting tracking preference
|
||||
bool mDoNotTrackEnabled;
|
||||
uint8_t mDoNotTrackValue;
|
||||
|
||||
// for broadcasting safe hint;
|
||||
bool mSafeHintEnabled;
|
||||
|
|
Загрузка…
Ссылка в новой задаче