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

Side by Side Diff: chrome/browser/extensions/management_policy.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, 6 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 unified diff | Download patch | Annotate | Revision Log
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/extensions/management_policy.h"
6
7 namespace extensions {
8 ManagementPolicy::ManagementPolicy() {
9 }
10
11 ManagementPolicy::~ManagementPolicy() {
12 }
13
14 bool ManagementPolicy::Provider::UserMayLoad(const Extension* extension,
15 string16* error) const {
16 return true;
17 }
18
19 bool ManagementPolicy::Provider::UserMayModifySettings(
20 const Extension* extension, string16* error) const {
21 return true;
22 }
23
24 bool ManagementPolicy::Provider::MustRemainEnabled(const Extension* extension,
25 string16* error) const {
26 return false;
27 }
28
29 void ManagementPolicy::RegisterProvider(Provider* provider) {
30 providers_.insert(provider);
31 }
32
33 void ManagementPolicy::UnregisterProvider(Provider* provider) {
34 providers_.erase(provider);
35 }
36
37 bool ManagementPolicy::UserMayLoad(const Extension* extension,
38 string16* error) const {
39 for (ProviderList::const_iterator it = providers_.begin();
40 it != providers_.end(); ++it) {
41 if (!(*it)->UserMayLoad(extension, error)) {
42 // The extension may be NULL in testing.
43 std::string id = extension ? extension->id() : "[test]";
44 DLOG(WARNING) << "Installation of extension " << id
45 << " prohibited by " << (*it)->GetPolicyProviderName();
46 return false;
47 }
48 }
49 return true;
50 }
51
52 bool ManagementPolicy::UserMayModifySettings(const Extension* extension,
53 string16* error) const {
54 for (ProviderList::const_iterator it = providers_.begin();
55 it != providers_.end(); ++it) {
56 if (!(*it)->UserMayModifySettings(extension, error)) {
57 // The extension may be NULL in testing.
58 std::string id = extension ? extension->id() : "[test]";
59 DLOG(WARNING) << "Modification of extension " << id
60 << " prohibited by " << (*it)->GetPolicyProviderName();
61 return false;
62 }
63 }
64 return true;
65 }
66
67 bool ManagementPolicy::MustRemainEnabled(const Extension* extension,
68 string16* error) const {
69 for (ProviderList::const_iterator it = providers_.begin();
70 it != providers_.end(); ++it) {
71 // The extension may be NULL in testing.
72 std::string id = extension ? extension->id() : "[test]";
73 if ((*it)->MustRemainEnabled(extension, error)) {
74 DLOG(WARNING) << "Extension " << id
75 << " required to remain enabled by "
76 << (*it)->GetPolicyProviderName();
77 return true;
78 }
79 }
80 return false;
81 }
82
83 void ManagementPolicy::UnregisterAllProviders() {
84 providers_.clear();
85 }
86
87 int ManagementPolicy::GetNumProviders() const {
88 return providers_.size();
89 }
90 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/extensions/management_policy.h ('k') | chrome/browser/extensions/management_policy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698