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

Unified Diff: chrome/browser/ui/webui/extensions/extension_settings_handler.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/ui/webui/extensions/extension_settings_handler.cc
===================================================================
--- chrome/browser/ui/webui/extensions/extension_settings_handler.cc (revision 140193)
+++ chrome/browser/ui/webui/extensions/extension_settings_handler.cc (working copy)
@@ -65,6 +65,7 @@
ExtensionSettingsHandler::ExtensionSettingsHandler()
: extension_service_(NULL),
+ management_policy_(NULL),
ignore_notifications_(false),
deleting_rvh_(NULL),
registered_for_notifications_(false) {
@@ -96,6 +97,14 @@
true;
extension->GetBasicInfo(enabled, extension_data);
+ if (management_policy_) {
+ extension_data->SetBoolean("userModifiable",
+ management_policy_->UserMayModifySettings(extension, NULL));
+ } else {
+ // This should only happen in testing.
+ extension_data->SetBoolean("userModifiable", true);
+ }
+
GURL icon =
ExtensionIconSource::GetIconURL(extension,
ExtensionIconSet::EXTENSION_ICON_MEDIUM,
@@ -290,6 +299,11 @@
extension_service_ = Profile::FromWebUI(web_ui())->GetOriginalProfile()->
GetExtensionService();
+ if (extension_service_) {
+ management_policy_ = ExtensionSystem::Get(
+ extension_service_->profile())->management_policy();
+ }
+
web_ui()->RegisterMessageCallback("extensionSettingsRequestExtensionsData",
base::Bind(&ExtensionSettingsHandler::HandleRequestExtensionsData,
base::Unretained(this)));
@@ -570,7 +584,8 @@
const Extension* extension =
extension_service_->GetInstalledExtension(extension_id);
- if (!extension || !Extension::UserMayDisable(extension->location())) {
+ if (!extension ||
+ !management_policy_->UserMayModifySettings(extension, NULL)) {
LOG(ERROR) << "Attempt to enable an extension that is non-usermanagable was"
<< "made. Extension id: " << extension->id();
return;
@@ -628,7 +643,7 @@
if (!extension)
return;
- if (!Extension::UserMayDisable(extension->location())) {
+ if (!management_policy_->UserMayModifySettings(extension, NULL)) {
LOG(ERROR) << "Attempt to change allow file access of an extension that is "
<< "non-usermanagable was made. Extension id : "
<< extension->id();
@@ -647,7 +662,7 @@
if (!extension)
return;
- if (!Extension::UserMayDisable(extension->location())) {
+ if (!management_policy_->UserMayModifySettings(extension, NULL)) {
LOG(ERROR) << "Attempt to uninstall an extension that is non-usermanagable "
<< "was made. Extension id : " << extension->id();
return;
« no previous file with comments | « chrome/browser/ui/webui/extensions/extension_settings_handler.h ('k') | chrome/browser/ui/webui/ntp/app_launcher_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698