Home | History | Annotate | Download | only in extensions
      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