device_local_account_external_data_manager.cc revision f2477e01787aa58f445919b809d89e252beef54f
1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/chromeos/policy/device_local_account_external_data_manager.h" 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/sequenced_task_runner.h" 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/chromeos/policy/cloud_external_data_store.h" 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/chromeos/policy/device_local_account_external_data_service.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/policy/cloud/resource_cache.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "policy/policy_constants.h" 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace policy { 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)DeviceLocalAccountExternalDataManager::DeviceLocalAccountExternalDataManager( 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const std::string& account_id, 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const GetChromePolicyDetailsCallback& get_policy_details, 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_refptr<base::SequencedTaskRunner> backend_task_runner, 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) scoped_refptr<base::SequencedTaskRunner> io_task_runner, 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ResourceCache* resource_cache) 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) : CloudExternalDataManagerBase(get_policy_details, 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) backend_task_runner, 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) io_task_runner) { 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) SetExternalDataStore(make_scoped_ptr(new CloudExternalDataStore( 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) account_id, backend_task_runner, resource_cache))); 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)DeviceLocalAccountExternalDataManager:: 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ~DeviceLocalAccountExternalDataManager() { 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) SetExternalDataStore(scoped_ptr<CloudExternalDataStore>()); 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)void DeviceLocalAccountExternalDataManager::OnPolicyStoreLoaded() { 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) CloudExternalDataManagerBase::OnPolicyStoreLoaded(); 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // Proactively try to download and cache all external data referenced by 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // policies. 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) FetchAll(); 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace policy 42