Index: chrome/browser/ui/webui/options/reset_profile_settings_handler.cc |
diff --git a/chrome/browser/ui/webui/options/reset_profile_settings_handler.cc b/chrome/browser/ui/webui/options/reset_profile_settings_handler.cc |
index cd4db5e7cb74362a05bb21321eeec7a7e3c48029..86bacf30131f6a242c2fb20dcc806e7f928d8754 100644 |
--- a/chrome/browser/ui/webui/options/reset_profile_settings_handler.cc |
+++ b/chrome/browser/ui/webui/options/reset_profile_settings_handler.cc |
@@ -11,6 +11,8 @@ |
#include "base/strings/string16.h" |
#include "base/values.h" |
#include "chrome/browser/google/google_brand.h" |
+#include "chrome/browser/profile_resetter/automatic_profile_resetter.h" |
+#include "chrome/browser/profile_resetter/automatic_profile_resetter_factory.h" |
#include "chrome/browser/profile_resetter/brandcode_config_fetcher.h" |
#include "chrome/browser/profile_resetter/brandcoded_default_settings.h" |
#include "chrome/browser/profile_resetter/profile_resetter.h" |
@@ -24,7 +26,9 @@ |
namespace options { |
-ResetProfileSettingsHandler::ResetProfileSettingsHandler() { |
+ResetProfileSettingsHandler::ResetProfileSettingsHandler() |
+ : automatic_profile_resetter_(NULL), |
+ has_shown_confirmation_dialog_(false) { |
google_brand::GetBrand(&brandcode_); |
} |
@@ -33,12 +37,25 @@ ResetProfileSettingsHandler::~ResetProfileSettingsHandler() {} |
void ResetProfileSettingsHandler::InitializeHandler() { |
Profile* profile = Profile::FromWebUI(web_ui()); |
resetter_.reset(new ProfileResetter(profile)); |
+ automatic_profile_resetter_ = |
+ AutomaticProfileResetterFactory::GetForBrowserContext(profile); |
} |
void ResetProfileSettingsHandler::InitializePage() { |
web_ui()->CallJavascriptFunction( |
"ResetProfileSettingsOverlay.setResettingState", |
base::FundamentalValue(resetter_->IsActive())); |
+ if (automatic_profile_resetter_ && |
+ automatic_profile_resetter_->ShouldShowResetBanner()) { |
+ web_ui()->CallJavascriptFunction("ResetProfileSettingsBanner.show"); |
+ } |
+} |
+ |
+void ResetProfileSettingsHandler::Uninitialize() { |
+ if (has_shown_confirmation_dialog_ && automatic_profile_resetter_) { |
+ automatic_profile_resetter_->NotifyDidCloseWebUIResetDialog( |
+ false /*performed_reset*/); |
+ } |
} |
void ResetProfileSettingsHandler::GetLocalizedValues( |
@@ -46,6 +63,8 @@ void ResetProfileSettingsHandler::GetLocalizedValues( |
DCHECK(localized_strings); |
static OptionsStringResource resources[] = { |
+ { "resetProfileSettingsBannerText", |
+ IDS_RESET_PROFILE_SETTINGS_BANNER_TEXT }, |
{ "resetProfileSettingsCommit", IDS_RESET_PROFILE_SETTINGS_COMMIT_BUTTON }, |
{ "resetProfileSettingsExplanation", |
IDS_RESET_PROFILE_SETTINGS_EXPLANATION }, |
@@ -71,6 +90,10 @@ void ResetProfileSettingsHandler::RegisterMessages() { |
web_ui()->RegisterMessageCallback("onHideResetProfileDialog", |
base::Bind(&ResetProfileSettingsHandler::OnHideResetProfileDialog, |
base::Unretained(this))); |
+ web_ui()->RegisterMessageCallback("onDismissedResetProfileSettingsBanner", |
+ base::Bind(&ResetProfileSettingsHandler:: |
+ OnDismissedResetProfileSettingsBanner, |
+ base::Unretained(this))); |
} |
void ResetProfileSettingsHandler::HandleResetProfileSettings( |
@@ -102,10 +125,17 @@ void ResetProfileSettingsHandler::OnResetProfileSettingsDone( |
setting_snapshot_->Subtract(current_snapshot); |
std::string report = SerializeSettingsReport(*setting_snapshot_, |
difference); |
- SendSettingsFeedback(report, profile); |
+ bool is_reset_prompt_active = automatic_profile_resetter_ && |
+ automatic_profile_resetter_->IsResetPromptFlowActive(); |
+ SendSettingsFeedback(report, profile, is_reset_prompt_active ? |
+ PROFILE_RESET_PROMPT : PROFILE_RESET_WEBUI); |
} |
} |
setting_snapshot_.reset(); |
+ if (automatic_profile_resetter_) { |
+ automatic_profile_resetter_->NotifyDidCloseWebUIResetDialog( |
+ true /*performed_reset*/); |
+ } |
} |
void ResetProfileSettingsHandler::OnShowResetProfileDialog( |
@@ -118,6 +148,10 @@ void ResetProfileSettingsHandler::OnShowResetProfileDialog( |
UpdateFeedbackUI(); |
} |
+ if (automatic_profile_resetter_) |
+ automatic_profile_resetter_->NotifyDidOpenWebUIResetDialog(); |
+ has_shown_confirmation_dialog_ = true; |
+ |
if (brandcode_.empty()) |
return; |
config_fetcher_.reset(new BrandcodeConfigFetcher( |
@@ -133,6 +167,12 @@ void ResetProfileSettingsHandler::OnHideResetProfileDialog( |
setting_snapshot_.reset(); |
} |
+void ResetProfileSettingsHandler::OnDismissedResetProfileSettingsBanner( |
+ const base::ListValue* args) { |
+ if (automatic_profile_resetter_) |
+ automatic_profile_resetter_->NotifyDidCloseWebUIResetBanner(); |
+} |
+ |
void ResetProfileSettingsHandler::OnSettingsFetched() { |
DCHECK(config_fetcher_); |
DCHECK(!config_fetcher_->IsActive()); |