author | Tetsuharu OHZEKI <saneyuki.s.snyk@gmail.com> |
Fri, 26 Apr 2013 10:10:59 -0400 (2013-04-26) | |
changeset 130065 | 5c1d0b408e2cf1ba4cef7cf166dd134b4651d331 |
parent 130064 | 54c62289325a402ab82c3d07715ac5cda6f82c79 |
child 130066 | bf1a44d938bf9644b1868b2a5da44cedc2e5d305 |
push id | 24596 |
push user | ryanvm@gmail.com |
push date | Sat, 27 Apr 2013 01:20:57 +0000 (2013-04-27) |
treeherder | mozilla-central@0e45f1b9521f [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | mleibovic |
bugs | 863242 |
milestone | 23.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/mobile/android/base/locales/en-US/android_strings.dtd +++ b/mobile/android/base/locales/en-US/android_strings.dtd @@ -64,30 +64,34 @@ <!ENTITY new_tab_opened "New tab opened"> <!ENTITY settings "Settings"> <!ENTITY settings_title "Settings"> <!ENTITY pref_category_general "General"> <!ENTITY pref_category_privacy "Privacy & Security"> <!ENTITY pref_category_content "Content"> <!ENTITY pref_about_firefox "About &brandShortName;"> -<!ENTITY pref_do_not_track "Tell sites not to track me"> <!ENTITY pref_telemetry "Send performance data"> <!ENTITY pref_remember_signons "Remember passwords"> <!-- Localization note: These are shown in the left sidebar on tablets --> <!ENTITY pref_header_general "General"> <!ENTITY pref_header_privacy "Privacy & Security"> <!ENTITY pref_header_content "Content"> <!ENTITY pref_cookies_menu "Cookies"> <!ENTITY pref_cookies_accept_all "Enabled"> <!ENTITY pref_cookies_not_accept_foreign "Enabled, excluding 3rd party"> <!ENTITY pref_cookies_disabled "Disabled"> +<!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"> <!ENTITY pref_char_encoding_off "Don\'t show menu"> <!ENTITY pref_clear_private_data "Clear private data"> <!ENTITY pref_plugins "Plugins"> <!ENTITY pref_plugins_enabled "Enabled"> <!ENTITY pref_plugins_tap_to_play "Tap to play"> <!ENTITY pref_plugins_disabled "Disabled">
--- a/mobile/android/base/resources/values/arrays.xml +++ b/mobile/android/base/resources/values/arrays.xml @@ -41,16 +41,26 @@ <item>@string/pref_cookies_accept_all</item> <item>@string/pref_cookies_not_accept_foreign</item> <item>@string/pref_cookies_disabled</item> </string-array> <string-array name="pref_cookies_values"> <item>0</item> <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/awesomebar_bookmarks_title</item> <item>@string/awesomebar_history_title</item> </string-array> <string-array name="pref_import_android_values"> <item>true</item> <item>true</item>
--- a/mobile/android/base/resources/xml/preferences_privacy.xml +++ b/mobile/android/base/resources/xml/preferences_privacy.xml @@ -20,20 +20,21 @@ android:key="android.not_a_preference.privacy.clear" android:title="@string/pref_clear_private_data" android:persistent="true" android:positiveButtonText="@string/button_clear_data" gecko:entries="@array/pref_private_data_entries" gecko:entryKeys="@array/pref_private_data_keys" gecko:initialValues="@array/pref_private_data_values" /> - <CheckBoxPreference android:key="privacy.donottrackheader.enabled" - android:title="@string/pref_do_not_track" - android:defaultValue="false" - android:persistent="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" /> <CheckBoxPreference android:key="signon.rememberSignons" android:title="@string/pref_remember_signons" android:defaultValue="true" android:persistent="false" /> <CheckBoxPreference android:key="privacy.masterpassword.enabled" android:title="@string/pref_use_master_password"
--- a/mobile/android/base/strings.xml.in +++ b/mobile/android/base/strings.xml.in @@ -79,25 +79,29 @@ <string name="settings_title">&settings_title;</string> <string name="pref_category_general">&pref_category_general;</string> <string name="pref_category_privacy">&pref_category_privacy;</string> <string name="pref_category_content">&pref_category_content;</string> <string name="pref_header_general">&pref_header_general;</string> <string name="pref_header_privacy">&pref_header_privacy;</string> <string name="pref_header_content">&pref_header_content;</string> <string name="pref_about_firefox">&pref_about_firefox;</string> - <string name="pref_do_not_track">&pref_do_not_track;</string> <string name="pref_telemetry">&pref_telemetry;</string> <string name="pref_remember_signons">&pref_remember_signons;</string> <string name="pref_cookies_menu">&pref_cookies_menu;</string> <string name="pref_cookies_accept_all">&pref_cookies_accept_all;</string> <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_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> <string name="pref_char_encoding_off">&pref_char_encoding_off;</string> <string name="pref_clear_private_data">&pref_clear_private_data;</string> <string name="pref_plugins">&pref_plugins;</string> <string name="pref_plugins_enabled">&pref_plugins_enabled;</string> <string name="pref_plugins_tap_to_play">&pref_plugins_tap_to_play;</string> <string name="pref_plugins_disabled">&pref_plugins_disabled;</string>
--- a/mobile/android/chrome/content/browser.js +++ b/mobile/android/chrome/content/browser.js @@ -133,16 +133,22 @@ const kStateActive = 0x00000001; // :act const kXLinkNamespace = "http://www.w3.org/1999/xlink"; const kDefaultCSSViewportWidth = 980; const kDefaultCSSViewportHeight = 480; const kViewportRemeasureThrottle = 500; +const kDoNotTrackPrefState = Object.freeze({ + NO_PREF: "0", + DISALLOW_TRACKING: "1", + ALLOW_TRACKING: "2", +}); + function dump(a) { Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService).logStringMessage(a); } function getBridge() { return Cc["@mozilla.org/android/bridge;1"].getService(Ci.nsIAndroidBridge); } @@ -967,16 +973,38 @@ var BrowserApp = { prefs.push(pref); continue; // Master password is not a "real" pref case "privacy.masterpassword.enabled": pref.type = "bool"; pref.value = MasterPassword.enabled; prefs.push(pref); continue; + /* + * Handle Do-not-track preference + * + * "privacy.donottrackheader" is not "real" pref name. + * This pref name is used in the setting menu, and + * this is passed when initializing the setting menu. + */ + 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; + } } try { switch (Services.prefs.getPrefType(prefName)) { case Ci.nsIPrefBranch.PREF_BOOL: pref.type = "bool"; pref.value = Services.prefs.getBoolPref(prefName); break; @@ -1061,16 +1089,36 @@ var BrowserApp = { } else if (json.name == "privacy.masterpassword.enabled") { // MasterPassword pref is not real, we just need take action and leave // MasterPassword pref is not real, we just need take action and leave if (MasterPassword.enabled) MasterPassword.removePassword(json.value); else MasterPassword.setPassword(json.value); return; + } else if (json.name === "privacy.donottrackheader") { + // "privacy.donottrackheader" is not "real" pref name, it's used in the setting menu. + switch (json.value) { + case kDoNotTrackPrefState.NO_PREF: + // Don't tell anything about tracking me + Services.prefs.setBoolPref("privacy.donottrackheader.enabled", false); + Services.prefs.clearUserPref("privacy.donottrackheader.value"); + break; + case kDoNotTrackPrefState.ALLOW_TRACKING: + // Accept tracking me + Services.prefs.setBoolPref("privacy.donottrackheader.enabled", true); + Services.prefs.setIntPref("privacy.donottrackheader.value", 0); + break; + case kDoNotTrackPrefState.DISALLOW_TRACKING: + // Not accept tracking me + Services.prefs.setBoolPref("privacy.donottrackheader.enabled", true); + Services.prefs.setIntPref("privacy.donottrackheader.value", 1); + break; + } + return; } else if (json.name == SearchEngines.PREF_SUGGEST_ENABLED) { // Enabling or disabling suggestions will prevent future prompts Services.prefs.setBoolPref(SearchEngines.PREF_SUGGEST_PROMPTED, true); } // when sending to java, we normalized special preferences that use // integers and strings to represent booleans. here, we convert them back // to their actual types so we can store them.