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

Unified Diff: chrome/browser/ui/sync/one_click_signin_sync_starter.cc

Issue 2953253002: [DICE] Enable sync for an account that is already present in the token service. (Closed)
Patch Set: Address code review Created 3 years, 5 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/ui/sync/one_click_signin_sync_starter.cc
diff --git a/chrome/browser/ui/sync/one_click_signin_sync_starter.cc b/chrome/browser/ui/sync/one_click_signin_sync_starter.cc
index 3373b310b69707e0752c9970dd36fda9766a6c5b..14b9626140883f234d429a0c11ea093650c61bfc 100644
--- a/chrome/browser/ui/sync/one_click_signin_sync_starter.cc
+++ b/chrome/browser/ui/sync/one_click_signin_sync_starter.cc
@@ -37,6 +37,7 @@
#include "components/prefs/pref_service.h"
#include "components/signin/core/browser/signin_manager.h"
#include "components/signin/core/browser/signin_metrics.h"
+#include "components/signin/core/common/profile_management_switches.h"
#include "components/sync/base/sync_prefs.h"
#include "net/base/url_util.h"
#include "net/url_request/url_request_context_getter.h"
@@ -98,6 +99,7 @@ OneClickSigninSyncStarter::OneClickSigninSyncStarter(
BrowserList::AddObserver(this);
Initialize(profile, browser);
+ DCHECK(!refresh_token.empty() || switches::IsAccountConsistencyDiceEnabled());
SigninManagerFactory::GetForProfile(profile_)->StartSignInWithRefreshToken(
refresh_token, gaia_id, email, password,
base::Bind(&OneClickSigninSyncStarter::ConfirmSignin,
@@ -141,7 +143,6 @@ void OneClickSigninSyncStarter::Initialize(Profile* profile, Browser* browser) {
void OneClickSigninSyncStarter::ConfirmSignin(ProfileMode profile_mode,
const std::string& oauth_token) {
- DCHECK(!oauth_token.empty());
SigninManager* signin = SigninManagerFactory::GetForProfile(profile_);
if (signin->IsAuthenticated()) {
// The user is already signed in - just tell SigninManager to continue
@@ -158,10 +159,19 @@ void OneClickSigninSyncStarter::ConfirmSignin(ProfileMode profile_mode,
// initialized.
policy::UserPolicySigninService* policy_service =
policy::UserPolicySigninServiceFactory::GetForProfile(profile_);
- policy_service->RegisterForPolicy(
- signin->GetUsernameForAuthInProgress(), oauth_token,
- base::Bind(&OneClickSigninSyncStarter::OnRegisteredForPolicy,
- weak_pointer_factory_.GetWeakPtr()));
+ if (oauth_token.empty()) {
+ DCHECK(switches::IsAccountConsistencyDiceEnabled());
+ policy_service->RegisterForPolicyWithAccountId(
+ signin->GetUsernameForAuthInProgress(),
+ signin->GetAccountIdForAuthInProgress(),
+ base::Bind(&OneClickSigninSyncStarter::OnRegisteredForPolicy,
+ weak_pointer_factory_.GetWeakPtr()));
+ } else {
+ policy_service->RegisterForPolicyWithLoginToken(
+ signin->GetUsernameForAuthInProgress(), oauth_token,
+ base::Bind(&OneClickSigninSyncStarter::OnRegisteredForPolicy,
+ weak_pointer_factory_.GetWeakPtr()));
+ }
break;
}
case NEW_PROFILE:

Powered by Google App Engine
This is Rietveld 408576698