#include <vector>
#include "base/memory/scoped_ptr.h"
-#include "base/prefs/pref_change_registrar.h"
#include "base/scoped_observer.h"
#include "chrome/browser/extensions/error_console/error_console.h"
#include "chrome/browser/extensions/extension_install_prompt.h"
-#include "chrome/browser/extensions/extension_install_ui.h"
+#include "chrome/browser/extensions/extension_management.h"
#include "chrome/browser/extensions/extension_uninstall_dialog.h"
-#include "chrome/browser/extensions/extension_warning_service.h"
#include "chrome/browser/extensions/requirements_checker.h"
+#include "chrome/common/extensions/webstore_install_result.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_prefs_observer.h"
#include "extensions/browser/extension_registry_observer.h"
+#include "extensions/browser/warning_service.h"
#include "url/gurl.h"
class ExtensionService;
public content::WebContentsObserver,
public ErrorConsole::Observer,
public ExtensionInstallPrompt::Delegate,
+ public ExtensionManagement::Observer,
public ExtensionPrefsObserver,
public ExtensionRegistryObserver,
public ExtensionUninstallDialog::Delegate,
- public ExtensionWarningService::Observer,
+ public WarningService::Observer,
public base::SupportsWeakPtr<ExtensionSettingsHandler> {
public:
ExtensionSettingsHandler();
- virtual ~ExtensionSettingsHandler();
+ ~ExtensionSettingsHandler() override;
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
base::DictionaryValue* CreateExtensionDetailValue(
const Extension* extension,
const std::vector<ExtensionPage>& pages,
- const ExtensionWarningService* warning_service);
+ const WarningService* warning_service);
void GetLocalizedValues(content::WebUIDataSource* source);
friend class BrokerDelegate;
// content::WebContentsObserver implementation.
- virtual void RenderViewDeleted(
- content::RenderViewHost* render_view_host) OVERRIDE;
- virtual void DidStartNavigationToPendingEntry(
+ void RenderViewDeleted(content::RenderViewHost* render_view_host) override;
+ void DidStartNavigationToPendingEntry(
const GURL& url,
- content::NavigationController::ReloadType reload_type) OVERRIDE;
+ content::NavigationController::ReloadType reload_type) override;
// Allows injection for testing by friend classes.
ExtensionSettingsHandler(ExtensionService* service,
ManagementPolicy* policy);
// WebUIMessageHandler implementation.
- virtual void RegisterMessages() OVERRIDE;
+ void RegisterMessages() override;
// ErrorConsole::Observer implementation.
- virtual void OnErrorAdded(const ExtensionError* error) OVERRIDE;
+ void OnErrorAdded(const ExtensionError* error) override;
// content::NotificationObserver implementation.
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE;
+ void Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) override;
// ExtensionRegistryObserver implementation.
- virtual void OnExtensionLoaded(content::BrowserContext* browser_context,
- const Extension* extension) OVERRIDE;
- virtual void OnExtensionUnloaded(
- content::BrowserContext* browser_context,
- const Extension* extension,
- UnloadedExtensionInfo::Reason reason) OVERRIDE;
- virtual void OnExtensionUninstalled(content::BrowserContext* browser_context,
- const Extension* extension) OVERRIDE;
+ void OnExtensionLoaded(content::BrowserContext* browser_context,
+ const Extension* extension) override;
+ void OnExtensionUnloaded(content::BrowserContext* browser_context,
+ const Extension* extension,
+ UnloadedExtensionInfo::Reason reason) override;
+ void OnExtensionUninstalled(content::BrowserContext* browser_context,
+ const Extension* extension,
+ extensions::UninstallReason reason) override;
// ExtensionPrefsObserver implementation.
- virtual void OnExtensionDisableReasonsChanged(const std::string& extension_id,
- int disable_reasons) OVERRIDE;
+ void OnExtensionDisableReasonsChanged(const std::string& extension_id,
+ int disable_reasons) override;
+
+ // ExtensionManagement::Observer implementation.
+ void OnExtensionManagementSettingsChanged() override;
// ExtensionUninstallDialog::Delegate implementation, used for receiving
// notification about uninstall confirmation dialog selections.
- virtual void ExtensionUninstallAccepted() OVERRIDE;
- virtual void ExtensionUninstallCanceled() OVERRIDE;
+ void ExtensionUninstallAccepted() override;
+ void ExtensionUninstallCanceled() override;
- // ExtensionWarningService::Observer implementation.
- virtual void ExtensionWarningsChanged() OVERRIDE;
+ // WarningService::Observer implementation.
+ void ExtensionWarningsChanged() override;
// ExtensionInstallPrompt::Delegate implementation.
- virtual void InstallUIProceed() OVERRIDE;
- virtual void InstallUIAbort(bool user_initiated) OVERRIDE;
+ void InstallUIProceed() override;
+ void InstallUIAbort(bool user_initiated) override;
+
+ // Called after the App Info Dialog has closed.
+ virtual void AppInfoDialogClosed();
// Helper method that reloads all unpacked extensions.
void ReloadUnpackedExtensions();
// Callback for "reload" message.
void HandleReloadMessage(const base::ListValue* args);
+ // Callback for "repair" message.
+ void HandleRepairMessage(const base::ListValue* args);
+
// Callback for "enable" message.
void HandleEnableMessage(const base::ListValue* args);
// Callback for the "dismissADTPromo" message.
void HandleDismissADTPromoMessage(const base::ListValue* args);
+ // Callback for the "showPath" message.
+ void HandleShowPath(const base::ListValue* args);
+
// Utility for calling JavaScript window.alert in the page.
void ShowAlert(const std::string& message);
// needed.
ExtensionUninstallDialog* GetExtensionUninstallDialog();
+ // Called when the reinstallation is complete.
+ void OnReinstallComplete(bool success,
+ const std::string& error,
+ webstore_install::Result result);
+
// Callback for RequirementsChecker.
void OnRequirementsChecked(std::string extension_id,
std::vector<std::string> requirement_errors);
content::NotificationRegistrar registrar_;
- PrefChangeRegistrar pref_registrar_;
-
// This will not be empty when a requirements check is in progress. Doing
// another Check() before the previous one is complete will cause the first
// one to abort.
// The UI for showing what permissions the extension has.
scoped_ptr<ExtensionInstallPrompt> prompt_;
- ScopedObserver<ExtensionWarningService, ExtensionWarningService::Observer>
+ ScopedObserver<WarningService, WarningService::Observer>
warning_service_observer_;
// An observer to listen for when Extension errors are reported.
ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
extension_registry_observer_;
+ ScopedObserver<ExtensionManagement, ExtensionManagement::Observer>
+ extension_management_observer_;
+
// Whether we found any DISABLE_NOT_VERIFIED extensions and want to kick off
// a verification check to try and rescue them.
bool should_do_verification_check_;