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/chromeos/policy/device_local_account_external_data_manager.h"
6
7 #include "base/memory/scoped_ptr.h"
8 #include "base/sequenced_task_runner.h"
9 #include "chrome/browser/chromeos/policy/cloud_external_data_store.h"
10 #include "chrome/browser/chromeos/policy/device_local_account_external_data_service.h"
11 #include "components/policy/core/common/cloud/resource_cache.h"
12 #include "policy/policy_constants.h"
13
14 namespace policy {
15
DeviceLocalAccountExternalDataManager(const std::string & account_id,const GetChromePolicyDetailsCallback & get_policy_details,scoped_refptr<base::SequencedTaskRunner> backend_task_runner,scoped_refptr<base::SequencedTaskRunner> io_task_runner,ResourceCache * resource_cache)16 DeviceLocalAccountExternalDataManager::DeviceLocalAccountExternalDataManager(
17 const std::string& account_id,
18 const GetChromePolicyDetailsCallback& get_policy_details,
19 scoped_refptr<base::SequencedTaskRunner> backend_task_runner,
20 scoped_refptr<base::SequencedTaskRunner> io_task_runner,
21 ResourceCache* resource_cache)
22 : CloudExternalDataManagerBase(get_policy_details,
23 backend_task_runner,
24 io_task_runner) {
25 SetExternalDataStore(make_scoped_ptr(new CloudExternalDataStore(
26 account_id, backend_task_runner, resource_cache)));
27 }
28
29 DeviceLocalAccountExternalDataManager::
~DeviceLocalAccountExternalDataManager()30 ~DeviceLocalAccountExternalDataManager() {
31 SetExternalDataStore(scoped_ptr<CloudExternalDataStore>());
32 }
33
OnPolicyStoreLoaded()34 void DeviceLocalAccountExternalDataManager::OnPolicyStoreLoaded() {
35 CloudExternalDataManagerBase::OnPolicyStoreLoaded();
36 // Proactively try to download and cache all external data referenced by
37 // policies.
38 FetchAll();
39 }
40
41 } // namespace policy
42