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

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

Issue 10828316: Support multiple disable reasons in ExtensionPerfs (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 4 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 8f3e8c071d0bdc771c1bd65257aac66478a61922..002c3a5ea7999328ef205f710549d0cf3c0ef172 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -827,7 +827,7 @@ void ExtensionService::EnableExtension(const std::string& extension_id) {
return;
extension_prefs_->SetExtensionState(extension_id, Extension::ENABLED);
- extension_prefs_->RemoveDisableReason(extension_id);
+ extension_prefs_->ClearDisableReasons(extension_id);
const Extension* extension =
GetExtensionByIdInternal(extension_id, false, true, false);
@@ -872,7 +872,7 @@ void ExtensionService::DisableExtension(
}
extension_prefs_->SetExtensionState(extension_id, Extension::DISABLED);
- extension_prefs_->SetDisableReason(extension_id, disable_reason);
+ extension_prefs_->AddDisableReason(extension_id, disable_reason);
extension = GetExtensionByIdInternal(extension_id, true, false, true);
if (!extension)
@@ -1945,7 +1945,7 @@ void ExtensionService::AddExtension(const Extension* extension) {
content::Source<Profile>(profile_),
content::Details<const Extension>(extension));
- if (extension_prefs_->GetDisableReason(extension->id()) ==
+ if (extension_prefs_->GetDisableReasons(extension->id()) &
Extension::DISABLE_PERMISSIONS_INCREASE) {
extensions::AddExtensionDisabledError(this, extension);
}
@@ -2018,8 +2018,7 @@ void ExtensionService::InitializePermissions(const Extension* extension) {
bool is_extension_upgrade = old != NULL;
bool is_privilege_increase = false;
bool previously_disabled = false;
- Extension::DisableReason disable_reason =
- extension_prefs_->GetDisableReason(extension->id());
+ int disable_reasons = extension_prefs_->GetDisableReasons(extension->id());
// We only need to compare the granted permissions to the current permissions
// if the extension is not allowed to silently increase its permissions.
@@ -2056,18 +2055,17 @@ void ExtensionService::InitializePermissions(const Extension* extension) {
// disabled on permissions increase.
previously_disabled = extension_prefs_->IsExtensionDisabled(old->id());
if (previously_disabled) {
- Extension::DisableReason reason = extension_prefs_->GetDisableReason(
- old->id());
- if (reason == Extension::DISABLE_UNKNOWN) {
+ int reasons = extension_prefs_->GetDisableReasons(old->id());
+ if (reasons == Extension::DISABLE_NONE) {
// Initialize the reason for legacy disabled extensions from whether the
// extension already exceeded granted permissions.
if (extension_prefs_->DidExtensionEscalatePermissions(old->id()))
- disable_reason = Extension::DISABLE_PERMISSIONS_INCREASE;
+ disable_reasons = Extension::DISABLE_PERMISSIONS_INCREASE;
else
- disable_reason = Extension::DISABLE_USER_ACTION;
+ disable_reasons = Extension::DISABLE_USER_ACTION;
}
} else {
- disable_reason = Extension::DISABLE_PERMISSIONS_INCREASE;
+ disable_reasons = Extension::DISABLE_PERMISSIONS_INCREASE;
}
// To upgrade an extension in place, unload the old one and
@@ -2085,7 +2083,9 @@ void ExtensionService::InitializePermissions(const Extension* extension) {
}
extension_prefs_->SetExtensionState(extension->id(), Extension::DISABLED);
extension_prefs_->SetDidExtensionEscalatePermissions(extension, true);
- extension_prefs_->SetDisableReason(extension->id(), disable_reason);
+ extension_prefs_->AddDisableReason(
+ extension->id(),
+ static_cast<Extension::DisableReason>(disable_reasons));
}
}

Powered by Google App Engine
This is Rietveld 408576698