diff --git a/browser/resources/settings/brave_privacy_page/brave_personalization_options.js b/browser/resources/settings/brave_privacy_page/brave_personalization_options.js index 591799e23aee..05be5caf99b2 100644 --- a/browser/resources/settings/brave_privacy_page/brave_personalization_options.js +++ b/browser/resources/settings/brave_privacy_page/brave_personalization_options.js @@ -57,6 +57,9 @@ Polymer({ this.addWebUIListener('remote-debugging-enabled-changed', (enabled) => { this.remoteDebuggingEnabled_ = enabled }) + this.addWebUIListener('p3a-enabled-changed', (enabled) => { + this.p3aEnabled_ = enabled + }) }, /** diff --git a/browser/ui/webui/settings/brave_privacy_handler.cc b/browser/ui/webui/settings/brave_privacy_handler.cc index 2f74a813619d..49693ec4da1e 100644 --- a/browser/ui/webui/settings/brave_privacy_handler.cc +++ b/browser/ui/webui/settings/brave_privacy_handler.cc @@ -30,6 +30,10 @@ BravePrivacyHandler::BravePrivacyHandler() { kRemoteDebuggingEnabled, base::Bind(&BravePrivacyHandler::OnRemoteDebuggingEnabledChanged, base::Unretained(this))); + local_state_change_registrar_.Add( + brave::kP3AEnabled, + base::Bind(&BravePrivacyHandler::OnP3AEnabledChanged, + base::Unretained(this))); } BravePrivacyHandler::~BravePrivacyHandler() { @@ -119,6 +123,15 @@ void BravePrivacyHandler::GetP3AEnabled(const base::ListValue* args) { ResolveJavascriptCallback(args->GetList()[0].Clone(), base::Value(enabled)); } +void BravePrivacyHandler::OnP3AEnabledChanged() { + if (IsJavascriptAllowed()) { + PrefService* local_state = g_browser_process->local_state(); + bool enabled = local_state->GetBoolean(brave::kP3AEnabled); + + FireWebUIListener("p3a-enabled-changed", base::Value(enabled)); + } +} + void BravePrivacyHandler::SetRemoteDebuggingEnabled( const base::ListValue* args) { CHECK_EQ(args->GetSize(), 1U); diff --git a/browser/ui/webui/settings/brave_privacy_handler.h b/browser/ui/webui/settings/brave_privacy_handler.h index 9376f6ad7934..c148d52523b2 100644 --- a/browser/ui/webui/settings/brave_privacy_handler.h +++ b/browser/ui/webui/settings/brave_privacy_handler.h @@ -33,6 +33,7 @@ class BravePrivacyHandler : public settings::SettingsPageUIHandler { void SetP3AEnabled(const base::ListValue* args); void GetP3AEnabled(const base::ListValue* args); + void OnP3AEnabledChanged(); void SetRemoteDebuggingEnabled(const base::ListValue* args); void GetRemoteDebuggingEnabled(const base::ListValue* args);