Index: chrome/browser/ui/webui/options2/options_ui2.h |
diff --git a/chrome/browser/ui/webui/options2/options_ui2.h b/chrome/browser/ui/webui/options2/options_ui2.h |
index 30898cb37fc07b13505d5952c3ddcef32fee9178..1f73e3ed649538e96bd5cfd5bbcf342dd3045667 100644 |
--- a/chrome/browser/ui/webui/options2/options_ui2.h |
+++ b/chrome/browser/ui/webui/options2/options_ui2.h |
@@ -14,7 +14,6 @@ |
#include "base/values.h" |
#include "chrome/browser/autocomplete/autocomplete.h" |
#include "chrome/browser/ui/webui/chrome_url_data_manager.h" |
-#include "chrome/browser/ui/webui/options/options_ui.h" |
#include "content/public/browser/notification_observer.h" |
#include "content/public/browser/notification_registrar.h" |
#include "content/public/browser/notification_types.h" |
@@ -22,6 +21,74 @@ |
#include "content/public/browser/web_ui_message_handler.h" |
namespace options2 { |
+ |
+// The base class handler of Javascript messages of options pages. |
+class OptionsPageUIHandler : public content::WebUIMessageHandler, |
+ public content::NotificationObserver { |
+ public: |
+ OptionsPageUIHandler(); |
+ virtual ~OptionsPageUIHandler(); |
+ |
+ // Is this handler enabled? |
+ virtual bool IsEnabled(); |
+ |
+ // Collects localized strings for options page. |
+ virtual void GetLocalizedValues(base::DictionaryValue* localized_strings) = 0; |
+ |
+ // Will be called only once in the life time of the handler. Generally used to |
+ // add observers, initializes preferences, or start asynchronous calls from |
+ // various services. |
+ virtual void InitializeHandler() {} |
+ |
+ // Initialize the page. Called once the DOM is available for manipulation. |
+ // This will be called when a RenderView is re-used (when navigated to with |
+ // back/forward or session restored in some cases) or when created. |
+ virtual void InitializePage() {} |
+ |
+ // Uninitializes the page. Called just before the object is destructed. |
+ virtual void Uninitialize() {} |
+ |
+ // WebUIMessageHandler implementation. |
+ virtual void RegisterMessages() OVERRIDE {} |
+ |
+ // content::NotificationObserver implementation. |
+ virtual void Observe(int type, |
+ const content::NotificationSource& source, |
+ const content::NotificationDetails& details) OVERRIDE {} |
+ |
+ protected: |
+ struct OptionsStringResource { |
+ // The name of the resource in templateData. |
+ const char* name; |
+ // The .grd ID for the resource (IDS_*). |
+ int id; |
+ }; |
+ // A helper for simplifying the process of registering strings in WebUI. |
+ static void RegisterStrings(base::DictionaryValue* localized_strings, |
+ const OptionsStringResource* resources, |
+ size_t length); |
+ |
+ // Registers string resources for a page's header and tab title. |
+ static void RegisterTitle(base::DictionaryValue* localized_strings, |
+ const std::string& variable_name, |
+ int title_id); |
+ |
+ content::NotificationRegistrar registrar_; |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(OptionsPageUIHandler); |
+}; |
+ |
+// An interface for common operations that a host of OptionsPageUIHandlers |
+// should provide. |
+class OptionsPageUIHandlerHost { |
+ public: |
+ virtual void InitializeHandlers() = 0; |
+ |
+ protected: |
+ virtual ~OptionsPageUIHandlerHost() {} |
+}; |
+ |
// The WebUI for chrome:settings-frame. |
class OptionsUI : public content::WebUIController, |
public OptionsPageUIHandlerHost { |