Index: chrome/browser/extensions/extension_service.cc |
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc |
index c18d61296ce62abf0948f58c576980328dfb6e8b..c066fd0f6d2c1e79f261c1fb10d46c3648e8e84b 100644 |
--- a/chrome/browser/extensions/extension_service.cc |
+++ b/chrome/browser/extensions/extension_service.cc |
@@ -867,14 +867,13 @@ void ExtensionService::EnableExtension(const std::string& extension_id) { |
extension_sync_service_->SyncEnableExtension(*extension); |
} |
-void ExtensionService::DisableExtension( |
- const std::string& extension_id, |
- Extension::DisableReason disable_reason) { |
+void ExtensionService::DisableExtension(const std::string& extension_id, |
+ int disable_reasons) { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
// The extension may have been disabled already. Just add a disable reason. |
if (!IsExtensionEnabled(extension_id)) { |
- extension_prefs_->AddDisableReason(extension_id, disable_reason); |
+ extension_prefs_->AddDisableReasons(extension_id, disable_reasons); |
return; |
} |
@@ -885,15 +884,15 @@ void ExtensionService::DisableExtension( |
// can be uninstalled by the browser if the user sets extension-specific |
// preferences. |
if (extension && |
- disable_reason != Extension::DISABLE_RELOAD && |
- disable_reason != Extension::DISABLE_UPDATE_REQUIRED_BY_POLICY && |
+ !(disable_reasons & Extension::DISABLE_RELOAD) && |
+ !(disable_reasons & Extension::DISABLE_UPDATE_REQUIRED_BY_POLICY) && |
!system_->management_policy()->UserMayModifySettings(extension, NULL) && |
extension->location() != Manifest::EXTERNAL_COMPONENT) { |
return; |
} |
extension_prefs_->SetExtensionState(extension_id, Extension::DISABLED); |
- extension_prefs_->AddDisableReason(extension_id, disable_reason); |
+ extension_prefs_->AddDisableReasons(extension_id, disable_reasons); |
int include_mask = |
ExtensionRegistry::EVERYTHING & ~ExtensionRegistry::DISABLED; |