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

Side by Side Diff: chrome/browser/sync/glue/sync_backend_host_core.cc

Issue 322333004: sync: Inject sync/'s dependency on invalidations (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed upload Created 6 years, 6 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
« no previous file with comments | « chrome/browser/sync/glue/invalidation_adapter.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/glue/sync_backend_host_core.h" 5 #include "chrome/browser/sync/glue/sync_backend_host_core.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "chrome/browser/sync/glue/device_info.h" 9 #include "chrome/browser/sync/glue/device_info.h"
10 #include "chrome/browser/sync/glue/invalidation_adapter.h"
10 #include "chrome/browser/sync/glue/sync_backend_registrar.h" 11 #include "chrome/browser/sync/glue/sync_backend_registrar.h"
11 #include "chrome/browser/sync/glue/synced_device_tracker.h" 12 #include "chrome/browser/sync/glue/synced_device_tracker.h"
12 #include "chrome/common/chrome_version_info.h" 13 #include "chrome/common/chrome_version_info.h"
13 #include "sync/internal_api/public/events/protocol_event.h" 14 #include "sync/internal_api/public/events/protocol_event.h"
14 #include "sync/internal_api/public/http_post_provider_factory.h" 15 #include "sync/internal_api/public/http_post_provider_factory.h"
15 #include "sync/internal_api/public/internal_components_factory.h" 16 #include "sync/internal_api/public/internal_components_factory.h"
16 #include "sync/internal_api/public/sessions/commit_counters.h" 17 #include "sync/internal_api/public/sessions/commit_counters.h"
17 #include "sync/internal_api/public/sessions/status_counters.h" 18 #include "sync/internal_api/public/sessions/status_counters.h"
18 #include "sync/internal_api/public/sessions/sync_session_snapshot.h" 19 #include "sync/internal_api/public/sessions/sync_session_snapshot.h"
19 #include "sync/internal_api/public/sessions/update_counters.h" 20 #include "sync/internal_api/public/sessions/update_counters.h"
20 #include "sync/internal_api/public/sync_core_proxy.h" 21 #include "sync/internal_api/public/sync_core_proxy.h"
21 #include "sync/internal_api/public/sync_manager.h" 22 #include "sync/internal_api/public/sync_manager.h"
22 #include "sync/internal_api/public/sync_manager_factory.h" 23 #include "sync/internal_api/public/sync_manager_factory.h"
24 #include "sync/notifier/invalidation_util.h"
25 #include "sync/notifier/object_id_invalidation_map.h"
23 26
24 // Helper macros to log with the syncer thread name; useful when there 27 // Helper macros to log with the syncer thread name; useful when there
25 // are multiple syncers involved. 28 // are multiple syncers involved.
26 29
27 #define SLOG(severity) LOG(severity) << name_ << ": " 30 #define SLOG(severity) LOG(severity) << name_ << ": "
28 31
29 #define SDVLOG(verbose_level) DVLOG(verbose_level) << name_ << ": " 32 #define SDVLOG(verbose_level) DVLOG(verbose_level) << name_ << ": "
30 33
31 static const int kSaveChangesIntervalSeconds = 10; 34 static const int kSaveChangesIntervalSeconds = 10;
32 35
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 365
363 void SyncBackendHostCore::DoOnInvalidatorStateChange( 366 void SyncBackendHostCore::DoOnInvalidatorStateChange(
364 syncer::InvalidatorState state) { 367 syncer::InvalidatorState state) {
365 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); 368 DCHECK_EQ(base::MessageLoop::current(), sync_loop_);
366 sync_manager_->OnInvalidatorStateChange(state); 369 sync_manager_->OnInvalidatorStateChange(state);
367 } 370 }
368 371
369 void SyncBackendHostCore::DoOnIncomingInvalidation( 372 void SyncBackendHostCore::DoOnIncomingInvalidation(
370 const syncer::ObjectIdInvalidationMap& invalidation_map) { 373 const syncer::ObjectIdInvalidationMap& invalidation_map) {
371 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); 374 DCHECK_EQ(base::MessageLoop::current(), sync_loop_);
372 sync_manager_->OnIncomingInvalidation(invalidation_map); 375
376 syncer::ObjectIdSet ids = invalidation_map.GetObjectIds();
377 for (syncer::ObjectIdSet::const_iterator ids_it = ids.begin();
378 ids_it != ids.end();
379 ++ids_it) {
380 syncer::ModelType type;
381 if (!NotificationTypeToRealModelType(ids_it->name(), &type)) {
382 DLOG(WARNING) << "Notification has invalid id: "
383 << syncer::ObjectIdToString(*ids_it);
384 } else {
tim (not reviewing) 2014/06/20 20:47:54 This may end up being a little less efficient sinc
385 syncer::SingleObjectInvalidationSet invalidation_set =
386 invalidation_map.ForObject(*ids_it);
387 for (syncer::SingleObjectInvalidationSet::const_iterator inv_it =
388 invalidation_set.begin();
389 inv_it != invalidation_set.end();
390 ++inv_it) {
391 scoped_ptr<syncer::InvalidationInterface> inv_adapter(
392 new InvalidationAdapter(*inv_it));
393 sync_manager_->OnIncomingInvalidation(type, inv_adapter.Pass());
394 }
395 }
396 }
373 } 397 }
374 398
375 void SyncBackendHostCore::DoInitialize( 399 void SyncBackendHostCore::DoInitialize(
376 scoped_ptr<DoInitializeOptions> options) { 400 scoped_ptr<DoInitializeOptions> options) {
377 DCHECK(!sync_loop_); 401 DCHECK(!sync_loop_);
378 sync_loop_ = options->sync_loop; 402 sync_loop_ = options->sync_loop;
379 DCHECK(sync_loop_); 403 DCHECK(sync_loop_);
380 404
381 // Finish initializing the HttpBridgeFactory. We do this here because 405 // Finish initializing the HttpBridgeFactory. We do this here because
382 // building the user agent may block on some platforms. 406 // building the user agent may block on some platforms.
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 this, &SyncBackendHostCore::SaveChanges); 742 this, &SyncBackendHostCore::SaveChanges);
719 } 743 }
720 744
721 void SyncBackendHostCore::SaveChanges() { 745 void SyncBackendHostCore::SaveChanges() {
722 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); 746 DCHECK_EQ(base::MessageLoop::current(), sync_loop_);
723 sync_manager_->SaveChanges(); 747 sync_manager_->SaveChanges();
724 } 748 }
725 749
726 } // namespace browser_sync 750 } // namespace browser_sync
727 751
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/invalidation_adapter.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698