From ad557ac1638bbdaf6d01ca86ab35d0ccbac84213 Mon Sep 17 00:00:00 2001 From: Sujit Acharya Date: Fri, 29 Jul 2022 20:19:40 +0530 Subject: [PATCH 1/3] update test --- .../browser/privacy/settings/BravePrivacySettings.java | 10 +++++++++- android/java/res/xml/brave_privacy_preferences.xml | 5 +++++ .../privacy/settings/BravePrivacySettingsTest.java | 2 +- browser/android/preferences/BUILD.gn | 1 + browser/ui/android/strings/android_brave_strings.grd | 6 ++++++ 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java b/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java index 69a38620c61b..e8252f110a65 100644 --- a/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java +++ b/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java @@ -50,6 +50,7 @@ public class BravePrivacySettings extends PrivacySettings { private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; private static final String PREF_INCOGNITO_LOCK = "incognito_lock"; private static final String PREF_PHONE_AS_A_SECURITY_KEY = "phone_as_a_security_key"; + private static final String PREF_FINGERPRINT_LANGUAGE = "fingerprint_language"; // brave Prefs private static final String PREF_BRAVE_SHIELDS_GLOBALS_SECTION = @@ -95,7 +96,7 @@ public class BravePrivacySettings extends PrivacySettings { PREF_BRAVE_SHIELDS_GLOBALS_SECTION, // shields globals section PREF_SHIELDS_SUMMARY, PREF_BLOCK_TRACKERS_ADS, PREF_DE_AMP, PREF_HTTPSE, PREF_HTTPS_FIRST_MODE, PREF_BLOCK_SCRIPTS, PREF_BLOCK_CROSS_SITE_COOKIES, - PREF_FINGERPRINTING_PROTECTION, + PREF_FINGERPRINTING_PROTECTION, PREF_FINGERPRINT_LANGUAGE, PREF_CLEAR_DATA_SECTION, // clear data automatically section PREF_CLEAR_ON_EXIT, PREF_CLEAR_BROWSING_DATA, PREF_BRAVE_SOCIAL_BLOCKING_SECTION, // social blocking section @@ -145,6 +146,7 @@ public class BravePrivacySettings extends PrivacySettings { private ChromeBasePreference mWebrtcPolicy; private ChromeSwitchPreference mClearBrowsingDataOnExit; private Preference mUstoppableDomains; + private ChromeSwitchPreference mFingerprntLanguagePref; @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -187,6 +189,9 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { (BraveDialogPreference) findPreference(PREF_FINGERPRINTING_PROTECTION); mFingerprintingProtectionPref.setOnPreferenceChangeListener(this); + mFingerprntLanguagePref = (ChromeSwitchPreference) findPreference(PREF_FINGERPRINT_LANGUAGE); + mFingerprntLanguagePref.setOnPreferenceChangeListener(this); + mCloseTabsOnExitPref = (ChromeSwitchPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT); mCloseTabsOnExitPref.setOnPreferenceChangeListener(this); @@ -311,6 +316,9 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { R.string.block_fingerprinting_option_3)); mFingerprintingProtectionPref.setCheckedIndex(2); } + } else if (PREF_FINGERPRINT_LANGUAGE.equals(key)) { + UserPrefs.get(Profile.getLastUsedRegularProfile()) + .setBoolean(BravePref.REDUCE_LANGUAGE_ENABLED, (boolean) newValue); } else if (PREF_BLOCK_CROSS_SITE_COOKIES.equals(key)) { if ((int) newValue == 0) { BravePrefServiceBridge.getInstance().setCookiesBlockType( diff --git a/android/java/res/xml/brave_privacy_preferences.xml b/android/java/res/xml/brave_privacy_preferences.xml index 93a7ef48ad1b..a664b9f6038c 100644 --- a/android/java/res/xml/brave_privacy_preferences.xml +++ b/android/java/res/xml/brave_privacy_preferences.xml @@ -46,6 +46,11 @@ app:dialog_subtitle="@string/block_fingerprinting_text" app:dialog_entries="@array/blockFingerprintingTexts" app:dialog_default_index="1" /> + These are the default Shields settings for new sites. Changing these won't affect your existing per-site settings. + + Prevent fingerprinting via language settings + + + Reduces how much websites can learn about you based on your browser's language settings. + Prevents browser from recognizing your device From eb8d8688e5e57e33a867e0e5ac07c44750bf50b5 Mon Sep 17 00:00:00 2001 From: Sujit Acharya Date: Fri, 29 Jul 2022 22:43:37 +0530 Subject: [PATCH 2/3] format code --- .../chrome/browser/privacy/settings/BravePrivacySettings.java | 3 ++- browser/android/preferences/BUILD.gn | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java b/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java index e8252f110a65..36243b551873 100644 --- a/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java +++ b/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java @@ -189,7 +189,8 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { (BraveDialogPreference) findPreference(PREF_FINGERPRINTING_PROTECTION); mFingerprintingProtectionPref.setOnPreferenceChangeListener(this); - mFingerprntLanguagePref = (ChromeSwitchPreference) findPreference(PREF_FINGERPRINT_LANGUAGE); + mFingerprntLanguagePref = + (ChromeSwitchPreference) findPreference(PREF_FINGERPRINT_LANGUAGE); mFingerprntLanguagePref.setOnPreferenceChangeListener(this); mCloseTabsOnExitPref = (ChromeSwitchPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT); diff --git a/browser/android/preferences/BUILD.gn b/browser/android/preferences/BUILD.gn index babca800d050..c38956600bff 100644 --- a/browser/android/preferences/BUILD.gn +++ b/browser/android/preferences/BUILD.gn @@ -33,10 +33,10 @@ source_set("preferences") { java_cpp_strings("java_pref_names_srcjar") { sources = [ "//brave/components/brave_rewards/common/pref_names.cc", + "//brave/components/brave_shields/common/pref_names.cc", "//brave/components/constants/pref_names.cc", "//brave/components/ntp_background_images/common/pref_names.cc", "//brave/components/omnibox/browser/brave_omnibox_prefs.cc", - "//brave/components/brave_shields/common/pref_names.cc", ] template = From d9759aedfcf45fb7483a36a6e84f5c7c787eb38d Mon Sep 17 00:00:00 2001 From: Sujit Acharya Date: Sat, 30 Jul 2022 01:25:49 +0530 Subject: [PATCH 3/3] update initial value based on native pref value --- .../chrome/browser/privacy/settings/BravePrivacySettings.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java b/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java index 36243b551873..bc9404de0d4d 100644 --- a/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java +++ b/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java @@ -519,6 +519,8 @@ private void updateBravePreferences() { mSearchSuggestions.setEnabled(autocompleteEnabled); mAutocompleteTopSites.setEnabled(autocompleteEnabled); mAutocompleteBraveSuggestedSites.setEnabled(autocompleteEnabled); + mFingerprntLanguagePref.setChecked(UserPrefs.get(Profile.getLastUsedRegularProfile()) + .getBoolean(BravePref.REDUCE_LANGUAGE_ENABLED)); } private void removePreferenceIfPresent(String key) {