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

Unified Diff: chrome/browser/ui/webui/extensions/extension_settings_handler.cc

Issue 1049483003: [Extensions] Update extensions UI to observe events and add test (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Dan's Created 5 years, 9 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/extensions/extension_settings_handler.cc
diff --git a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
index 92cdd553cc938cea3a8fedfcf0735177164d8d64..30627a292fac131b4a87ca6651c167a8ad5fd3b2 100644
--- a/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
+++ b/chrome/browser/ui/webui/extensions/extension_settings_handler.cc
@@ -20,7 +20,6 @@
#include "chrome/browser/background/background_contents.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/error_console/error_console.h"
#include "chrome/browser/extensions/extension_management.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_tab_util.h"
@@ -99,11 +98,8 @@ ExtensionSettingsHandler::ExtensionSettingsHandler()
deleting_rph_id_(-1),
registered_for_notifications_(false),
warning_service_observer_(this),
- error_console_observer_(this),
extension_prefs_observer_(this),
- extension_registry_observer_(this),
- extension_management_observer_(this),
- should_do_verification_check_(false) {
+ extension_management_observer_(this) {
}
ExtensionSettingsHandler::~ExtensionSettingsHandler() {
@@ -368,10 +364,6 @@ void ExtensionSettingsHandler::RegisterMessages() {
AsWeakPtr()));
}
-void ExtensionSettingsHandler::OnErrorAdded(const ExtensionError* error) {
- MaybeUpdateAfterNotification();
-}
-
void ExtensionSettingsHandler::Observe(
int type,
const content::NotificationSource& source,
@@ -425,26 +417,6 @@ void ExtensionSettingsHandler::Observe(
}
}
-void ExtensionSettingsHandler::OnExtensionLoaded(
- content::BrowserContext* browser_context,
- const Extension* extension) {
- MaybeUpdateAfterNotification();
-}
-
-void ExtensionSettingsHandler::OnExtensionUnloaded(
- content::BrowserContext* browser_context,
- const Extension* extension,
- UnloadedExtensionInfo::Reason reason) {
- MaybeUpdateAfterNotification();
-}
-
-void ExtensionSettingsHandler::OnExtensionUninstalled(
- content::BrowserContext* browser_context,
- const Extension* extension,
- extensions::UninstallReason reason) {
- MaybeUpdateAfterNotification();
-}
-
void ExtensionSettingsHandler::OnExtensionDisableReasonsChanged(
const std::string& extension_id, int disable_reasons) {
MaybeUpdateAfterNotification();
@@ -498,10 +470,10 @@ void ExtensionSettingsHandler::HandleRequestExtensionsData(
// Promote the Chrome Apps & Extensions Developer Tools if they are not
// installed and the user has not previously dismissed the warning.
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile);
bool promote_apps_dev_tools = false;
- if (!ExtensionRegistry::Get(Profile::FromWebUI(web_ui()))->
- GetExtensionById(kAppsDeveloperToolsExtensionId,
- ExtensionRegistry::EVERYTHING) &&
+ if (!registry->GetExtensionById(kAppsDeveloperToolsExtensionId,
+ ExtensionRegistry::EVERYTHING) &&
!profile->GetPrefs()->GetBoolean(prefs::kExtensionsUIDismissedADTPromo)) {
promote_apps_dev_tools = true;
}
@@ -516,14 +488,26 @@ void ExtensionSettingsHandler::HandleRequestExtensionsData(
"extensions.ExtensionSettings.returnExtensionsData", results);
MaybeRegisterForNotifications();
- UMA_HISTOGRAM_BOOLEAN("ExtensionSettings.ShouldDoVerificationCheck",
- should_do_verification_check_);
- if (should_do_verification_check_) {
- should_do_verification_check_ = false;
- ExtensionSystem::Get(Profile::FromWebUI(web_ui()))
- ->install_verifier()
- ->VerifyAllExtensions();
+
+ scoped_ptr<ExtensionSet> extensions =
+ registry->GenerateInstalledExtensionsSet(ExtensionRegistry::ENABLED |
+ ExtensionRegistry::DISABLED |
+ ExtensionRegistry::TERMINATED);
+ ExtensionPrefs* prefs = ExtensionPrefs::Get(profile);
+ bool should_do_verification_check = false;
+ for (const scoped_refptr<const Extension>& extension : *extensions) {
+ if (ui_util::ShouldDisplayInExtensionSettings(extension.get(), profile) &&
+ ((prefs->GetDisableReasons(extension->id()) &
+ Extension::DISABLE_NOT_VERIFIED) != 0)) {
+ should_do_verification_check = true;
+ break;
+ }
}
+
+ UMA_HISTOGRAM_BOOLEAN("ExtensionSettings.ShouldDoVerificationCheck",
+ should_do_verification_check);
+ if (should_do_verification_check)
+ ExtensionSystem::Get(profile)->install_verifier()->VerifyAllExtensions();
}
void ExtensionSettingsHandler::HandleToggleDeveloperMode(
@@ -650,14 +634,10 @@ void ExtensionSettingsHandler::MaybeRegisterForNotifications() {
content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED,
content::NotificationService::AllBrowserContextsAndSources());
- extension_registry_observer_.Add(ExtensionRegistry::Get(profile));
-
content::WebContentsObserver::Observe(web_ui()->GetWebContents());
warning_service_observer_.Add(WarningService::Get(profile));
- error_console_observer_.Add(ErrorConsole::Get(profile));
-
extension_management_observer_.Add(
ExtensionManagementFactory::GetForBrowserContext(profile));
}

Powered by Google App Engine
This is Rietveld 408576698