From ebbb41978fb5ddecbcf9e87afebd189975f6d97e Mon Sep 17 00:00:00 2001 From: Pavel Beloborodov <73575789+boocmp@users.noreply.github.com> Date: Mon, 20 Apr 2026 20:33:07 +0700 Subject: [PATCH] Added ENABLE_EMAIL_ALIASES buildflag. (#35528) * Added ENABLE_EMAIL_ALIASES buildflag. --- android/BUILD.gn | 2 ++ .../settings/BraveOriginPreferences.java | 7 ++-- browser/about_flags.cc | 32 ++++++++++++------- browser/brave_content_browser_client.cc | 17 +++++++--- browser/brave_profile_prefs.cc | 8 ++++- ...browser_context_keyed_service_factories.cc | 10 ++++-- browser/email_aliases/BUILD.gn | 3 ++ browser/resources/settings/BUILD.gn | 16 +++++++--- .../resources/settings/br/autofill_page.ts | 9 ++++++ browser/resources/settings/brave_routes.ts | 2 ++ browser/resources/settings/sources.gni | 6 +++- browser/sources.gni | 17 +++++++--- browser/ui/BUILD.gn | 15 ++++++--- .../ui/brave_browser_command_controller.cc | 14 ++++++-- ..._browser_command_controller_browsertest.cc | 8 ++++- browser/ui/browser_window/BUILD.gn | 2 ++ browser/ui/browser_window/internal/BUILD.gn | 11 +++++-- .../internal/browser_window_features.cc | 12 +++++-- .../public/browser_window_features.h | 8 +++++ browser/ui/config.gni | 10 ++++-- browser/ui/email_aliases/BUILD.gn | 4 +++ .../brave_app_menu_model_browsertest.cc | 8 ++++- browser/ui/webui/brave_settings_ui.cc | 14 ++++++-- browser/ui/webui/brave_settings_ui.h | 8 ++++- browser/ui/webui/email_aliases/BUILD.gn | 6 ++++ browser/ui/webui/settings/BUILD.gn | 16 ++++++---- ...ave_settings_localized_strings_provider.cc | 8 ++++- .../java/templates/BraveConfig.template | 1 + .../chrome/browser/flags/android/DEPS | 1 + .../flags/android/chrome_feature_list.cc | 18 +++++++++-- .../render_view_context_menu.cc | 18 +++++++++-- .../render_view_context_menu.h | 3 ++ .../browser/ui/webui/chrome_web_ui_configs.cc | 17 +++++++--- chromium_src/components/sync_preferences/DEPS | 1 + .../common_syncable_prefs_database.cc | 10 +++++- components/BUILD.gn | 6 +++- components/brave_account/BUILD.gn | 17 ++++++++-- components/brave_account/features.cc | 11 +++++-- components/email_aliases/BUILD.gn | 6 ++++ components/email_aliases/buildflags/BUILD.gn | 12 +++++++ .../email_aliases/buildflags/buildflags.gni | 10 ++++++ components/email_aliases/resources/BUILD.gn | 4 +++ components/resources/BUILD.gn | 3 ++ .../resources/brave_components_resources.grd | 4 ++- .../resources/brave_components_strings.grd | 4 ++- components/sync_preferences/sources.gni | 12 +++++-- components/webpack/BUILD.gn | 2 ++ jest.config.js | 8 +++-- test/BUILD.gn | 17 ++++++++-- 49 files changed, 373 insertions(+), 85 deletions(-) create mode 100644 components/email_aliases/buildflags/BUILD.gn create mode 100644 components/email_aliases/buildflags/buildflags.gni diff --git a/android/BUILD.gn b/android/BUILD.gn index b295d036ae8..9b4091508c4 100644 --- a/android/BUILD.gn +++ b/android/BUILD.gn @@ -4,6 +4,7 @@ # You can obtain one at https://mozilla.org/MPL/2.0/. import("//brave/components/brave_wallet/common/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import( "//brave/components/policy/resources/templates/policy_definitions/brave_policies.gni") import("//brave/components/web_discovery/buildflags/buildflags.gni") @@ -28,6 +29,7 @@ java_cpp_template("brave_config_java") { "BRAVE_ANDROID_DEVELOPER_OPTIONS_CODE=\"$brave_android_developer_options_code\"", "BRAVE_ANDROID_WEBCOMPAT_REPORT_ENDPOINT=\"$webcompat_report_api_endpoint\"", "BRAVE_ANDROID_WEB_DISCOVERY_ENABLED=$enable_web_discovery_native", + "BRAVE_ANDROID_ENABLE_EMAIL_ALIASES=$enable_email_aliases", ] } diff --git a/android/java/org/chromium/chrome/browser/settings/BraveOriginPreferences.java b/android/java/org/chromium/chrome/browser/settings/BraveOriginPreferences.java index cba005172dd..466298ad482 100644 --- a/android/java/org/chromium/chrome/browser/settings/BraveOriginPreferences.java +++ b/android/java/org/chromium/chrome/browser/settings/BraveOriginPreferences.java @@ -28,6 +28,7 @@ import org.chromium.brave_origin.mojom.BraveOriginSettingsHandler; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; +import org.chromium.chrome.browser.BraveConfig; import org.chromium.chrome.browser.BraveRelaunchUtils; import org.chromium.chrome.browser.billing.InAppPurchaseWrapper; import org.chromium.chrome.browser.billing.LinkSubscriptionUtils; @@ -96,7 +97,8 @@ public class BraveOriginPreferences extends BravePreferenceFragment // Set up toggle preferences setupTogglePreference(PREF_REWARDS_SWITCH); setupTogglePreference(PREF_PRIVACY_PRESERVING_ANALYTICS_SWITCH); - if (ChromeFeatureList.isEnabled(BraveFeatureList.EMAIL_ALIASES)) { + if (BraveConfig.ENABLE_EMAIL_ALIASES + && ChromeFeatureList.isEnabled(BraveFeatureList.EMAIL_ALIASES)) { setupTogglePreference(PREF_EMAIL_ALIASES_SWITCH); } else { ChromeSwitchPreference emailAliasesPref = @@ -547,7 +549,8 @@ public class BraveOriginPreferences extends BravePreferenceFragment } // origin_description is an informational widget with no title; exclude it. indexData.removeEntryForKey(frag, "origin_description"); - if (!ChromeFeatureList.isEnabled(BraveFeatureList.EMAIL_ALIASES)) { + if (!BraveConfig.ENABLE_EMAIL_ALIASES + || !ChromeFeatureList.isEnabled(BraveFeatureList.EMAIL_ALIASES)) { indexData.removeEntryForKey(frag, PREF_EMAIL_ALIASES_SWITCH); } } diff --git a/browser/about_flags.cc b/browser/about_flags.cc index 870809b8b10..056c4efd432 100644 --- a/browser/about_flags.cc +++ b/browser/about_flags.cc @@ -25,7 +25,7 @@ #include "brave/components/containers/buildflags/buildflags.h" #include "brave/components/de_amp/common/features.h" #include "brave/components/debounce/core/common/features.h" -#include "brave/components/email_aliases/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/google_sign_in_permission/features.h" #include "brave/components/local_ai/core/features.h" #include "brave/components/playlist/core/common/features.h" @@ -109,11 +109,14 @@ #include "brave/components/psst/common/features.h" #endif - #if BUILDFLAG(ENABLE_BRAVE_WALLET) #include "brave/components/brave_wallet/common/features.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/components/email_aliases/features.h" +#endif + #if defined(TOOLKIT_VIEWS) #include "brave/browser/ui/darker_theme/features.h" #include "brave/browser/ui/page_info/features.h" @@ -762,6 +765,20 @@ constexpr flags_ui::FeatureEntry::Choice kVerticalTabCollapseDelayChoices[] = { FEATURE_VALUE_TYPE(features::kForcePopupToBeOpenedAsTab), \ }) +#define EMAIL_ALIASES_FEATURE_ENTRIES \ + IF_BUILDFLAG( \ + ENABLE_EMAIL_ALIASES, \ + EXPAND_FEATURE_ENTRIES({ \ + "brave-email-aliases", \ + "Enable Email Aliases", \ + "Enable Email Aliases to create unique, private " \ + "addresses that forward to your primary inbox. This allows you to " \ + "sign up for services anonymously and keep your main account free " \ + "from spam.", \ + kOsAll, \ + FEATURE_VALUE_TYPE(email_aliases::features::kEmailAliases), \ + })) + // Keep the last item empty. #define LAST_BRAVE_FEATURE_ENTRIES_ITEM @@ -1295,16 +1312,6 @@ constexpr flags_ui::FeatureEntry::Choice kVerticalTabCollapseDelayChoices[] = { "for BraveRequestInfo", \ kOsAll, \ FEATURE_VALUE_TYPE(features::kBraveRequestInfoUniquePtr), \ - }, \ - { \ - "brave-email-aliases", \ - "Enable Email Aliases", \ - "Enable Email Aliases to create unique, private " \ - "addresses that forward to your primary inbox. This allows you to " \ - "sign up for services anonymously and keep your main account free " \ - "from spam.", \ - kOsAll, \ - FEATURE_VALUE_TYPE(email_aliases::features::kEmailAliases), \ }) \ BRAVE_NATIVE_WALLET_FEATURE_ENTRIES \ BRAVE_NEWS_FEATURE_ENTRIES \ @@ -1338,6 +1345,7 @@ constexpr flags_ui::FeatureEntry::Choice kVerticalTabCollapseDelayChoices[] = { BRAVE_UPDATER_FEATURE_ENTRIES \ PSST_FEATURE_ENTRIES \ BRAVE_FORCE_POPUP_TO_BE_OPENED_IN_NEW_TAB_FEATURE_ENTRY \ + EMAIL_ALIASES_FEATURE_ENTRIES \ EXPAND_FEATURE_ENTRIES({ \ "brave-origin", \ "Enable Brave Origin", \ diff --git a/browser/brave_content_browser_client.cc b/browser/brave_content_browser_client.cc index a9ec2a374da..2d164e389f4 100644 --- a/browser/brave_content_browser_client.cc +++ b/browser/brave_content_browser_client.cc @@ -80,8 +80,7 @@ #include "brave/components/cosmetic_filters/common/cosmetic_filters.mojom.h" #include "brave/components/de_amp/browser/de_amp_body_handler.h" #include "brave/components/debounce/content/browser/debounce_navigation_throttle.h" -#include "brave/components/email_aliases/email_aliases.mojom.h" -#include "brave/components/email_aliases/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/global_privacy_control/global_privacy_control_utils.h" #include "brave/components/google_sign_in_permission/google_sign_in_permission_throttle.h" #include "brave/components/google_sign_in_permission/google_sign_in_permission_util.h" @@ -160,7 +159,6 @@ #include "brave/browser/ui/webui/brave_new_tab_page_refresh/brave_new_tab_page_ui.h" #include "brave/browser/ui/webui/brave_settings_ui.h" #include "brave/browser/ui/webui/brave_shields/shields_panel_ui.h" -#include "brave/browser/ui/webui/email_aliases/email_aliases_panel_ui.h" #include "brave/browser/ui/webui/new_tab_page/brave_new_tab_ui.h" #include "brave/browser/ui/webui/private_new_tab_page/brave_private_new_tab_ui.h" #include "brave/components/brave_new_tab_ui/brave_new_tab_page.mojom.h" @@ -311,8 +309,6 @@ using extensions::ChromeContentBrowserClientExtensionsPart; #include "brave/components/brave_news/common/features.h" #endif // BUILDFLAG(ENABLE_BRAVE_NEWS) #include "brave/components/brave_shields/core/common/brave_shields_panel.mojom.h" -#include "brave/components/email_aliases/email_aliases.mojom.h" -#include "brave/components/email_aliases/features.h" #include "components/omnibox/browser/searchbox.mojom.h" #endif // !BUILDFLAG(IS_ANDROID) @@ -337,6 +333,12 @@ using extensions::ChromeContentBrowserClientExtensionsPart; #include "brave/browser/brave_browser_main_extra_parts_p3a.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/browser/ui/webui/email_aliases/email_aliases_panel_ui.h" +#include "brave/components/email_aliases/email_aliases.mojom.h" +#include "brave/components/email_aliases/features.h" +#endif + namespace { void BindCosmeticFiltersResourcesOnTaskRunner( @@ -645,10 +647,12 @@ void BraveContentBrowserClient::RegisterTrustedWebUIInterfaceBrokers( registry.ForWebUI() .Add(); } +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) if (email_aliases::features::IsEmailAliasesEnabled()) { registry.ForWebUI() .Add(); } +#endif if (brave_account::features::IsBraveAccountEnabled()) { registry.ForWebUI() .Add() @@ -765,11 +769,14 @@ void BraveContentBrowserClient::RegisterTrustedWebUIInterfaceBrokers( .Add() .Add(); } + +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) if (email_aliases::features::IsEmailAliasesEnabled()) { registry.ForWebUI() .Add() .Add(); } +#endif #else // !BUILDFLAG(IS_ANDROID) registry.ForWebUI() diff --git a/browser/brave_profile_prefs.cc b/browser/brave_profile_prefs.cc index d78f40339de..908a778125c 100644 --- a/browser/brave_profile_prefs.cc +++ b/browser/brave_profile_prefs.cc @@ -40,7 +40,7 @@ #include "brave/components/constants/pref_names.h" #include "brave/components/de_amp/common/pref_names.h" #include "brave/components/debounce/core/browser/debounce_service.h" -#include "brave/components/email_aliases/email_aliases_service.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/global_privacy_control/pref_names.h" #include "brave/components/ipfs/ipfs_prefs.h" #include "brave/components/ntp_background_images/browser/view_counter_service.h" @@ -167,6 +167,10 @@ using extensions::FeatureSwitch; #include "brave/components/brave_wallet/browser/pref_names.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/components/email_aliases/email_aliases_service.h" +#endif + namespace brave { namespace { @@ -585,7 +589,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { web_discovery::WebDiscoveryService::RegisterProfilePrefs(registry); #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) email_aliases::EmailAliasesService::RegisterProfilePrefs(registry); +#endif #if defined(TOOLKIT_VIEWS) registry->RegisterBooleanPref(prefs::kPinShareMenuButton, true); diff --git a/browser/browser_context_keyed_service_factories.cc b/browser/browser_context_keyed_service_factories.cc index 02c8c9b45ed..b1f118fa9ee 100644 --- a/browser/browser_context_keyed_service_factories.cc +++ b/browser/browser_context_keyed_service_factories.cc @@ -14,7 +14,6 @@ #include "brave/browser/brave_shields/brave_farbling_service_factory.h" #include "brave/browser/brave_shields/brave_shields_settings_service_factory.h" #include "brave/browser/debounce/debounce_service_factory.h" -#include "brave/browser/email_aliases/email_aliases_service_factory.h" #include "brave/browser/ephemeral_storage/ephemeral_storage_service_factory.h" #include "brave/browser/local_ai/local_ai_service_factory.h" #include "brave/browser/misc_metrics/profile_misc_metrics_service_factory.h" @@ -39,7 +38,7 @@ #include "brave/components/brave_wallet/common/buildflags/buildflags.h" #include "brave/components/commander/common/buildflags/buildflags.h" #include "brave/components/containers/buildflags/buildflags.h" -#include "brave/components/email_aliases/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/local_ai/core/features.h" #include "brave/components/playlist/core/common/features.h" #include "brave/components/psst/buildflags/buildflags.h" @@ -125,6 +124,11 @@ #include "brave/browser/containers/containers_service_factory.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/browser/email_aliases/email_aliases_service_factory.h" +#include "brave/components/email_aliases/features.h" +#endif + namespace brave { void EnsureBrowserContextKeyedServiceFactoriesBuilt() { @@ -237,9 +241,11 @@ void EnsureBrowserContextKeyedServiceFactoriesBuilt() { brave_account::BraveAccountServiceFactory::GetInstance(); } +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) if (email_aliases::features::IsEmailAliasesEnabled()) { email_aliases::EmailAliasesServiceFactory::GetInstance(); } +#endif #if BUILDFLAG(ENABLE_EXTENSIONS) extensions_mv2::ExtensionsManifestV2MigratorFactory::GetInstance(); diff --git a/browser/email_aliases/BUILD.gn b/browser/email_aliases/BUILD.gn index acb7ef48d3b..403feb5e6fe 100644 --- a/browser/email_aliases/BUILD.gn +++ b/browser/email_aliases/BUILD.gn @@ -3,8 +3,11 @@ # 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/email_aliases/buildflags/buildflags.gni") import("//build/config/ui.gni") +assert(enable_email_aliases) + static_library("email_aliases") { sources = [ "email_aliases_service_factory.cc", diff --git a/browser/resources/settings/BUILD.gn b/browser/resources/settings/BUILD.gn index ea8f768400e..061f1ce8fa3 100644 --- a/browser/resources/settings/BUILD.gn +++ b/browser/resources/settings/BUILD.gn @@ -14,6 +14,7 @@ import("//brave/components/brave_vpn/common/buildflags/buildflags.gni") import("//brave/components/brave_wallet/common/buildflags/buildflags.gni") import("//brave/components/brave_wayback_machine/buildflags/buildflags.gni") import("//brave/components/containers/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import("//brave/components/speedreader/common/buildflags/buildflags.gni") import("//brave/components/tor/buildflags/buildflags.gni") import("//brave/components/web_discovery/buildflags/buildflags.gni") @@ -69,12 +70,16 @@ generate_grd("build_grd") { ] input_files_base_dir = rebase_path(".", "//") - grdp_files = [ "$root_gen_dir/brave/web-ui-email_aliases/email_aliases.grdp" ] + grdp_files = [] - deps = [ - ":preprocess", - "//brave/components/email_aliases/resources:email_aliases_ui", - ] + deps = [ ":preprocess" ] + + if (enable_email_aliases) { + grdp_files += + [ "$root_gen_dir/brave/web-ui-email_aliases/email_aliases.grdp" ] + + deps += [ "//brave/components/email_aliases/resources:email_aliases_ui" ] + } if (!is_android) { grdp_files += [ "$root_gen_dir/brave/web-ui-commands/commands.grdp" ] @@ -100,6 +105,7 @@ preprocess_if_expr("preprocess") { "enable_brave_vpn_wireguard=$enable_brave_vpn_wireguard", "enable_brave_wallet=$enable_brave_wallet", "enable_containers=$enable_containers", + "enable_email_aliases=$enable_email_aliases", "enable_extensions=$enable_extensions", "enable_pin_shortcut=$enable_pin_shortcut", "enable_speedreader=$enable_speedreader", diff --git a/browser/resources/settings/br/autofill_page.ts b/browser/resources/settings/br/autofill_page.ts index 9bd108f1ddb..9b47d800716 100644 --- a/browser/resources/settings/br/autofill_page.ts +++ b/browser/resources/settings/br/autofill_page.ts @@ -16,8 +16,11 @@ import { loadTimeData } from '../i18n_setup.js' import { routes } from '../route.js' import { Router } from '../router.js' import type { Route } from '../router.js' + +// import '../email_aliases_page/email_aliases_page.js' import { EmailAliasesStrings } from '../brave_components_webui_strings.js' +// RegisterPolymerComponentReplacement( 'settings-autofill-page', BraveSettingsAutofillPageElement @@ -56,6 +59,7 @@ RegisterPolymerTemplateModifications({ `) + // // Add a link-row style item (like Password Manager / Payment methods) // that navigates to the Email Aliases subpage when the feature is enabled. if (loadTimeData.getBoolean('isEmailAliasesEnabled')) { @@ -78,7 +82,9 @@ RegisterPolymerTemplateModifications({ controlsDiv.insertBefore(linkRow, paymentsAnchor) } } + // }, + // 'settings-autofill-page-index': (templateContent) => { if (!loadTimeData.getBoolean('isEmailAliasesEnabled')) { return @@ -94,8 +100,10 @@ RegisterPolymerTemplateModifications({ `) } + // }) +// if (loadTimeData.getBoolean('isEmailAliasesEnabled')) { RegisterPolymerPrototypeModification({ 'settings-autofill-page': (prototype) => { @@ -118,3 +126,4 @@ if (loadTimeData.getBoolean('isEmailAliasesEnabled')) { } }) } +// diff --git a/browser/resources/settings/brave_routes.ts b/browser/resources/settings/brave_routes.ts index b2f6c5fe12f..e2cc2bfc253 100644 --- a/browser/resources/settings/brave_routes.ts +++ b/browser/resources/settings/brave_routes.ts @@ -135,9 +135,11 @@ export default function addBraveRoutes(r: Partial) { console.error( '[Settings] Could not move autofill route to advanced route', r) } + // if (loadTimeData.getBoolean('isEmailAliasesEnabled') && r.AUTOFILL) { r.EMAIL_ALIASES = r.AUTOFILL.createChild('/email-aliases') } + // // Delete performance menu - system menu includes it instead. if (r.PERFORMANCE) { delete r.PERFORMANCE diff --git a/browser/resources/settings/sources.gni b/browser/resources/settings/sources.gni index bf3eeb4de5c..c041c157aee 100644 --- a/browser/resources/settings/sources.gni +++ b/browser/resources/settings/sources.gni @@ -8,6 +8,7 @@ import("//brave/components/ai_chat/core/common/buildflags/buildflags.gni") import("//brave/components/brave_vpn/common/buildflags/buildflags.gni") import("//brave/components/brave_wallet/common/buildflags/buildflags.gni") import("//brave/components/containers/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import("//brave/components/speedreader/common/buildflags/buildflags.gni") import("//brave/components/tor/buildflags/buildflags.gni") @@ -136,7 +137,6 @@ brave_settings_ts_files = [ "brave_sync_page/brave_sync_browser_proxy.ts", "default_brave_shields_page/brave_adblock_browser_proxy.ts", "default_brave_shields_page/default_brave_shields_browser_proxy.ts", - "email_aliases_page/email_aliases_page.ts", "getting_started_page/brave_account_browser_proxy.ts", "getting_started_page/brave_account_row.html.ts", "getting_started_page/brave_account_row.ts", @@ -280,6 +280,10 @@ if (enable_speedreader) { brave_settings_web_component_files += [ "brave_content_page/speedreader.ts" ] } +if (enable_email_aliases) { + brave_settings_ts_files += [ "email_aliases_page/email_aliases_page.ts" ] +} + # Generate the list for inclusion via preprocess and exclusion for chromium's preprocess brave_settings_local_ts_files = brave_settings_web_component_files + brave_settings_ts_files diff --git a/browser/sources.gni b/browser/sources.gni index b27ef1d6931..b47bd61a233 100644 --- a/browser/sources.gni +++ b/browser/sources.gni @@ -48,6 +48,7 @@ import("//brave/components/brave_wallet/common/buildflags/buildflags.gni") import("//brave/components/brave_wayback_machine/buildflags/buildflags.gni") import("//brave/components/commander/common/buildflags/buildflags.gni") import("//brave/components/containers/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import("//brave/components/ipfs/buildflags/buildflags.gni") import("//brave/components/psst/buildflags/buildflags.gni") import("//brave/components/tor/buildflags/buildflags.gni") @@ -144,7 +145,6 @@ brave_chrome_browser_deps = [ "//brave/browser/brave_shields:brave_shields_impl", "//brave/browser/brave_stats", "//brave/browser/component_updater", - "//brave/browser/email_aliases", "//brave/browser/local_ai", "//brave/browser/metrics/buildflags", "//brave/browser/misc_metrics", @@ -159,7 +159,6 @@ brave_chrome_browser_deps = [ "//brave/browser/themes", "//brave/browser/ui", "//brave/browser/ui/webui/brave_account", - "//brave/browser/ui/webui/email_aliases", "//brave/browser/ui/webui/local_ai", "//brave/browser/updater:buildflags", "//brave/common", @@ -218,9 +217,7 @@ brave_chrome_browser_deps = [ "//brave/components/de_amp/browser", "//brave/components/de_amp/common", "//brave/components/debounce/content/browser", - "//brave/components/email_aliases:features", - "//brave/components/email_aliases:mojom", - "//brave/components/email_aliases:service", + "//brave/components/email_aliases/buildflags", "//brave/components/global_privacy_control", "//brave/components/google_sign_in_permission", "//brave/components/https_upgrade_exceptions/browser", @@ -353,6 +350,16 @@ if (enable_brave_wallet) { ] } +if (enable_email_aliases) { + brave_chrome_browser_deps += [ + "//brave/browser/email_aliases", + "//brave/browser/ui/webui/email_aliases", + "//brave/components/email_aliases:features", + "//brave/components/email_aliases:mojom", + "//brave/components/email_aliases:service", + ] +} + if (!is_android) { # Already included on android by upstream diff --git a/browser/ui/BUILD.gn b/browser/ui/BUILD.gn index 035bb1a191a..be0c2d31644 100644 --- a/browser/ui/BUILD.gn +++ b/browser/ui/BUILD.gn @@ -19,6 +19,7 @@ import("//brave/components/brave_wallet/common/buildflags/buildflags.gni") import("//brave/components/brave_wayback_machine/buildflags/buildflags.gni") import("//brave/components/commander/common/buildflags/buildflags.gni") import("//brave/components/containers/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import("//brave/components/ntp_background_images/buildflags/buildflags.gni") import("//brave/components/playlist/core/common/buildflags/buildflags.gni") import("//brave/components/request_otr/common/buildflags/buildflags.gni") @@ -69,7 +70,6 @@ source_set("ui") { "//brave/browser/skus", "//brave/browser/ui/page_info", "//brave/browser/ui/webui/brave_account", - "//brave/browser/ui/webui/email_aliases", "//brave/browser/ui/webui/local_ai", "//brave/components/ai_chat/core/common/buildflags", @@ -387,7 +387,6 @@ source_set("ui") { deps += [ "//base", "//brave/browser/brave_account", - "//brave/browser/email_aliases", "//brave/browser/ntp_background", "//brave/browser/profiles:util", "//brave/browser/ui/sidebar:sidebar_impl", @@ -402,8 +401,7 @@ source_set("ui") { "//brave/components/brave_account/mojom", "//brave/components/brave_wayback_machine/buildflags", "//brave/components/constants", - "//brave/components/email_aliases:features", - "//brave/components/email_aliases:mojom", + "//brave/components/email_aliases/buildflags", "//brave/components/misc_metrics", "//brave/components/sidebar/browser", "//brave/components/sidebar/common", @@ -1488,6 +1486,15 @@ source_set("ui") { public_deps += [ "//brave/components/containers/content/browser:tab_restore" ] } + + if (enable_email_aliases) { + deps += [ + "//brave/browser/email_aliases", + "//brave/browser/ui/webui/email_aliases", + "//brave/components/email_aliases:features", + "//brave/components/email_aliases:mojom", + ] + } } source_set("brave_tab_prefs") { diff --git a/browser/ui/brave_browser_command_controller.cc b/browser/ui/brave_browser_command_controller.cc index 539de7bda0c..649c9d128fa 100644 --- a/browser/ui/brave_browser_command_controller.cc +++ b/browser/ui/brave_browser_command_controller.cc @@ -15,11 +15,9 @@ #include "base/notreached.h" #include "base/types/to_address.h" #include "brave/app/brave_command_ids.h" -#include "brave/browser/email_aliases/email_aliases_service_factory.h" #include "brave/browser/profiles/profile_util.h" #include "brave/browser/ui/brave_pages.h" #include "brave/browser/ui/browser_commands.h" -#include "brave/browser/ui/email_aliases/email_aliases_controller.h" #include "brave/browser/ui/sidebar/sidebar_utils.h" #include "brave/components/ai_chat/core/common/buildflags/buildflags.h" #include "brave/components/brave_news/common/buildflags/buildflags.h" @@ -31,7 +29,7 @@ #include "brave/components/commander/common/buildflags/buildflags.h" #include "brave/components/commands/common/features.h" #include "brave/components/constants/pref_names.h" -#include "brave/components/email_aliases/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/playlist/core/common/buildflags/buildflags.h" #include "brave/components/speedreader/common/buildflags/buildflags.h" #include "chrome/app/chrome_command_ids.h" @@ -96,6 +94,12 @@ #include "brave/components/brave_wallet/browser/brave_wallet_utils.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/browser/email_aliases/email_aliases_service_factory.h" +#include "brave/browser/ui/email_aliases/email_aliases_controller.h" +#include "brave/components/email_aliases/features.h" +#endif + namespace { bool IsBraveCommands(int id) { @@ -346,11 +350,13 @@ void BraveBrowserCommandController::InitBraveCommandState() { UpdateCommandEnabled(IDC_TOGGLE_ALL_BOOKMARKS_BUTTON_VISIBILITY, true); UpdateCommandEnabled(IDC_EXPORT_ALL_BOOKMARKS, true); +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) UpdateCommandEnabled( IDC_SHOW_EMAIL_ALIASES, email_aliases::features::IsEmailAliasesEnabled() && email_aliases::EmailAliasesServiceFactory::GetServiceForProfile( browser_->profile())); +#endif if (browser_->is_type_normal()) { // Delete these when upstream enables by default. @@ -731,9 +737,11 @@ bool BraveBrowserCommandController::ExecuteBraveCommandWithDisposition( case IDC_SHOW_APPS_PAGE: brave::ShowAppsPage(&*browser_); break; +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) case IDC_SHOW_EMAIL_ALIASES: browser_->GetFeatures().email_aliases_controller()->OpenSettingsPage(); break; +#endif case IDC_WINDOW_GROUP_UNGROUPED_TABS: brave::GroupUngroupedTabs(&*browser_); break; diff --git a/browser/ui/brave_browser_command_controller_browsertest.cc b/browser/ui/brave_browser_command_controller_browsertest.cc index 902ecdc5dad..6f195e83884 100644 --- a/browser/ui/brave_browser_command_controller_browsertest.cc +++ b/browser/ui/brave_browser_command_controller_browsertest.cc @@ -19,7 +19,7 @@ #include "brave/components/brave_account/features.h" #include "brave/components/brave_vpn/common/buildflags/buildflags.h" #include "brave/components/brave_wallet/common/buildflags/buildflags.h" -#include "brave/components/email_aliases/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/skus/common/features.h" #include "brave/components/tor/buildflags/buildflags.h" #include "chrome/app/chrome_command_ids.h" @@ -62,6 +62,10 @@ #include "brave/components/brave_vpn/common/pref_names.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/components/email_aliases/features.h" +#endif + #if defined(TOOLKIT_VIEWS) #include "chrome/browser/ui/side_panel/side_panel_entry.h" #include "chrome/browser/ui/side_panel/side_panel_entry_id.h" @@ -657,6 +661,7 @@ IN_PROC_BROWSER_TEST_F(BraveBrowserCommandControllerWithSideBySideTest, EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_SWAP_SPLIT_VIEW)); } +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) class BraveBrowserCommandControllerWithEmailAliasesTest : public BraveBrowserCommandControllerTest { public: @@ -683,3 +688,4 @@ IN_PROC_BROWSER_TEST_F(BraveBrowserCommandControllerWithEmailAliasesTest, chrome::GetSettingsUrl("email-aliases"), browser()->tab_strip_model()->GetActiveWebContents()->GetVisibleURL()); } +#endif // BUILDFLAG(ENABLE_EMAIL_ALIASES) diff --git a/browser/ui/browser_window/BUILD.gn b/browser/ui/browser_window/BUILD.gn index 1a713b30d41..4ee618358ba 100644 --- a/browser/ui/browser_window/BUILD.gn +++ b/browser/ui/browser_window/BUILD.gn @@ -11,4 +11,6 @@ source_set("browser_window") { sources = [ "public/browser_window_features.h" ] public_deps = [ "//base" ] + + deps = [ "//brave/components/email_aliases/buildflags" ] } diff --git a/browser/ui/browser_window/internal/BUILD.gn b/browser/ui/browser_window/internal/BUILD.gn index 3367386d74c..14794ed52b0 100644 --- a/browser/ui/browser_window/internal/BUILD.gn +++ b/browser/ui/browser_window/internal/BUILD.gn @@ -5,6 +5,7 @@ import("//brave/components/brave_rewards/core/buildflags/buildflags.gni") import("//brave/components/brave_vpn/common/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import("//build/config/ui.gni") source_set("internal") { @@ -15,9 +16,9 @@ source_set("internal") { deps = [ "//base", - "//brave/browser/email_aliases", "//brave/components/brave_rewards/core/buildflags", "//brave/components/brave_vpn/common/buildflags", + "//brave/components/email_aliases/buildflags", "//brave/components/playlist/core/common", "//chrome/browser/tab_group_sync:factories", "//chrome/browser/ui/browser_window", @@ -29,7 +30,6 @@ source_set("internal") { if (!is_android) { deps += [ - "//brave/browser/ui/email_aliases", "//brave/browser/ui/tabs:tab_menu", "//brave/browser/ui/views/page_info", "//chrome/browser/ui/tabs:features", @@ -43,4 +43,11 @@ source_set("internal") { if (enable_brave_vpn) { deps += [ "//brave/browser/ui/brave_vpn" ] } + + if (enable_email_aliases) { + deps += [ + "//brave/browser/email_aliases", + "//brave/browser/ui/email_aliases", + ] + } } diff --git a/browser/ui/browser_window/internal/browser_window_features.cc b/browser/ui/browser_window/internal/browser_window_features.cc index 6dd33b45434..f922e681682 100644 --- a/browser/ui/browser_window/internal/browser_window_features.cc +++ b/browser/ui/browser_window/internal/browser_window_features.cc @@ -7,9 +7,7 @@ #include "base/memory/ptr_util.h" #include "base/notreached.h" -#include "brave/browser/email_aliases/email_aliases_service_factory.h" #include "brave/browser/ui/brave_browser_window.h" -#include "brave/browser/ui/email_aliases/email_aliases_controller.h" #include "brave/browser/ui/sidebar/sidebar_controller.h" #include "brave/browser/ui/sidebar/sidebar_utils.h" #include "brave/browser/ui/tabs/brave_browser_tab_menu_model_delegate.h" @@ -17,6 +15,7 @@ #include "brave/browser/ui/views/side_panel/playlist/playlist_side_panel_coordinator.h" #include "brave/components/brave_rewards/core/buildflags/buildflags.h" #include "brave/components/brave_vpn/common/buildflags/buildflags.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/playlist/core/common/features.h" #include "chrome/browser/tab_group_sync/tab_group_sync_service_factory.h" #include "chrome/browser/ui/browser.h" @@ -44,6 +43,11 @@ class RewardsPanelCoordinator {}; class BraveVPNController {}; #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/browser/email_aliases/email_aliases_service_factory.h" +#include "brave/browser/ui/email_aliases/email_aliases_controller.h" +#endif + BrowserWindowFeatures::BrowserWindowFeatures() = default; BrowserWindowFeatures::~BrowserWindowFeatures() = default; @@ -100,6 +104,7 @@ void BrowserWindowFeatures::InitPostBrowserViewConstruction( } } +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) if (auto* email_aliases_service = email_aliases::EmailAliasesServiceFactory::GetServiceForProfile( browser_view->GetProfile())) { @@ -107,6 +112,7 @@ void BrowserWindowFeatures::InitPostBrowserViewConstruction( std::make_unique( browser_view, email_aliases_service); } +#endif #if BUILDFLAG(ENABLE_BRAVE_VPN) brave_vpn_controller_ = std::make_unique(browser_view); @@ -122,7 +128,9 @@ void BrowserWindowFeatures::TearDownPreBrowserWindowDestruction() { brave_vpn_controller_.reset(); #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) email_aliases_controller_.reset(); +#endif if (sidebar_controller_) { sidebar_controller_->TearDownPreBrowserWindowDestruction(); diff --git a/browser/ui/browser_window/public/browser_window_features.h b/browser/ui/browser_window/public/browser_window_features.h index 87513d91869..6334541e0f5 100644 --- a/browser/ui/browser_window/public/browser_window_features.h +++ b/browser/ui/browser_window/public/browser_window_features.h @@ -8,6 +8,8 @@ #include +#include "brave/components/email_aliases/buildflags/buildflags.h" + class BraveShieldsUIContentsCache; class BraveVPNController; class PlaylistSidePanelCoordinator; @@ -20,9 +22,11 @@ namespace sidebar { class SidebarController; } // namespace sidebar +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) namespace email_aliases { class EmailAliasesController; } // namespace email_aliases +#endif // This file doesn't include header file for BrowserWindowFeatures_ChromiumImpl // because this file only could be included at the bottom of @@ -50,9 +54,11 @@ class BrowserWindowFeatures : public BrowserWindowFeatures_ChromiumImpl { return playlist_side_panel_coordinator_.get(); } +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) email_aliases::EmailAliasesController* email_aliases_controller() { return email_aliases_controller_.get(); } +#endif BraveShieldsUIContentsCache* brave_shields_ui_contents_cache() { return brave_shields_ui_contents_cache_.get(); @@ -65,8 +71,10 @@ class BrowserWindowFeatures : public BrowserWindowFeatures_ChromiumImpl { rewards_panel_coordinator_; std::unique_ptr playlist_side_panel_coordinator_; +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) std::unique_ptr email_aliases_controller_; +#endif std::unique_ptr brave_shields_ui_contents_cache_; }; diff --git a/browser/ui/config.gni b/browser/ui/config.gni index f9b29259d7e..481c915d57f 100644 --- a/browser/ui/config.gni +++ b/browser/ui/config.gni @@ -7,6 +7,7 @@ import("//brave/components/ai_chat/core/common/buildflags/buildflags.gni") import("//brave/components/brave_ads/buildflags/buildflags.gni") import("//brave/components/brave_news/common/buildflags/buildflags.gni") import("//brave/components/containers/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import("//brave/components/speedreader/common/buildflags/buildflags.gni") import("//build/config/ui.gni") @@ -40,7 +41,6 @@ if (is_android) { } if (toolkit_views) { brave_ui_allow_circular_includes_from += [ - "//brave/browser/ui/email_aliases", "//brave/browser/ui/tabs:tab_menu", "//brave/browser/ui/sidebar:sidebar_impl", "//brave/browser/ui/split_view", @@ -50,7 +50,6 @@ if (toolkit_views) { "//brave/browser/ui/views/frame/vertical_tabs", "//brave/browser/ui/views/location_bar", "//brave/browser/ui/views/page_info", - "//brave/browser/ui/webui/email_aliases", ] if (enable_ai_chat) { @@ -76,3 +75,10 @@ if (enable_brave_ads) { if (enable_speedreader) { brave_ui_allow_circular_includes_from += [ "//brave/browser/ui/speedreader" ] } + +if (enable_email_aliases) { + brave_ui_allow_circular_includes_from += [ + "//brave/browser/ui/email_aliases", + "//brave/browser/ui/webui/email_aliases", + ] +} diff --git a/browser/ui/email_aliases/BUILD.gn b/browser/ui/email_aliases/BUILD.gn index af04d0f02f7..ab06cfc2b68 100644 --- a/browser/ui/email_aliases/BUILD.gn +++ b/browser/ui/email_aliases/BUILD.gn @@ -3,6 +3,10 @@ # 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/email_aliases/buildflags/buildflags.gni") + +assert(enable_email_aliases) + source_set("email_aliases") { sources = [ "email_aliases_controller.cc", diff --git a/browser/ui/toolbar/brave_app_menu_model_browsertest.cc b/browser/ui/toolbar/brave_app_menu_model_browsertest.cc index a2509067488..c72e3473ed1 100644 --- a/browser/ui/toolbar/brave_app_menu_model_browsertest.cc +++ b/browser/ui/toolbar/brave_app_menu_model_browsertest.cc @@ -19,7 +19,7 @@ #include "brave/components/brave_account/features.h" #include "brave/components/brave_vpn/common/buildflags/buildflags.h" #include "brave/components/brave_wallet/common/buildflags/buildflags.h" -#include "brave/components/email_aliases/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/skus/common/features.h" #include "brave/components/tor/buildflags/buildflags.h" #include "chrome/app/chrome_command_ids.h" @@ -41,6 +41,10 @@ #include "brave/components/brave_vpn/common/features.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/components/email_aliases/features.h" +#endif + class BraveAppMenuModelBrowserTest : public InProcessBrowserTest { public: BraveAppMenuModelBrowserTest() { @@ -430,6 +434,7 @@ IN_PROC_BROWSER_TEST_F(BraveAppMenuModelBrowserTest, MenuItemsHaveIcons) { CheckMenuIcons(&model, 1); } +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) class BraveAppMenuModelBrowserTestForEmailAliases : public InProcessBrowserTest, public testing::WithParamInterface { @@ -469,3 +474,4 @@ IN_PROC_BROWSER_TEST_P(BraveAppMenuModelBrowserTestForEmailAliases, INSTANTIATE_TEST_SUITE_P(All, BraveAppMenuModelBrowserTestForEmailAliases, testing::Bool()); +#endif // BUILDFLAG(ENABLE_EMAIL_ALIASES) diff --git a/browser/ui/webui/brave_settings_ui.cc b/browser/ui/webui/brave_settings_ui.cc index 297f4f2a932..85eb746a270 100644 --- a/browser/ui/webui/brave_settings_ui.cc +++ b/browser/ui/webui/brave_settings_ui.cc @@ -16,7 +16,6 @@ #include "brave/brave_domains/service_domains.h" #include "brave/browser/brave_account/brave_account_service_factory.h" #include "brave/browser/brave_origin/brave_origin_service_factory.h" -#include "brave/browser/email_aliases/email_aliases_service_factory.h" #include "brave/browser/resources/settings/grit/brave_settings_resources.h" #include "brave/browser/resources/settings/grit/brave_settings_resources_map.h" #include "brave/browser/shell_integrations/buildflags/buildflags.h" @@ -45,8 +44,7 @@ #include "brave/components/commander/common/features.h" #include "brave/components/commands/common/commands.mojom.h" #include "brave/components/commands/common/features.h" -#include "brave/components/email_aliases/email_aliases.mojom.h" -#include "brave/components/email_aliases/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/ntp_background_images/browser/features.h" #include "brave/components/playlist/core/common/features.h" #include "brave/components/playlist/core/common/pref_names.h" @@ -128,6 +126,12 @@ #include "brave/components/brave_wallet/common/features.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/browser/email_aliases/email_aliases_service_factory.h" +#include "brave/components/email_aliases/email_aliases.mojom.h" +#include "brave/components/email_aliases/features.h" +#endif + namespace { bool IsLocaleJapan(Profile* profile) { @@ -269,8 +273,10 @@ void BraveSettingsUI::AddResources(content::WebUIDataSource* html_source, html_source->AddBoolean( "isSharedPinnedTabsEnabled", base::FeatureList::IsEnabled(tabs::kBraveSharedPinnedTabs)); +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) html_source->AddBoolean("isEmailAliasesEnabled", email_aliases::features::IsEmailAliasesEnabled()); +#endif #if BUILDFLAG(ENABLE_CONTAINERS) html_source->AddBoolean( "isContainersEnabled", @@ -379,12 +385,14 @@ void BraveSettingsUI::BindInterface( } #endif // BUILDFLAG(ENABLE_CONTAINERS) +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) void BraveSettingsUI::BindInterface( mojo::PendingReceiver receiver) { auto* profile = Profile::FromWebUI(web_ui()); email_aliases::EmailAliasesServiceFactory::BindForProfile( profile, std::move(receiver)); } +#endif // BUILDFLAG(ENABLE_EMAIL_ALIASES) void BraveSettingsUI::BindInterface( mojo::PendingReceiver diff --git a/browser/ui/webui/brave_settings_ui.h b/browser/ui/webui/brave_settings_ui.h index 980d909dcf2..e4d60c0d361 100644 --- a/browser/ui/webui/brave_settings_ui.h +++ b/browser/ui/webui/brave_settings_ui.h @@ -17,7 +17,7 @@ #include "brave/components/brave_origin/mojom/brave_origin_settings.mojom.h" #include "brave/components/commands/common/commands.mojom.h" #include "brave/components/containers/buildflags/buildflags.h" -#include "brave/components/email_aliases/email_aliases.mojom.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "chrome/browser/ui/webui/settings/settings_ui.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" @@ -33,6 +33,10 @@ #include "brave/components/containers/core/mojom/containers.mojom.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/components/email_aliases/email_aliases.mojom.h" +#endif + class BraveSettingsUI; namespace content { @@ -82,9 +86,11 @@ class BraveSettingsUI : public settings::SettingsUI { pending_receiver); #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) void BindInterface( mojo::PendingReceiver pending_receiver); +#endif void BindInterface( mojo::PendingReceiver diff --git a/browser/ui/webui/email_aliases/BUILD.gn b/browser/ui/webui/email_aliases/BUILD.gn index 63f1e965d13..d08168436a6 100644 --- a/browser/ui/webui/email_aliases/BUILD.gn +++ b/browser/ui/webui/email_aliases/BUILD.gn @@ -3,6 +3,10 @@ # 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/email_aliases/buildflags/buildflags.gni") + +assert(enable_email_aliases) + source_set("email_aliases") { sources = [ "email_aliases_panel_ui.cc", @@ -11,8 +15,10 @@ source_set("email_aliases") { deps = [ "//base", + "//brave/browser/brave_account", "//brave/browser/email_aliases", "//brave/browser/resources/settings:resources", + "//brave/components/brave_account/mojom", "//brave/components/constants", "//brave/components/resources:static_resources_grit", "//chrome/browser/profiles:profile", diff --git a/browser/ui/webui/settings/BUILD.gn b/browser/ui/webui/settings/BUILD.gn index aab33fa9de8..0ffcb1410e7 100644 --- a/browser/ui/webui/settings/BUILD.gn +++ b/browser/ui/webui/settings/BUILD.gn @@ -5,6 +5,7 @@ import("//brave/components/brave_ads/buildflags/buildflags.gni") import("//brave/components/brave_wallet/common/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") source_set("unit_tests") { if (!is_android) { @@ -62,20 +63,23 @@ source_set("browser_tests") { if (!is_android) { testonly = true - sources = [ - "email_aliases_link_browsertest.cc", - "settings_secure_dns_handler_browsertest.cc", - ] + sources = [ "settings_secure_dns_handler_browsertest.cc" ] deps = [ - "//brave/components/brave_account:features", - "//brave/components/email_aliases:features", "//chrome/browser/ui/", "//chrome/browser/ui/webui/settings", "//chrome/test:test_support", "//chrome/test:test_support_ui", ] + if (enable_email_aliases) { + sources += [ "email_aliases_link_browsertest.cc" ] + deps += [ + "//brave/components/brave_account:features", + "//brave/components/email_aliases:features", + ] + } + defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] } } diff --git a/browser/ui/webui/settings/brave_settings_localized_strings_provider.cc b/browser/ui/webui/settings/brave_settings_localized_strings_provider.cc index 01769d55a3b..bb14c521847 100644 --- a/browser/ui/webui/settings/brave_settings_localized_strings_provider.cc +++ b/browser/ui/webui/settings/brave_settings_localized_strings_provider.cc @@ -27,7 +27,7 @@ #include "brave/components/constants/url_constants.h" #include "brave/components/constants/webui_url_constants.h" #include "brave/components/containers/buildflags/buildflags.h" -#include "brave/components/email_aliases/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/playlist/core/common/features.h" #include "brave/components/request_otr/common/buildflags/buildflags.h" #include "brave/components/tor/buildflags/buildflags.h" @@ -71,6 +71,10 @@ #include "brave/components/brave_wallet/browser/pref_names.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/components/email_aliases/features.h" +#endif + namespace settings { namespace { @@ -1245,10 +1249,12 @@ void BraveAddSyncStrings(content::WebUIDataSource* html_source) { } void BraveAddEmailAliasesStrings(content::WebUIDataSource* html_source) { +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) if (!email_aliases::features::IsEmailAliasesEnabled()) { return; } html_source->AddLocalizedStrings(webui::kEmailAliasesStrings); +#endif } void BraveAddBraveAccountStrings(content::WebUIDataSource* html_source) { diff --git a/build/android/java/templates/BraveConfig.template b/build/android/java/templates/BraveConfig.template index 9768c452b68..eb533dc9b7e 100644 --- a/build/android/java/templates/BraveConfig.template +++ b/build/android/java/templates/BraveConfig.template @@ -12,4 +12,5 @@ public class BraveConfig { public static final String DEVELOPER_OPTIONS_CODE = BRAVE_ANDROID_DEVELOPER_OPTIONS_CODE; public static final String WEBCOMPAT_REPORT_ENDPOINT = BRAVE_ANDROID_WEBCOMPAT_REPORT_ENDPOINT; public static final boolean WEB_DISCOVERY_ENABLED = BRAVE_ANDROID_WEB_DISCOVERY_ENABLED; + public static final boolean ENABLE_EMAIL_ALIASES = BRAVE_ANDROID_ENABLE_EMAIL_ALIASES; } diff --git a/chromium_src/chrome/browser/flags/android/DEPS b/chromium_src/chrome/browser/flags/android/DEPS index 714c1f51e65..3ca9ada7265 100644 --- a/chromium_src/chrome/browser/flags/android/DEPS +++ b/chromium_src/chrome/browser/flags/android/DEPS @@ -13,6 +13,7 @@ include_rules = [ "+brave/components/brave_wallet/common/buildflags", "+brave/components/brave_wallet/common/features.h", "+brave/components/debounce/core/common/features.h", + "+brave/components/email_aliases/buildflags", "+brave/components/email_aliases/features.h", "+brave/components/google_sign_in_permission/features.h", "+brave/components/ntp_background_images/browser/features.h", diff --git a/chromium_src/chrome/browser/flags/android/chrome_feature_list.cc b/chromium_src/chrome/browser/flags/android/chrome_feature_list.cc index f7458e01b90..599ab560cfe 100644 --- a/chromium_src/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chromium_src/chrome/browser/flags/android/chrome_feature_list.cc @@ -17,7 +17,7 @@ #include "brave/components/brave_vpn/common/buildflags/buildflags.h" #include "brave/components/brave_wallet/common/buildflags/buildflags.h" #include "brave/components/debounce/core/common/features.h" -#include "brave/components/email_aliases/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/google_sign_in_permission/features.h" #include "brave/components/ntp_background_images/browser/features.h" #include "brave/components/playlist/core/common/features.h" @@ -39,6 +39,10 @@ #include "brave/components/brave_wallet/common/features.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/components/email_aliases/features.h" +#endif + // CHROMIUM_SRC_INTERNAL_USE #define BRAVE_AI_CHAT_FLAGS \ &ai_chat::features::kAIChat, &ai_chat::features::kAIChatHistory, @@ -69,12 +73,21 @@ #define BRAVE_VPN_FLAG #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +// CHROMIUM_SRC_INTERNAL_USE +#define EMAIL_ALIASES_FLAG &email_aliases::features::kEmailAliases, +#else +// CHROMIUM_SRC_INTERNAL_USE +#define EMAIL_ALIASES_FLAG +#endif + // clang-format off #define kForceWebContentsDarkMode kForceWebContentsDarkMode, \ BRAVE_AI_CHAT_FLAGS \ BRAVE_NEW_TAB_PAGE_AD_FLAG \ BRAVE_WEB_DISCOVERY_FLAG \ BRAVE_VPN_FLAG \ + EMAIL_ALIASES_FLAG \ &brave_rewards::features::kBraveRewards, \ &brave_search_conversion::features::kOmniboxBanner, \ &playlist::features::kPlaylist, \ @@ -97,7 +110,6 @@ &ntp_background_images::features::kBraveNTPBrandedWallpaperSurveyPanelist, \ &brave_shields::features::kBraveShredFeature, \ &brave_origin::features::kBraveOrigin, \ - &email_aliases::features::kEmailAliases, \ &features::kBraveCustomSearchEngines // clang-format on @@ -108,7 +120,7 @@ #undef BRAVE_NEW_TAB_PAGE_AD_FLAG #undef BRAVE_WEB_DISCOVERY_FLAG #undef BRAVE_VPN_FLAG -#undef BRAVE_WALLET_FLAG +#undef EMAIL_ALIASES_FLAG namespace chrome { namespace android { diff --git a/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc index 02e00c4d25d..5b2e3ad6c78 100644 --- a/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ b/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.cc @@ -27,10 +27,9 @@ #include "brave/browser/ui/brave_pages.h" #include "brave/browser/ui/browser_commands.h" #include "brave/browser/ui/browser_dialogs.h" -#include "brave/browser/ui/email_aliases/email_aliases_controller.h" #include "brave/components/ai_chat/core/common/buildflags/buildflags.h" #include "brave/components/brave_shields/core/common/features.h" -#include "brave/components/email_aliases/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/tor/buildflags/buildflags.h" #include "brave/grit/brave_theme_resources.h" #include "chrome/browser/autocomplete/chrome_autocomplete_provider_client.h" @@ -79,6 +78,11 @@ #include "brave/components/containers/core/common/features.h" #endif // BUILDFLAG(ENABLE_CONTAINERS) +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/browser/ui/email_aliases/email_aliases_controller.h" +#include "brave/components/email_aliases/features.h" +#endif + namespace { AutocompleteMatch GetAutocompleteMatchForText(Profile* profile, @@ -304,6 +308,7 @@ void OnRewriteSuggestionCompleted( } #endif // BUILDFLAG(ENABLE_AI_CHAT) +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) email_aliases::EmailAliasesController* GetEmailAliasesController( BrowserWindowInterface* browser) { if (!browser) { @@ -311,6 +316,7 @@ email_aliases::EmailAliasesController* GetEmailAliasesController( } return browser->GetFeatures().email_aliases_controller(); } +#endif // BUILDFLAG(ENABLE_EMAIL_ALIASES) } // namespace @@ -384,8 +390,10 @@ bool RenderViewContextMenu::IsCommandIdEnabled(int id) const { return true; case IDC_OPEN_IN_CONTAINER: return true; +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) case IDC_NEW_EMAIL_ALIAS: return !!GetEmailAliasesController(GetBrowser()); +#endif default: return RenderViewContextMenu_Chromium::IsCommandIdEnabled(id); } @@ -442,12 +450,14 @@ void RenderViewContextMenu::ExecuteCommand(int id, int event_flags) { cosmetic_filters::CosmeticFiltersTabHelper::LaunchContentPicker( source_web_contents_); break; +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) case IDC_NEW_EMAIL_ALIAS: if (auto* email_aliases = GetEmailAliasesController(GetBrowser())) { email_aliases->ShowBubble(source_web_contents_, GetRenderFrameHost(), params_.field_renderer_id); } break; +#endif default: RenderViewContextMenu_Chromium::ExecuteCommand(id, event_flags); } @@ -859,7 +869,9 @@ void RenderViewContextMenu::InitMenu() { BuildContainersMenu(); #endif // BUILDFLAG(ENABLE_CONTAINERS) +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) BuildEmailAliasesMenu(); +#endif } void RenderViewContextMenu::NotifyMenuShown() { @@ -869,6 +881,7 @@ void RenderViewContextMenu::NotifyMenuShown() { } } +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) void RenderViewContextMenu::BuildEmailAliasesMenu() { if (!email_aliases::features::IsEmailAliasesEnabled()) { return; @@ -905,3 +918,4 @@ void RenderViewContextMenu::BuildEmailAliasesMenu() { IDS_IDC_NEW_EMAIL_ALIAS); } } +#endif // BUILDFLAG(ENABLE_EMAIL_ALIASES) diff --git a/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.h b/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.h index e7074b8a266..14021209060 100644 --- a/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.h +++ b/chromium_src/chrome/browser/renderer_context_menu/render_view_context_menu.h @@ -8,6 +8,7 @@ #include "brave/components/ai_chat/core/common/buildflags/buildflags.h" #include "brave/components/containers/buildflags/buildflags.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/text_recognition/common/buildflags/buildflags.h" #if BUILDFLAG(ENABLE_AI_CHAT) @@ -94,7 +95,9 @@ class RenderViewContextMenu : public RenderViewContextMenu_Chromium void InitMenu() override; void NotifyMenuShown() override; +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) void BuildEmailAliasesMenu(); +#endif #if BUILDFLAG(ENABLE_AI_CHAT) bool IsAIChatEnabled() const; diff --git a/chromium_src/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chromium_src/chrome/browser/ui/webui/chrome_web_ui_configs.cc index 219ab82104f..02141f7309d 100644 --- a/chromium_src/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chromium_src/chrome/browser/ui/webui/chrome_web_ui_configs.cc @@ -11,6 +11,7 @@ #include "brave/components/brave_origin/buildflags/buildflags.h" #include "brave/components/brave_rewards/core/buildflags/buildflags.h" #include "brave/components/brave_wallet/common/buildflags/buildflags.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "brave/components/speedreader/common/buildflags/buildflags.h" #include "content/public/browser/webui_config_map.h" @@ -36,10 +37,8 @@ #include "brave/browser/ui/webui/brave_settings_ui.h" #include "brave/browser/ui/webui/brave_shields/shields_panel_ui.h" #include "brave/browser/ui/webui/brave_welcome_page/brave_welcome_page_ui.h" -#include "brave/browser/ui/webui/email_aliases/email_aliases_panel_ui.h" #include "brave/browser/ui/webui/private_new_tab_page/brave_private_new_tab_ui.h" #include "brave/browser/ui/webui/webcompat_reporter/webcompat_reporter_ui.h" -#include "brave/components/email_aliases/features.h" #if BUILDFLAG(ENABLE_BRAVE_WALLET) #include "brave/browser/ui/webui/brave_wallet/wallet_panel_ui.h" @@ -64,6 +63,11 @@ #include "brave/browser/ui/webui/brave_origin_startup/brave_origin_startup_ui.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/browser/ui/webui/email_aliases/email_aliases_panel_ui.h" +#include "brave/components/email_aliases/features.h" +#endif + namespace { #if !BUILDFLAG(IS_ANDROID) @@ -121,9 +125,6 @@ void RegisterChromeWebUIConfigs() { if (brave_account::features::IsBraveAccountEnabled()) { map.AddWebUIConfig(std::make_unique()); } - if (email_aliases::features::IsEmailAliasesEnabled()) { - map.AddWebUIConfig(std::make_unique()); - } #else // !BUILDFLAG(IS_ANDROID) map.AddWebUIConfig(std::make_unique()); if (brave_account::features::IsBraveAccountEnabled()) { @@ -146,4 +147,10 @@ void RegisterChromeWebUIConfigs() { #if BUILDFLAG(IS_BRAVE_ORIGIN_BRANDED) map.AddWebUIConfig(std::make_unique()); #endif + +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) + if (email_aliases::features::IsEmailAliasesEnabled()) { + map.AddWebUIConfig(std::make_unique()); + } +#endif } diff --git a/chromium_src/components/sync_preferences/DEPS b/chromium_src/components/sync_preferences/DEPS index 1f69d38d5ca..2f001e0c77c 100644 --- a/chromium_src/components/sync_preferences/DEPS +++ b/chromium_src/components/sync_preferences/DEPS @@ -1,6 +1,7 @@ include_rules = [ "+brave/components/containers/buildflags", "+brave/components/containers/core/browser", + "+brave/components/email_aliases/buildflags/buildflags.h", "+brave/components/email_aliases/pref_names.h", "+components/search_engines", ] diff --git a/chromium_src/components/sync_preferences/common_syncable_prefs_database.cc b/chromium_src/components/sync_preferences/common_syncable_prefs_database.cc index 252748ce183..afe2c2dcc2b 100644 --- a/chromium_src/components/sync_preferences/common_syncable_prefs_database.cc +++ b/chromium_src/components/sync_preferences/common_syncable_prefs_database.cc @@ -11,13 +11,17 @@ #include "base/containers/fixed_flat_map.h" #include "base/containers/map_util.h" #include "brave/components/containers/buildflags/buildflags.h" -#include "brave/components/email_aliases/pref_names.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" #include "components/search_engines/search_engines_pref_names.h" #if BUILDFLAG(ENABLE_CONTAINERS) #include "brave/components/containers/core/browser/pref_names.h" #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) +#include "brave/components/email_aliases/pref_names.h" +#endif + namespace sync_preferences { namespace { @@ -28,7 +32,9 @@ enum { #if BUILDFLAG(ENABLE_CONTAINERS) kContainersList = 1002, #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) kEmailAliasesNotes = 1003, +#endif }; } // namespace brave_syncable_prefs_ids @@ -64,6 +70,7 @@ constexpr auto kBraveCommonSyncablePrefsAllowlist = base::MakeFixedFlatMap< }, }, #endif +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) { email_aliases::prefs::kEmailAliasesNotes, { @@ -73,6 +80,7 @@ constexpr auto kBraveCommonSyncablePrefsAllowlist = base::MakeFixedFlatMap< MergeBehavior::kNone, }, }, +#endif // See //components/sync_preferences/README.md about adding new entries // here. // diff --git a/components/BUILD.gn b/components/BUILD.gn index 7a7f3bb316d..7651be51ee8 100644 --- a/components/BUILD.gn +++ b/components/BUILD.gn @@ -7,6 +7,7 @@ import("//brave/components/ai_chat/core/common/buildflags/buildflags.gni") import("//brave/components/brave_wallet/common/buildflags/buildflags.gni") import("//brave/components/brave_wayback_machine/buildflags/buildflags.gni") import("//brave/components/containers/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import("//brave/components/psst/buildflags/buildflags.gni") import("//brave/components/speedreader/common/buildflags/buildflags.gni") import("//build/config/features.gni") @@ -37,7 +38,6 @@ test("brave_components_unittests") { "//brave/components/brave_shields/core/common:unit_tests", "//brave/components/brave_sync:unit_tests", "//brave/components/component_updater:unit_tests", - "//brave/components/email_aliases:unit_tests", "//brave/components/https_upgrade_exceptions/browser:unit_tests", "//brave/components/json:unit_tests", "//brave/components/local_ai/core:unit_tests", @@ -85,6 +85,10 @@ test("brave_components_unittests") { ] } + if (enable_email_aliases) { + deps += [ "//brave/components/email_aliases:unit_tests" ] + } + if (use_blink) { deps += [ "//brave/components/local_ai/content:unit_tests" ] if (enable_ai_chat) { diff --git a/components/brave_account/BUILD.gn b/components/brave_account/BUILD.gn index 00b693e4289..ecd822bbc5a 100644 --- a/components/brave_account/BUILD.gn +++ b/components/brave_account/BUILD.gn @@ -4,6 +4,7 @@ # You can obtain one at https://mozilla.org/MPL/2.0/. import("//brave/build/config.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") source_set("brave_account") { sources = [ @@ -55,8 +56,12 @@ source_set("features") { deps = [ "//base", - "//brave/components/email_aliases:features", + "//brave/components/email_aliases/buildflags", ] + + if (enable_email_aliases) { + deps += [ "//brave/components/email_aliases:features" ] + } } source_set("test_support") { @@ -82,7 +87,6 @@ source_set("unit_tests") { sources = [ "brave_account_service_test.h", "brave_account_service_unittest.cc", - "features_unittest.cc", ] deps = [ @@ -94,7 +98,6 @@ source_set("unit_tests") { "//brave/components/brave_account/endpoint_client:test_support", "//brave/components/brave_account/endpoints", "//brave/components/brave_account/mojom", - "//brave/components/email_aliases:features", "//components/prefs:test_support", "//net", "//services/network:test_support", @@ -102,4 +105,12 @@ source_set("unit_tests") { "//testing/gmock", "//testing/gtest", ] + + if (enable_email_aliases) { + sources += [ "features_unittest.cc" ] + deps += [ + "//brave/components/email_aliases:features", + "//brave/components/email_aliases/buildflags", + ] + } } diff --git a/components/brave_account/features.cc b/components/brave_account/features.cc index 8fac97a4043..fea0e90d82f 100644 --- a/components/brave_account/features.cc +++ b/components/brave_account/features.cc @@ -5,7 +5,11 @@ #include "brave/components/brave_account/features.h" +#include "brave/components/email_aliases/buildflags/buildflags.h" + +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) #include "brave/components/email_aliases/features.h" +#endif namespace brave_account::features { @@ -17,8 +21,11 @@ BASE_FEATURE(kBraveAccount, base::FEATURE_DISABLED_BY_DEFAULT); // - the explicit kBraveAccount feature flag is enabled (dev/testing), OR // - a dependent feature (e.g. Email Aliases) requires it bool IsBraveAccountEnabled() { - return base::FeatureList::IsEnabled(kBraveAccount) || - email_aliases::features::IsEmailAliasesEnabled(); + return base::FeatureList::IsEnabled(kBraveAccount) +#if BUILDFLAG(ENABLE_EMAIL_ALIASES) + || email_aliases::features::IsEmailAliasesEnabled() +#endif + ; } const base::Feature& BraveAccountFeatureForTesting() { diff --git a/components/email_aliases/BUILD.gn b/components/email_aliases/BUILD.gn index 571a19d7594..e2a39c9f579 100644 --- a/components/email_aliases/BUILD.gn +++ b/components/email_aliases/BUILD.gn @@ -4,9 +4,12 @@ # You can obtain one at https://mozilla.org/MPL/2.0/. import("//brave/build/buildflag_header_with_env_config.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import("//mojo/public/tools/bindings/mojom.gni") import("//tools/json_schema_compiler/json_schema_api.gni") +assert(enable_email_aliases) + mojom_component("mojom") { output_prefix = "email_aliases_mojom" macro_prefix = "EMAIL_ALIASES_MOJOM" @@ -74,10 +77,13 @@ source_set("test_utils") { ] deps = [ + ":email_aliases_api_types", ":service", "//base/test:test_support", + "//brave/components/brave_account/endpoint_client", "//brave/components/email_aliases:mojom", "//mojo/public/cpp/bindings", + "//testing/gtest", "//url", ] } diff --git a/components/email_aliases/buildflags/BUILD.gn b/components/email_aliases/buildflags/BUILD.gn new file mode 100644 index 00000000000..f275501c122 --- /dev/null +++ b/components/email_aliases/buildflags/BUILD.gn @@ -0,0 +1,12 @@ +# Copyright (c) 2026 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/email_aliases/buildflags/buildflags.gni") +import("//build/buildflag_header.gni") + +buildflag_header("buildflags") { + header = "buildflags.h" + flags = [ "ENABLE_EMAIL_ALIASES=$enable_email_aliases" ] +} diff --git a/components/email_aliases/buildflags/buildflags.gni b/components/email_aliases/buildflags/buildflags.gni new file mode 100644 index 00000000000..ab507dba93f --- /dev/null +++ b/components/email_aliases/buildflags/buildflags.gni @@ -0,0 +1,10 @@ +# Copyright (c) 2026 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/brave_origin/buildflags/buildflags.gni") + +declare_args() { + enable_email_aliases = !is_ios && !is_android && !is_brave_origin_branded +} diff --git a/components/email_aliases/resources/BUILD.gn b/components/email_aliases/resources/BUILD.gn index 87dbbb95330..8fa5b360806 100644 --- a/components/email_aliases/resources/BUILD.gn +++ b/components/email_aliases/resources/BUILD.gn @@ -4,6 +4,9 @@ # You can obtain one at https://mozilla.org/MPL/2.0/. import("//brave/components/common/typescript.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") + +assert(enable_email_aliases) transpile_web_ui("email_aliases_ui") { generate_grdp = true @@ -27,6 +30,7 @@ transpile_web_ui("email_aliases_ui") { resource_name = "email_aliases" deps = [ + "//brave/components/brave_account/mojom:mojom_ts__generator", "//brave/components/email_aliases:mojom_js", "//brave/components/resources:strings", ] diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn index 3a414b306d2..2203e823848 100644 --- a/components/resources/BUILD.gn +++ b/components/resources/BUILD.gn @@ -9,6 +9,7 @@ import("//brave/components/brave_news/common/buildflags/buildflags.gni") import("//brave/components/brave_rewards/core/buildflags/buildflags.gni") import("//brave/components/brave_vpn/common/buildflags/buildflags.gni") import("//brave/components/brave_wallet/common/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import("//brave/components/playlist/core/common/buildflags/buildflags.gni") import("//brave/components/speedreader/common/buildflags/buildflags.gni") import("//brave/components/tor/buildflags/buildflags.gni") @@ -73,6 +74,7 @@ brave_grit("static_resources") { "enable_ai_chat=$enable_ai_chat", "enable_brave_vpn=$enable_brave_vpn", "enable_brave_wallet=$enable_brave_wallet", + "enable_email_aliases=$enable_email_aliases", "enable_playlist_webui=$enable_playlist_webui", "enable_speedreader=$enable_speedreader", ] @@ -215,6 +217,7 @@ brave_grit("strings") { "enable_ai_chat=$enable_ai_chat", "enable_brave_ai_chat_agent_profile=$enable_brave_ai_chat_agent_profile", "enable_ai_chat_tab_management_tool=$enable_ai_chat_tab_management_tool", + "enable_email_aliases=$enable_email_aliases", "enable_speedreader=$enable_speedreader", "enable_tor=$enable_tor", "enable_brave_vpn=$enable_brave_vpn", diff --git a/components/resources/brave_components_resources.grd b/components/resources/brave_components_resources.grd index 9142853ca95..39fe0c3bd0e 100644 --- a/components/resources/brave_components_resources.grd +++ b/components/resources/brave_components_resources.grd @@ -84,7 +84,9 @@ - + + + diff --git a/components/resources/brave_components_strings.grd b/components/resources/brave_components_strings.grd index 9f2bfc4a79d..f49f203b28e 100644 --- a/components/resources/brave_components_strings.grd +++ b/components/resources/brave_components_strings.grd @@ -925,7 +925,9 @@ - + + + diff --git a/components/sync_preferences/sources.gni b/components/sync_preferences/sources.gni index f77aa0f88cb..9f52d11e88a 100644 --- a/components/sync_preferences/sources.gni +++ b/components/sync_preferences/sources.gni @@ -4,11 +4,19 @@ # You can obtain one at https://mozilla.org/MPL/2.0/. import("//brave/components/containers/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") -brave_common_syncable_prefs_database_public_deps = - [ "//brave/components/containers/buildflags" ] +brave_common_syncable_prefs_database_public_deps = [ + "//brave/components/containers/buildflags", + "//brave/components/email_aliases/buildflags", +] if (enable_containers) { brave_common_syncable_prefs_database_public_deps += [ "//brave/components/containers/core/browser" ] } + +if (enable_email_aliases) { + brave_common_syncable_prefs_database_public_deps += + [ "//brave/components/email_aliases:service" ] +} diff --git a/components/webpack/BUILD.gn b/components/webpack/BUILD.gn index 4cfa6c8f642..4d8b7b11408 100644 --- a/components/webpack/BUILD.gn +++ b/components/webpack/BUILD.gn @@ -6,6 +6,7 @@ import("//brave/components/ai_chat/core/common/buildflags/buildflags.gni") import("//brave/components/brave_origin/buildflags/buildflags.gni") import("//brave/components/brave_wallet/common/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") # Generate a JSON config file with build flags generated_file("build_flags_json") { @@ -15,6 +16,7 @@ generated_file("build_flags_json") { enable_ai_chat = enable_ai_chat enable_ai_chat_tab_management_tool = enable_ai_chat_tab_management_tool enable_brave_wallet = enable_brave_wallet + enable_email_aliases = enable_email_aliases is_brave_origin_branded = is_brave_origin_branded is_ios = is_ios is_android = is_android diff --git a/jest.config.js b/jest.config.js index 21f4b7fca98..b835342a093 100644 --- a/jest.config.js +++ b/jest.config.js @@ -56,7 +56,8 @@ function getBuildConfig() { // Default to all features enabled if no config found return { enable_ai_chat: true, - enable_brave_wallet: true + enable_brave_wallet: true, + enable_email_aliases: true } } @@ -109,7 +110,10 @@ module.exports = { ...(buildConfig.enable_ai_chat ? [] : ['/components/ai_chat']), ...(buildConfig.enable_brave_wallet ? [] - : ['/components/brave_wallet_ui']) + : ['/components/brave_wallet_ui']), + ...(buildConfig.enable_email_aliases + ? [] + : ['/components/email_aliases']) ], testTimeout: 30000, transformIgnorePatterns: [ diff --git a/test/BUILD.gn b/test/BUILD.gn index 720336a1bff..ab0db209287 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -18,6 +18,7 @@ import("//brave/components/brave_vpn/common/buildflags/buildflags.gni") import("//brave/components/brave_wallet/common/buildflags/buildflags.gni") import("//brave/components/brave_wayback_machine/buildflags/buildflags.gni") import("//brave/components/containers/buildflags/buildflags.gni") +import("//brave/components/email_aliases/buildflags/buildflags.gni") import("//brave/components/ntp_background_images/buildflags/buildflags.gni") import("//brave/components/playlist/core/common/buildflags/buildflags.gni") import("//brave/components/psst/buildflags/buildflags.gni") @@ -161,7 +162,6 @@ test("brave_unit_tests") { "//brave/browser/brave_shields:unit_tests", "//brave/browser/brave_stats:unit_tests", "//brave/browser/content_settings:unit_tests", - "//brave/browser/email_aliases:unit_tests", "//brave/browser/ephemeral_storage:unit_tests", "//brave/browser/global_privacy_control:unit_tests", "//brave/browser/metrics:brave_metrics_unit_tests", @@ -204,6 +204,10 @@ test("brave_unit_tests") { ] } + if (enable_email_aliases) { + deps += [ "//brave/browser/email_aliases:unit_tests" ] + } + deps += [ "//brave/components/brave_referrals/browser:unit_tests", "//brave/components/brave_rewards/core", @@ -970,6 +974,7 @@ test("brave_browser_tests") { "//brave/components/brave_perf_predictor/common", "//brave/components/brave_referrals/browser", "//brave/components/brave_rewards/core", + "//brave/components/email_aliases/buildflags", ] if (enable_brave_rewards) { @@ -986,6 +991,10 @@ test("brave_browser_tests") { ] } + if (enable_email_aliases) { + deps += [ "//brave/components/email_aliases:features" ] + } + deps += [ "//brave/components/brave_account:features", "//brave/components/brave_news/common/buildflags", @@ -1005,7 +1014,6 @@ test("brave_browser_tests") { "//brave/components/de_amp/common", "//brave/components/debounce/core/browser", "//brave/components/debounce/core/common", - "//brave/components/email_aliases:features", "//brave/components/global_privacy_control", "//brave/components/https_upgrade_exceptions/browser", "//brave/components/l10n/common", @@ -1258,6 +1266,10 @@ test("brave_browser_tests") { ] } + if (enable_email_aliases) { + deps += [ "//brave/browser/email_aliases:browser_tests" ] + } + if (is_win || is_linux) { sources += [ "//brave/browser/renderer_context_menu/brave_spelling_options_submenu_observer_browsertest.cc" ] deps += [ @@ -1291,7 +1303,6 @@ test("brave_browser_tests") { "//brave/browser/ui/views/toolbar/brave_toolbar_view_browsertest.cc", ] deps += [ - "//brave/browser/email_aliases:browser_tests", "//brave/browser/ui/darker_theme:browser_tests", "//brave/browser/ui/sidebar:browser_tests", "//brave/browser/ui/tabs:browser_tests",