diff options
Diffstat (limited to 'chromium/chrome/browser/ui/webui/flags_ui.cc')
-rw-r--r-- | chromium/chrome/browser/ui/webui/flags_ui.cc | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/chromium/chrome/browser/ui/webui/flags_ui.cc b/chromium/chrome/browser/ui/webui/flags_ui.cc index a692030be7a..eca2c98b7fe 100644 --- a/chromium/chrome/browser/ui/webui/flags_ui.cc +++ b/chromium/chrome/browser/ui/webui/flags_ui.cc @@ -46,8 +46,8 @@ #include "chrome/browser/chromeos/ownership/owner_settings_service_chromeos_factory.h" #include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/owner_flags_storage.h" +#include "components/account_id/account_id.h" #include "components/pref_registry/pref_registry_syncable.h" -#include "components/signin/core/account_id/account_id.h" #include "components/user_manager/user_manager.h" #endif @@ -113,6 +113,9 @@ class FlagsDOMHandler : public WebUIMessageHandler { // Callback for the "enableExperimentalFeature" message. void HandleEnableExperimentalFeatureMessage(const base::ListValue* args); + // Callback for the "setOriginListFlag" message. + void HandleSetOriginListFlagMessage(const base::ListValue* args); + // Callback for the "restartBrowser" message. Restores all tabs on restart. void HandleRestartBrowser(const base::ListValue* args); @@ -138,6 +141,10 @@ void FlagsDOMHandler::RegisterMessages() { &FlagsDOMHandler::HandleEnableExperimentalFeatureMessage, base::Unretained(this))); web_ui()->RegisterMessageCallback( + flags_ui::kSetOriginListFlag, + base::BindRepeating(&FlagsDOMHandler::HandleSetOriginListFlagMessage, + base::Unretained(this))); + web_ui()->RegisterMessageCallback( flags_ui::kRestartBrowser, base::BindRepeating(&FlagsDOMHandler::HandleRestartBrowser, base::Unretained(this))); @@ -210,6 +217,26 @@ void FlagsDOMHandler::HandleEnableExperimentalFeatureMessage( enable_str == "true"); } +void FlagsDOMHandler::HandleSetOriginListFlagMessage( + const base::ListValue* args) { + DCHECK(flags_storage_); + if (args->GetSize() != 2) { + NOTREACHED(); + return; + } + + std::string entry_internal_name; + std::string value_str; + if (!args->GetString(0, &entry_internal_name) || + !args->GetString(1, &value_str) || entry_internal_name.empty()) { + NOTREACHED(); + return; + } + + about_flags::SetOriginListFlag(entry_internal_name, value_str, + flags_storage_.get()); +} + void FlagsDOMHandler::HandleRestartBrowser(const base::ListValue* args) { DCHECK(flags_storage_); #if defined(OS_CHROMEOS) |