Account/Email Aliases: add profile-scoped enabled predicates (#36262)
This commit is contained in:
@@ -97,7 +97,10 @@ source_set("brave_origin") {
|
||||
}
|
||||
|
||||
if (enable_email_aliases) {
|
||||
deps += [ "//brave/components/email_aliases:service" ]
|
||||
deps += [
|
||||
"//brave/components/email_aliases:pref_names",
|
||||
"//brave/components/email_aliases:service",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ source_set("unit_tests") {
|
||||
"//brave/components/brave_account",
|
||||
"//brave/components/brave_account:features",
|
||||
"//brave/components/email_aliases:features",
|
||||
"//brave/components/email_aliases:pref_names",
|
||||
"//brave/components/email_aliases:service",
|
||||
"//chrome/browser/profiles",
|
||||
"//chrome/test:test_support",
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
#include "brave/components/brave_account/brave_account_service.h"
|
||||
#include "brave/components/email_aliases/email_aliases_service.h"
|
||||
#include "brave/components/email_aliases/features.h"
|
||||
#include "brave/components/email_aliases/pref_names.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/browser/profiles/profile_selections.h"
|
||||
#include "components/pref_registry/pref_registry_syncable.h"
|
||||
@@ -61,11 +60,9 @@ void EmailAliasesServiceFactory::RegisterProfilePrefs(
|
||||
std::unique_ptr<KeyedService>
|
||||
EmailAliasesServiceFactory::BuildServiceInstanceForBrowserContext(
|
||||
content::BrowserContext* context) const {
|
||||
if (!features::IsEmailAliasesEnabled()) {
|
||||
return nullptr;
|
||||
}
|
||||
PrefService* pref_service = user_prefs::UserPrefs::Get(context);
|
||||
if (!pref_service || !pref_service->GetBoolean(prefs::kEmailAliasesEnabled)) {
|
||||
if (!pref_service ||
|
||||
!features::IsEmailAliasesEnabledForProfile(*pref_service)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -86,6 +86,9 @@ source_set("brave_simple_policy_map") {
|
||||
}
|
||||
|
||||
if (enable_email_aliases) {
|
||||
deps += [ "//brave/components/email_aliases:service" ]
|
||||
deps += [
|
||||
"//brave/components/email_aliases:pref_names",
|
||||
"//brave/components/email_aliases:service",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -362,6 +362,7 @@ if (enable_email_aliases) {
|
||||
"//brave/browser/ui/webui/email_aliases",
|
||||
"//brave/components/email_aliases:features",
|
||||
"//brave/components/email_aliases:mojom",
|
||||
"//brave/components/email_aliases:pref_names",
|
||||
"//brave/components/email_aliases:service",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <optional>
|
||||
|
||||
#include "base/check.h"
|
||||
#include "base/check_deref.h"
|
||||
#include "base/check_is_test.h"
|
||||
#include "base/containers/fixed_flat_set.h"
|
||||
#include "base/feature_list.h"
|
||||
@@ -96,7 +97,6 @@
|
||||
#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
|
||||
@@ -351,11 +351,9 @@ void BraveBrowserCommandController::InitBraveCommandState() {
|
||||
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()));
|
||||
UpdateCommandEnabled(IDC_SHOW_EMAIL_ALIASES,
|
||||
email_aliases::features::IsEmailAliasesEnabledForProfile(
|
||||
CHECK_DEREF(browser_->profile()->GetPrefs())));
|
||||
#endif
|
||||
|
||||
if (browser_->is_type_normal()) {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
|
||||
|
||||
#include "base/check_deref.h"
|
||||
#include "base/memory/ptr_util.h"
|
||||
#include "base/notreached.h"
|
||||
#include "brave/browser/ui/brave_browser_window.h"
|
||||
@@ -114,14 +115,14 @@ void BrowserWindowFeatures::InitPostBrowserViewConstruction(
|
||||
}
|
||||
|
||||
#if BUILDFLAG(ENABLE_EMAIL_ALIASES)
|
||||
if (email_aliases::features::IsEmailAliasesEnabled()) {
|
||||
if (auto* email_aliases_service =
|
||||
email_aliases::EmailAliasesServiceFactory::GetServiceForProfile(
|
||||
browser_view->GetProfile())) {
|
||||
email_aliases_controller_ =
|
||||
std::make_unique<email_aliases::EmailAliasesController>(
|
||||
browser_view, email_aliases_service);
|
||||
}
|
||||
if (email_aliases::features::IsEmailAliasesEnabledForProfile(
|
||||
CHECK_DEREF(browser_view->GetProfile()->GetPrefs()))) {
|
||||
email_aliases_controller_ =
|
||||
std::make_unique<email_aliases::EmailAliasesController>(
|
||||
browser_view,
|
||||
&CHECK_DEREF(
|
||||
email_aliases::EmailAliasesServiceFactory::GetServiceForProfile(
|
||||
browser_view->GetProfile())));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -292,17 +292,18 @@ void BraveSettingsUI::AddResources(content::WebUIDataSource* html_source,
|
||||
#if BUILDFLAG(ENABLE_EMAIL_ALIASES)
|
||||
html_source->AddBoolean(
|
||||
"isEmailAliasesEnabled",
|
||||
email_aliases::features::IsEmailAliasesEnabled() &&
|
||||
email_aliases::EmailAliasesServiceFactory::GetServiceForProfile(
|
||||
profile));
|
||||
email_aliases::features::IsEmailAliasesEnabledForProfile(
|
||||
CHECK_DEREF(profile->GetPrefs())));
|
||||
#endif
|
||||
#if BUILDFLAG(ENABLE_CONTAINERS)
|
||||
html_source->AddBoolean(
|
||||
"isContainersEnabled",
|
||||
base::FeatureList::IsEnabled(containers::features::kContainers));
|
||||
#endif
|
||||
html_source->AddBoolean("isBraveAccountEnabled",
|
||||
brave_account::features::IsBraveAccountEnabled());
|
||||
html_source->AddBoolean(
|
||||
"isBraveAccountEnabled",
|
||||
brave_account::features::IsBraveAccountEnabledForProfile(
|
||||
CHECK_DEREF(profile->GetPrefs())));
|
||||
html_source->AddBoolean("isBraveOriginBrandedBuild",
|
||||
BUILDFLAG(IS_BRAVE_ORIGIN_BRANDED));
|
||||
html_source->AddBoolean("isBraveOriginPurchased",
|
||||
|
||||
@@ -17,9 +17,9 @@ namespace {
|
||||
BASE_FEATURE(kBraveAccount, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
} // namespace
|
||||
|
||||
// Brave Account is enabled when:
|
||||
// - the explicit kBraveAccount feature flag is enabled (dev/testing), OR
|
||||
// - a dependent feature (e.g. Email Aliases) requires it
|
||||
// Process-wide: true if kBraveAccount is on, or a dependent feature (e.g.
|
||||
// Email Aliases) is built and feature-flagged on. Use when per-profile state
|
||||
// shouldn't or can't influence the answer.
|
||||
bool IsBraveAccountEnabled() {
|
||||
return base::FeatureList::IsEnabled(kBraveAccount)
|
||||
#if BUILDFLAG(ENABLE_EMAIL_ALIASES)
|
||||
@@ -28,6 +28,19 @@ bool IsBraveAccountEnabled() {
|
||||
;
|
||||
}
|
||||
|
||||
// Per-profile: "is Brave Account active for this profile?".
|
||||
// Use for UI gating and other per-profile decisions. The result can differ
|
||||
// across profiles because dependent features (Email Aliases) consult a
|
||||
// per-profile pref.
|
||||
bool IsBraveAccountEnabledForProfile(const PrefService& pref_service) {
|
||||
return base::FeatureList::IsEnabled(kBraveAccount)
|
||||
#if BUILDFLAG(ENABLE_EMAIL_ALIASES)
|
||||
||
|
||||
email_aliases::features::IsEmailAliasesEnabledForProfile(pref_service)
|
||||
#endif
|
||||
;
|
||||
}
|
||||
|
||||
const base::Feature& BraveAccountFeatureForTesting() {
|
||||
return kBraveAccount;
|
||||
}
|
||||
|
||||
@@ -8,9 +8,12 @@
|
||||
|
||||
#include "base/feature_list.h"
|
||||
|
||||
class PrefService;
|
||||
|
||||
namespace brave_account::features {
|
||||
|
||||
bool IsBraveAccountEnabled();
|
||||
bool IsBraveAccountEnabledForProfile(const PrefService& pref_service);
|
||||
|
||||
const base::Feature& BraveAccountFeatureForTesting();
|
||||
|
||||
|
||||
@@ -27,12 +27,21 @@ generated_types("email_aliases_api_types") {
|
||||
root_namespace = "email_aliases"
|
||||
}
|
||||
|
||||
source_set("pref_names") {
|
||||
sources = [ "pref_names.h" ]
|
||||
}
|
||||
|
||||
static_library("features") {
|
||||
sources = [
|
||||
"features.cc",
|
||||
"features.h",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":pref_names",
|
||||
"//components/prefs",
|
||||
]
|
||||
|
||||
public_deps = [ "//base" ]
|
||||
}
|
||||
|
||||
@@ -45,11 +54,11 @@ static_library("service") {
|
||||
"email_aliases_notes.h",
|
||||
"email_aliases_service.cc",
|
||||
"email_aliases_service.h",
|
||||
"pref_names.h",
|
||||
]
|
||||
deps = [
|
||||
":email_aliases_api_types",
|
||||
":mojom",
|
||||
":pref_names",
|
||||
"//base",
|
||||
"//brave/brave_domains",
|
||||
"//brave/components/brave_account",
|
||||
@@ -97,6 +106,7 @@ source_set("unit_tests") {
|
||||
]
|
||||
deps = [
|
||||
":features",
|
||||
":pref_names",
|
||||
":service",
|
||||
":test_utils",
|
||||
"//base/test:test_support",
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
|
||||
#include "brave/components/email_aliases/features.h"
|
||||
|
||||
#include "brave/components/email_aliases/pref_names.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
|
||||
namespace email_aliases::features {
|
||||
|
||||
BASE_FEATURE(kEmailAliases, base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
@@ -13,4 +16,9 @@ bool IsEmailAliasesEnabled() {
|
||||
return base::FeatureList::IsEnabled(kEmailAliases);
|
||||
}
|
||||
|
||||
bool IsEmailAliasesEnabledForProfile(const PrefService& pref_service) {
|
||||
return IsEmailAliasesEnabled() &&
|
||||
pref_service.GetBoolean(prefs::kEmailAliasesEnabled);
|
||||
}
|
||||
|
||||
} // namespace email_aliases::features
|
||||
|
||||
@@ -8,11 +8,14 @@
|
||||
|
||||
#include "base/feature_list.h"
|
||||
|
||||
class PrefService;
|
||||
|
||||
namespace email_aliases::features {
|
||||
|
||||
BASE_DECLARE_FEATURE(kEmailAliases);
|
||||
|
||||
bool IsEmailAliasesEnabled();
|
||||
bool IsEmailAliasesEnabledForProfile(const PrefService& pref_service);
|
||||
|
||||
} // namespace email_aliases::features
|
||||
|
||||
|
||||
@@ -61,6 +61,9 @@ source_set("brave_origin") {
|
||||
deps += [ "//brave/components/brave_news/common" ]
|
||||
}
|
||||
if (enable_email_aliases) {
|
||||
deps += [ "//brave/components/email_aliases:service" ]
|
||||
deps += [
|
||||
"//brave/components/email_aliases:pref_names",
|
||||
"//brave/components/email_aliases:service",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +36,9 @@ source_set("policy") {
|
||||
deps += [ "//brave/components/brave_talk" ]
|
||||
}
|
||||
if (enable_email_aliases) {
|
||||
deps += [ "//brave/components/email_aliases:service" ]
|
||||
deps += [
|
||||
"//brave/components/email_aliases:pref_names",
|
||||
"//brave/components/email_aliases:service",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user