| Index: chrome/browser/sync/sessions/sync_session.cc
|
| diff --git a/chrome/browser/sync/sessions/sync_session.cc b/chrome/browser/sync/sessions/sync_session.cc
|
| index da6412f7809116448143399aa3b1656ab566d924..888e46ff964241bd07a9b70e4dbc6163d2557b14 100644
|
| --- a/chrome/browser/sync/sessions/sync_session.cc
|
| +++ b/chrome/browser/sync/sessions/sync_session.cc
|
| @@ -24,6 +24,21 @@ SyncSession::SyncSession(SyncSessionContext* context, Delegate* delegate,
|
|
|
| SyncSession::~SyncSession() {}
|
|
|
| +void SyncSession::Coalesce(const SyncSession* session) {
|
| + if (context_ != session->context() || delegate_ != session->delegate_) {
|
| + NOTREACHED();
|
| + return;
|
| + }
|
| +
|
| + source_ = SyncSourceInfo(session->source_.first,
|
| + source_.second | session->source_.second);
|
| + // TODO(tim): Update routing_info_ and workers_.
|
| +}
|
| +
|
| +void SyncSession::ResetTransientState() {
|
| + status_controller_.reset(new StatusController(routing_info_));
|
| +}
|
| +
|
| SyncSessionSnapshot SyncSession::TakeSnapshot() const {
|
| syncable::ScopedDirLookup dir(context_->directory_manager(),
|
| context_->account_name());
|
| @@ -55,7 +70,8 @@ SyncSessionSnapshot SyncSession::TakeSnapshot() const {
|
| delegate_->IsSyncingCurrentlySilenced(),
|
| status_controller_->unsynced_handles().size(),
|
| status_controller_->TotalNumConflictingItems(),
|
| - status_controller_->did_commit_items());
|
| + status_controller_->did_commit_items(),
|
| + source_);
|
| }
|
|
|
| SyncSourceInfo SyncSession::TestAndSetSource() {
|
|
|