diff --git a/browser/autocomplete/brave_autocomplete_scheme_classifier.cc b/browser/autocomplete/brave_autocomplete_scheme_classifier.cc index ae61e4f19b9f..9fd4eb25a8ec 100644 --- a/browser/autocomplete/brave_autocomplete_scheme_classifier.cc +++ b/browser/autocomplete/brave_autocomplete_scheme_classifier.cc @@ -8,8 +8,10 @@ #include #include "base/strings/string_util.h" +#include "brave/components/constants/pref_names.h" #include "brave/components/constants/url_constants.h" #include "chrome/browser/profiles/profile.h" +#include "components/prefs/pref_service.h" #if BUILDFLAG(ENABLE_BRAVE_WEBTORRENT) #include "brave/components/brave_webtorrent/browser/webtorrent_util.h" @@ -40,7 +42,7 @@ BraveAutocompleteSchemeClassifier::GetInputTypeForScheme( #if BUILDFLAG(ENABLE_BRAVE_WEBTORRENT) if (base::IsStringASCII(scheme) && - webtorrent::IsWebtorrentPrefEnabled(profile_->GetPrefs()) && + profile_->GetPrefs()->GetBoolean(kWebTorrentEnabled) && base::EqualsCaseInsensitiveASCII(scheme, kMagnetScheme)) { return metrics::OmniboxInputType::URL; } diff --git a/browser/brave_adaptive_captcha/BUILD.gn b/browser/brave_adaptive_captcha/BUILD.gn new file mode 100644 index 000000000000..11f7792fd89c --- /dev/null +++ b/browser/brave_adaptive_captcha/BUILD.gn @@ -0,0 +1,26 @@ +# Copyright (c) 2024 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/. + +source_set("brave_adaptive_captcha") { + sources = [ + "brave_adaptive_captcha_service_factory.cc", + "brave_adaptive_captcha_service_factory.h", + ] + + public_deps = [ + "//components/keyed_service/content", + "//content/public/browser", + ] + + deps = [ + "//base", + "//brave/browser/brave_rewards", + "//brave/components/brave_adaptive_captcha", + "//chrome/browser/profiles:profile", + "//chrome/browser/ui", + "//components/keyed_service/content", + "//components/user_prefs", + ] +} diff --git a/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.cc b/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.cc index acab920c0640..8ee01e22626c 100644 --- a/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.cc +++ b/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.cc @@ -11,18 +11,20 @@ #include "base/memory/raw_ptr.h" #include "base/no_destructor.h" -#if !BUILDFLAG(IS_ANDROID) -#include "brave/browser/ui/brave_rewards/rewards_panel_coordinator.h" -#include "chrome/browser/ui/browser.h" -#include "chrome/browser/ui/browser_finder.h" -#endif #include "brave/browser/brave_rewards/rewards_service_factory.h" +#include "brave/components/brave_adaptive_captcha/brave_adaptive_captcha_delegate.h" #include "brave/components/brave_adaptive_captcha/brave_adaptive_captcha_service.h" #include "chrome/browser/profiles/profile.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/user_prefs/user_prefs.h" #include "content/public/browser/storage_partition.h" +#if !BUILDFLAG(IS_ANDROID) +#include "brave/browser/ui/brave_rewards/rewards_panel_coordinator.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_finder.h" +#endif + namespace { class CaptchaDelegate diff --git a/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.h b/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.h index 567963f8a527..866613cd6886 100644 --- a/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.h +++ b/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.h @@ -6,8 +6,8 @@ #ifndef BRAVE_BROWSER_BRAVE_ADAPTIVE_CAPTCHA_BRAVE_ADAPTIVE_CAPTCHA_SERVICE_FACTORY_H_ #define BRAVE_BROWSER_BRAVE_ADAPTIVE_CAPTCHA_BRAVE_ADAPTIVE_CAPTCHA_SERVICE_FACTORY_H_ -#include "brave/components/brave_adaptive_captcha/brave_adaptive_captcha_delegate.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" +#include "content/public/browser/browser_context.h" class Profile; diff --git a/browser/brave_adaptive_captcha/sources.gni b/browser/brave_adaptive_captcha/sources.gni deleted file mode 100644 index 969b3688d591..000000000000 --- a/browser/brave_adaptive_captcha/sources.gni +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (c) 2021 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/. */ - -brave_browser_brave_adaptive_captcha_sources = [ - "//brave/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.cc", - "//brave/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.h", -] - -brave_browser_brave_adaptive_captcha_deps = [ - "//base", - "//brave/components/brave_adaptive_captcha", - "//brave/components/brave_rewards/browser", - "//chrome/browser/profiles:profile", - "//components/keyed_service/content:content", - "//components/user_prefs:user_prefs", - "//content/public/browser", - "//services/network/public/cpp:cpp", -] diff --git a/browser/brave_ads/ad_units/notification_ad/notification_ad_platform_bridge.cc b/browser/brave_ads/ad_units/notification_ad/notification_ad_platform_bridge.cc index 470e965951cf..e9c623c72c9e 100644 --- a/browser/brave_ads/ad_units/notification_ad/notification_ad_platform_bridge.cc +++ b/browser/brave_ads/ad_units/notification_ad/notification_ad_platform_bridge.cc @@ -10,6 +10,7 @@ #include "brave/browser/brave_ads/ads_service_factory.h" #include "brave/browser/ui/brave_ads/notification_ad_delegate.h" #include "brave/browser/ui/brave_ads/notification_ad_popup_handler.h" +#include "brave/components/brave_ads/browser/ads_service.h" #include "chrome/browser/platform_util.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" diff --git a/browser/brave_ads/ads_service_factory.cc b/browser/brave_ads/ads_service_factory.cc index 3c80ddb8174d..e5e23cf8c164 100644 --- a/browser/brave_ads/ads_service_factory.cc +++ b/browser/brave_ads/ads_service_factory.cc @@ -9,9 +9,11 @@ #include "brave/browser/brave_adaptive_captcha/brave_adaptive_captcha_service_factory.h" #include "brave/browser/brave_ads/device_id/device_id_impl.h" #include "brave/browser/brave_ads/services/bat_ads_service_factory_impl.h" +#include "brave/browser/brave_ads/tooltips/ads_tooltips_delegate_impl.h" #include "brave/browser/brave_browser_process.h" #include "brave/browser/brave_rewards/rewards_service_factory.h" #include "brave/browser/brave_rewards/rewards_util.h" +#include "brave/components/brave_ads/browser/ads_service.h" #include "brave/components/brave_ads/browser/ads_service_impl.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/history/history_service_factory.h" diff --git a/browser/brave_ads/ads_service_factory.h b/browser/brave_ads/ads_service_factory.h index 04d09f4832c4..01c387457d5f 100644 --- a/browser/brave_ads/ads_service_factory.h +++ b/browser/brave_ads/ads_service_factory.h @@ -8,8 +8,6 @@ #include -#include "brave/browser/brave_ads/tooltips/ads_tooltips_delegate_impl.h" -#include "brave/components/brave_ads/browser/ads_service.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" class Profile; @@ -21,6 +19,9 @@ class NoDestructor; namespace brave_ads { +class AdsService; +class AdsTooltipsDelegateImpl; + // Singleton that owns all AdsService and associates them with Profiles. class AdsServiceFactory : public BrowserContextKeyedServiceFactory { public: diff --git a/browser/brave_ads/android/brave_ads_native_helper.cc b/browser/brave_ads/android/brave_ads_native_helper.cc index ae6a5f73001d..a2a5eb8cd936 100644 --- a/browser/brave_ads/android/brave_ads_native_helper.cc +++ b/browser/brave_ads/android/brave_ads_native_helper.cc @@ -10,6 +10,7 @@ #include "base/android/jni_string.h" #include "brave/browser/brave_ads/ads_service_factory.h" #include "brave/browser/brave_ads/android/jni_headers/BraveAdsNativeHelper_jni.h" +#include "brave/components/brave_ads/browser/ads_service.h" #include "brave/components/brave_ads/core/public/ads_util.h" #include "brave/components/brave_ads/core/public/prefs/pref_names.h" #include "chrome/browser/profiles/profile.h" diff --git a/browser/brave_ads/creatives/search_result_ad/creative_search_result_ad_tab_helper.cc b/browser/brave_ads/creatives/search_result_ad/creative_search_result_ad_tab_helper.cc index 086d83877151..cd28f715239d 100644 --- a/browser/brave_ads/creatives/search_result_ad/creative_search_result_ad_tab_helper.cc +++ b/browser/brave_ads/creatives/search_result_ad/creative_search_result_ad_tab_helper.cc @@ -16,6 +16,7 @@ #include "brave/components/brave_ads/core/public/ads_feature.h" #include "brave/components/brave_rewards/common/pref_names.h" #include "brave/components/brave_search/common/brave_search_utils.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "components/prefs/pref_service.h" #include "content/public/browser/browser_context.h" diff --git a/browser/brave_ads/sources.gni b/browser/brave_ads/sources.gni index a6f0de4792f3..8c7a3379aafe 100644 --- a/browser/brave_ads/sources.gni +++ b/browser/brave_ads/sources.gni @@ -25,6 +25,7 @@ brave_browser_brave_ads_sources = [ brave_browser_brave_ads_deps = [ "//base", + "//brave/browser/brave_adaptive_captcha", "//brave/browser/brave_ads/device_id", "//brave/browser/brave_ads/services", "//brave/browser/brave_rewards:util", diff --git a/browser/brave_ads/tabs/ads_tab_helper.cc b/browser/brave_ads/tabs/ads_tab_helper.cc index 272d9d03000a..a92b56bcfb22 100644 --- a/browser/brave_ads/tabs/ads_tab_helper.cc +++ b/browser/brave_ads/tabs/ads_tab_helper.cc @@ -9,6 +9,7 @@ #include "base/containers/contains.h" #include "base/strings/stringprintf.h" #include "brave/browser/brave_ads/ads_service_factory.h" +#include "brave/components/brave_ads/browser/ads_service.h" #include "brave/components/brave_ads/core/public/prefs/pref_names.h" #include "brave/components/brave_rewards/common/pref_names.h" #include "chrome/browser/profiles/profile.h" diff --git a/browser/brave_wallet/BUILD.gn b/browser/brave_wallet/BUILD.gn index 727569a69651..8cddc5580ec8 100644 --- a/browser/brave_wallet/BUILD.gn +++ b/browser/brave_wallet/BUILD.gn @@ -50,8 +50,7 @@ source_set("brave_wallet") { ] if (enable_extensions) { deps += [ - "//brave/browser/extensions", - "//chrome/browser/extensions:extensions", + "//chrome/browser/extensions", "//extensions/browser", ] } diff --git a/browser/decentralized_dns/test/BUILD.gn b/browser/decentralized_dns/test/BUILD.gn index 8a238ad4e58b..a0c0b4f8ea73 100644 --- a/browser/decentralized_dns/test/BUILD.gn +++ b/browser/decentralized_dns/test/BUILD.gn @@ -4,6 +4,7 @@ # You can obtain one at http://mozilla.org/MPL/2.0/. */ import("//brave/build/config.gni") +import("//brave/components/tor/buildflags/buildflags.gni") import("//testing/test.gni") source_set("browser_tests") { @@ -55,4 +56,8 @@ source_set("unit_tests") { "//testing/gmock", "//testing/gtest", ] + + if (enable_tor) { + deps += [ "//brave/browser/tor" ] + } } # source_set("unit_tests") diff --git a/browser/ethereum_remote_client/BUILD.gn b/browser/ethereum_remote_client/BUILD.gn index 5999545d09d0..8d39662a9e9b 100644 --- a/browser/ethereum_remote_client/BUILD.gn +++ b/browser/ethereum_remote_client/BUILD.gn @@ -1,3 +1,8 @@ +# Copyright (c) 2024 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/browser/ethereum_remote_client/buildflags/buildflags.gni") import("//brave/build/config.gni") import("//build/config/features.gni") @@ -45,7 +50,7 @@ source_set("browser") { ] deps = [ "//brave/browser/ethereum_remote_client", - "//brave/browser/extensions", + "//brave/browser/extensions:component_loader", "//chrome/browser/extensions", "//chrome/browser/profiles", "//components/keyed_service/content", diff --git a/browser/extensions/BUILD.gn b/browser/extensions/BUILD.gn index 3ed34c9cbe1f..644bf0c2f843 100644 --- a/browser/extensions/BUILD.gn +++ b/browser/extensions/BUILD.gn @@ -4,9 +4,11 @@ # You can obtain one at https://mozilla.org/MPL/2.0/. import("//brave/browser/ethereum_remote_client/buildflags/buildflags.gni") +import("//brave/components/ai_chat/core/common/buildflags/buildflags.gni") import("//brave/components/brave_vpn/common/buildflags/buildflags.gni") import("//brave/components/brave_wayback_machine/buildflags/buildflags.gni") import("//brave/components/brave_webtorrent/browser/buildflags/buildflags.gni") +import("//brave/components/playlist/common/buildflags/buildflags.gni") import("//brave/components/speedreader/common/buildflags/buildflags.gni") import("//brave/components/tor/buildflags/buildflags.gni") import("//build/config/features.gni") @@ -15,14 +17,116 @@ import("//components/gcm_driver/config.gni") assert(toolkit_views) -source_set("extensions") { - # Remove when https://github.com/brave/brave-browser/issues/10661 is resolved +source_set("component_loader") { + sources = [ + "brave_component_loader.cc", + "brave_component_loader.h", + ] + + deps = [ + "//base", + "//brave/browser/brave_rewards:util", + "//brave/browser/ethereum_remote_client/buildflags", + "//brave/components/brave_component_updater/browser", + "//brave/components/brave_extension:static_resources", + "//brave/components/brave_rewards/common", + "//brave/components/brave_webtorrent:static_resources", + "//chrome/browser:browser_process", + "//chrome/browser/extensions", + "//chrome/browser/profiles:profile", + "//chrome/common:constants", + "//components/prefs", + "//extensions/browser", + "//extensions/common", + ] + + if (ethereum_remote_client_enabled) { + deps += [ + ":ethereum_remote_client_utils", + "//brave/browser/ethereum_remote_client", + ] + } +} + +if (ethereum_remote_client_enabled) { + source_set("ethereum_remote_client_utils") { + sources = [ + "ethereum_remote_client_util.cc", + "ethereum_remote_client_util.h", + ] + + deps = [ + "//brave/browser/ethereum_remote_client", + "//brave/components/brave_wallet/browser:utils", + "//brave/components/brave_wallet/common", + "//brave/components/brave_wallet/common:buildflags", + "//brave/components/constants", + "//components/prefs", + ] + } +} + +# This is split out from extensions and the rest of brave_prefs_util because it +# has dependencies on //chrome/browser that can't easily be resolved. This is a +# temporary workaround. +source_set("brave_prefs_util_impl") { + # Remove and combine with extensions when + # https://github.com/brave/brave-browser/issues/41418 is resolved check_includes = false + + visibility = [ ":*" ] + sources = [ "api/settings_private/brave_prefs_util_impl.cc" ] + + deps = [ + "//brave/components/brave_shields/content/browser", + "//chrome/browser:browser_public_dependencies", + "//chrome/browser/profiles:profile", + "//chrome/common/extensions/api", + "//components/content_settings/core/browser:cookie_settings", + "//components/content_settings/core/common", + "//content/public/browser", + "//url", + ] +} + +# This is split out from extensions because it has dependencies on +# //chrome/browser/ui that can't easily be resolved. This is a temporary +# workaround. +source_set("brave_rewards_api") { + # Remove and combine with extensions when + # https://github.com/brave/brave-browser/issues/41419 is resolved + check_includes = false + + visibility = [ ":*" ] sources = [ - "api/brave_extensions_api_client.cc", - "api/brave_extensions_api_client.h", "api/brave_rewards_api.cc", "api/brave_rewards_api.h", + ] + + public_deps = [ + "//base", + "//brave/browser/brave_adaptive_captcha", + "//brave/browser/brave_rewards", + "//brave/browser/brave_rewards:util", + "//brave/components/brave_adaptive_captcha", + "//brave/components/brave_ads/browser", + "//brave/components/brave_ads/core/mojom", + "//brave/components/brave_rewards/browser", + "//brave/components/brave_rewards/common", + "//brave/components/brave_rewards/common/mojom", + "//chrome/browser:browser_public_dependencies", + "//chrome/browser/extensions", + "//chrome/browser/profiles:profile", + "//components/prefs", + "//content/public/browser", + "//extensions/browser", + ] +} + +source_set("extensions") { + sources = [ + "api/brave_extensions_api_client.cc", + "api/brave_extensions_api_client.h", "api/brave_talk_api.cc", "api/brave_talk_api.h", "api/brave_theme_api.cc", @@ -35,8 +139,6 @@ source_set("extensions") { "api/rewards_notifications_api.h", "api/settings_private/brave_prefs_util.cc", "api/settings_private/brave_prefs_util.h", - "brave_component_loader.cc", - "brave_component_loader.h", "brave_extension_management.cc", "brave_extension_management.h", "brave_extension_provider.cc", @@ -54,31 +156,26 @@ source_set("extensions") { ] deps = [ + ":brave_prefs_util_impl", ":resources", "//base", "//brave/app:brave_generated_resources_grit", "//brave/browser:browser_process", - "//brave/browser/brave_rewards:util", "//brave/browser/component_updater", "//brave/browser/extensions/api:generated_api_registration", + "//brave/browser/greaselion", "//brave/browser/themes", "//brave/browser/ui:brave_tab_prefs", "//brave/common", "//brave/common/extensions/api", - "//brave/components/ai_chat/core/browser", - "//brave/components/ai_chat/core/common", "//brave/components/ai_chat/core/common/buildflags", "//brave/components/brave_adaptive_captcha", "//brave/components/brave_ads/browser", "//brave/components/brave_ads/core/public:headers", - "//brave/components/brave_component_updater/browser", "//brave/components/brave_extension:static_resources", "//brave/components/brave_news/common", "//brave/components/brave_rewards/browser", - "//brave/components/brave_rewards/common", "//brave/components/brave_rewards/common/mojom", - "//brave/components/brave_rewards/core:headers", - "//brave/components/brave_shields/content/browser", "//brave/components/brave_shields/core/common", "//brave/components/brave_vpn/common/buildflags", "//brave/components/brave_wallet/browser:pref_names", @@ -89,14 +186,10 @@ source_set("extensions") { "//brave/components/constants", "//brave/components/de_amp/common", "//brave/components/debounce/core/common", - "//brave/components/decentralized_dns/content", "//brave/components/decentralized_dns/core", "//brave/components/greaselion/browser", "//brave/components/l10n/common", "//brave/components/ntp_background_images/common", - "//brave/components/ntp_widget_utils/browser", - "//brave/components/playlist/browser", - "//brave/components/playlist/common/buildflags", "//brave/components/request_otr/common", "//brave/components/sidebar/browser", "//brave/components/tor/buildflags", @@ -105,39 +198,49 @@ source_set("extensions") { "//chrome/common", "//components/browsing_data/core", "//components/gcm_driver:gcm_buildflags", - "//components/gcm_driver:gcm_driver", - "//components/omnibox/browser:browser", "//components/prefs", - "//components/services/patch/content", - "//components/services/unzip/content", "//components/update_client:network_impl", - "//components/update_client:patch_impl", - "//components/update_client:unzip_impl", "//content/public/browser", - "//extensions/browser", - "//extensions/common", - "//third_party/re2", - "//ui/base", - "//url", ] - public_deps = [ "//brave/browser/ethereum_remote_client/buildflags" ] + public_deps = [ + ":brave_rewards_api", + ":component_loader", + "//brave/browser/ethereum_remote_client/buildflags", + ] + + if (use_gcm_from_platform) { + deps += [ "//components/gcm_driver" ] + } + + if (enable_brave_wayback_machine) { + deps += [ "//brave/components/brave_wayback_machine" ] + } + + if (enable_ai_chat) { + deps += [ "//brave/components/ai_chat/core/common" ] + } + + if (enable_speedreader) { + deps += [ "//brave/components/speedreader" ] + } if (enable_brave_vpn) { deps += [ "//brave/components/brave_vpn/common" ] } + if (enable_playlist) { + deps += [ "//brave/components/playlist/browser" ] + } + if (enable_tor) { deps += [ + "//brave/browser/tor", "//brave/components/tor", "//brave/components/tor:pref_names", ] } - if (enable_speedreader) { - deps += [ "//brave/components/speedreader" ] - } - # It seems like this brave_wallet_api should be renamed to ethereum_remote_client_api. # However this is not possible right now because the ethereum-remote-client extension # uses chrome.braveWallet, so the API is intentionally not being renamed now. @@ -145,29 +248,24 @@ source_set("extensions") { sources += [ "api/brave_wallet_api.cc", "api/brave_wallet_api.h", - "ethereum_remote_client_util.cc", - "ethereum_remote_client_util.h", ] deps += [ + ":ethereum_remote_client_utils", "//brave/browser/ethereum_remote_client", + "//brave/browser/ethereum_remote_client:browser", "//brave/components/brave_wallet/browser", "//brave/components/brave_wallet/common:buildflags", - "//components/infobars/content", "//components/prefs", ] } if (enable_brave_webtorrent) { - deps += [ "//brave/components/brave_webtorrent/browser" ] sources += [ "brave_webtorrent_navigation_throttle.cc", "brave_webtorrent_navigation_throttle.h", ] - } - - if (enable_brave_wayback_machine) { - deps += [ "//brave/components/brave_wayback_machine" ] + deps += [ "//brave/components/brave_webtorrent/browser" ] } } diff --git a/browser/extensions/api/brave_rewards_api.cc b/browser/extensions/api/brave_rewards_api.cc index 92169cd4eb57..3f65b25a034f 100644 --- a/browser/extensions/api/brave_rewards_api.cc +++ b/browser/extensions/api/brave_rewards_api.cc @@ -5,7 +5,6 @@ #include "brave/browser/extensions/api/brave_rewards_api.h" -#include #include #include @@ -21,9 +20,6 @@ #include "brave/common/extensions/api/brave_rewards.h" #include "brave/components/brave_adaptive_captcha/brave_adaptive_captcha_service.h" #include "brave/components/brave_ads/browser/ads_service.h" -#include "brave/components/brave_ads/core/public/ads_util.h" -#include "brave/components/brave_ads/core/public/prefs/pref_names.h" -#include "brave/components/brave_ads/core/public/targeting/geographical/subdivision/supported_subdivisions.h" #include "brave/components/brave_rewards/browser/rewards_p3a.h" #include "brave/components/brave_rewards/browser/rewards_service.h" #include "brave/components/brave_rewards/common/pref_names.h" @@ -36,7 +32,6 @@ #include "components/prefs/pref_service.h" #include "content/public/browser/web_contents.h" #include "extensions/browser/event_router.h" -#include "extensions/common/constants.h" using brave_ads::AdsService; using brave_ads::AdsServiceFactory; diff --git a/browser/extensions/api/settings_private/brave_prefs_util.cc b/browser/extensions/api/settings_private/brave_prefs_util.cc index d8dc2cb38f60..2be2205416ec 100644 --- a/browser/extensions/api/settings_private/brave_prefs_util.cc +++ b/browser/extensions/api/settings_private/brave_prefs_util.cc @@ -9,7 +9,6 @@ #include "brave/components/ai_chat/core/common/buildflags/buildflags.h" #include "brave/components/brave_news/common/pref_names.h" #include "brave/components/brave_rewards/common/pref_names.h" -#include "brave/components/brave_shields/content/browser/brave_shields_util.h" #include "brave/components/brave_shields/core/common/pref_names.h" #include "brave/components/brave_vpn/common/buildflags/buildflags.h" #include "brave/components/brave_wallet/browser/pref_names.h" @@ -24,20 +23,14 @@ #include "brave/components/request_otr/common/pref_names.h" #include "brave/components/speedreader/common/buildflags/buildflags.h" #include "brave/components/tor/buildflags/buildflags.h" -#include "chrome/browser/content_settings/cookie_settings_factory.h" -#include "chrome/browser/content_settings/host_content_settings_map_factory.h" #include "chrome/browser/extensions/api/settings_private/prefs_util.h" -#include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/api/settings_private.h" #include "chrome/common/pref_names.h" #include "components/browsing_data/core/pref_names.h" -#include "components/content_settings/core/browser/cookie_settings.h" -#include "components/content_settings/core/common/pref_names.h" #include "components/gcm_driver/gcm_buildflags.h" #include "components/omnibox/browser/omnibox_prefs.h" #include "components/search_engines/search_engines_pref_names.h" #include "extensions/buildflags/buildflags.h" -#include "url/gurl.h" #if BUILDFLAG(ENABLE_BRAVE_WAYBACK_MACHINE) #include "brave/components/brave_wayback_machine/pref_names.h" @@ -324,21 +317,4 @@ const PrefsUtil::TypedPrefMap& BravePrefsUtil::GetAllowlistedKeys() { return *s_brave_allowlist; } -std::optional BravePrefsUtil::GetPref( - const std::string& name) { - auto pref = PrefsUtil::GetPref(name); - // Simulate "Enforced" mode for kCookieControlsMode pref when Cookies are - // fully blocked via Shields. This will effectively disable the "Third-party - // cookies" mode selector on Settings page. - if (pref && name == prefs::kCookieControlsMode && - pref->enforcement == api::settings_private::Enforcement::kNone && - brave_shields::GetCookieControlType( - HostContentSettingsMapFactory::GetForProfile(profile()), - CookieSettingsFactory::GetForProfile(profile()).get(), - GURL()) == brave_shields::ControlType::BLOCK) { - pref->enforcement = api::settings_private::Enforcement::kEnforced; - } - return pref; -} - } // namespace extensions diff --git a/browser/extensions/api/settings_private/brave_prefs_util_impl.cc b/browser/extensions/api/settings_private/brave_prefs_util_impl.cc new file mode 100644 index 000000000000..915b1fb8dbdd --- /dev/null +++ b/browser/extensions/api/settings_private/brave_prefs_util_impl.cc @@ -0,0 +1,36 @@ +/* Copyright (c) 2024 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/. */ + +#include "brave/browser/extensions/api/settings_private/brave_prefs_util.h" +#include "brave/components/brave_shields/content/browser/brave_shields_util.h" +#include "chrome/browser/content_settings/cookie_settings_factory.h" +#include "chrome/browser/content_settings/host_content_settings_map_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/common/extensions/api/settings_private.h" +#include "components/content_settings/core/browser/cookie_settings.h" +#include "components/content_settings/core/common/pref_names.h" +#include "content/public/browser/browser_context.h" +#include "url/gurl.h" + +namespace extensions { + +std::optional BravePrefsUtil::GetPref( + const std::string& name) { + auto pref = PrefsUtil::GetPref(name); + // Simulate "Enforced" mode for kCookieControlsMode pref when Cookies are + // fully blocked via Shields. This will effectively disable the "Third-party + // cookies" mode selector on Settings page. + if (pref && name == prefs::kCookieControlsMode && + pref->enforcement == api::settings_private::Enforcement::kNone && + brave_shields::GetCookieControlType( + HostContentSettingsMapFactory::GetForProfile(profile()), + CookieSettingsFactory::GetForProfile(profile()).get(), + GURL()) == brave_shields::ControlType::BLOCK) { + pref->enforcement = api::settings_private::Enforcement::kEnforced; + } + return pref; +} + +} // namespace extensions diff --git a/browser/extensions/brave_component_loader.cc b/browser/extensions/brave_component_loader.cc index 1a70b518c429..dff7e375792d 100644 --- a/browser/extensions/brave_component_loader.cc +++ b/browser/extensions/brave_component_loader.cc @@ -9,7 +9,6 @@ #include #include "base/command_line.h" -#include "base/feature_list.h" #include "base/functional/bind.h" #include "base/json/json_reader.h" #include "brave/browser/brave_rewards/rewards_util.h" @@ -36,10 +35,7 @@ #if BUILDFLAG(ETHEREUM_REMOTE_CLIENT_ENABLED) #include "brave/browser/ethereum_remote_client/ethereum_remote_client_constants.h" -#include "brave/browser/ethereum_remote_client/pref_names.h" #include "brave/browser/extensions/ethereum_remote_client_util.h" -#include "brave/components/brave_wallet/browser/brave_wallet_utils.h" -#include "brave/components/brave_wallet/common/brave_wallet.mojom.h" #endif using extensions::mojom::ManifestLocation; @@ -130,11 +126,7 @@ void BraveComponentLoader::AddEthereumRemoteClientExtension() { void BraveComponentLoader::AddEthereumRemoteClientExtensionOnStartup() { // Only load Crypto Wallets if it is set as the default wallet - auto default_wallet = brave_wallet::GetDefaultEthereumWallet(profile_prefs_); - const bool is_opted_into_cw = - profile_prefs_->GetBoolean(kERCOptedIntoCryptoWallets); - if (HasInfuraProjectID() && is_opted_into_cw && - default_wallet == brave_wallet::mojom::DefaultWallet::CryptoWallets) { + if (ShouldLoadEthereumRemoteClientExtension(profile_prefs_)) { AddEthereumRemoteClientExtension(); } } diff --git a/browser/extensions/brave_webtorrent_navigation_throttle.cc b/browser/extensions/brave_webtorrent_navigation_throttle.cc index 7ab512504a65..93f75440faf8 100644 --- a/browser/extensions/brave_webtorrent_navigation_throttle.cc +++ b/browser/extensions/brave_webtorrent_navigation_throttle.cc @@ -6,7 +6,6 @@ #include "brave/browser/extensions/brave_webtorrent_navigation_throttle.h" #include "brave/browser/extensions/brave_component_loader.h" -#include "brave/components/brave_webtorrent/browser/buildflags/buildflags.h" #include "brave/components/brave_webtorrent/browser/webtorrent_util.h" #include "brave/components/constants/pref_names.h" #include "brave/components/constants/url_constants.h" @@ -21,10 +20,6 @@ #include "extensions/common/constants.h" #include "extensions/common/extension.h" -#if BUILDFLAG(ENABLE_BRAVE_WEBTORRENT) -#include "brave/browser/net/brave_torrent_redirect_network_delegate_helper.h" -#endif - namespace extensions { BraveWebTorrentNavigationThrottle::BraveWebTorrentNavigationThrottle( @@ -53,8 +48,8 @@ bool BraveWebTorrentNavigationThrottle::MaybeLoadWebtorrent( content::BrowserContext* context, const GURL& url) { // No need to load Webtorrent if pref is off or it is already enabled. - if (!webtorrent::IsWebtorrentPrefEnabled( - Profile::FromBrowserContext(context)->GetPrefs()) || + auto* prefs = Profile::FromBrowserContext(context)->GetPrefs(); + if (!prefs->GetBoolean(kWebTorrentEnabled) || webtorrent::IsWebtorrentEnabled(context)) { return false; } diff --git a/browser/extensions/ethereum_remote_client_util.cc b/browser/extensions/ethereum_remote_client_util.cc index b58b028471bc..68d6e09cb65f 100644 --- a/browser/extensions/ethereum_remote_client_util.cc +++ b/browser/extensions/ethereum_remote_client_util.cc @@ -8,11 +8,23 @@ #include #include "base/environment.h" +#include "brave/browser/ethereum_remote_client/pref_names.h" +#include "brave/components/brave_wallet/browser/brave_wallet_utils.h" +#include "brave/components/brave_wallet/common/brave_wallet.mojom.h" #include "brave/components/brave_wallet/common/buildflags.h" #include "brave/components/constants/brave_services_key.h" +#include "components/prefs/pref_service.h" namespace extensions { +bool ShouldLoadEthereumRemoteClientExtension(PrefService* prefs) { + // Only load Crypto Wallets if it is set as the default wallet + auto default_wallet = brave_wallet::GetDefaultEthereumWallet(prefs); + const bool is_opted_into_cw = prefs->GetBoolean(kERCOptedIntoCryptoWallets); + return HasInfuraProjectID() && is_opted_into_cw && + default_wallet == brave_wallet::mojom::DefaultWallet::CryptoWallets; +} + bool HasInfuraProjectID() { std::string project_id = GetInfuraProjectID(); diff --git a/browser/extensions/ethereum_remote_client_util.h b/browser/extensions/ethereum_remote_client_util.h index 775beb2196c4..aecb58fabbcf 100644 --- a/browser/extensions/ethereum_remote_client_util.h +++ b/browser/extensions/ethereum_remote_client_util.h @@ -8,8 +8,12 @@ #include +class PrefService; + namespace extensions { +bool ShouldLoadEthereumRemoteClientExtension(PrefService* prefs); + std::string GetInfuraProjectID(); std::string GetBraveKey(); diff --git a/browser/net/BUILD.gn b/browser/net/BUILD.gn index 0baa9acb8eb1..1d3748ec63b3 100644 --- a/browser/net/BUILD.gn +++ b/browser/net/BUILD.gn @@ -59,7 +59,10 @@ source_set("browser_tests") { ] } if (enable_tor) { - deps += [ "//brave/components/tor" ] + deps += [ + "//brave/browser/tor", + "//brave/components/tor", + ] } defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] } diff --git a/browser/notifications/ads_notification_handler.cc b/browser/notifications/ads_notification_handler.cc index db54637a6f12..660a2fc5482c 100644 --- a/browser/notifications/ads_notification_handler.cc +++ b/browser/notifications/ads_notification_handler.cc @@ -8,6 +8,7 @@ #include #include "brave/browser/brave_ads/ads_service_factory.h" +#include "brave/components/brave_ads/browser/ads_service.h" #include "url/gurl.h" namespace brave_ads { diff --git a/browser/sources.gni b/browser/sources.gni index 118b46edb007..c57b3c253d62 100644 --- a/browser/sources.gni +++ b/browser/sources.gni @@ -5,7 +5,6 @@ import("//brave/browser/ai_chat/android/sources.gni") import("//brave/browser/autocomplete/sources.gni") -import("//brave/browser/brave_adaptive_captcha/sources.gni") import("//brave/browser/brave_ads/sources.gni") import("//brave/browser/brave_news/sources.gni") import("//brave/browser/brave_referrals/sources.gni") @@ -40,7 +39,6 @@ import("//brave/browser/search_engines/sources.gni") import("//brave/browser/speedreader/sources.gni") import("//brave/browser/sync/sources.gni") import("//brave/browser/themes/sources.gni") -import("//brave/browser/tor/sources.gni") import("//brave/browser/url_sanitizer/sources.gni") import("//brave/browser/web_discovery/sources.gni") import("//brave/build/config.gni") @@ -140,6 +138,7 @@ brave_chrome_browser_deps = [ "//brave/components/ai_chat/core/common/buildflags", "//brave/components/ai_rewriter/common/buildflags", "//brave/components/body_sniffer", + "//brave/components/brave_adaptive_captcha", "//brave/components/brave_ads/browser", "//brave/components/brave_ads/core", "//brave/components/brave_component_updater/browser", @@ -437,6 +436,16 @@ if (enable_brave_wayback_machine) { brave_chrome_browser_deps += [ "//brave/components/brave_wayback_machine" ] } +if (enable_tor) { + brave_chrome_browser_deps += [ + "//brave/browser/tor", + "//brave/browser/tor:impl", + "//brave/components/tor", + "//brave/components/tor:common", + "//brave/components/tor:pref_names", + ] +} + if (enable_greaselion) { brave_chrome_browser_deps += [ "//brave/browser/greaselion", @@ -490,6 +499,7 @@ if (is_win && is_official_build) { } brave_chrome_browser_public_deps = [ + "//brave/app/vector_icons", "//brave/browser:browser_process", "//brave/components/brave_sync:constants", "//brave/components/variations", @@ -504,7 +514,6 @@ if (is_mac) { brave_chrome_browser_sources += brave_browser_profiles_sources brave_chrome_browser_sources += brave_browser_autocomplete_sources -brave_chrome_browser_sources += brave_browser_brave_adaptive_captcha_sources brave_chrome_browser_sources += brave_browser_brave_ads_sources brave_chrome_browser_sources += brave_browser_brave_news_sources brave_chrome_browser_sources += brave_browser_brave_referrals_sources @@ -534,12 +543,10 @@ brave_chrome_browser_sources += brave_browser_search_engines_sources brave_chrome_browser_sources += brave_browser_speedreader_sources brave_chrome_browser_sources += brave_browser_sync_sources brave_chrome_browser_sources += brave_browser_themes_sources -brave_chrome_browser_sources += brave_browser_tor_sources brave_chrome_browser_sources += brave_browser_url_sanitizer_sources brave_chrome_browser_sources += brave_browser_web_discovery_sources brave_chrome_browser_deps += brave_browser_autocomplete_deps -brave_chrome_browser_deps += brave_browser_brave_adaptive_captcha_deps brave_chrome_browser_deps += brave_browser_brave_ads_deps brave_chrome_browser_deps += brave_browser_brave_news_deps brave_chrome_browser_deps += brave_browser_brave_referrals_deps @@ -569,7 +576,6 @@ brave_chrome_browser_deps += brave_browser_search_engines_deps brave_chrome_browser_deps += brave_browser_speedreader_deps brave_chrome_browser_deps += brave_browser_sync_deps brave_chrome_browser_deps += brave_browser_themes_deps -brave_chrome_browser_deps += brave_browser_tor_deps brave_chrome_browser_deps += brave_browser_url_sanitizer_deps brave_chrome_browser_deps += brave_browser_web_discovery_deps brave_chrome_browser_deps += brave_chromium_src_chrome_browser_deps diff --git a/browser/tor/BUILD.gn b/browser/tor/BUILD.gn new file mode 100644 index 000000000000..514063b844e6 --- /dev/null +++ b/browser/tor/BUILD.gn @@ -0,0 +1,67 @@ +# Copyright (c) 2024 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/tor/buildflags/buildflags.gni") + +assert(enable_tor) + +source_set("tor") { + sources = [ + "tor_profile_manager.h", + "tor_profile_service_factory.h", + ] + + public_deps = [ + "//base", + "//brave/components/tor:common", + "//chrome/browser/profiles:profile", + "//components/keyed_service/content", + "//url", + ] +} + +source_set("impl") { + sources = [ + "tor_profile_manager.cc", + "tor_profile_service_factory.cc", + ] + + deps = [ + ":tor", + ":util", + "//base", + "//brave/browser:browser_process", + "//brave/components/brave_webtorrent/browser/buildflags", + "//brave/components/constants", + "//brave/components/tor", + "//brave/components/tor:common", + "//brave/components/tor:pref_names", + "//chrome/browser:browser_process", + "//chrome/browser/profiles:profile", + "//chrome/browser/ui", + "//components/keyed_service/content", + "//components/policy/core/common:common_constants", + "//components/prefs", + "//components/safe_browsing/core/common:safe_browsing_prefs", + "//components/user_prefs", + "//content/public/browser", + "//url", + ] +} + +source_set("util") { + check_includes = false # workaround for incognito mode prefs + sources = [ + "util.cc", + "util.h", + ] + + deps = [ + "//chrome/browser:browser_public_dependencies", + "//components/policy/core/common", + "//components/user_prefs", + "//content/public/browser", + ] +} diff --git a/browser/tor/sources.gni b/browser/tor/sources.gni deleted file mode 100644 index 1e6d4e6c12c6..000000000000 --- a/browser/tor/sources.gni +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (c) 2024 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/tor/buildflags/buildflags.gni") - -brave_browser_tor_sources = [] -brave_browser_tor_deps = [] - -if (enable_tor) { - brave_browser_tor_sources += [ - "//brave/browser/tor/tor_profile_manager.cc", - "//brave/browser/tor/tor_profile_manager.h", - "//brave/browser/tor/tor_profile_service_factory.cc", - "//brave/browser/tor/tor_profile_service_factory.h", - ] - - brave_browser_tor_deps += [ - "//brave/components/tor", - "//brave/components/tor:common", - "//brave/components/tor:pref_names", - ] -} diff --git a/browser/tor/test/BUILD.gn b/browser/tor/test/BUILD.gn index 19fb899b47a2..7597e017da48 100644 --- a/browser/tor/test/BUILD.gn +++ b/browser/tor/test/BUILD.gn @@ -19,6 +19,7 @@ source_set("unit_tests") { deps = [ "//base", "//base/test:test_support", + "//brave/browser/tor", "//brave/components/brave_webtorrent/browser/buildflags", "//brave/components/constants", "//brave/components/tor", @@ -54,6 +55,7 @@ source_set("browser_tests") { "//brave/app:brave_generated_resources_grit", "//brave/browser", "//brave/browser/brave_rewards", + "//brave/browser/tor", "//brave/common", "//brave/components/brave_ads/browser", "//brave/components/brave_component_updater/browser", diff --git a/browser/tor/tor_profile_manager.cc b/browser/tor/tor_profile_manager.cc index 3cb4a10240b4..109a093ad39b 100644 --- a/browser/tor/tor_profile_manager.cc +++ b/browser/tor/tor_profile_manager.cc @@ -10,7 +10,6 @@ #include "base/feature_list.h" #include "brave/browser/tor/tor_profile_service_factory.h" -#include "brave/components/brave_webtorrent/browser/buildflags/buildflags.h" #include "brave/components/constants/pref_names.h" #include "brave/components/tor/tor_constants.h" #include "brave/components/tor/tor_launcher_factory.h" @@ -21,6 +20,7 @@ #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_list.h" +#include "chrome/browser/ui/browser_list_observer.h" #include "chrome/browser/ui/browser_window.h" #include "chrome/common/pref_names.h" #include "components/prefs/pref_service.h" @@ -32,12 +32,33 @@ #include "third_party/blink/public/common/peerconnection/webrtc_ip_handling_policy.h" namespace { -size_t GetTorBrowserCount() { - BrowserList* list = BrowserList::GetInstance(); - return std::count_if(list->begin(), list->end(), [](Browser* browser) { - return browser->profile()->IsTor(); - }); -} + +class TorBrowserListObserver : public BrowserListObserver { + public: + TorBrowserListObserver() {} + ~TorBrowserListObserver() override {} + + size_t GetTorBrowserCount() { + BrowserList* list = BrowserList::GetInstance(); + return std::count_if(list->begin(), list->end(), [](Browser* browser) { + return browser->profile()->IsTor(); + }); + } + + // BrowserListObserver: + void OnBrowserRemoved(Browser* browser) override { + if (!browser || !browser->profile()->IsTor()) { + return; + } + + if (!GetTorBrowserCount()) { + tor::TorProfileService* service = + TorProfileServiceFactory::GetForContext(browser->profile()); + service->KillTor(); + } + } +}; + } // namespace // static @@ -168,12 +189,13 @@ void TorProfileManager::CloseTorProfileWindows(Profile* tor_profile) { true /* skip_beforeunload */); } -TorProfileManager::TorProfileManager() { - BrowserList::AddObserver(this); +TorProfileManager::TorProfileManager() + : browser_list_observer_(new TorBrowserListObserver()) { + BrowserList::AddObserver(browser_list_observer_.get()); } TorProfileManager::~TorProfileManager() { - BrowserList::RemoveObserver(this); + BrowserList::RemoveObserver(browser_list_observer_.get()); } Profile* TorProfileManager::GetTorProfile(Profile* profile) { @@ -212,18 +234,6 @@ void TorProfileManager::CloseAllTorWindows() { } } -void TorProfileManager::OnBrowserRemoved(Browser* browser) { - if (!browser || !browser->profile()->IsTor()) { - return; - } - - if (!GetTorBrowserCount()) { - tor::TorProfileService* service = - TorProfileServiceFactory::GetForContext(browser->profile()); - service->KillTor(); - } -} - void TorProfileManager::OnProfileWillBeDestroyed(Profile* profile) { const std::string context_id = profile->UniqueId(); tor_profiles_.erase(context_id); @@ -239,9 +249,8 @@ void TorProfileManager::InitTorProfileUserPrefs(Profile* profile) { pref_service->SetBoolean(prefs::kHttpsOnlyModeEnabled, true); } // https://blog.torproject.org/bittorrent-over-tor-isnt-good-idea -#if BUILDFLAG(ENABLE_BRAVE_WEBTORRENT) pref_service->SetBoolean(kWebTorrentEnabled, false); -#endif + // Disable the automatic translate bubble in Tor because we currently don't // support extensions in Tor mode and users cannot disable this through // settings page for Tor windows. diff --git a/browser/tor/tor_profile_manager.h b/browser/tor/tor_profile_manager.h index c593c6cce4bb..1e391b1fd8e4 100644 --- a/browser/tor/tor_profile_manager.h +++ b/browser/tor/tor_profile_manager.h @@ -1,22 +1,23 @@ /* 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/. */ #ifndef BRAVE_BROWSER_TOR_TOR_PROFILE_MANAGER_H_ #define BRAVE_BROWSER_TOR_TOR_PROFILE_MANAGER_H_ +#include #include #include "base/containers/flat_map.h" #include "base/no_destructor.h" #include "chrome/browser/profiles/profile_observer.h" -#include "chrome/browser/ui/browser_list_observer.h" #include "url/gurl.h" class Browser; +class BrowserListObserver; -class TorProfileManager : public BrowserListObserver, public ProfileObserver { +class TorProfileManager : public ProfileObserver { public: static TorProfileManager& GetInstance(); static Browser* SwitchToTorProfile(Profile* original_profile, @@ -32,9 +33,6 @@ class TorProfileManager : public BrowserListObserver, public ProfileObserver { TorProfileManager(); ~TorProfileManager() override; - // BrowserListObserver: - void OnBrowserRemoved(Browser* browser) override; - // ProfileObserver: void OnProfileWillBeDestroyed(Profile* profile) override; @@ -42,6 +40,7 @@ class TorProfileManager : public BrowserListObserver, public ProfileObserver { // One regular profile can only have one tor profile base::flat_map tor_profiles_; + std::unique_ptr browser_list_observer_; TorProfileManager(const TorProfileManager&) = delete; TorProfileManager& operator=(const TorProfileManager&) = delete; diff --git a/browser/tor/tor_profile_service_factory.cc b/browser/tor/tor_profile_service_factory.cc index f0241c04eecc..5c5a1b75d8c3 100644 --- a/browser/tor/tor_profile_service_factory.cc +++ b/browser/tor/tor_profile_service_factory.cc @@ -8,28 +8,20 @@ #include "base/check_is_test.h" #include "base/no_destructor.h" #include "brave/browser/brave_browser_process.h" +#include "brave/browser/tor/util.h" #include "brave/components/tor/brave_tor_client_updater.h" #include "brave/components/tor/brave_tor_pluggable_transport_updater.h" #include "brave/components/tor/pref_names.h" #include "brave/components/tor/tor_profile_service_impl.h" #include "brave/components/tor/tor_utils.h" #include "chrome/browser/browser_process.h" -#include "chrome/browser/prefs/incognito_mode_prefs.h" #include "chrome/browser/profiles/profile.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" -#include "components/policy/core/common/policy_pref_names.h" #include "components/prefs/pref_service.h" -#include "components/user_prefs/user_prefs.h" #include "content/public/browser/browser_context.h" namespace { -bool IsIncognitoDisabledOrForced(content::BrowserContext* context) { - const auto availability = - IncognitoModePrefs::GetAvailability(user_prefs::UserPrefs::Get(context)); - return availability == policy::IncognitoModeAvailability::kDisabled || - availability == policy::IncognitoModeAvailability::kForced; -} } // namespace @@ -63,7 +55,7 @@ void TorProfileServiceFactory::SetTorDisabled(bool disabled) { // static bool TorProfileServiceFactory::IsTorManaged(content::BrowserContext* context) { - if (IsIncognitoDisabledOrForced(context)) { + if (tor::IsIncognitoDisabledOrForced(context)) { return true; } if (g_browser_process) { @@ -79,7 +71,7 @@ bool TorProfileServiceFactory::IsTorDisabled(content::BrowserContext* context) { if (Profile::FromBrowserContext(context)->IsGuestSession()) { return true; } - if (IsIncognitoDisabledOrForced(context)) { + if (tor::IsIncognitoDisabledOrForced(context)) { // Tor profile is derived from the incognito profile. If incognito is // disabled we can't create the tor profile. If incognito is forced then // browser forces incognito profile on creation (so created Tor profile diff --git a/browser/tor/util.cc b/browser/tor/util.cc new file mode 100644 index 000000000000..c2b9009940e3 --- /dev/null +++ b/browser/tor/util.cc @@ -0,0 +1,22 @@ +/* Copyright (c) 2024 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/. */ + +#include "brave/browser/tor/util.h" + +#include "chrome/browser/prefs/incognito_mode_prefs.h" +#include "components/policy/core/common/policy_pref_names.h" +#include "components/user_prefs/user_prefs.h" +#include "content/public/browser/browser_context.h" + +namespace tor { + +bool IsIncognitoDisabledOrForced(content::BrowserContext* context) { + const auto availability = + IncognitoModePrefs::GetAvailability(user_prefs::UserPrefs::Get(context)); + return availability == policy::IncognitoModeAvailability::kDisabled || + availability == policy::IncognitoModeAvailability::kForced; +} + +} // namespace tor diff --git a/browser/tor/util.h b/browser/tor/util.h new file mode 100644 index 000000000000..a70cdbe626aa --- /dev/null +++ b/browser/tor/util.h @@ -0,0 +1,17 @@ +/* Copyright (c) 2024 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/. */ + +#ifndef BRAVE_BROWSER_TOR_UTIL_H_ +#define BRAVE_BROWSER_TOR_UTIL_H_ + +namespace content { +class BrowserContext; +} + +namespace tor { +bool IsIncognitoDisabledOrForced(content::BrowserContext* context); +} // namespace tor + +#endif // BRAVE_BROWSER_TOR_UTIL_H_ diff --git a/browser/ui/BUILD.gn b/browser/ui/BUILD.gn index a839f4f6c796..b95a95a701b1 100644 --- a/browser/ui/BUILD.gn +++ b/browser/ui/BUILD.gn @@ -409,7 +409,10 @@ source_set("ui") { "webui/settings/brave_tor_handler.h", ] - deps += [ "//chrome/browser/image_fetcher" ] + deps += [ + "//brave/browser/tor", + "//chrome/browser/image_fetcher", + ] } if (enable_extensions) { sources += [ @@ -691,6 +694,12 @@ source_set("ui") { "views/profiles/brave_profile_menu_view.cc", "views/profiles/brave_profile_menu_view.h", ] + + deps += [ "//brave/components/tor/buildflags" ] + + if (enable_tor) { + deps += [ "//brave/browser/tor" ] + } } if (is_win || is_mac || is_linux) { @@ -1128,7 +1137,10 @@ source_set("ui") { "webui/settings/brave_default_extensions_handler.h", ] - deps += [ "//third_party/widevine/cdm:buildflags" ] + deps += [ + "//brave/browser/extensions:component_loader", + "//third_party/widevine/cdm:buildflags", + ] if (enable_widevine) { deps += [ "//brave/browser/widevine" ] @@ -1142,6 +1154,7 @@ source_set("ui") { ] deps += [ + "//brave/browser/tor", "//brave/components/tor", "//brave/components/tor:pref_names", "//brave/components/tor/resources", @@ -1149,7 +1162,7 @@ source_set("ui") { } deps += [ - "//brave/browser/extensions", + # "//brave/browser/extensions", "//brave/components/brave_extension:generated_resources", "//brave/components/brave_extension:static_resources", "//brave/components/decentralized_dns/content", diff --git a/chromium_src/chrome/browser/ui/BUILD.gn b/chromium_src/chrome/browser/ui/BUILD.gn index 88b2e060bccc..95f3b0cb368b 100644 --- a/chromium_src/chrome/browser/ui/BUILD.gn +++ b/chromium_src/chrome/browser/ui/BUILD.gn @@ -30,9 +30,6 @@ group("ui") { } if (enable_brave_webtorrent) { - deps += [ - "//brave/browser/extensions", - "//brave/components/brave_webtorrent/browser", - ] + deps += [ "//brave/components/brave_webtorrent/browser" ] } } diff --git a/components/brave_webtorrent/browser/webtorrent_util.cc b/components/brave_webtorrent/browser/webtorrent_util.cc index 4f6f5211e977..d423fe60fc80 100644 --- a/components/brave_webtorrent/browser/webtorrent_util.cc +++ b/components/brave_webtorrent/browser/webtorrent_util.cc @@ -50,10 +50,6 @@ bool IsWebtorrentEnabled(content::BrowserContext* browser_context) { return registry->enabled_extensions().Contains(brave_webtorrent_extension_id); } -bool IsWebtorrentPrefEnabled(PrefService* prefs) { - return prefs->GetBoolean(kWebTorrentEnabled); -} - void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(kWebTorrentEnabled, true); } @@ -92,4 +88,3 @@ bool IsTorrentFile(const GURL& url, const net::HttpResponseHeaders* headers) { } } // namespace webtorrent - diff --git a/components/brave_webtorrent/browser/webtorrent_util.h b/components/brave_webtorrent/browser/webtorrent_util.h index 9e6deb48b6a9..8278e959b34b 100644 --- a/components/brave_webtorrent/browser/webtorrent_util.h +++ b/components/brave_webtorrent/browser/webtorrent_util.h @@ -1,7 +1,7 @@ /* Copyright (c) 2019 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/. */ #ifndef BRAVE_COMPONENTS_BRAVE_WEBTORRENT_BROWSER_WEBTORRENT_UTIL_H_ #define BRAVE_COMPONENTS_BRAVE_WEBTORRENT_BROWSER_WEBTORRENT_UTIL_H_ @@ -20,12 +20,9 @@ namespace net { class HttpResponseHeaders; } -class PrefService; - namespace webtorrent { bool IsWebtorrentEnabled(content::BrowserContext* browser_context); -bool IsWebtorrentPrefEnabled(PrefService* prefs); void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); bool IsWebtorrentURL(const GURL& url); bool IsTorrentFile(const GURL& url, const net::HttpResponseHeaders* headers); diff --git a/patches/chrome-browser-BUILD.gn.patch b/patches/chrome-browser-BUILD.gn.patch index efbd6473b3d8..a519527de19a 100644 --- a/patches/chrome-browser-BUILD.gn.patch +++ b/patches/chrome-browser-BUILD.gn.patch @@ -1,5 +1,5 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn -index 2b66b11333f732ea1ec65474d709b55638696cf3..16670f00624934a4506859dcbcd5125b546b3590 100644 +index 2b66b11333f732ea1ec65474d709b55638696cf3..3a3e5ee879ef5cc3b36012140c892fc0287717a1 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn @@ -2516,6 +2516,7 @@ static_library("browser") { @@ -10,3 +10,11 @@ index 2b66b11333f732ea1ec65474d709b55638696cf3..16670f00624934a4506859dcbcd5125b if (!is_chromeos_ash) { sources += [ +@@ -8510,6 +8511,7 @@ static_library("browser_public_dependencies") { + "//rlz:rlz_lib", + ] + } ++ import("//brave/browser/sources.gni") public_deps += brave_chrome_browser_public_deps + } + + # All generated files in //chrome/browser/ depended on by diff --git a/test/BUILD.gn b/test/BUILD.gn index 07babeb9a55f..9bec99338ae8 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -1016,6 +1016,7 @@ test("brave_browser_tests") { if (enable_tor) { deps += [ + "//brave/browser/tor", "//brave/browser/tor/test:browser_tests", "//brave/components/tor", ]