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

Side by Side Diff: chrome/browser/chromeos/settings/device_settings_service.h

Issue 640063008: Revert of Implemented OwnerSettingsService::Set() method. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_SETTINGS_SERVICE_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_SETTINGS_SERVICE_H_
6 #define CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_SETTINGS_SERVICE_H_ 6 #define CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_SETTINGS_SERVICE_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/callback.h" 13 #include "base/callback.h"
14 #include "base/compiler_specific.h" 14 #include "base/compiler_specific.h"
15 #include "base/memory/linked_ptr.h"
16 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
17 #include "base/memory/scoped_ptr.h" 16 #include "base/memory/scoped_ptr.h"
18 #include "base/observer_list.h" 17 #include "base/observer_list.h"
19 #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h" 18 #include "chrome/browser/chromeos/policy/proto/chrome_device_policy.pb.h"
20 #include "chromeos/dbus/session_manager_client.h" 19 #include "chromeos/dbus/session_manager_client.h"
21 #include "components/ownership/owner_settings_service.h" 20 #include "components/ownership/owner_settings_service.h"
22 #include "components/policy/core/common/cloud/cloud_policy_validator.h" 21 #include "components/policy/core/common/cloud/cloud_policy_validator.h"
23 #include "crypto/scoped_nss_types.h" 22 #include "crypto/scoped_nss_types.h"
24 #include "policy/proto/device_management_backend.pb.h" 23 #include "policy/proto/device_management_backend.pb.h"
25 24
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 // Signs |settings| with the private half of the owner key and sends the 131 // Signs |settings| with the private half of the owner key and sends the
133 // resulting policy blob to session manager for storage. The result of the 132 // resulting policy blob to session manager for storage. The result of the
134 // operation is reported through |callback|. If successful, the updated device 133 // operation is reported through |callback|. If successful, the updated device
135 // settings are present in policy_data() and device_settings() when the 134 // settings are present in policy_data() and device_settings() when the
136 // callback runs. 135 // callback runs.
137 void SignAndStore( 136 void SignAndStore(
138 scoped_ptr<enterprise_management::ChromeDeviceSettingsProto> new_settings, 137 scoped_ptr<enterprise_management::ChromeDeviceSettingsProto> new_settings,
139 const base::Closure& callback); 138 const base::Closure& callback);
140 139
141 // Sets the management related settings in PolicyData. 140 // Sets the management related settings in PolicyData.
142 //
143 // TODO (ygorshenin@, crbug.com/230018): move this to the
144 // OwnerSettingsService.
145 void SetManagementSettings( 141 void SetManagementSettings(
146 enterprise_management::PolicyData::ManagementMode management_mode, 142 enterprise_management::PolicyData::ManagementMode management_mode,
147 const std::string& request_token, 143 const std::string& request_token,
148 const std::string& device_id, 144 const std::string& device_id,
149 const base::Closure& callback); 145 const base::Closure& callback);
150 146
151 // Stores a policy blob to session_manager. The result of the operation is 147 // Stores a policy blob to session_manager. The result of the operation is
152 // reported through |callback|. If successful, the updated device settings are 148 // reported through |callback|. If successful, the updated device settings are
153 // present in policy_data() and device_settings() when the callback runs. 149 // present in policy_data() and device_settings() when the callback runs.
154 void Store(scoped_ptr<enterprise_management::PolicyFetchResponse> policy, 150 void Store(scoped_ptr<enterprise_management::PolicyFetchResponse> policy,
(...skipping 11 matching lines...) Expand all
166 bool HasPrivateOwnerKey(); 162 bool HasPrivateOwnerKey();
167 163
168 // Sets the identity of the user that's interacting with the service. This is 164 // Sets the identity of the user that's interacting with the service. This is
169 // relevant only for writing settings through SignAndStore(). 165 // relevant only for writing settings through SignAndStore().
170 void InitOwner(const std::string& username, 166 void InitOwner(const std::string& username,
171 const base::WeakPtr<ownership::OwnerSettingsService>& 167 const base::WeakPtr<ownership::OwnerSettingsService>&
172 owner_settings_service); 168 owner_settings_service);
173 169
174 const std::string& GetUsername() const; 170 const std::string& GetUsername() const;
175 171
176 ownership::OwnerSettingsService* GetOwnerSettingsService() const;
177
178 // Adds an observer. 172 // Adds an observer.
179 void AddObserver(Observer* observer); 173 void AddObserver(Observer* observer);
180 // Removes an observer. 174 // Removes an observer.
181 void RemoveObserver(Observer* observer); 175 void RemoveObserver(Observer* observer);
182 176
183 // SessionManagerClient::Observer: 177 // SessionManagerClient::Observer:
184 virtual void OwnerKeySet(bool success) override; 178 virtual void OwnerKeySet(bool success) override;
185 virtual void PropertyChangeComplete(bool success) override; 179 virtual void PropertyChangeComplete(bool success) override;
186 180
187 private: 181 private:
188 friend class OwnerSettingsServiceChromeOS; 182 friend class OwnerSettingsServiceChromeOS;
189 183
190 // Enqueues a new operation. Takes ownership of |operation| and starts it 184 // Enqueues a new operation. Takes ownership of |operation| and starts it
191 // right away if there is no active operation currently. 185 // right away if there is no active operation currently.
192 void Enqueue(const linked_ptr<SessionManagerOperation>& operation); 186 void Enqueue(SessionManagerOperation* operation);
193 187
194 // Enqueues a load operation. 188 // Enqueues a load operation.
195 void EnqueueLoad(bool force_key_load); 189 void EnqueueLoad(bool force_key_load);
196 190
197 // Enqueues a sign and store operation.
198 void EnqueueSignAndStore(scoped_ptr<enterprise_management::PolicyData> policy,
199 const base::Closure& callback);
200
201 // Makes sure there's a reload operation so changes to the settings (and key, 191 // Makes sure there's a reload operation so changes to the settings (and key,
202 // in case force_key_load is set) are getting picked up. 192 // in case force_key_load is set) are getting picked up.
203 void EnsureReload(bool force_key_load); 193 void EnsureReload(bool force_key_load);
204 194
205 // Runs the next pending operation. 195 // Runs the next pending operation.
206 void StartNextOperation(); 196 void StartNextOperation();
207 197
208 // Updates status, policy data and owner key from a finished operation. 198 // Updates status, policy data and owner key from a finished operation.
209 // Starts the next pending operation if available. 199 // Starts the next pending operation if available.
210 void HandleCompletedOperation(const base::Closure& callback, 200 void HandleCompletedOperation(const base::Closure& callback,
211 SessionManagerOperation* operation, 201 SessionManagerOperation* operation,
212 Status status); 202 Status status);
213 203
214 // Updates status and invokes the callback immediately. 204 // Updates status and invokes the callback immediately.
215 void HandleError(Status status, const base::Closure& callback); 205 void HandleError(Status status, const base::Closure& callback);
216 206
207 // Called by OwnerSettingsService when sign-and-store operation completes.
208 void OnSignAndStoreOperationCompleted(Status status);
209
210 void set_policy_data(
211 scoped_ptr<enterprise_management::PolicyData> policy_data) {
212 policy_data_ = policy_data.Pass();
213 }
214
215 void set_device_settings(scoped_ptr<
216 enterprise_management::ChromeDeviceSettingsProto> device_settings) {
217 device_settings_ = device_settings.Pass();
218 }
219
217 SessionManagerClient* session_manager_client_; 220 SessionManagerClient* session_manager_client_;
218 scoped_refptr<ownership::OwnerKeyUtil> owner_key_util_; 221 scoped_refptr<ownership::OwnerKeyUtil> owner_key_util_;
219 222
220 Status store_status_; 223 Status store_status_;
221 224
222 std::vector<OwnershipStatusCallback> pending_ownership_status_callbacks_; 225 std::vector<OwnershipStatusCallback> pending_ownership_status_callbacks_;
223 226
224 std::string username_; 227 std::string username_;
225 scoped_refptr<ownership::PublicKey> public_key_; 228 scoped_refptr<ownership::PublicKey> public_key_;
226 base::WeakPtr<ownership::OwnerSettingsService> owner_settings_service_; 229 base::WeakPtr<ownership::OwnerSettingsService> owner_settings_service_;
227 230
228 scoped_ptr<enterprise_management::PolicyData> policy_data_; 231 scoped_ptr<enterprise_management::PolicyData> policy_data_;
229 scoped_ptr<enterprise_management::ChromeDeviceSettingsProto> device_settings_; 232 scoped_ptr<enterprise_management::ChromeDeviceSettingsProto> device_settings_;
230 233
231 // The queue of pending operations. The first operation on the queue is 234 // The queue of pending operations. The first operation on the queue is
232 // currently active; it gets removed and destroyed once it completes. 235 // currently active; it gets removed and destroyed once it completes.
233 std::deque<linked_ptr<SessionManagerOperation>> pending_operations_; 236 std::deque<SessionManagerOperation*> pending_operations_;
234 237
235 ObserverList<Observer> observers_; 238 ObserverList<Observer, true> observers_;
236 239
237 // For recoverable load errors how many retries are left before we give up. 240 // For recoverable load errors how many retries are left before we give up.
238 int load_retries_left_; 241 int load_retries_left_;
239 242
240 base::WeakPtrFactory<DeviceSettingsService> weak_factory_; 243 base::WeakPtrFactory<DeviceSettingsService> weak_factory_;
241 244
242 DISALLOW_COPY_AND_ASSIGN(DeviceSettingsService); 245 DISALLOW_COPY_AND_ASSIGN(DeviceSettingsService);
243 }; 246 };
244 247
245 // Helper class for tests. Initializes the DeviceSettingsService singleton on 248 // Helper class for tests. Initializes the DeviceSettingsService singleton on
246 // construction and tears it down again on destruction. 249 // construction and tears it down again on destruction.
247 class ScopedTestDeviceSettingsService { 250 class ScopedTestDeviceSettingsService {
248 public: 251 public:
249 ScopedTestDeviceSettingsService(); 252 ScopedTestDeviceSettingsService();
250 ~ScopedTestDeviceSettingsService(); 253 ~ScopedTestDeviceSettingsService();
251 254
252 private: 255 private:
253 DISALLOW_COPY_AND_ASSIGN(ScopedTestDeviceSettingsService); 256 DISALLOW_COPY_AND_ASSIGN(ScopedTestDeviceSettingsService);
254 }; 257 };
255 258
256 } // namespace chromeos 259 } // namespace chromeos
257 260
258 #endif // CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_SETTINGS_SERVICE_H_ 261 #endif // CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_SETTINGS_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698