| Index: extensions/browser/management_policy.cc
|
| diff --git a/extensions/browser/management_policy.cc b/extensions/browser/management_policy.cc
|
| index 50183d04884cd5596df851ad43c7f58a5aaaf90b..2b107524509b4092be9b02160ca42290109d4712 100644
|
| --- a/extensions/browser/management_policy.cc
|
| +++ b/extensions/browser/management_policy.cc
|
| @@ -25,6 +25,7 @@ ManagementPolicy::~ManagementPolicy() {
|
| }
|
|
|
| bool ManagementPolicy::Provider::UserMayLoad(const Extension* extension,
|
| + int install_flags,
|
| base::string16* error) const {
|
| return true;
|
| }
|
| @@ -56,9 +57,18 @@ void ManagementPolicy::UnregisterProvider(Provider* provider) {
|
| }
|
|
|
| bool ManagementPolicy::UserMayLoad(const Extension* extension,
|
| + int install_flags,
|
| base::string16* error) const {
|
| - return ApplyToProviderList(&Provider::UserMayLoad, "Installation",
|
| - true, extension, error);
|
| + for (ProviderList::const_iterator it = providers_.begin();
|
| + it != providers_.end();
|
| + ++it) {
|
| + const Provider* provider = *it;
|
| + if (!provider->UserMayLoad(extension, install_flags, error)) {
|
| + LogProhibitedOperation("Installation", extension, provider);
|
| + return false;
|
| + }
|
| + }
|
| + return true;
|
| }
|
|
|
| bool ManagementPolicy::UserMayModifySettings(const Extension* extension,
|
| @@ -102,16 +112,22 @@ bool ManagementPolicy::ApplyToProviderList(ProviderFunction function,
|
| const Provider* provider = *it;
|
| bool result = (provider->*function)(extension, error);
|
| if (result != normal_result) {
|
| - std::string id;
|
| - std::string name;
|
| - GetExtensionNameAndId(extension, &name, &id);
|
| - DVLOG(1) << debug_operation_name << " of extension " << name
|
| - << " (" << id << ")"
|
| - << " prohibited by " << provider->GetDebugPolicyProviderName();
|
| + LogProhibitedOperation(debug_operation_name, extension, provider);
|
| return !normal_result;
|
| }
|
| }
|
| return normal_result;
|
| }
|
|
|
| +void ManagementPolicy::LogProhibitedOperation(const char* debug_operation_name,
|
| + const Extension* extension,
|
| + const Provider* provider) const {
|
| + std::string id;
|
| + std::string name;
|
| + GetExtensionNameAndId(extension, &name, &id);
|
| + DVLOG(1) << debug_operation_name << " of extension " << name
|
| + << " (" << id << ")"
|
| + << " prohibited by " << provider->GetDebugPolicyProviderName();
|
| +}
|
| +
|
| } // namespace extensions
|
|
|