blob: 31c56c9a857dc19843621be1e725f70ee395ec0c [file] [log] [blame]
// Copyright 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/standard_management_policy_provider.h"
#include "base/prefs/pref_service.h"
#include "chrome/browser/extensions/admin_policy.h"
#include "chrome/browser/extensions/blacklist.h"
#include "chrome/browser/extensions/extension_prefs.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/common/pref_names.h"
namespace extensions {
StandardManagementPolicyProvider::StandardManagementPolicyProvider(
ExtensionPrefs* prefs)
: prefs_(prefs) {
}
StandardManagementPolicyProvider::~StandardManagementPolicyProvider() {
}
std::string
StandardManagementPolicyProvider::GetDebugPolicyProviderName() const {
#ifdef NDEBUG
NOTREACHED();
return std::string();
#else
return "admin policy black/white/forcelist, via the ExtensionPrefs";
#endif
}
bool StandardManagementPolicyProvider::UserMayLoad(
const Extension* extension,
string16* error) const {
PrefService* pref_service = prefs_->pref_service();
const base::ListValue* blacklist =
pref_service->GetList(prefs::kExtensionInstallDenyList);
const base::ListValue* whitelist =
pref_service->GetList(prefs::kExtensionInstallAllowList);
const base::DictionaryValue* forcelist =
pref_service->GetDictionary(prefs::kExtensionInstallForceList);
const base::ListValue* allowed_types = NULL;
if (pref_service->HasPrefPath(prefs::kExtensionAllowedTypes))
allowed_types = pref_service->GetList(prefs::kExtensionAllowedTypes);
return admin_policy::UserMayLoad(
blacklist, whitelist, forcelist, allowed_types, extension, error);
}
bool StandardManagementPolicyProvider::UserMayModifySettings(
const Extension* extension,
string16* error) const {
return admin_policy::UserMayModifySettings(extension, error);
}
bool StandardManagementPolicyProvider::MustRemainEnabled(
const Extension* extension,
string16* error) const {
return admin_policy::MustRemainEnabled(extension, error);
}
} // namespace extensions