• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 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/standard_management_policy_provider.h"
6 
7 #include "base/prefs/pref_service.h"
8 #include "chrome/browser/extensions/blacklist.h"
9 #include "chrome/common/pref_names.h"
10 #include "extensions/browser/admin_policy.h"
11 #include "extensions/browser/extension_prefs.h"
12 #include "extensions/browser/pref_names.h"
13 #include "extensions/common/extension.h"
14 
15 namespace extensions {
16 
StandardManagementPolicyProvider(ExtensionPrefs * prefs)17 StandardManagementPolicyProvider::StandardManagementPolicyProvider(
18     ExtensionPrefs* prefs)
19     : prefs_(prefs) {
20 }
21 
~StandardManagementPolicyProvider()22 StandardManagementPolicyProvider::~StandardManagementPolicyProvider() {
23 }
24 
25 std::string
GetDebugPolicyProviderName() const26     StandardManagementPolicyProvider::GetDebugPolicyProviderName() const {
27 #ifdef NDEBUG
28   NOTREACHED();
29   return std::string();
30 #else
31   return "admin policy black/white/forcelist, via the ExtensionPrefs";
32 #endif
33 }
34 
UserMayLoad(const Extension * extension,base::string16 * error) const35 bool StandardManagementPolicyProvider::UserMayLoad(
36     const Extension* extension,
37     base::string16* error) const {
38   PrefService* pref_service = prefs_->pref_service();
39 
40   const base::ListValue* blacklist =
41       pref_service->GetList(pref_names::kInstallDenyList);
42   const base::ListValue* whitelist =
43       pref_service->GetList(pref_names::kInstallAllowList);
44   const base::DictionaryValue* forcelist =
45       pref_service->GetDictionary(pref_names::kInstallForceList);
46   const base::ListValue* allowed_types = NULL;
47   if (pref_service->HasPrefPath(pref_names::kAllowedTypes))
48     allowed_types = pref_service->GetList(pref_names::kAllowedTypes);
49 
50   return admin_policy::UserMayLoad(
51       blacklist, whitelist, forcelist, allowed_types, extension, error);
52 }
53 
UserMayModifySettings(const Extension * extension,base::string16 * error) const54 bool StandardManagementPolicyProvider::UserMayModifySettings(
55     const Extension* extension,
56     base::string16* error) const {
57   return admin_policy::UserMayModifySettings(extension, error);
58 }
59 
MustRemainEnabled(const Extension * extension,base::string16 * error) const60 bool StandardManagementPolicyProvider::MustRemainEnabled(
61     const Extension* extension,
62     base::string16* error) const {
63   return admin_policy::MustRemainEnabled(extension, error);
64 }
65 
66 }  // namespace extensions
67