Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4756)

Unified Diff: chrome/browser/ui/webui/options/extension_settings_handler.h

Issue 7794023: Convert chrome://extensions to a settings page within the options pages. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/options/extension_settings_handler.h
===================================================================
--- chrome/browser/ui/webui/options/extension_settings_handler.h (revision 99349)
+++ 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,31 @@
// 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;
+ virtual WebUIMessageHandler* Attach(WebUI* web_ui) OVERRIDE;
+
+ // OptionsUIHandler implementation.
+ virtual void GetLocalizedValues(
+ base::DictionaryValue* localized_strings) OVERRIDE;
+ virtual void Initialize() 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 +207,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 +221,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 +233,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_

Powered by Google App Engine
This is Rietveld 408576698