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

Side by Side Diff: chrome/browser/sync/profile_sync_service.cc

Issue 10911084: Implement Invalidator::Acknowledge (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/sync/profile_sync_service.h" 5 #include "chrome/browser/sync/profile_sync_service.h"
6 6
7 #include <cstddef> 7 #include <cstddef>
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <utility> 10 #include <utility>
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 InitializeBackend(!HasSyncSetupCompleted()); 491 InitializeBackend(!HasSyncSetupCompleted());
492 492
493 // |backend_| may end up being NULL here in tests (in synchronous 493 // |backend_| may end up being NULL here in tests (in synchronous
494 // initialization mode). 494 // initialization mode).
495 // 495 //
496 // TODO(akalin): Fix this horribly non-intuitive behavior (see 496 // TODO(akalin): Fix this horribly non-intuitive behavior (see
497 // http://crbug.com/140354). 497 // http://crbug.com/140354).
498 if (backend_.get()) { 498 if (backend_.get()) {
499 backend_->UpdateRegisteredInvalidationIds( 499 backend_->UpdateRegisteredInvalidationIds(
500 invalidator_registrar_->GetAllRegisteredIds()); 500 invalidator_registrar_->GetAllRegisteredIds());
501 for (AckHandleReplayQueue::const_iterator it = ack_replay_queue_.begin();
rlarocque 2013/02/12 21:48:04 I don't like the way this code (or the line above
dcheng 2013/02/12 22:39:28 I don't mind fixing this, but perhaps it would be
502 it != ack_replay_queue_.end(); ++it) {
503 backend_->AcknowledgeInvalidation(it->first, it->second);
504 }
505 ack_replay_queue_.clear();
501 } 506 }
502 507
503 if (!sync_global_error_.get()) { 508 if (!sync_global_error_.get()) {
504 #if !defined(OS_ANDROID) 509 #if !defined(OS_ANDROID)
505 sync_global_error_.reset(new SyncGlobalError(this, signin())); 510 sync_global_error_.reset(new SyncGlobalError(this, signin()));
506 #endif 511 #endif
507 GlobalErrorServiceFactory::GetForProfile(profile_)->AddGlobalError( 512 GlobalErrorServiceFactory::GetForProfile(profile_)->AddGlobalError(
508 sync_global_error_.get()); 513 sync_global_error_.get());
509 AddObserver(sync_global_error_.get()); 514 AddObserver(sync_global_error_.get());
510 } 515 }
(...skipping 15 matching lines...) Expand all
526 backend_->UpdateRegisteredInvalidationIds( 531 backend_->UpdateRegisteredInvalidationIds(
527 invalidator_registrar_->GetAllRegisteredIds()); 532 invalidator_registrar_->GetAllRegisteredIds());
528 } 533 }
529 } 534 }
530 535
531 void ProfileSyncService::UnregisterInvalidationHandler( 536 void ProfileSyncService::UnregisterInvalidationHandler(
532 syncer::InvalidationHandler* handler) { 537 syncer::InvalidationHandler* handler) {
533 invalidator_registrar_->UnregisterHandler(handler); 538 invalidator_registrar_->UnregisterHandler(handler);
534 } 539 }
535 540
541 void ProfileSyncService::AcknowledgeInvalidation(
542 const invalidation::ObjectId& id,
543 const syncer::AckHandle& ack_handle) {
544 if (backend_.get()) {
545 backend_->AcknowledgeInvalidation(id, ack_handle);
546 } else {
547 // If |backend_| is NULL, save the acknowledgements to replay when
548 // it's created and initialized.
549 ack_replay_queue_.push_back(std::make_pair(id, ack_handle));
550 }
551 }
552
536 syncer::InvalidatorState ProfileSyncService::GetInvalidatorState() const { 553 syncer::InvalidatorState ProfileSyncService::GetInvalidatorState() const {
537 return invalidator_registrar_->GetInvalidatorState(); 554 return invalidator_registrar_->GetInvalidatorState();
538 } 555 }
539 556
540 void ProfileSyncService::EmitInvalidationForTest( 557 void ProfileSyncService::EmitInvalidationForTest(
541 const invalidation::ObjectId& id, 558 const invalidation::ObjectId& id,
542 const std::string& payload) { 559 const std::string& payload) {
543 syncer::ObjectIdSet notify_ids; 560 syncer::ObjectIdSet notify_ids;
544 notify_ids.insert(id); 561 notify_ids.insert(id);
545 562
(...skipping 1420 matching lines...) Expand 10 before | Expand all | Expand 10 after
1966 // See http://stackoverflow.com/questions/6224121/is-new-this-myclass-undefine d-behaviour-after-directly-calling-the-destru. 1983 // See http://stackoverflow.com/questions/6224121/is-new-this-myclass-undefine d-behaviour-after-directly-calling-the-destru.
1967 ProfileSyncService* old_this = this; 1984 ProfileSyncService* old_this = this;
1968 this->~ProfileSyncService(); 1985 this->~ProfileSyncService();
1969 new(old_this) ProfileSyncService( 1986 new(old_this) ProfileSyncService(
1970 new ProfileSyncComponentsFactoryImpl(profile, 1987 new ProfileSyncComponentsFactoryImpl(profile,
1971 CommandLine::ForCurrentProcess()), 1988 CommandLine::ForCurrentProcess()),
1972 profile, 1989 profile,
1973 signin, 1990 signin,
1974 behavior); 1991 behavior);
1975 } 1992 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698