summaryrefslogtreecommitdiffstats
path: root/sync/internal_api
diff options
context:
space:
mode:
authorpavely <pavely@chromium.org>2015-12-22 22:47:19 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-23 06:48:40 +0000
commit7623e624861d45f61632aaba650b4182c5d022ff (patch)
tree10321308c997c3260154245c7a268667e85ddbc0 /sync/internal_api
parente7259757073db5b53542ce4896d65ea208c8060d (diff)
downloadchromium_src-7623e624861d45f61632aaba650b4182c5d022ff.zip
chromium_src-7623e624861d45f61632aaba650b4182c5d022ff.tar.gz
chromium_src-7623e624861d45f61632aaba650b4182c5d022ff.tar.bz2
[Sync] Use account_id instead of username in a few places in sync
Currently sync gets username from SigninManagerBase::GetAuthenticatedAccountInfo(). In some cases it returns empty result which prevents sync backend from starting. Username is used in following places: - passed to sync directory database to be stored as share id - passed to server in ClientToServerMessage.share - passed to attachment uploader/downloader to be used as account_id when requesting access tokens The change is to switch to more stable SigninManagerBase::GetAuthenticatedAccountId(). account_id will be passed to directory and attachment uploader/downloader. Username is still used in communications with server but it is not enforced to be nonempty. BUG=554551 R=zea@chromium.org Review URL: https://codereview.chromium.org/1544893002 Cr-Commit-Position: refs/heads/master@{#366721}
Diffstat (limited to 'sync/internal_api')
-rw-r--r--sync/internal_api/public/sync_manager.h3
-rw-r--r--sync/internal_api/sync_manager_impl.cc14
-rw-r--r--sync/internal_api/sync_manager_impl_unittest.cc1
3 files changed, 11 insertions, 7 deletions
diff --git a/sync/internal_api/public/sync_manager.h b/sync/internal_api/public/sync_manager.h
index 7e75983..e1cfc29 100644
--- a/sync/internal_api/public/sync_manager.h
+++ b/sync/internal_api/public/sync_manager.h
@@ -68,6 +68,9 @@ struct SYNC_EXPORT SyncCredentials {
SyncCredentials();
~SyncCredentials();
+ // Account_id of signed in account.
+ std::string account_id;
+
// The email associated with this account.
std::string email;
diff --git a/sync/internal_api/sync_manager_impl.cc b/sync/internal_api/sync_manager_impl.cc
index 046ee3d..13e4244 100644
--- a/sync/internal_api/sync_manager_impl.cc
+++ b/sync/internal_api/sync_manager_impl.cc
@@ -228,7 +228,7 @@ void SyncManagerImpl::Init(InitArgs* args) {
CHECK(!initialized_);
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(args->post_factory.get());
- DCHECK(!args->credentials.email.empty());
+ DCHECK(!args->credentials.account_id.empty());
DCHECK(!args->credentials.sync_token.empty());
DCHECK(!args->credentials.scope_set.empty());
DCHECK(args->cancelation_signal);
@@ -263,7 +263,7 @@ void SyncManagerImpl::Init(InitArgs* args) {
scoped_ptr<syncable::DirectoryBackingStore> backing_store =
args->internal_components_factory->BuildDirectoryBackingStore(
InternalComponentsFactory::STORAGE_ON_DISK,
- args->credentials.email, absolute_db_path).Pass();
+ args->credentials.account_id, absolute_db_path).Pass();
DCHECK(backing_store.get());
share_.directory.reset(
@@ -279,9 +279,9 @@ void SyncManagerImpl::Init(InitArgs* args) {
// sync token so clear sync_token from the UserShare.
share_.sync_credentials.sync_token = "";
- const std::string& username = args->credentials.email;
- DVLOG(1) << "Username: " << username;
- if (!OpenDirectory(username)) {
+ DVLOG(1) << "Username: " << args->credentials.email;
+ DVLOG(1) << "AccountId: " << args->credentials.account_id;
+ if (!OpenDirectory(args->credentials.account_id)) {
NotifyInitializationFailure();
LOG(ERROR) << "Sync manager initialization failed!";
return;
@@ -337,7 +337,6 @@ void SyncManagerImpl::Init(InitArgs* args) {
model_type_registry_.get(),
args->invalidator_client_id)
.Pass();
- session_context_->set_account_name(args->credentials.email);
scheduler_ = args->internal_components_factory->BuildScheduler(
name_, session_context_.get(), args->cancelation_signal).Pass();
@@ -506,9 +505,10 @@ bool SyncManagerImpl::PurgeDisabledTypes(
void SyncManagerImpl::UpdateCredentials(const SyncCredentials& credentials) {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(initialized_);
- DCHECK(!credentials.email.empty());
+ DCHECK(!credentials.account_id.empty());
DCHECK(!credentials.sync_token.empty());
DCHECK(!credentials.scope_set.empty());
+ session_context_->set_account_name(credentials.email);
observing_network_connectivity_changes_ = true;
if (!connection_manager_->SetAuthToken(credentials.sync_token))
diff --git a/sync/internal_api/sync_manager_impl_unittest.cc b/sync/internal_api/sync_manager_impl_unittest.cc
index 4f08cb6..f231757 100644
--- a/sync/internal_api/sync_manager_impl_unittest.cc
+++ b/sync/internal_api/sync_manager_impl_unittest.cc
@@ -882,6 +882,7 @@ class SyncManagerTest : public testing::Test,
extensions_activity_ = new ExtensionsActivity();
SyncCredentials credentials;
+ credentials.account_id = "foo@bar.com";
credentials.email = "foo@bar.com";
credentials.sync_token = "sometoken";
OAuth2TokenService::ScopeSet scope_set;