| 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;
|
|
|