Index: chrome/browser/managed_mode/managed_user_registration_service.cc |
diff --git a/chrome/browser/managed_mode/managed_user_registration_service.cc b/chrome/browser/managed_mode/managed_user_registration_service.cc |
index a4c9eafd176acf63791acf0d13bc83856bd2133a..093d2d1f24e9b65a6b8dc074de2c9becc90f3575 100644 |
--- a/chrome/browser/managed_mode/managed_user_registration_service.cc |
+++ b/chrome/browser/managed_mode/managed_user_registration_service.cc |
@@ -9,11 +9,14 @@ |
#include "base/prefs/pref_service.h" |
#include "base/rand_util.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "chrome/browser/managed_mode/managed_user_refresh_token_fetcher.h" |
#include "chrome/browser/managed_mode/managed_user_service.h" |
#include "chrome/browser/managed_mode/managed_user_service_factory.h" |
#include "chrome/browser/prefs/scoped_user_pref_update.h" |
+#include "chrome/browser/sync/glue/device_info.h" |
#include "chrome/common/pref_names.h" |
#include "components/user_prefs/pref_registry_syncable.h" |
+#include "google_apis/gaia/gaia_urls.h" |
#include "google_apis/gaia/google_service_auth_error.h" |
#include "sync/api/sync_change.h" |
#include "sync/api/sync_error_factory.h" |
@@ -52,9 +55,11 @@ SyncData CreateLocalSyncData(const std::string& id, |
} // namespace |
ManagedUserRegistrationService::ManagedUserRegistrationService( |
- PrefService* prefs) |
+ PrefService* prefs, |
+ scoped_ptr<ManagedUserRefreshTokenFetcher> token_fetcher) |
: weak_ptr_factory_(this), |
prefs_(prefs), |
+ token_fetcher_(token_fetcher.Pass()), |
pending_managed_user_acknowledged_(false) { |
pref_change_registrar_.Init(prefs); |
pref_change_registrar_.Add( |
@@ -103,7 +108,9 @@ void ManagedUserRegistrationService::Register( |
} |
callback_ = callback; |
- OnReceivedToken("abcdef"); // TODO(bauerb): This is a stub implementation. |
+ browser_sync::DeviceInfo::CreateLocalDeviceInfo( |
+ base::Bind(&ManagedUserRegistrationService::FetchToken, |
+ weak_ptr_factory_.GetWeakPtr(), name)); |
} |
ProfileManager::CreateCallback |
@@ -268,8 +275,24 @@ void ManagedUserRegistrationService::OnManagedUserAcknowledged( |
DispatchCallbackIfReady(); |
} |
-void ManagedUserRegistrationService::OnReceivedToken(const std::string& token) { |
- DCHECK(pending_managed_user_token_.empty()); |
+void ManagedUserRegistrationService::FetchToken( |
+ const string16& name, |
+ const browser_sync::DeviceInfo& device_info) { |
+ token_fetcher_->Start( |
+ pending_managed_user_id_, name, device_info.client_name(), |
+ base::Bind(&ManagedUserRegistrationService::OnReceivedToken, |
+ weak_ptr_factory_.GetWeakPtr())); |
+} |
+ |
+void ManagedUserRegistrationService::OnReceivedToken( |
+ const GoogleServiceAuthError& error, |
+ const std::string& token) { |
+ if (error.state() != GoogleServiceAuthError::NONE) { |
+ DispatchCallback(error); |
+ return; |
+ } |
+ |
+ DCHECK(!token.empty()); |
pending_managed_user_token_ = token; |
DispatchCallbackIfReady(); |
} |