1// Copyright 2013 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/net/disk_cache_dir_policy_handler.h" 6 7#include "base/files/file_path.h" 8#include "base/prefs/pref_value_map.h" 9#include "base/values.h" 10#include "chrome/browser/policy/policy_path_parser.h" 11#include "chrome/common/pref_names.h" 12#include "components/policy/core/common/policy_map.h" 13#include "policy/policy_constants.h" 14 15namespace policy { 16 17DiskCacheDirPolicyHandler::DiskCacheDirPolicyHandler() 18 : TypeCheckingPolicyHandler(key::kDiskCacheDir, base::Value::TYPE_STRING) {} 19 20DiskCacheDirPolicyHandler::~DiskCacheDirPolicyHandler() {} 21 22void DiskCacheDirPolicyHandler::ApplyPolicySettings(const PolicyMap& policies, 23 PrefValueMap* prefs) { 24 const base::Value* value = policies.GetValue(policy_name()); 25 base::FilePath::StringType string_value; 26 if (value && value->GetAsString(&string_value)) { 27 base::FilePath::StringType expanded_value = 28 policy::path_parser::ExpandPathVariables(string_value); 29 prefs->SetValue(prefs::kDiskCacheDir, 30 new base::StringValue(expanded_value)); 31 } 32} 33 34} // namespace policy 35