Chromium Code Reviews| 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( |