Chromium Code Reviews| Index: chrome/browser/ui/webui/options/extension_settings_handler.h | 
| =================================================================== | 
| --- chrome/browser/ui/webui/options/extension_settings_handler.h (revision 98942) | 
| +++ chrome/browser/ui/webui/options/extension_settings_handler.h (working copy) | 
| @@ -9,11 +9,10 @@ | 
| #include <string> | 
| #include <vector> | 
| -#include "base/memory/scoped_ptr.h" | 
| +#include "chrome/browser/extensions/extension_install_ui.h" | 
| #include "chrome/browser/extensions/extension_uninstall_dialog.h" | 
| -#include "chrome/browser/extensions/pack_extension_job.h" | 
| #include "chrome/browser/ui/shell_dialogs.h" | 
| -#include "chrome/browser/ui/webui/chrome_url_data_manager.h" | 
| +#include "chrome/browser/ui/webui/options/options_ui.h" | 
| #include "chrome/browser/ui/webui/chrome_web_ui.h" | 
| #include "chrome/common/extensions/extension_resource.h" | 
| #include "content/common/notification_observer.h" | 
| @@ -47,31 +46,11 @@ | 
| bool incognito; | 
| }; | 
| -class ExtensionsUIHTMLSource : public ChromeURLDataManager::DataSource { | 
| +// Extension Settings UI handler. | 
| +class ExtensionSettingsHandler : public OptionsPageUIHandler, | 
| + public SelectFileDialog::Listener, | 
| + public ExtensionUninstallDialog::Delegate { | 
| public: | 
| - ExtensionsUIHTMLSource(); | 
| - | 
| - // Called when the network layer has requested a resource underneath | 
| - // the path we registered. | 
| - virtual void StartDataRequest(const std::string& path, | 
| - bool is_incognito, | 
| - int request_id); | 
| - virtual std::string GetMimeType(const std::string&) const; | 
| - | 
| - private: | 
| - ~ExtensionsUIHTMLSource() {} | 
| - | 
| - DISALLOW_COPY_AND_ASSIGN(ExtensionsUIHTMLSource); | 
| -}; | 
| - | 
| -// The handler for JavaScript messages related to the "extensions" view. | 
| -class ExtensionsDOMHandler : public WebUIMessageHandler, | 
| - public NotificationObserver, | 
| - public PackExtensionJob::Client, | 
| - public SelectFileDialog::Listener, | 
| - public ExtensionUninstallDialog::Delegate { | 
| - public: | 
| - | 
| // Helper class that loads the icons for the extensions in the management UI. | 
| // We do this with native code instead of just using chrome-extension:// URLs | 
| // for two reasons: | 
| @@ -82,7 +61,7 @@ | 
| // look disabled. | 
| class IconLoader : public base::RefCountedThreadSafe<IconLoader> { | 
| public: | 
| - explicit IconLoader(ExtensionsDOMHandler* handler); | 
| + explicit IconLoader(ExtensionSettingsHandler* handler); | 
| // Load |icons|. Will call handler->OnIconsLoaded when complete. IconLoader | 
| // takes ownership of both arguments. | 
| @@ -103,15 +82,12 @@ | 
| void ReportResultOnUIThread(base::DictionaryValue* json); | 
| // The handler we will report back to. | 
| - ExtensionsDOMHandler* handler_; | 
| + ExtensionSettingsHandler* handler_; | 
| }; | 
| - explicit ExtensionsDOMHandler(ExtensionService* extension_service); | 
| - virtual ~ExtensionsDOMHandler(); | 
| + ExtensionSettingsHandler(); | 
| + virtual ~ExtensionSettingsHandler(); | 
| - // WebUIMessageHandler implementation. | 
| - virtual void RegisterMessages(); | 
| - | 
| // Extension Detail JSON Struct for page. (static for ease of testing). | 
| // Note: service can be NULL in unit tests. | 
| static base::DictionaryValue* CreateExtensionDetailValue( | 
| @@ -126,17 +102,6 @@ | 
| const UserScript& script, | 
| const FilePath& extension_path); | 
| - // ExtensionPackJob::Client | 
| - virtual void OnPackSuccess(const FilePath& crx_file, | 
| - const FilePath& key_file); | 
| - | 
| - virtual void OnPackFailure(const std::string& error); | 
| - | 
| - // ExtensionUninstallDialog::Delegate: | 
| - virtual void ExtensionDialogAccepted(); | 
| - virtual void ExtensionDialogCanceled(); | 
| - | 
| - private: | 
| // Callback for "requestExtensionsData" message. | 
| void HandleRequestExtensionsData(const base::ListValue* args); | 
| @@ -190,16 +155,33 @@ | 
| // SelectFileDialog::Listener | 
| virtual void FileSelected(const FilePath& path, | 
| - int index, void* params); | 
| + int index, void* params) OVERRIDE; | 
| virtual void MultiFilesSelected( | 
| - const std::vector<FilePath>& files, void* params); | 
| - virtual void FileSelectionCanceled(void* params) {} | 
| + const std::vector<FilePath>& files, void* params) OVERRIDE; | 
| + virtual void FileSelectionCanceled(void* params) OVERRIDE {} | 
| - // NotificationObserver | 
| + // WebUIMessageHandler implementation. | 
| + virtual void RegisterMessages() OVERRIDE; | 
| + | 
| + // OptionsUIHandler implementation. | 
| + virtual void GetLocalizedValues( | 
| + base::DictionaryValue* localized_strings) OVERRIDE; | 
| + virtual void Initialize() OVERRIDE; | 
| + | 
| + // DOMMessageHandler implementation. | 
| 
 
csilv
2011/09/01 21:10:45
This is a WebUIMessageHandler override, could grou
 
Finnur
2011/09/02 13:58:47
Done.
 
 | 
| + virtual WebUIMessageHandler* Attach(WebUI* web_ui) OVERRIDE; | 
| + | 
| + // NotificationObserver implementation. | 
| virtual void Observe(int type, | 
| const NotificationSource& source, | 
| - const NotificationDetails& details); | 
| + const NotificationDetails& details) OVERRIDE; | 
| + // ExtensionUninstallDialog::Delegate implementation, used for receiving | 
| + // notification about uninstall confirmation dialog selections. | 
| + virtual void ExtensionDialogAccepted() OVERRIDE; | 
| + virtual void ExtensionDialogCanceled() OVERRIDE; | 
| + | 
| + private: | 
| // Helper that lists the current active html pages for an extension. | 
| std::vector<ExtensionPage> GetActivePagesForExtension( | 
| const Extension* extension); | 
| @@ -227,14 +209,11 @@ | 
| ExtensionUninstallDialog* GetExtensionUninstallDialog(); | 
| // Our model. Outlives us since it's owned by our containing profile. | 
| - ExtensionService* const extension_service_; | 
| + ExtensionService* extension_service_; | 
| // Used to pick the directory when loading an extension. | 
| scoped_refptr<SelectFileDialog> load_extension_dialog_; | 
| - // Used to package the extension. | 
| - scoped_refptr<PackExtensionJob> pack_job_; | 
| - | 
| // Used to load icons asynchronously on the file thread. | 
| scoped_refptr<IconLoader> icon_loader_; | 
| @@ -244,10 +223,6 @@ | 
| // The id of the extension we are prompting the user about. | 
| std::string extension_id_prompting_; | 
| - // We monitor changes to the extension system so that we can reload when | 
| - // necessary. | 
| - NotificationRegistrar registrar_; | 
| - | 
| // If true, we will ignore notifications in ::Observe(). This is needed | 
| // to prevent reloading the page when we were the cause of the | 
| // notification. | 
| @@ -260,19 +235,7 @@ | 
| // it from the active views. | 
| RenderViewHost* deleting_rvh_; | 
| - DISALLOW_COPY_AND_ASSIGN(ExtensionsDOMHandler); | 
| + DISALLOW_COPY_AND_ASSIGN(ExtensionSettingsHandler); | 
| }; | 
| -class ExtensionsUI : public ChromeWebUI { | 
| - public: | 
| - explicit ExtensionsUI(TabContents* contents); | 
| - | 
| - static RefCountedMemory* GetFaviconResourceBytes(); | 
| - | 
| - static void RegisterUserPrefs(PrefService* prefs); | 
| - | 
| - private: | 
| - DISALLOW_COPY_AND_ASSIGN(ExtensionsUI); | 
| -}; | 
| - | 
| #endif // CHROME_BROWSER_UI_WEBUI_OPTIONS_EXTENSION_SETTINGS_HANDLER_H_ |