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

Side by Side Diff: chrome/browser/managed_mode/managed_user_registration_service.cc

Issue 16173008: Reland 203015 "Add ManagedUserTokenFetcher to fetch scoped-down ..." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 6 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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 #include "chrome/browser/managed_mode/managed_user_registration_service.h" 5 #include "chrome/browser/managed_mode/managed_user_registration_service.h"
6 6
7 #include "base/base64.h" 7 #include "base/base64.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "base/rand_util.h" 10 #include "base/rand_util.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "chrome/browser/managed_mode/managed_user_refresh_token_fetcher.h"
12 #include "chrome/browser/managed_mode/managed_user_service.h" 13 #include "chrome/browser/managed_mode/managed_user_service.h"
13 #include "chrome/browser/managed_mode/managed_user_service_factory.h" 14 #include "chrome/browser/managed_mode/managed_user_service_factory.h"
14 #include "chrome/browser/prefs/scoped_user_pref_update.h" 15 #include "chrome/browser/prefs/scoped_user_pref_update.h"
16 #include "chrome/browser/sync/glue/device_info.h"
15 #include "chrome/common/pref_names.h" 17 #include "chrome/common/pref_names.h"
16 #include "components/user_prefs/pref_registry_syncable.h" 18 #include "components/user_prefs/pref_registry_syncable.h"
19 #include "google_apis/gaia/gaia_urls.h"
17 #include "google_apis/gaia/google_service_auth_error.h" 20 #include "google_apis/gaia/google_service_auth_error.h"
18 #include "sync/api/sync_change.h" 21 #include "sync/api/sync_change.h"
19 #include "sync/api/sync_error_factory.h" 22 #include "sync/api/sync_error_factory.h"
20 #include "sync/protocol/sync.pb.h" 23 #include "sync/protocol/sync.pb.h"
21 24
22 using base::DictionaryValue; 25 using base::DictionaryValue;
23 using syncer::MANAGED_USERS; 26 using syncer::MANAGED_USERS;
24 using syncer::ModelType; 27 using syncer::ModelType;
25 using syncer::SyncChange; 28 using syncer::SyncChange;
26 using syncer::SyncChangeList; 29 using syncer::SyncChangeList;
(...skipping 18 matching lines...) Expand all
45 specifics.mutable_managed_user()->set_id(id); 48 specifics.mutable_managed_user()->set_id(id);
46 specifics.mutable_managed_user()->set_name(name); 49 specifics.mutable_managed_user()->set_name(name);
47 if (acknowledged) 50 if (acknowledged)
48 specifics.mutable_managed_user()->set_acknowledged(true); 51 specifics.mutable_managed_user()->set_acknowledged(true);
49 return SyncData::CreateLocalData(id, name, specifics); 52 return SyncData::CreateLocalData(id, name, specifics);
50 } 53 }
51 54
52 } // namespace 55 } // namespace
53 56
54 ManagedUserRegistrationService::ManagedUserRegistrationService( 57 ManagedUserRegistrationService::ManagedUserRegistrationService(
55 PrefService* prefs) 58 PrefService* prefs,
59 scoped_ptr<ManagedUserRefreshTokenFetcher> token_fetcher)
56 : weak_ptr_factory_(this), 60 : weak_ptr_factory_(this),
57 prefs_(prefs), 61 prefs_(prefs),
62 token_fetcher_(token_fetcher.Pass()),
58 pending_managed_user_acknowledged_(false) { 63 pending_managed_user_acknowledged_(false) {
59 pref_change_registrar_.Init(prefs); 64 pref_change_registrar_.Init(prefs);
60 pref_change_registrar_.Add( 65 pref_change_registrar_.Add(
61 prefs::kGoogleServicesLastUsername, 66 prefs::kGoogleServicesLastUsername,
62 base::Bind(&ManagedUserRegistrationService::OnLastSignedInUsernameChange, 67 base::Bind(&ManagedUserRegistrationService::OnLastSignedInUsernameChange,
63 base::Unretained(this))); 68 base::Unretained(this)));
64 } 69 }
65 70
66 ManagedUserRegistrationService::~ManagedUserRegistrationService() { 71 ManagedUserRegistrationService::~ManagedUserRegistrationService() {
67 DCHECK(pending_managed_user_id_.empty()); 72 DCHECK(pending_managed_user_id_.empty());
(...skipping 28 matching lines...) Expand all
96 FROM_HERE, 101 FROM_HERE,
97 SyncChange::ACTION_ADD, 102 SyncChange::ACTION_ADD,
98 CreateLocalSyncData( 103 CreateLocalSyncData(
99 pending_managed_user_id_, base::UTF16ToUTF8(name), false))); 104 pending_managed_user_id_, base::UTF16ToUTF8(name), false)));
100 SyncError error = 105 SyncError error =
101 sync_processor_->ProcessSyncChanges(FROM_HERE, change_list); 106 sync_processor_->ProcessSyncChanges(FROM_HERE, change_list);
102 DCHECK(!error.IsSet()) << error.ToString(); 107 DCHECK(!error.IsSet()) << error.ToString();
103 } 108 }
104 109
105 callback_ = callback; 110 callback_ = callback;
106 OnReceivedToken("abcdef"); // TODO(bauerb): This is a stub implementation. 111 browser_sync::DeviceInfo::CreateLocalDeviceInfo(
112 base::Bind(&ManagedUserRegistrationService::FetchToken,
113 weak_ptr_factory_.GetWeakPtr(), name));
107 } 114 }
108 115
109 ProfileManager::CreateCallback 116 ProfileManager::CreateCallback
110 ManagedUserRegistrationService::GetRegistrationAndInitCallback() { 117 ManagedUserRegistrationService::GetRegistrationAndInitCallback() {
111 return base::Bind(&ManagedUserRegistrationService::OnProfileCreated, 118 return base::Bind(&ManagedUserRegistrationService::OnProfileCreated,
112 weak_ptr_factory_.GetWeakPtr()); 119 weak_ptr_factory_.GetWeakPtr());
113 } 120 }
114 121
115 void ManagedUserRegistrationService::Shutdown() { 122 void ManagedUserRegistrationService::Shutdown() {
116 CancelPendingRegistration(); 123 CancelPendingRegistration();
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 } 268 }
262 269
263 void ManagedUserRegistrationService::OnManagedUserAcknowledged( 270 void ManagedUserRegistrationService::OnManagedUserAcknowledged(
264 const std::string& managed_user_id) { 271 const std::string& managed_user_id) {
265 DCHECK_EQ(pending_managed_user_id_, managed_user_id); 272 DCHECK_EQ(pending_managed_user_id_, managed_user_id);
266 DCHECK(!pending_managed_user_acknowledged_); 273 DCHECK(!pending_managed_user_acknowledged_);
267 pending_managed_user_acknowledged_ = true; 274 pending_managed_user_acknowledged_ = true;
268 DispatchCallbackIfReady(); 275 DispatchCallbackIfReady();
269 } 276 }
270 277
271 void ManagedUserRegistrationService::OnReceivedToken(const std::string& token) { 278 void ManagedUserRegistrationService::FetchToken(
272 DCHECK(pending_managed_user_token_.empty()); 279 const string16& name,
280 const browser_sync::DeviceInfo& device_info) {
281 token_fetcher_->Start(
282 pending_managed_user_id_, name, device_info.client_name(),
283 base::Bind(&ManagedUserRegistrationService::OnReceivedToken,
284 weak_ptr_factory_.GetWeakPtr()));
285 }
286
287 void ManagedUserRegistrationService::OnReceivedToken(
288 const GoogleServiceAuthError& error,
289 const std::string& token) {
290 if (error.state() != GoogleServiceAuthError::NONE) {
291 DispatchCallback(error);
292 return;
293 }
294
295 DCHECK(!token.empty());
273 pending_managed_user_token_ = token; 296 pending_managed_user_token_ = token;
274 DispatchCallbackIfReady(); 297 DispatchCallbackIfReady();
275 } 298 }
276 299
277 void ManagedUserRegistrationService::DispatchCallbackIfReady() { 300 void ManagedUserRegistrationService::DispatchCallbackIfReady() {
278 if (!pending_managed_user_acknowledged_ || 301 if (!pending_managed_user_acknowledged_ ||
279 pending_managed_user_token_.empty()) { 302 pending_managed_user_token_.empty()) {
280 return; 303 return;
281 } 304 }
282 305
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 // disk, and once after all the profile services (including the 339 // disk, and once after all the profile services (including the
317 // ManagedUserService) have been initialized. Ignore the first one. 340 // ManagedUserService) have been initialized. Ignore the first one.
318 if (status != Profile::CREATE_STATUS_INITIALIZED) 341 if (status != Profile::CREATE_STATUS_INITIALIZED)
319 return; 342 return;
320 343
321 ManagedUserService* managed_user_service = 344 ManagedUserService* managed_user_service =
322 ManagedUserServiceFactory::GetForProfile(profile); 345 ManagedUserServiceFactory::GetForProfile(profile);
323 DCHECK(managed_user_service->ProfileIsManaged()); 346 DCHECK(managed_user_service->ProfileIsManaged());
324 managed_user_service->RegisterAndInitSync(this); 347 managed_user_service->RegisterAndInitSync(this);
325 } 348 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698