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

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: Addressing comments from partial review 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 138227)
+++ 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("mayModifySettings",
+ management_policy_->UserMayModifySettings(extension, NULL));
+ } else {
+ // This should only happen in testing.
Aaron Boodman 2012/05/29 03:03:08 Can we somehow make the management policy exist in
+ extension_data->SetBoolean("mayModifySettings", true);
+ }
+
GURL icon =
ExtensionIconSource::GetIconURL(extension,
ExtensionIconSet::EXTENSION_ICON_MEDIUM,
@@ -287,6 +296,11 @@
extension_service_ = Profile::FromWebUI(web_ui())->GetOriginalProfile()->
GetExtensionService();
+ if (extension_service_) {
Aaron Boodman 2012/05/29 03:03:08 Is this again because of testing? It would be nice
+ management_policy_ = ExtensionSystem::Get(
+ extension_service_->profile())->management_policy();
+ }
+
web_ui()->RegisterMessageCallback("extensionSettingsRequestExtensionsData",
base::Bind(&ExtensionSettingsHandler::HandleRequestExtensionsData,
base::Unretained(this)));
@@ -567,7 +581,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;
@@ -625,7 +640,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();
@@ -644,7 +659,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;

Powered by Google App Engine
This is Rietveld 408576698