Chromium Code Reviews| Index: chrome/browser/extensions/management_policy.cc |
| =================================================================== |
| --- chrome/browser/extensions/management_policy.cc (revision 0) |
| +++ chrome/browser/extensions/management_policy.cc (revision 0) |
| @@ -0,0 +1,92 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/extensions/management_policy.h" |
| + |
| +namespace extensions { |
| +ManagementPolicy::ManagementPolicy() { |
| +} |
| + |
| +ManagementPolicy::~ManagementPolicy() { |
| +} |
| + |
| +bool ManagementPolicy::Provider::UserMayLoad(const Extension* extension, |
| + Extension::Location location, |
| + string16* error) const { |
| + return true; |
| +} |
| + |
| +bool ManagementPolicy::Provider::UserMayModifyStatus(const Extension* extension, |
| + string16* error) const { |
| + return true; |
| +} |
| + |
| +bool ManagementPolicy::Provider::MustRemainEnabled(const Extension* extension, |
| + string16* error) const { |
| + return false; |
| +} |
| + |
| +void ManagementPolicy::RegisterProvider(Provider* provider) { |
| + providers_.insert(provider); |
| +} |
| + |
| +void ManagementPolicy::UnregisterProvider(Provider* provider) { |
| + providers_.erase(provider); |
| +} |
| + |
| +bool ManagementPolicy::UserMayLoad(const Extension* extension, |
| + Extension::Location location, |
| + string16* error) const { |
|
Aaron Boodman
2012/05/22 15:56:11
Seems like the logic from Extension::IsRequired()
|
| + for (ProviderList::const_iterator it = providers_.begin(); |
| + it != providers_.end(); ++it) { |
| + if (!(*it)->UserMayLoad(extension, location, error)) { |
| + // The extension may be NULL in testing. |
| + std::string id = extension ? extension->id() : "[test]"; |
| + DLOG(WARNING) << "Installation of extension " << id |
| + << " prohibited by " << (*it)->PolicyProviderName(); |
|
Pam (message me for reviews)
2012/05/22 12:51:07
Sure. To avoid spam, since these get called to che
|
| + return false; |
| + } |
| + } |
| + return true; |
| +} |
| + |
| +bool ManagementPolicy::UserMayModifyStatus(const Extension* extension, |
| + string16* error) const { |
| + for (ProviderList::const_iterator it = providers_.begin(); |
| + it != providers_.end(); ++it) { |
| + if (!(*it)->UserMayModifyStatus(extension, error)) { |
| + // The extension may be NULL in testing. |
| + std::string id = extension ? extension->id() : "[test]"; |
| + DLOG(WARNING) << "Modification of extension " << id |
| + << " prohibited by " << (*it)->PolicyProviderName(); |
| + return false; |
| + } |
| + } |
| + return true; |
| +} |
| + |
| +bool ManagementPolicy::MustRemainEnabled(const Extension* extension, |
| + string16* error) const { |
| + for (ProviderList::const_iterator it = providers_.begin(); |
| + it != providers_.end(); ++it) { |
| + // The extension may be NULL in testing. |
| + std::string id = extension ? extension->id() : "[test]"; |
| + if ((*it)->MustRemainEnabled(extension, error)) { |
| + DLOG(WARNING) << "Extension " << id |
| + << " required to remain enabled by " |
| + << (*it)->PolicyProviderName(); |
| + return true; |
| + } |
| + } |
| + return false; |
| +} |
| + |
| +void ManagementPolicy::UnregisterAllProviders() { |
| + providers_.clear(); |
| +} |
| + |
| +int ManagementPolicy::GetNumProviders() const { |
| + return providers_.size(); |
| +} |
| +} // namespace |
| Property changes on: chrome\browser\extensions\management_policy.cc |
| ___________________________________________________________________ |
| Added: svn:eol-style |
| + LF |