Index: components/browser_sync/profile_sync_service.cc |
diff --git a/components/browser_sync/profile_sync_service.cc b/components/browser_sync/profile_sync_service.cc |
index 72c18a837470aef623b750c907c6eb6887be7cb4..3cf073b6ce9c9e007fc67b4150ed4fa0369b9a08 100644 |
--- a/components/browser_sync/profile_sync_service.cc |
+++ b/components/browser_sync/profile_sync_service.cc |
@@ -37,6 +37,7 @@ |
#include "components/signin/core/browser/profile_oauth2_token_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/strings/grit/components_strings.h" |
#include "components/sync/base/bind_to_task_runner.h" |
#include "components/sync/base/cryptographer.h" |
@@ -1962,6 +1963,14 @@ void ProfileSyncService::GoogleSigninSucceededWithPassword( |
// Track the fact that we're still waiting for auth to complete. |
is_auth_in_progress_ = true; |
} |
+ |
+ if (switches::IsAccountConsistencyDiceEnabled() && |
+ oauth2_token_service_->RefreshTokenIsAvailable(account_id)) { |
+ // When Dice is enabled, the refresh token may be available before the user |
+ // enables sync. Start sync if the refresh token is already available in the |
+ // token service when the authenticated account is set. |
+ OnRefreshTokenAvailable(account_id); |
+ } |
} |
void ProfileSyncService::GoogleSignedOut(const std::string& account_id, |