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 17 StandardManagementPolicyProvider::StandardManagementPolicyProvider( 18 ExtensionPrefs* prefs) 19 : prefs_(prefs) { 20 } 21 22 StandardManagementPolicyProvider::~StandardManagementPolicyProvider() { 23 } 24 25 std::string 26 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 35 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 54 bool StandardManagementPolicyProvider::UserMayModifySettings( 55 const Extension* extension, 56 base::string16* error) const { 57 return admin_policy::UserMayModifySettings(extension, error); 58 } 59 60 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