From 3ee7f22fa0834e619cdbccfbbcfdc0890f9cb73c Mon Sep 17 00:00:00 2001 From: wchen342 Date: Wed, 18 Jan 2023 01:55:00 +0200 Subject: [PATCH] Remove more BravePrefServiceBridge functions --- android/BUILD.gn | 6 + android/brave_java_sources.gni | 1 + .../chrome/browser/app/BraveActivity.java | 10 +- .../preferences/BravePrefServiceBridge.java | 62 ------- .../website/BraveShieldsContentSettings.java | 52 +++++- .../settings/BravePrivacySettings.java | 172 ++++++++++-------- .../BravePrivacySettingsIPFSUtils.java | 32 ++++ .../BravePreferenceDialogFragment.java | 49 ++++- .../browser/shields/BraveShieldsHandler.java | 2 +- android/java/res/values/array.xml | 2 +- browser/android/preferences/BUILD.gn | 1 + .../preferences/brave_pref_service_bridge.cc | 140 -------------- .../android/strings/android_brave_strings.grd | 6 +- .../java/templates/BraveConfig.template | 8 +- components/ipfs/ipfs_constants.h | 1 + 15 files changed, 243 insertions(+), 301 deletions(-) create mode 100644 android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettingsIPFSUtils.java diff --git a/android/BUILD.gn b/android/BUILD.gn index 1b8e6b8c980..17c6290447f 100644 --- a/android/BUILD.gn +++ b/android/BUILD.gn @@ -1,3 +1,8 @@ +# Copyright (c) 2023 The Brave Authors. All rights reserved. +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this file, +# You can obtain one at https://mozilla.org/MPL/2.0/. + import("//brave/components/p3a/buildflags.gni") import("//build/config/android/rules.gni") @@ -10,6 +15,7 @@ java_cpp_enum("brave_android_java_enums_srcjar") { sources = [ "//brave/chromium_src/chrome/browser/notifications/notification_handler_impl.h", "//brave/components/decentralized_dns/core/constants.h", + "//brave/components/ipfs/ipfs_constants.h", ] } diff --git a/android/brave_java_sources.gni b/android/brave_java_sources.gni index 4901c079f87..9a66a81f8da 100644 --- a/android/brave_java_sources.gni +++ b/android/brave_java_sources.gni @@ -267,6 +267,7 @@ brave_java_sources = [ "../../brave/android/java/org/chromium/chrome/browser/preferences/website/BraveShieldsContentSettings.java", "../../brave/android/java/org/chromium/chrome/browser/preferences/website/BraveShieldsContentSettingsObserver.java", "../../brave/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java", + "../../brave/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettingsIPFSUtils.java", "../../brave/android/java/org/chromium/chrome/browser/qrreader/BarcodeTracker.java", "../../brave/android/java/org/chromium/chrome/browser/qrreader/BarcodeTrackerFactory.java", "../../brave/android/java/org/chromium/chrome/browser/qrreader/CameraSource.java", diff --git a/android/java/org/chromium/chrome/browser/app/BraveActivity.java b/android/java/org/chromium/chrome/browser/app/BraveActivity.java index cd29036382c..4f70809e2dc 100644 --- a/android/java/org/chromium/chrome/browser/app/BraveActivity.java +++ b/android/java/org/chromium/chrome/browser/app/BraveActivity.java @@ -1241,11 +1241,13 @@ public abstract class BraveActivity extends C boolean value = sharedPreferences.getBoolean( BravePrivacySettings.PREF_FINGERPRINTING_PROTECTION, true); if (value) { - BravePrefServiceBridge.getInstance().setFingerprintingControlType( - BraveShieldsContentSettings.DEFAULT); + BraveShieldsContentSettings.setShieldsValue(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_FINGERPRINTING, + BraveShieldsContentSettings.DEFAULT, false); } else { - BravePrefServiceBridge.getInstance().setFingerprintingControlType( - BraveShieldsContentSettings.ALLOW_RESOURCE); + BraveShieldsContentSettings.setShieldsValue(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_FINGERPRINTING, + BraveShieldsContentSettings.ALLOW_RESOURCE, false); } } } diff --git a/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java b/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java index 260846bb99a..c3072d5f6d8 100644 --- a/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java +++ b/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java @@ -38,35 +38,6 @@ public class BravePrefServiceBridge { return sInstance; } - /** - * @param whether HTTPSE should be enabled. - */ - public void setHTTPSEEnabled(boolean enabled) { - BravePrefServiceBridgeJni.get().setHTTPSEEnabled(enabled); - } - - /** - * @param whether the IPFS gateway should be enabled. - */ - public void setIpfsGatewayEnabled(boolean enabled) { - BravePrefServiceBridgeJni.get().setIpfsGatewayEnabled(enabled); - } - - /** - * @param whether AdBlock should be enabled. - */ - public void setAdBlockEnabled(boolean enabled) { - BravePrefServiceBridgeJni.get().setAdBlockEnabled(enabled); - } - - public void setNoScriptControlType(String type) { - BravePrefServiceBridgeJni.get().setNoScriptControlType(type); - } - - public String getNoScriptControlType() { - return BravePrefServiceBridgeJni.get().getNoScriptControlType(); - } - public void setCookiesBlockType(String type) { BravePrefServiceBridgeJni.get().setCookiesBlockType(type); } @@ -75,26 +46,6 @@ public class BravePrefServiceBridge { return BravePrefServiceBridgeJni.get().getCookiesBlockType(); } - /** - * @param whether Fingerprinting Protection should be enabled. - */ - - public void setFingerprintingControlType(String type) { - BravePrefServiceBridgeJni.get().setFingerprintingControlType(type); - } - - public String getFingerprintingControlType() { - return BravePrefServiceBridgeJni.get().getFingerprintingControlType(); - } - - public void setCosmeticFilteringControlType(int type) { - BravePrefServiceBridgeJni.get().setCosmeticFilteringControlType(type); - } - - public String getCosmeticFilteringControlType() { - return BravePrefServiceBridgeJni.get().getCosmeticFilteringControlType(); - } - public void setPlayYTVideoInBrowserEnabled(boolean enabled) { BravePrefServiceBridgeJni.get().setPlayYTVideoInBrowserEnabled(enabled); } @@ -188,22 +139,9 @@ public class BravePrefServiceBridge { @NativeMethods interface Natives { - void setCosmeticFilteringControlType(int type); - String getCosmeticFilteringControlType(); - void setCookiesBlockType(String type); String getCookiesBlockType(); - void setFingerprintingControlType(String type); - String getFingerprintingControlType(); - - void setNoScriptControlType(String type); - String getNoScriptControlType(); - - void setHTTPSEEnabled(boolean enabled); - void setIpfsGatewayEnabled(boolean enabled); - void setAdBlockEnabled(boolean enabled); - void setPlayYTVideoInBrowserEnabled(boolean enabled); boolean getPlayYTVideoInBrowserEnabled(); diff --git a/android/java/org/chromium/chrome/browser/preferences/website/BraveShieldsContentSettings.java b/android/java/org/chromium/chrome/browser/preferences/website/BraveShieldsContentSettings.java index b1d6c7b4d41..6c4f8da230a 100644 --- a/android/java/org/chromium/chrome/browser/preferences/website/BraveShieldsContentSettings.java +++ b/android/java/org/chromium/chrome/browser/preferences/website/BraveShieldsContentSettings.java @@ -95,7 +95,8 @@ public class BraveShieldsContentSettings { BraveShieldsContentSettingsJni.get().setCookieControlType(settingOption, host, profile); } else if (resourceIndentifier.equals(RESOURCE_IDENTIFIER_TRACKERS)) { BraveShieldsContentSettingsJni.get().setCosmeticFilteringControlType( - settingOption, host, profile); + DEFAULT.equals(settingOption) ? BLOCK_THIRDPARTY_RESOURCE : settingOption, host, + profile); BraveShieldsContentSettingsJni.get().setAdControlType(settingOption, host, profile); } } @@ -123,10 +124,59 @@ public class BraveShieldsContentSettings { } else if (resourceIndentifier.equals(RESOURCE_IDENTIFIER_TRACKERS)) { settings = BraveShieldsContentSettingsJni.get().getCosmeticFilteringControlType( host, profile); + if (settings.equals(BLOCK_THIRDPARTY_RESOURCE)) { + settings = DEFAULT; + } } return settings; } + public static void setHTTPSEverywherePref(boolean value) { + setShields(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_HTTP_UPGRADABLE_RESOURCES, value, + false); + } + + public static void setFingerprintingPref(String value) { + setShieldsValue(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_FINGERPRINTING, value, false); + } + + public static void setCookiesPref(String value) { + setShieldsValue(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_COOKIES, value, false); + } + + public static void setTrackersPref(String value) { + setShieldsValue(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_TRACKERS, value, false); + } + + public static void setJavascriptPref(boolean value) { + setShields(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_JAVASCRIPTS, value, false); + } + + public static boolean getJavascriptPref() { + return getShields(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_JAVASCRIPTS); + } + + public static String getTrackersPref() { + return getShieldsValue(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_TRACKERS); + } + + public static String getFingerprintingPref() { + return getShieldsValue(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_FINGERPRINTING); + } + + public static boolean getHTTPSEverywherePref() { + return getShields(Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_HTTP_UPGRADABLE_RESOURCES); + } + @CalledByNative private void setNativePtr(long nativePtr) { assert mNativeBraveShieldsContentSettings == 0; 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 8b17fd1307a..fc9f358cd47 100644 --- a/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java +++ b/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettings.java @@ -15,7 +15,6 @@ import androidx.preference.PreferenceCategory; import org.chromium.base.BraveFeatureList; import org.chromium.base.ContextUtils; -import org.chromium.base.Log; import org.chromium.brave_shields.mojom.CookieListOptInPageAndroidHandler; import org.chromium.chrome.R; import org.chromium.chrome.browser.BraveConfig; @@ -80,7 +79,6 @@ public class BravePrivacySettings extends PrivacySettings implements ConnectionE private static final String PREF_BLOCK_SCRIPTS = "scripts_block"; public static final String PREF_FINGERPRINTING_PROTECTION = "fingerprinting_protection"; private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; - private static final String PREF_HTTPS_EVERYWHERE = "https_everywhere"; private static final String PREF_SEND_P3A = "send_p3a_analytics"; private static final String PREF_SEND_CRASH_REPORTS = "send_crash_reports"; private static final String PREF_BRAVE_STATS_USAGE_PING = "brave_stats_usage_ping"; @@ -344,7 +342,7 @@ public class BravePrivacySettings extends PrivacySettings implements ConnectionE ContextUtils.getAppSharedPreferences().edit(); if (PREF_HTTPSE.equals(key)) { boolean newValueBool = (boolean) newValue; - BravePrefServiceBridge.getInstance().setHTTPSEEnabled(newValueBool); + BraveShieldsContentSettings.setHTTPSEverywherePref(newValueBool); mHttpsFirstModePref.setVisible(newValueBool); if (newValueBool) { // Restore state of HTTPS_ONLY_MODE. @@ -362,6 +360,9 @@ public class BravePrivacySettings extends PrivacySettings implements ConnectionE UserPrefs.get(Profile.getLastUsedRegularProfile()) .setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, newValueBool); } + } else if (PREF_HTTPS_FIRST_MODE.equals(key)) { + UserPrefs.get(Profile.getLastUsedRegularProfile()) + .setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue); } else if (PREF_DE_AMP.equals(key)) { UserPrefs.get(Profile.getLastUsedRegularProfile()) .setBoolean(BravePref.DE_AMP_PREF_ENABLED, (boolean) newValue); @@ -369,63 +370,69 @@ public class BravePrivacySettings extends PrivacySettings implements ConnectionE UserPrefs.get(Profile.getLastUsedRegularProfile()) .setBoolean(BravePref.DEBOUNCE_ENABLED, (boolean) newValue); } else if (PREF_IPFS_GATEWAY.equals(key)) { - BravePrefServiceBridge.getInstance().setIpfsGatewayEnabled((boolean) newValue); + BravePrivacySettingsIPFSUtils.setIPFSGatewayPref((boolean) newValue); } else if (PREF_BLOCK_COOKIE_CONSENT_NOTICES.equals(key)) { if (mCookieListOptInPageAndroidHandler != null) { mCookieListOptInPageAndroidHandler.enableFilter((boolean) newValue); } - } else if (PREF_FINGERPRINTING_PROTECTION.equals(key)) { - if (newValue instanceof String - && String.valueOf(newValue).equals( - BraveShieldsContentSettings.BLOCK_RESOURCE)) { - BravePrefServiceBridge.getInstance().setFingerprintingControlType( - BraveShieldsContentSettings.BLOCK_RESOURCE); - mFingerprintingProtectionPref.setSummary(getActivity().getResources().getString( - R.string.block_fingerprinting_option_1)); - mFingerprintingProtectionPref.setCheckedIndex(0); - } else if (newValue instanceof String - && String.valueOf(newValue).equals(BraveShieldsContentSettings.DEFAULT)) { - BravePrefServiceBridge.getInstance().setFingerprintingControlType( - BraveShieldsContentSettings.DEFAULT); - mFingerprintingProtectionPref.setSummary(getActivity().getResources().getString( - R.string.block_fingerprinting_option_2)); - mFingerprintingProtectionPref.setCheckedIndex(1); - } else { - BravePrefServiceBridge.getInstance().setFingerprintingControlType( - BraveShieldsContentSettings.ALLOW_RESOURCE); - mFingerprintingProtectionPref.setSummary(getActivity().getResources().getString( - R.string.block_fingerprinting_option_3)); - mFingerprintingProtectionPref.setCheckedIndex(2); + if (newValue instanceof String) { + final String newStringValue = String.valueOf(newValue); + switch (newStringValue) { + case BraveShieldsContentSettings.BLOCK_RESOURCE: + BraveShieldsContentSettings.setFingerprintingPref(newStringValue); + mFingerprintingProtectionPref.setSummary( + getActivity().getResources().getString( + R.string.block_fingerprinting_option_1)); + mFingerprintingProtectionPref.setCheckedIndex(0); + break; + case BraveShieldsContentSettings.DEFAULT: + BraveShieldsContentSettings.setFingerprintingPref(newStringValue); + mFingerprintingProtectionPref.setSummary( + getActivity().getResources().getString( + R.string.block_fingerprinting_option_2)); + mFingerprintingProtectionPref.setCheckedIndex(1); + break; + case BraveShieldsContentSettings.ALLOW_RESOURCE: + default: + BraveShieldsContentSettings.setFingerprintingPref( + BraveShieldsContentSettings.ALLOW_RESOURCE); + mFingerprintingProtectionPref.setSummary( + getActivity().getResources().getString( + R.string.block_fingerprinting_option_3)); + mFingerprintingProtectionPref.setCheckedIndex(2); + break; + } } } 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( - BraveShieldsContentSettings.BLOCK_RESOURCE); - mBlockCrosssiteCookies.setSummary( - getActivity().getResources().getString(R.string.block_cookies_option_1)); - mBlockCrosssiteCookies.setCheckedIndex(0); - } else if ((int) newValue == 1) { - BravePrefServiceBridge.getInstance().setCookiesBlockType( - BraveShieldsContentSettings.DEFAULT); - mBlockCrosssiteCookies.setSummary( - getActivity().getResources().getString(R.string.block_cross_site_cookies)); - mBlockCrosssiteCookies.setCheckedIndex(1); - } else { - BravePrefServiceBridge.getInstance().setCookiesBlockType( - BraveShieldsContentSettings.ALLOW_RESOURCE); - mBlockCrosssiteCookies.setSummary( - getActivity().getResources().getString(R.string.block_cookies_option_3)); - mBlockCrosssiteCookies.setCheckedIndex(2); + switch ((int) newValue) { + case STRICT: + BraveShieldsContentSettings.setCookiesPref( + BraveShieldsContentSettings.BLOCK_RESOURCE); + mBlockCrosssiteCookies.setSummary(getActivity().getResources().getString( + R.string.block_cookies_option_1)); + mBlockCrosssiteCookies.setCheckedIndex(0); + break; + case STANDARD: + BraveShieldsContentSettings.setCookiesPref( + BraveShieldsContentSettings.BLOCK_THIRDPARTY_RESOURCE); + mBlockCrosssiteCookies.setSummary(getActivity().getResources().getString( + R.string.block_cookies_option_2)); + mBlockCrosssiteCookies.setCheckedIndex(1); + // fall through + case ALLOW: + default: + BraveShieldsContentSettings.setCookiesPref( + BraveShieldsContentSettings.ALLOW_RESOURCE); + mBlockCrosssiteCookies.setSummary(getActivity().getResources().getString( + R.string.block_cookies_option_3)); + mBlockCrosssiteCookies.setCheckedIndex(2); } } else if (PREF_BLOCK_SCRIPTS.equals(key)) { - String settingString = - ((boolean) newValue ? BraveShieldsContentSettings.BLOCK_RESOURCE - : BraveShieldsContentSettings.ALLOW_RESOURCE); - BravePrefServiceBridge.getInstance().setNoScriptControlType(settingString); + BraveShieldsContentSettings.setJavascriptPref((boolean) newValue); } else if (PREF_CLOSE_TABS_ON_EXIT.equals(key)) { sharedPreferencesEditor.putBoolean(PREF_CLOSE_TABS_ON_EXIT, (boolean) newValue); } else if (PREF_SEND_P3A.equals(key)) { @@ -460,26 +467,30 @@ public class BravePrivacySettings extends PrivacySettings implements ConnectionE .setBoolean(BravePref.LINKED_IN_EMBED_CONTROL_TYPE, (boolean) newValue); } else if (PREF_CLEAR_ON_EXIT.equals(key)) { sharedPreferencesEditor.putBoolean(PREF_CLEAR_ON_EXIT, (boolean) newValue); - } else if (PREF_BLOCK_TRACKERS_ADS.equals(key)) { - if (newValue instanceof String - && String.valueOf(newValue).equals( - BraveShieldsContentSettings.BLOCK_RESOURCE)) { - BravePrefServiceBridge.getInstance().setCosmeticFilteringControlType(0); - mAdsTrakersBlockPref.setSummary(getActivity().getResources().getString( - R.string.block_trackers_ads_option_1)); - mAdsTrakersBlockPref.setCheckedIndex(0); - } else if (newValue instanceof String - && String.valueOf(newValue).equals(BraveShieldsContentSettings.DEFAULT)) { - BravePrefServiceBridge.getInstance().setCosmeticFilteringControlType(1); - mAdsTrakersBlockPref.setSummary(getActivity().getResources().getString( - R.string.block_trackers_ads_option_2)); - mAdsTrakersBlockPref.setCheckedIndex(1); - } else { - BravePrefServiceBridge.getInstance().setCosmeticFilteringControlType(2); - mAdsTrakersBlockPref.setSummary(getActivity().getResources().getString( - R.string.block_trackers_ads_option_3)); - mAdsTrakersBlockPref.setCheckedIndex(2); + if (newValue instanceof String) { + final String newStringValue = String.valueOf(newValue); + switch (newStringValue) { + case BraveShieldsContentSettings.BLOCK_RESOURCE: + BraveShieldsContentSettings.setTrackersPref(newStringValue); + mAdsTrakersBlockPref.setSummary(getActivity().getResources().getString( + R.string.block_trackers_ads_option_1)); + mAdsTrakersBlockPref.setCheckedIndex(0); + break; + case BraveShieldsContentSettings.DEFAULT: + BraveShieldsContentSettings.setTrackersPref(newStringValue); + mAdsTrakersBlockPref.setSummary(getActivity().getResources().getString( + R.string.block_trackers_ads_option_2)); + mAdsTrakersBlockPref.setCheckedIndex(1); + break; + default: + BraveShieldsContentSettings.setTrackersPref( + BraveShieldsContentSettings.ALLOW_RESOURCE); + mAdsTrakersBlockPref.setSummary(getActivity().getResources().getString( + R.string.block_trackers_ads_option_3)); + mAdsTrakersBlockPref.setCheckedIndex(2); + break; + } } } @@ -496,23 +507,28 @@ public class BravePrivacySettings extends PrivacySettings implements ConnectionE } removePreferenceIfPresent(PREF_SYNC_AND_SERVICES_LINK); - String getNoScriptControlType = - BravePrefServiceBridge.getInstance().getNoScriptControlType(); - SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences(); - String blockAdTrackersPref = - BravePrefServiceBridge.getInstance().getCosmeticFilteringControlType(); + String blockAdTrackersPref = BraveShieldsContentSettings.getTrackersPref(); int cookiesBlockPref = sharedPreferences.getInt(PREF_BLOCK_CROSS_SITE_COOKIES, 1); - String fingerprintingPref = - BravePrefServiceBridge.getInstance().getFingerprintingControlType(); + String fingerprintingPref = BraveShieldsContentSettings.getFingerprintingPref(); - if (getNoScriptControlType.equals(BraveShieldsContentSettings.BLOCK_RESOURCE)) { - mBlockScriptsPref.setChecked(true); + mBlockScriptsPref.setChecked(BraveShieldsContentSettings.getJavascriptPref()); + + // HTTPSE and HTTPS only mode + final boolean httpseEnabled = BraveShieldsContentSettings.getHTTPSEverywherePref(); + mHttpsePref.setChecked(httpseEnabled); + if (httpseEnabled) { + mHttpsFirstModePref.setVisible(httpseEnabled); + mHttpsFirstModePref.setChecked(UserPrefs.get(Profile.getLastUsedRegularProfile()) + .getBoolean(Pref.HTTPS_ONLY_MODE_ENABLED)); } else { - mBlockScriptsPref.setChecked(false); + mHttpsFirstModePref.setChecked(httpseEnabled); } + // IPFS Gateway + mIpfsGatewayPref.setChecked(BravePrivacySettingsIPFSUtils.getIPFSGatewayPref()); + if (blockAdTrackersPref.equals(BraveShieldsContentSettings.BLOCK_RESOURCE)) { mAdsTrakersBlockPref.setCheckedIndex(0); mAdsTrakersBlockPref.setSummary( @@ -534,7 +550,7 @@ public class BravePrivacySettings extends PrivacySettings implements ConnectionE } else if (cookiesBlockPref == STANDARD) { mBlockCrosssiteCookies.setCheckedIndex(1); mBlockCrosssiteCookies.setSummary( - getActivity().getResources().getString(R.string.block_cross_site_cookies)); + getActivity().getResources().getString(R.string.block_cookies_option_2)); } else if (cookiesBlockPref == ALLOW) { mBlockCrosssiteCookies.setCheckedIndex(2); mBlockCrosssiteCookies.setSummary( diff --git a/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettingsIPFSUtils.java b/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettingsIPFSUtils.java new file mode 100644 index 00000000000..06491afb74c --- /dev/null +++ b/android/java/org/chromium/chrome/browser/privacy/settings/BravePrivacySettingsIPFSUtils.java @@ -0,0 +1,32 @@ +/* Copyright (c) 2023 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at https://mozilla.org/MPL/2.0/. */ + +package org.chromium.chrome.browser.privacy.settings; + +import org.chromium.chrome.browser.BraveConfig; +import org.chromium.chrome.browser.preferences.BravePref; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.components.user_prefs.UserPrefs; + +public class BravePrivacySettingsIPFSUtils { + public static void setIPFSGatewayPref(boolean preference) { + if (BraveConfig.IPFS_ENABLED) { + UserPrefs.get(Profile.getLastUsedRegularProfile()) + .setInteger(BravePref.IPFS_RESOLVE_METHOD, + preference ? IPFSResolveMethodTypes.IPFS_ASK + : IPFSResolveMethodTypes.IPFS_DISABLED); + } + } + + public static boolean getIPFSGatewayPref() { + if (BraveConfig.IPFS_ENABLED) { + return UserPrefs.get(Profile.getLastUsedRegularProfile()) + .getInteger(BravePref.IPFS_RESOLVE_METHOD) + == IPFSResolveMethodTypes.IPFS_ASK; + } else { + return false; + } + } +} diff --git a/android/java/org/chromium/chrome/browser/settings/BravePreferenceDialogFragment.java b/android/java/org/chromium/chrome/browser/settings/BravePreferenceDialogFragment.java index 0977688272f..d4dc5e17594 100644 --- a/android/java/org/chromium/chrome/browser/settings/BravePreferenceDialogFragment.java +++ b/android/java/org/chromium/chrome/browser/settings/BravePreferenceDialogFragment.java @@ -26,6 +26,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.preferences.BravePrefServiceBridge; import org.chromium.chrome.browser.preferences.website.BraveShieldsContentSettings; import org.chromium.chrome.browser.privacy.settings.BravePrivacySettings; +import org.chromium.chrome.browser.profiles.Profile; public class BravePreferenceDialogFragment extends PreferenceDialogFragmentCompat { public static final String TAG = "BravePreferenceDialogFragment"; @@ -62,10 +63,14 @@ public class BravePreferenceDialogFragment extends PreferenceDialogFragmentCompa SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences(); if (currentPreference.equals(BravePrivacySettings.PREF_FINGERPRINTING_PROTECTION)) { onPreferenceChangeListener.onPreferenceChange(dialogPreference, - BravePrefServiceBridge.getInstance().getFingerprintingControlType()); + BraveShieldsContentSettings.getShieldsValue( + Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_FINGERPRINTING)); } else if (currentPreference.equals(BravePrivacySettings.PREF_BLOCK_TRACKERS_ADS)) { onPreferenceChangeListener.onPreferenceChange(dialogPreference, - BravePrefServiceBridge.getInstance().getCosmeticFilteringControlType()); + BraveShieldsContentSettings.getShieldsValue( + Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_TRACKERS)); } else { onPreferenceChangeListener.onPreferenceChange( dialogPreference, sharedPreferences.getInt(currentPreference, 1)); @@ -87,19 +92,43 @@ public class BravePreferenceDialogFragment extends PreferenceDialogFragmentCompa if (currentPreference.equals( BravePrivacySettings.PREF_FINGERPRINTING_PROTECTION)) { if ((int) newValue == 0) { - BravePrefServiceBridge.getInstance().setFingerprintingControlType( - BraveShieldsContentSettings.BLOCK_RESOURCE); + BraveShieldsContentSettings.setShieldsValue( + Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_FINGERPRINTING, + BraveShieldsContentSettings.BLOCK_RESOURCE, false); } else if ((int) newValue == 1) { - BravePrefServiceBridge.getInstance().setFingerprintingControlType( - BraveShieldsContentSettings.DEFAULT); + BraveShieldsContentSettings.setShieldsValue( + Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_FINGERPRINTING, + BraveShieldsContentSettings.DEFAULT, false); } else { - BravePrefServiceBridge.getInstance().setFingerprintingControlType( - BraveShieldsContentSettings.ALLOW_RESOURCE); + BraveShieldsContentSettings.setShieldsValue( + Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_FINGERPRINTING, + BraveShieldsContentSettings.ALLOW_RESOURCE, false); } } else if (currentPreference.equals( BravePrivacySettings.PREF_BLOCK_TRACKERS_ADS)) { - BravePrefServiceBridge.getInstance().setCosmeticFilteringControlType( - (int) newValue); + switch ((int) newValue) { + case 0: + BraveShieldsContentSettings.setShieldsValue( + Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_TRACKERS, + BraveShieldsContentSettings.BLOCK_RESOURCE, false); + break; + case 1: + BraveShieldsContentSettings.setShieldsValue( + Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_TRACKERS, + BraveShieldsContentSettings.DEFAULT, false); + break; + default: + BraveShieldsContentSettings.setShieldsValue( + Profile.getLastUsedRegularProfile(), "", + BraveShieldsContentSettings.RESOURCE_IDENTIFIER_TRACKERS, + BraveShieldsContentSettings.ALLOW_RESOURCE, false); + break; + } } else { sharedPreferencesEditor.putInt(currentPreference, (int) newValue); } diff --git a/android/java/org/chromium/chrome/browser/shields/BraveShieldsHandler.java b/android/java/org/chromium/chrome/browser/shields/BraveShieldsHandler.java index 89230d20239..d148797229c 100644 --- a/android/java/org/chromium/chrome/browser/shields/BraveShieldsHandler.java +++ b/android/java/org/chromium/chrome/browser/shields/BraveShieldsHandler.java @@ -628,7 +628,7 @@ public class BraveShieldsHandler implements BraveRewardsHelper.LargeIconReadyCal titleStringId = R.string.block_cookies; subtitleStringId = R.string.block_cookies_text; option1StringId = R.string.block_cookies_option_1; - option2StringId = R.string.block_cross_site_cookies; + option2StringId = R.string.block_cookies_option_2; option3StringId = R.string.block_cookies_option_3; break; } diff --git a/android/java/res/values/array.xml b/android/java/res/values/array.xml index f888d7b994a..52ff8b50d8b 100644 --- a/android/java/res/values/array.xml +++ b/android/java/res/values/array.xml @@ -13,7 +13,7 @@ @string/block_cookies_option_1 - @string/block_cross_site_cookies + @string/block_cookies_option_2 @string/block_cookies_option_3 diff --git a/browser/android/preferences/BUILD.gn b/browser/android/preferences/BUILD.gn index 04958285358..86460e1ab44 100644 --- a/browser/android/preferences/BUILD.gn +++ b/browser/android/preferences/BUILD.gn @@ -43,6 +43,7 @@ java_cpp_strings("java_pref_names_srcjar") { "//brave/components/de_amp/common/pref_names.cc", "//brave/components/debounce/common/pref_names.cc", "//brave/components/decentralized_dns/core/pref_names.cc", + "//brave/components/ipfs/pref_names.cc", "//brave/components/ntp_background_images/common/pref_names.cc", "//brave/components/omnibox/browser/brave_omnibox_prefs.cc", "//brave/components/p3a/pref_names.cc", diff --git a/browser/android/preferences/brave_pref_service_bridge.cc b/browser/android/preferences/brave_pref_service_bridge.cc index b892eefac4c..54a4af11bec 100644 --- a/browser/android/preferences/brave_pref_service_bridge.cc +++ b/browser/android/preferences/brave_pref_service_bridge.cc @@ -81,103 +81,6 @@ std::string GetWebRTCIPHandlingPreference(WebRTCIPHandlingPolicy policy) { namespace chrome { namespace android { -void JNI_BravePrefServiceBridge_SetHTTPSEEnabled(JNIEnv* env, - jboolean enabled) { - brave_shields::SetHTTPSEverywhereEnabled( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - enabled, GURL(), g_browser_process->local_state()); -} - -void JNI_BravePrefServiceBridge_SetIpfsGatewayEnabled(JNIEnv* env, - jboolean enabled) { -#if BUILDFLAG(ENABLE_IPFS) - ipfs::IPFSResolveMethodTypes type = - enabled ? ipfs::IPFSResolveMethodTypes::IPFS_ASK - : ipfs::IPFSResolveMethodTypes::IPFS_DISABLED; - GetOriginalProfile()->GetPrefs()->SetInteger(kIPFSResolveMethod, - static_cast(type)); -#endif -} - -void JNI_BravePrefServiceBridge_SetAdBlockEnabled(JNIEnv* env, - jboolean enabled) { - brave_shields::SetAdControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - static_cast(enabled) ? ControlType::BLOCK : ControlType::ALLOW, - GURL(), g_browser_process->local_state()); -} - -void JNI_BravePrefServiceBridge_SetCosmeticFilteringControlType(JNIEnv* env, - jint type) { - switch (type) { - case 0: - // aggressive - brave_shields::SetCosmeticFilteringControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - ControlType::BLOCK, GURL(), g_browser_process->local_state(), - GetOriginalProfile()->GetPrefs()); - brave_shields::SetAdControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - ControlType::BLOCK, GURL(), g_browser_process->local_state()); - break; - case 1: - // standard - brave_shields::SetCosmeticFilteringControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - ControlType::DEFAULT, GURL(), g_browser_process->local_state(), - GetOriginalProfile()->GetPrefs()); - brave_shields::SetAdControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - ControlType::BLOCK, GURL(), g_browser_process->local_state()); - break; - case 2: - // allow all - brave_shields::SetCosmeticFilteringControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - ControlType::ALLOW, GURL(), g_browser_process->local_state(), - GetOriginalProfile()->GetPrefs()); - brave_shields::SetAdControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - ControlType::ALLOW, GURL(), g_browser_process->local_state()); - break; - default: - NOTREACHED() << "There are no other types for cosmetic filtering"; - // standard - brave_shields::SetAdControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - ControlType::BLOCK, GURL(), g_browser_process->local_state()); - brave_shields::SetCosmeticFilteringControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - ControlType::DEFAULT, GURL(), g_browser_process->local_state(), - GetOriginalProfile()->GetPrefs()); - break; - } -} - -base::android::ScopedJavaLocalRef -JNI_BravePrefServiceBridge_GetCosmeticFilteringControlType(JNIEnv* env) { - brave_shields::ControlType cosmetic_type = - brave_shields::GetCosmeticFilteringControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - GURL()); - brave_shields::ControlType control_type_ad = brave_shields::GetAdControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - GURL()); - - if (cosmetic_type == ControlType::BLOCK) { - return base::android::ConvertUTF8ToJavaString( - env, brave_shields::ControlTypeToString(ControlType::BLOCK)); - } else { - if (control_type_ad == ControlType::BLOCK) { - return base::android::ConvertUTF8ToJavaString( - env, brave_shields::ControlTypeToString(ControlType::DEFAULT)); - } else { - return base::android::ConvertUTF8ToJavaString( - env, brave_shields::ControlTypeToString(ControlType::ALLOW)); - } - } -} - void JNI_BravePrefServiceBridge_SetCookiesBlockType( JNIEnv* env, const base::android::JavaParamRef& type) { @@ -198,49 +101,6 @@ JNI_BravePrefServiceBridge_GetCookiesBlockType(JNIEnv* env) { env, brave_shields::ControlTypeToString(control_type)); } -void JNI_BravePrefServiceBridge_SetFingerprintingControlType( - JNIEnv* env, - const base::android::JavaParamRef& type) { - brave_shields::SetFingerprintingControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - brave_shields::ControlTypeFromString( - base::android::ConvertJavaStringToUTF8(env, type)), - GURL(), g_browser_process->local_state(), - GetOriginalProfile()->GetPrefs()); -} - -base::android::ScopedJavaLocalRef -JNI_BravePrefServiceBridge_GetFingerprintingControlType(JNIEnv* env) { - brave_shields::ControlType control_type = - brave_shields::GetFingerprintingControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - GURL()); - - return base::android::ConvertUTF8ToJavaString( - env, brave_shields::ControlTypeToString(control_type)); -} - -void JNI_BravePrefServiceBridge_SetNoScriptControlType( - JNIEnv* env, - const base::android::JavaParamRef& type) { - brave_shields::SetNoScriptControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - brave_shields::ControlTypeFromString( - base::android::ConvertJavaStringToUTF8(env, type)), - GURL(), g_browser_process->local_state()); -} - -base::android::ScopedJavaLocalRef -JNI_BravePrefServiceBridge_GetNoScriptControlType(JNIEnv* env) { - brave_shields::ControlType control_type = - brave_shields::GetNoScriptControlType( - HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile()), - GURL()); - - return base::android::ConvertUTF8ToJavaString( - env, brave_shields::ControlTypeToString(control_type)); -} - void JNI_BravePrefServiceBridge_SetPlayYTVideoInBrowserEnabled( JNIEnv* env, jboolean enabled) { diff --git a/browser/ui/android/strings/android_brave_strings.grd b/browser/ui/android/strings/android_brave_strings.grd index 62319b9456b..a6783a1e3a6 100644 --- a/browser/ui/android/strings/android_brave_strings.grd +++ b/browser/ui/android/strings/android_brave_strings.grd @@ -1340,9 +1340,6 @@ Are you sure you want to do this? Allow all trackers & ads - - Block cross-site cookies - Block Cookies @@ -1352,6 +1349,9 @@ Are you sure you want to do this? Block all cookies + + Block cross-site cookies + Allow all cookies diff --git a/build/android/java/templates/BraveConfig.template b/build/android/java/templates/BraveConfig.template index 990eb26a604..18f60622d32 100644 --- a/build/android/java/templates/BraveConfig.template +++ b/build/android/java/templates/BraveConfig.template @@ -1,7 +1,7 @@ /* Copyright (c) 2020 The Brave Authors. All rights reserved. * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ + * You can obtain one at https://mozilla.org/MPL/2.0/. */ package org.chromium.chrome.browser; @@ -26,4 +26,10 @@ public class BraveConfig { #else public static final String SAFEBROWSING_API_KEY = ""; #endif + +#if defined(ENABLE_IPFS) + public static final boolean IPFS_ENABLED = ENABLE_IPFS; +#else + public static final boolean IPFS_ENABLED = false; +#endif } diff --git a/components/ipfs/ipfs_constants.h b/components/ipfs/ipfs_constants.h index ac201a4d319..41677495ef4 100644 --- a/components/ipfs/ipfs_constants.h +++ b/components/ipfs/ipfs_constants.h @@ -45,6 +45,7 @@ extern const char kIPFSImportTextMimeType[]; // Keep it synced with IPFSResolveMethodTypes in // browser/resources/settings/brave_ipfs_page/brave_ipfs_page.js +// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.privacy.settings enum class IPFSResolveMethodTypes { IPFS_ASK, IPFS_GATEWAY,