121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// Copyright (c) 2010 The Chromium Authors. All rights reserved. 221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// Use of this source code is governed by a BSD-style license that can be 321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen// found in the LICENSE file. 421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/policy/asynchronous_policy_provider.h" 621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/policy/asynchronous_policy_loader.h" 821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsennamespace policy { 1021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 1121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenAsynchronousPolicyProvider::AsynchronousPolicyProvider( 1221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen const PolicyDefinitionList* policy_list, 1321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen scoped_refptr<AsynchronousPolicyLoader> loader) 1421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen : ConfigurationPolicyProvider(policy_list), 1521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen loader_(loader) { 1621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen loader_->Init(); 1721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 1821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 1921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian MonsenAsynchronousPolicyProvider::~AsynchronousPolicyProvider() { 2021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen DCHECK(CalledOnValidThread()); 2121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen loader_->Stop(); 2221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 2321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 2421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenbool AsynchronousPolicyProvider::Provide( 2521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ConfigurationPolicyStoreInterface* store) { 2621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen DCHECK(CalledOnValidThread()); 2721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen DCHECK(loader_->policy()); 28dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen ApplyPolicyValueTree(loader_->policy(), store); 2921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen return true; 3021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 3121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 3221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvoid AsynchronousPolicyProvider::AddObserver( 3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ConfigurationPolicyProvider::Observer* observer) { 3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen loader_->AddObserver(observer); 3521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 3621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 3721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenvoid AsynchronousPolicyProvider::RemoveObserver( 3821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen ConfigurationPolicyProvider::Observer* observer) { 3921d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen loader_->RemoveObserver(observer); 4021d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 4121d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 4221d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsenscoped_refptr<AsynchronousPolicyLoader> AsynchronousPolicyProvider::loader() { 4321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen return loader_; 4421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} 4521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen 4621d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} // namespace policy 47