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

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

Issue 10382149: Refactor the various ways to control what users can do to extensions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 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_management_api.cc
===================================================================
--- chrome/browser/extensions/extension_management_api.cc (revision 140193)
+++ chrome/browser/extensions/extension_management_api.cc (working copy)
@@ -17,7 +17,9 @@
#include "chrome/browser/extensions/extension_event_router.h"
#include "chrome/browser/extensions/extension_management_api_constants.h"
#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_uninstall_dialog.h"
+#include "chrome/browser/extensions/management_policy.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/extensions/application_launch.h"
#include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
@@ -72,11 +74,17 @@
bool enabled = service->IsExtensionEnabled(extension.id());
extension.GetBasicInfo(enabled, info);
+ const extensions::ManagementPolicy* policy = ExtensionSystem::Get(
+ service->profile())->management_policy();
+ info->SetBoolean(keys::kMayDisableKey,
+ policy->UserMayModifySettings(&extension, NULL));
+
info->SetBoolean(keys::kIsAppKey, extension.is_app());
if (!enabled) {
- bool permissions_escalated = service->extension_prefs()->
- DidExtensionEscalatePermissions(extension.id());
+ ExtensionPrefs* prefs = service->extension_prefs();
+ bool permissions_escalated =
+ prefs->DidExtensionEscalatePermissions(extension.id());
const char* reason = permissions_escalated ?
keys::kDisabledReasonPermissionsIncrease : keys::kDisabledReasonUnknown;
info->SetString(keys::kDisabledReasonKey, reason);
@@ -183,7 +191,7 @@
const Extension* extension = service()->GetExtensionById(ext_id, true);
if (!extension) {
error_ = ExtensionErrorUtils::FormatErrorMessage(keys::kNoExtensionError,
- ext_id);
+ ext_id);
return false;
}
@@ -203,7 +211,7 @@
class SafeManifestJSONParser : public UtilityProcessHostClient {
public:
SafeManifestJSONParser(GetPermissionWarningsByManifestFunction* client,
- const std::string& manifest)
+ const std::string& manifest)
: client_(client),
manifest_(manifest) {}
@@ -381,9 +389,11 @@
return false;
}
- if (!Extension::UserMayDisable(extension->location())) {
+ const extensions::ManagementPolicy* policy = ExtensionSystem::Get(
+ profile())->management_policy();
+ if (!policy->UserMayModifySettings(extension, NULL)) {
error_ = ExtensionErrorUtils::FormatErrorMessage(
- keys::kUserCantDisableError, extension_id_);
+ keys::kUserCantModifyError, extension_id_);
return false;
}
@@ -454,12 +464,10 @@
return false;
}
- ExtensionPrefs* prefs = service()->extension_prefs();
-
- if (!Extension::UserMayDisable(
- prefs->GetInstalledExtensionInfo(extension_id_)->extension_location)) {
+ if (!ExtensionSystem::Get(
+ profile())->management_policy()->UserMayModifySettings(extension, NULL)) {
error_ = ExtensionErrorUtils::FormatErrorMessage(
- keys::kUserCantDisableError, extension_id_);
+ keys::kUserCantModifyError, extension_id_);
return false;
}

Powered by Google App Engine
This is Rietveld 408576698