Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Side by Side Diff: chrome/browser/policy/device_policy_cache.h

Issue 11946017: Remove old cloud policy code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address nits. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_POLICY_DEVICE_POLICY_CACHE_H_
6 #define CHROME_BROWSER_POLICY_DEVICE_POLICY_CACHE_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h"
12 #include "base/memory/weak_ptr.h"
13 #include "chrome/browser/chromeos/settings/device_settings_service.h"
14 #include "chrome/browser/policy/cloud_policy_cache_base.h"
15
16 namespace policy {
17
18 class CloudPolicyDataStore;
19 class EnterpriseInstallAttributes;
20 class PolicyMap;
21
22 // CloudPolicyCacheBase implementation that persists policy information
23 // to ChromeOS' session manager (via DeviceSettingsService).
24 class DevicePolicyCache : public CloudPolicyCacheBase,
25 public chromeos::DeviceSettingsService::Observer {
26 public:
27 DevicePolicyCache(CloudPolicyDataStore* data_store,
28 EnterpriseInstallAttributes* install_attributes);
29 virtual ~DevicePolicyCache();
30
31 // CloudPolicyCacheBase implementation:
32 virtual void Load() OVERRIDE;
33 virtual bool SetPolicy(
34 const enterprise_management::PolicyFetchResponse& policy) OVERRIDE;
35 virtual void SetUnmanaged() OVERRIDE;
36 virtual void SetFetchingDone() OVERRIDE;
37
38 // DeviceSettingsService::Observer implementation:
39 virtual void OwnershipStatusChanged() OVERRIDE;
40 virtual void DeviceSettingsUpdated() OVERRIDE;
41
42 private:
43 friend class DevicePolicyCacheTest;
44 friend class DevicePolicyCacheTestHelper;
45
46 // Alternate c'tor allowing tests to mock out the DeviceSettingsService
47 // singleton.
48 DevicePolicyCache(
49 CloudPolicyDataStore* data_store,
50 EnterpriseInstallAttributes* install_attributes,
51 chromeos::DeviceSettingsService* device_settings_service);
52
53 // CloudPolicyCacheBase implementation:
54 virtual bool DecodePolicyData(
55 const enterprise_management::PolicyData& policy_data,
56 PolicyMap* policies) OVERRIDE;
57
58 // Handles completion of policy store operations.
59 void PolicyStoreOpCompleted();
60
61 // Checks with immutable attributes whether this is an enterprise device and
62 // read the registration user if this is the case.
63 void CheckImmutableAttributes();
64
65 // Tries to install the initial device policy retrieved from signed settings.
66 // Fills in |device_token| if it could be extracted from the loaded protobuf.
67 void InstallInitialPolicy(
68 chromeos::DeviceSettingsService::Status status,
69 const enterprise_management::PolicyData* policy_data,
70 std::string* device_token);
71
72 // Ensures that CrosSettings has established trust on the reporting prefs and
73 // publishes the |device_token| loaded from the cache. It's important that we
74 // have fully-initialized device settings s.t. device status uploads get the
75 // correct reporting policy flags.
76 void SetTokenAndFlagReady(const std::string& device_token);
77
78 // Checks whether a policy fetch is pending and sends out a notification if
79 // that is the case.
80 void CheckFetchingDone();
81
82 CloudPolicyDataStore* data_store_;
83 EnterpriseInstallAttributes* install_attributes_;
84
85 chromeos::DeviceSettingsService* device_settings_service_;
86
87 base::WeakPtrFactory<DevicePolicyCache> weak_ptr_factory_;
88
89 bool policy_fetch_pending_;
90
91 DISALLOW_COPY_AND_ASSIGN(DevicePolicyCache);
92 };
93
94 } // namespace policy
95
96 #endif // CHROME_BROWSER_POLICY_DEVICE_POLICY_CACHE_H_
OLDNEW
« no previous file with comments | « chrome/browser/policy/delayed_work_scheduler.cc ('k') | chrome/browser/policy/device_policy_cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698