Chromium Code Reviews| 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; |