Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / options / reset_profile_settings_handler.h
index c6f51ef..997f681 100644 (file)
@@ -5,7 +5,10 @@
 #ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_RESET_PROFILE_SETTINGS_HANDLER_H_
 #define CHROME_BROWSER_UI_WEBUI_OPTIONS_RESET_PROFILE_SETTINGS_HANDLER_H_
 
+#include <string>
+
 #include "base/compiler_specific.h"
+#include "base/memory/scoped_ptr.h"
 #include "base/memory/weak_ptr.h"
 #include "chrome/browser/ui/webui/options/options_ui.h"
 
@@ -14,13 +17,15 @@ class DictionaryValue;
 class ListValue;
 }  // namespace base
 
+class AutomaticProfileResetter;
 class BrandcodeConfigFetcher;
 class ProfileResetter;
 class ResettableSettingsSnapshot;
 
 namespace options {
 
-// Reset Profile Settings handler page UI handler.
+// Handler for both the 'Reset Profile Settings' overlay page and also the
+// corresponding banner that is shown at the top of the options page.
 class ResetProfileSettingsHandler
     : public OptionsPageUIHandler,
       public base::SupportsWeakPtr<ResetProfileSettingsHandler> {
@@ -33,6 +38,7 @@ class ResetProfileSettingsHandler
       base::DictionaryValue* localized_strings) OVERRIDE;
   virtual void InitializeHandler() OVERRIDE;
   virtual void InitializePage() OVERRIDE;
+  virtual void Uninitialize() OVERRIDE;
 
   // WebUIMessageHandler implementation.
   virtual void RegisterMessages() OVERRIDE;
@@ -42,11 +48,17 @@ class ResetProfileSettingsHandler
   void HandleResetProfileSettings(const base::ListValue* value);
 
   // Closes the dialog once all requested settings has been reset.
-  void OnResetProfileSettingsDone();
+  void OnResetProfileSettingsDone(bool send_feedback);
 
   // Called when the confirmation box appears.
   void OnShowResetProfileDialog(const base::ListValue* value);
 
+  // Called when the confirmation box disappears.
+  void OnHideResetProfileDialog(const base::ListValue* value);
+
+  // Called when the reset banner is dismissed from the WebUI.
+  void OnDismissedResetProfileSettingsBanner(const base::ListValue* args);
+
   // Called when BrandcodeConfigFetcher completed fetching settings.
   void OnSettingsFetched();
 
@@ -54,6 +66,17 @@ class ResetProfileSettingsHandler
   // gave his consent to upload broken settings to Google for analysis.
   void ResetProfile(bool send_settings);
 
+  // Sets new values for the feedback area.
+  void UpdateFeedbackUI();
+
+  // Destroyed with the Profile, thus it should outlive us. This will be NULL if
+  // the underlying profile is off-the-record (e.g. in Guest mode on Chrome OS).
+  AutomaticProfileResetter* automatic_profile_resetter_;
+
+  // Records whether or not the Profile Reset confirmation dialog was opened at
+  // least once during the lifetime of the settings page.
+  bool has_shown_confirmation_dialog_;
+
   scoped_ptr<ProfileResetter> resetter_;
 
   scoped_ptr<BrandcodeConfigFetcher> config_fetcher_;