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

Unified Diff: chrome/browser/extensions/extension_service.cc

Issue 10407105: Improve error messaging of webRequest API in case of conflicts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Store ExtensionWarnings as values in set rather than pointers Created 8 years, 3 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/extensions/extension_service.cc
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index 11e7842a981f6bf5e92142765f4f59333d86e36d..853fba665421f4de9b256147a47345da589fb331 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -57,6 +57,7 @@
#include "chrome/browser/extensions/extension_special_storage_policy.h"
#include "chrome/browser/extensions/extension_sync_data.h"
#include "chrome/browser/extensions/extension_system.h"
+#include "chrome/browser/extensions/extension_warning_set.h"
#include "chrome/browser/extensions/extension_web_ui.h"
#include "chrome/browser/extensions/external_provider_impl.h"
#include "chrome/browser/extensions/external_provider_interface.h"
@@ -132,6 +133,8 @@ using extensions::CrxInstaller;
using extensions::Extension;
using extensions::ExtensionIdSet;
using extensions::ExtensionInfo;
+using extensions::ExtensionWarningService;
+using extensions::ExtensionWarning;
using extensions::UnloadedExtensionInfo;
using extensions::PermissionMessage;
using extensions::PermissionMessages;
@@ -337,7 +340,6 @@ ExtensionService::ExtensionService(Profile* profile,
update_once_all_providers_are_ready_(false),
app_sync_bundle_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
extension_sync_bundle_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
- extension_warnings_(profile),
app_shortcut_manager_(profile) {
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -809,9 +811,13 @@ bool ExtensionService::UninstallExtension(
// Uninstalling one extension might have solved the problems of others.
// Therefore, we clear warnings of this type for all extensions.
- std::set<ExtensionWarningSet::WarningType> warnings;
- extension_warnings_.GetWarningsAffectingExtension(extension_id, &warnings);
- extension_warnings_.ClearWarnings(warnings);
+ std::set<ExtensionWarning::WarningType> warning_types;
battre 2012/09/11 21:56:41 I will move this into the if statement.
battre 2012/09/20 14:23:07 Done.
+ ExtensionWarningService* warning_service = system_->warning_service();
+ if (warning_service) { // May be NULL for unit tests.
+ warning_service->GetWarningTypesAffectingExtension(extension_id,
+ &warning_types);
Aaron Boodman 2012/09/18 18:48:56 Why not put this in UNLOAD rather than duplicating
battre 2012/09/20 14:23:07 Done.
+ warning_service->ClearWarnings(warning_types);
+ }
return true;
}
@@ -911,9 +917,13 @@ void ExtensionService::DisableExtension(
// Deactivating one extension might have solved the problems of others.
// Therefore, we clear warnings of this type for all extensions.
- std::set<ExtensionWarningSet::WarningType> warnings;
- extension_warnings_.GetWarningsAffectingExtension(extension_id, &warnings);
- extension_warnings_.ClearWarnings(warnings);
+ std::set<ExtensionWarning::WarningType> warning_types;
+ ExtensionWarningService* warning_service = system_->warning_service();
+ if (warning_service) { // May be NULL for unit tests.
+ warning_service->GetWarningTypesAffectingExtension(extension_id,
+ &warning_types);
+ warning_service->ClearWarnings(warning_types);
+ }
}
void ExtensionService::GrantPermissionsAndEnableExtension(

Powered by Google App Engine
This is Rietveld 408576698