Chromium Code Reviews| Index: chrome/browser/ui/webui/settings/reset_settings_handler.cc |
| diff --git a/chrome/browser/ui/webui/settings/reset_settings_handler.cc b/chrome/browser/ui/webui/settings/reset_settings_handler.cc |
| index 3cc4661a6354cdeec8d316d9a619f81dc488e3a1..e28f6ac9736f3e79e2c641fa09d61610efe7c092 100644 |
| --- a/chrome/browser/ui/webui/settings/reset_settings_handler.cc |
| +++ b/chrome/browser/ui/webui/settings/reset_settings_handler.cc |
| @@ -43,22 +43,31 @@ |
| namespace settings { |
| ResetSettingsHandler::ResetSettingsHandler( |
| - content::WebUIDataSource* html_source, content::WebUI* web_ui) { |
| + Profile* profile, bool allow_powerwash) : profile_(profile) { |
| +#if defined(OS_CHROMEOS) |
| + allow_powerwash_ = allow_powerwash; |
| +#endif // defined(OS_CHROMEOS) |
| google_brand::GetBrand(&brandcode_); |
| - Profile* profile = Profile::FromWebUI(web_ui); |
| - resetter_.reset(new ProfileResetter(profile)); |
| +} |
| +ResetSettingsHandler::~ResetSettingsHandler() {} |
| + |
| +ResetSettingsHandler* ResetSettingsHandler::Create( |
| + content::WebUIDataSource* html_source, Profile* profile) { |
| + bool allow_powerwash = false; |
| #if defined(OS_CHROMEOS) |
|
Dan Beam
2015/12/01 04:27:37
so.... have you tried this on chromeos? :)
dpapad
2015/12/01 19:06:04
Fixed. Thanks for catching.
|
| policy::BrowserPolicyConnectorChromeOS* connector = |
| g_browser_process->platform_part()->browser_policy_connector_chromeos(); |
| - allow_powerwash_ = !connector->IsEnterpriseManaged() && |
| - !user_manager::UserManager::Get()->IsLoggedInAsGuest() && |
| - !user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser(); |
| - html_source->AddBoolean("allowPowerwash", allow_powerwash_); |
| + allow_powerwash = !connector->IsEnterpriseManaged() && |
| + user_manager::UserManager::Get()->IsLoggedInAsGuest() && |
| + user_manager::UserManager::Get()->IsLoggedInAsSupervisedUser(); |
| + html_source->AddBoolean("allowPowerwash", allow_powerwash); |
| #endif // defined(OS_CHROMEOS) |
| -} |
| -ResetSettingsHandler::~ResetSettingsHandler() {} |
| + // Injecting |allow_powerwash| via the constructor because makes testing this |
| + // class much easier. |
|
Dan Beam
2015/12/01 04:27:37
// Inject |allow_powerwash| for testing.
or just
dpapad
2015/12/01 19:06:04
Done.
|
| + return new ResetSettingsHandler(profile, allow_powerwash); |
| +} |
| void ResetSettingsHandler::RegisterMessages() { |
| web_ui()->RegisterMessageCallback("performResetProfileSettings", |
| @@ -104,14 +113,13 @@ void ResetSettingsHandler::OnResetProfileSettingsDone( |
| bool send_feedback) { |
| web_ui()->CallJavascriptFunction("SettingsResetPage.doneResetting"); |
| if (send_feedback && setting_snapshot_) { |
| - Profile* profile = Profile::FromWebUI(web_ui()); |
| - ResettableSettingsSnapshot current_snapshot(profile); |
| + ResettableSettingsSnapshot current_snapshot(profile_); |
| int difference = setting_snapshot_->FindDifferentFields(current_snapshot); |
| if (difference) { |
| setting_snapshot_->Subtract(current_snapshot); |
| std::string report = SerializeSettingsReport(*setting_snapshot_, |
| difference); |
| - SendSettingsFeedback(report, profile); |
| + SendSettingsFeedback(report, profile_); |
| } |
| } |
| setting_snapshot_.reset(); |
| @@ -119,9 +127,8 @@ void ResetSettingsHandler::OnResetProfileSettingsDone( |
| void ResetSettingsHandler::OnShowResetProfileDialog( |
| const base::ListValue* value) { |
| - if (!resetter_->IsActive()) { |
| - setting_snapshot_.reset( |
| - new ResettableSettingsSnapshot(Profile::FromWebUI(web_ui()))); |
| + if (!GetResetter()->IsActive()) { |
| + setting_snapshot_.reset(new ResettableSettingsSnapshot(profile_)); |
| setting_snapshot_->RequestShortcuts(base::Bind( |
| &ResetSettingsHandler::UpdateFeedbackUI, AsWeakPtr())); |
| UpdateFeedbackUI(); |
| @@ -138,7 +145,7 @@ void ResetSettingsHandler::OnShowResetProfileDialog( |
| void ResetSettingsHandler::OnHideResetProfileDialog( |
| const base::ListValue* value) { |
| - if (!resetter_->IsActive()) |
| + if (!GetResetter()->IsActive()) |
| setting_snapshot_.reset(); |
| } |
| @@ -149,8 +156,7 @@ void ResetSettingsHandler::OnSettingsFetched() { |
| } |
| void ResetSettingsHandler::ResetProfile(bool send_settings) { |
| - DCHECK(resetter_); |
| - DCHECK(!resetter_->IsActive()); |
| + DCHECK(!GetResetter()->IsActive()); |
| scoped_ptr<BrandcodedDefaultSettings> default_settings; |
| if (config_fetcher_) { |
| @@ -165,7 +171,8 @@ void ResetSettingsHandler::ResetProfile(bool send_settings) { |
| // installation, use default settings. |
| if (!default_settings) |
| default_settings.reset(new BrandcodedDefaultSettings); |
| - resetter_->Reset( |
| + |
| + GetResetter()->Reset( |
| ProfileResetter::ALL, |
| default_settings.Pass(), |
| base::Bind(&ResetSettingsHandler::OnResetProfileSettingsDone, |
| @@ -179,14 +186,19 @@ void ResetSettingsHandler::UpdateFeedbackUI() { |
| if (!setting_snapshot_) |
| return; |
| scoped_ptr<base::ListValue> list = GetReadableFeedbackForSnapshot( |
| - Profile::FromWebUI(web_ui()), |
| - *setting_snapshot_); |
| + profile_, *setting_snapshot_); |
| base::DictionaryValue feedback_info; |
| feedback_info.Set("feedbackInfo", list.release()); |
| web_ui()->CallJavascriptFunction( |
| "SettingsResetPage.setFeedbackInfo", feedback_info); |
| } |
| +ProfileResetter* ResetSettingsHandler::GetResetter() { |
| + if (!resetter_) |
| + resetter_.reset(new ProfileResetter(profile_)); |
| + return resetter_.get(); |
| +} |
| + |
| #if defined(OS_CHROMEOS) |
| void ResetSettingsHandler::OnShowPowerwashDialog( |
| const base::ListValue* args) { |