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

Unified Diff: chrome/browser/signin/chrome_signin_client.cc

Issue 1138143002: Pass Device ID in the oauth2/token request. Keep Device ID in local state on Chrome OS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Final version. Created 5 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/signin/chrome_signin_client.cc
diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc
index a98dd89930a065fbedb05edce03982d03b268889..a7a1d863f94f5d6337c42375ca55a8540965f070 100644
--- a/chrome/browser/signin/chrome_signin_client.cc
+++ b/chrome/browser/signin/chrome_signin_client.cc
@@ -33,6 +33,7 @@
#if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/net/delay_network_call.h"
+#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "components/user_manager/user_manager.h"
#endif
@@ -47,6 +48,27 @@ ChromeSigninClient::ChromeSigninClient(
signin_error_controller_->AddObserver(this);
#if !defined(OS_CHROMEOS)
net::NetworkChangeNotifier::AddNetworkChangeObserver(this);
+#else
+ // UserManager may not exist in unit_tests.
+ if (!user_manager::UserManager::IsInitialized())
+ return;
+
+ const user_manager::User* user =
+ chromeos::ProfileHelper::Get()->GetUserByProfile(profile_);
+ if (!user)
+ return;
+
+ // Need to move device ID from the old location to the new one, if it has not
achuithb 2015/05/12 23:25:01 Should this code be retired after a few milestones
dzhioev (left Google) 2015/05/13 00:25:18 I believe it shouldn't. We can't be sure that ever
+ // been done yet.
+ std::string legacy_device_id =
achuithb 2015/05/12 23:25:01 nit: const
dzhioev (left Google) 2015/05/13 00:25:18 Done.
+ GetPrefs()->GetString(prefs::kGoogleServicesSigninScopedDeviceId);
+ user_manager::UserManager* user_manager = user_manager::UserManager::Get();
achuithb 2015/05/12 23:25:01 nit: could potentially use auto here since the typ
dzhioev (left Google) 2015/05/13 00:25:18 Sure
+ if (!legacy_device_id.empty() &&
+ user_manager->GetKnownUserDeviceId(user->GetUserID()).empty()) {
+ user_manager->SetKnownUserDeviceId(user->GetUserID(), legacy_device_id);
+ }
pavely 2015/05/13 00:05:52 Could you add DCHECK that fires when both device_i
dzhioev (left Google) 2015/05/13 20:24:22 Unfortunately such thing can happen, and I don't k
Nikita (slow) 2015/05/14 06:29:03 This is an expected edge case of a migration flow
Nikita (slow) 2015/05/14 06:34:14 After such edge case happens and newly created dev
+ GetPrefs()->SetString(prefs::kGoogleServicesSigninScopedDeviceId,
+ std::string());
#endif
}
@@ -113,6 +135,7 @@ std::string ChromeSigninClient::GetSigninScopedDeviceId() {
return std::string();
}
+#if !defined(OS_CHROMEOS)
std::string signin_scoped_device_id =
GetPrefs()->GetString(prefs::kGoogleServicesSigninScopedDeviceId);
if (signin_scoped_device_id.empty()) {
@@ -123,6 +146,22 @@ std::string ChromeSigninClient::GetSigninScopedDeviceId() {
signin_scoped_device_id);
}
return signin_scoped_device_id;
+#else
+ // UserManager may not exist in unit_tests.
+ if (!user_manager::UserManager::IsInitialized())
+ return std::string();
+
+ const user_manager::User* user =
+ chromeos::ProfileHelper::Get()->GetUserByProfile(profile_);
+ if (!user)
+ return std::string();
+
+ std::string signin_scoped_device_id =
achuithb 2015/05/12 23:25:01 nit: const
dzhioev (left Google) 2015/05/13 00:25:18 Done.
+ user_manager::UserManager::Get()->GetKnownUserDeviceId(user->GetUserID());
+ if (signin_scoped_device_id.empty())
+ LOG(ERROR) << "Device ID is not set for user.";
pavely 2015/05/13 00:05:52 How device_id will be set for users that went stra
dzhioev (left Google) 2015/05/13 20:24:22 Oh, I missed this case. We can catch this by check
+ return signin_scoped_device_id;
+#endif
}
void ChromeSigninClient::OnSignedOut() {

Powered by Google App Engine
This is Rietveld 408576698