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: sync/internal_api/sync_manager_impl.cc

Issue 10875064: Rename SyncNotifier->Invalidator and SyncNotifierObserver->InvalidationHandler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to ToT for landing Created 8 years, 3 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 | « sync/internal_api/sync_manager_impl.h ('k') | sync/internal_api/sync_manager_impl_unittest.cc » ('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 (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 "sync/internal_api/sync_manager_impl.h" 5 #include "sync/internal_api/sync_manager_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 22 matching lines...) Expand all
33 #include "sync/internal_api/public/util/experiments.h" 33 #include "sync/internal_api/public/util/experiments.h"
34 #include "sync/internal_api/public/write_node.h" 34 #include "sync/internal_api/public/write_node.h"
35 #include "sync/internal_api/public/write_transaction.h" 35 #include "sync/internal_api/public/write_transaction.h"
36 #include "sync/internal_api/syncapi_internal.h" 36 #include "sync/internal_api/syncapi_internal.h"
37 #include "sync/internal_api/syncapi_server_connection_manager.h" 37 #include "sync/internal_api/syncapi_server_connection_manager.h"
38 #include "sync/js/js_arg_list.h" 38 #include "sync/js/js_arg_list.h"
39 #include "sync/js/js_event_details.h" 39 #include "sync/js/js_event_details.h"
40 #include "sync/js/js_event_handler.h" 40 #include "sync/js/js_event_handler.h"
41 #include "sync/js/js_reply_handler.h" 41 #include "sync/js/js_reply_handler.h"
42 #include "sync/notifier/invalidation_util.h" 42 #include "sync/notifier/invalidation_util.h"
43 #include "sync/notifier/sync_notifier.h" 43 #include "sync/notifier/invalidator.h"
44 #include "sync/protocol/proto_value_conversions.h" 44 #include "sync/protocol/proto_value_conversions.h"
45 #include "sync/protocol/sync.pb.h" 45 #include "sync/protocol/sync.pb.h"
46 #include "sync/syncable/directory.h" 46 #include "sync/syncable/directory.h"
47 #include "sync/syncable/entry.h" 47 #include "sync/syncable/entry.h"
48 #include "sync/syncable/in_memory_directory_backing_store.h" 48 #include "sync/syncable/in_memory_directory_backing_store.h"
49 #include "sync/syncable/on_disk_directory_backing_store.h" 49 #include "sync/syncable/on_disk_directory_backing_store.h"
50 #include "sync/util/get_session_name.h" 50 #include "sync/util/get_session_name.h"
51 51
52 using base::TimeDelta; 52 using base::TimeDelta;
53 using sync_pb::GetUpdatesCallerInfo; 53 using sync_pb::GetUpdatesCallerInfo;
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 const WeakHandle<JsEventHandler>& event_handler, 342 const WeakHandle<JsEventHandler>& event_handler,
343 const std::string& sync_server_and_path, 343 const std::string& sync_server_and_path,
344 int port, 344 int port,
345 bool use_ssl, 345 bool use_ssl,
346 const scoped_refptr<base::TaskRunner>& blocking_task_runner, 346 const scoped_refptr<base::TaskRunner>& blocking_task_runner,
347 scoped_ptr<HttpPostProviderFactory> post_factory, 347 scoped_ptr<HttpPostProviderFactory> post_factory,
348 const std::vector<ModelSafeWorker*>& workers, 348 const std::vector<ModelSafeWorker*>& workers,
349 ExtensionsActivityMonitor* extensions_activity_monitor, 349 ExtensionsActivityMonitor* extensions_activity_monitor,
350 SyncManager::ChangeDelegate* change_delegate, 350 SyncManager::ChangeDelegate* change_delegate,
351 const SyncCredentials& credentials, 351 const SyncCredentials& credentials,
352 scoped_ptr<SyncNotifier> sync_notifier, 352 scoped_ptr<Invalidator> invalidator,
353 const std::string& restored_key_for_bootstrapping, 353 const std::string& restored_key_for_bootstrapping,
354 const std::string& restored_keystore_key_for_bootstrapping, 354 const std::string& restored_keystore_key_for_bootstrapping,
355 scoped_ptr<InternalComponentsFactory> internal_components_factory, 355 scoped_ptr<InternalComponentsFactory> internal_components_factory,
356 Encryptor* encryptor, 356 Encryptor* encryptor,
357 UnrecoverableErrorHandler* unrecoverable_error_handler, 357 UnrecoverableErrorHandler* unrecoverable_error_handler,
358 ReportUnrecoverableErrorFunction report_unrecoverable_error_function) { 358 ReportUnrecoverableErrorFunction report_unrecoverable_error_function) {
359 CHECK(!initialized_); 359 CHECK(!initialized_);
360 DCHECK(thread_checker_.CalledOnValidThread()); 360 DCHECK(thread_checker_.CalledOnValidThread());
361 DCHECK(post_factory.get()); 361 DCHECK(post_factory.get());
362 DCHECK(!credentials.email.empty()); 362 DCHECK(!credentials.email.empty());
363 DCHECK(!credentials.sync_token.empty()); 363 DCHECK(!credentials.sync_token.empty());
364 DVLOG(1) << "SyncManager starting Init..."; 364 DVLOG(1) << "SyncManager starting Init...";
365 365
366 weak_handle_this_ = MakeWeakHandle(weak_ptr_factory_.GetWeakPtr()); 366 weak_handle_this_ = MakeWeakHandle(weak_ptr_factory_.GetWeakPtr());
367 367
368 blocking_task_runner_ = blocking_task_runner; 368 blocking_task_runner_ = blocking_task_runner;
369 369
370 change_delegate_ = change_delegate; 370 change_delegate_ = change_delegate;
371 371
372 sync_notifier_ = sync_notifier.Pass(); 372 invalidator_ = invalidator.Pass();
373 sync_notifier_->RegisterHandler(this); 373 invalidator_->RegisterHandler(this);
374 374
375 AddObserver(&js_sync_manager_observer_); 375 AddObserver(&js_sync_manager_observer_);
376 SetJsEventHandler(event_handler); 376 SetJsEventHandler(event_handler);
377 377
378 AddObserver(&debug_info_event_listener_); 378 AddObserver(&debug_info_event_listener_);
379 379
380 database_path_ = database_location.Append( 380 database_path_ = database_location.Append(
381 syncable::Directory::kSyncDatabaseFilename); 381 syncable::Directory::kSyncDatabaseFilename);
382 encryptor_ = encryptor; 382 encryptor_ = encryptor;
383 unrecoverable_error_handler_ = unrecoverable_error_handler; 383 unrecoverable_error_handler_ = unrecoverable_error_handler;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 418
419 connection_manager_.reset(new SyncAPIServerConnectionManager( 419 connection_manager_.reset(new SyncAPIServerConnectionManager(
420 sync_server_and_path, port, use_ssl, post_factory.release())); 420 sync_server_and_path, port, use_ssl, post_factory.release()));
421 connection_manager_->set_client_id(directory()->cache_guid()); 421 connection_manager_->set_client_id(directory()->cache_guid());
422 connection_manager_->AddListener(this); 422 connection_manager_->AddListener(this);
423 423
424 // Retrieve and set the sync notifier state. 424 // Retrieve and set the sync notifier state.
425 std::string unique_id = directory()->cache_guid(); 425 std::string unique_id = directory()->cache_guid();
426 DVLOG(1) << "Read notification unique ID: " << unique_id; 426 DVLOG(1) << "Read notification unique ID: " << unique_id;
427 allstatus_.SetUniqueId(unique_id); 427 allstatus_.SetUniqueId(unique_id);
428 sync_notifier_->SetUniqueId(unique_id); 428 invalidator_->SetUniqueId(unique_id);
429 429
430 std::string state = directory()->GetNotificationState(); 430 std::string state = directory()->GetNotificationState();
431 if (VLOG_IS_ON(1)) { 431 if (VLOG_IS_ON(1)) {
432 std::string encoded_state; 432 std::string encoded_state;
433 base::Base64Encode(state, &encoded_state); 433 base::Base64Encode(state, &encoded_state);
434 DVLOG(1) << "Read notification state: " << encoded_state; 434 DVLOG(1) << "Read notification state: " << encoded_state;
435 } 435 }
436 436
437 // TODO(tim): Remove once invalidation state has been migrated to new 437 // TODO(tim): Remove once invalidation state has been migrated to new
438 // InvalidationStateTracker store. Bug 124140. 438 // InvalidationStateTracker store. Bug 124140.
439 sync_notifier_->SetStateDeprecated(state); 439 invalidator_->SetStateDeprecated(state);
440 440
441 // Build a SyncSessionContext and store the worker in it. 441 // Build a SyncSessionContext and store the worker in it.
442 DVLOG(1) << "Sync is bringing up SyncSessionContext."; 442 DVLOG(1) << "Sync is bringing up SyncSessionContext.";
443 std::vector<SyncEngineEventListener*> listeners; 443 std::vector<SyncEngineEventListener*> listeners;
444 listeners.push_back(&allstatus_); 444 listeners.push_back(&allstatus_);
445 listeners.push_back(this); 445 listeners.push_back(this);
446 session_context_ = internal_components_factory->BuildContext( 446 session_context_ = internal_components_factory->BuildContext(
447 connection_manager_.get(), 447 connection_manager_.get(),
448 directory(), 448 directory(),
449 workers, 449 workers,
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 DCHECK(thread_checker_.CalledOnValidThread()); 646 DCHECK(thread_checker_.CalledOnValidThread());
647 DCHECK(initialized_); 647 DCHECK(initialized_);
648 DCHECK_EQ(credentials.email, share_.name); 648 DCHECK_EQ(credentials.email, share_.name);
649 DCHECK(!credentials.email.empty()); 649 DCHECK(!credentials.email.empty());
650 DCHECK(!credentials.sync_token.empty()); 650 DCHECK(!credentials.sync_token.empty());
651 651
652 observing_ip_address_changes_ = true; 652 observing_ip_address_changes_ = true;
653 if (!connection_manager_->set_auth_token(credentials.sync_token)) 653 if (!connection_manager_->set_auth_token(credentials.sync_token))
654 return; // Auth token is known to be invalid, so exit early. 654 return; // Auth token is known to be invalid, so exit early.
655 655
656 sync_notifier_->UpdateCredentials(credentials.email, credentials.sync_token); 656 invalidator_->UpdateCredentials(credentials.email, credentials.sync_token);
657 scheduler_->OnCredentialsUpdated(); 657 scheduler_->OnCredentialsUpdated();
658 } 658 }
659 659
660 void SyncManagerImpl::UpdateEnabledTypes( 660 void SyncManagerImpl::UpdateEnabledTypes(
661 const ModelTypeSet& enabled_types) { 661 const ModelTypeSet& enabled_types) {
662 DCHECK(thread_checker_.CalledOnValidThread()); 662 DCHECK(thread_checker_.CalledOnValidThread());
663 DCHECK(initialized_); 663 DCHECK(initialized_);
664 sync_notifier_->UpdateRegisteredIds( 664 invalidator_->UpdateRegisteredIds(
665 this, 665 this,
666 ModelTypeSetToObjectIdSet(enabled_types)); 666 ModelTypeSetToObjectIdSet(enabled_types));
667 } 667 }
668 668
669 void SyncManagerImpl::RegisterInvalidationHandler( 669 void SyncManagerImpl::RegisterInvalidationHandler(
670 SyncNotifierObserver* handler) { 670 InvalidationHandler* handler) {
671 DCHECK(thread_checker_.CalledOnValidThread()); 671 DCHECK(thread_checker_.CalledOnValidThread());
672 DCHECK(initialized_); 672 DCHECK(initialized_);
673 sync_notifier_->RegisterHandler(handler); 673 invalidator_->RegisterHandler(handler);
674 } 674 }
675 675
676 void SyncManagerImpl::UpdateRegisteredInvalidationIds( 676 void SyncManagerImpl::UpdateRegisteredInvalidationIds(
677 SyncNotifierObserver* handler, 677 InvalidationHandler* handler,
678 const ObjectIdSet& ids) { 678 const ObjectIdSet& ids) {
679 DCHECK(thread_checker_.CalledOnValidThread()); 679 DCHECK(thread_checker_.CalledOnValidThread());
680 DCHECK(initialized_); 680 DCHECK(initialized_);
681 sync_notifier_->UpdateRegisteredIds(handler, ids); 681 invalidator_->UpdateRegisteredIds(handler, ids);
682 } 682 }
683 683
684 void SyncManagerImpl::UnregisterInvalidationHandler( 684 void SyncManagerImpl::UnregisterInvalidationHandler(
685 SyncNotifierObserver* handler) { 685 InvalidationHandler* handler) {
686 DCHECK(thread_checker_.CalledOnValidThread()); 686 DCHECK(thread_checker_.CalledOnValidThread());
687 DCHECK(initialized_); 687 DCHECK(initialized_);
688 sync_notifier_->UnregisterHandler(handler); 688 invalidator_->UnregisterHandler(handler);
689 } 689 }
690 690
691 bool SyncManagerImpl::GetKeystoreKeyBootstrapToken(std::string* token) { 691 bool SyncManagerImpl::GetKeystoreKeyBootstrapToken(std::string* token) {
692 ReadTransaction trans(FROM_HERE, GetUserShare()); 692 ReadTransaction trans(FROM_HERE, GetUserShare());
693 return trans.GetCryptographer()->GetKeystoreKeyBootstrapToken(token); 693 return trans.GetCryptographer()->GetKeystoreKeyBootstrapToken(token);
694 } 694 }
695 695
696 void SyncManagerImpl::AddObserver(SyncManager::Observer* observer) { 696 void SyncManagerImpl::AddObserver(SyncManager::Observer* observer) {
697 DCHECK(thread_checker_.CalledOnValidThread()); 697 DCHECK(thread_checker_.CalledOnValidThread());
698 observers_.AddObserver(observer); 698 observers_.AddObserver(observer);
(...skipping 25 matching lines...) Expand all
724 if (sync_encryption_handler_.get()) { 724 if (sync_encryption_handler_.get()) {
725 sync_encryption_handler_->RemoveObserver(&debug_info_event_listener_); 725 sync_encryption_handler_->RemoveObserver(&debug_info_event_listener_);
726 sync_encryption_handler_->RemoveObserver(this); 726 sync_encryption_handler_->RemoveObserver(this);
727 } 727 }
728 728
729 SetJsEventHandler(WeakHandle<JsEventHandler>()); 729 SetJsEventHandler(WeakHandle<JsEventHandler>());
730 RemoveObserver(&js_sync_manager_observer_); 730 RemoveObserver(&js_sync_manager_observer_);
731 731
732 RemoveObserver(&debug_info_event_listener_); 732 RemoveObserver(&debug_info_event_listener_);
733 733
734 // |sync_notifier_| and |connection_manager_| may end up being NULL here in 734 // |invalidator_| and |connection_manager_| may end up being NULL here in
735 // tests (in synchronous initialization mode). 735 // tests (in synchronous initialization mode).
736 // 736 //
737 // TODO(akalin): Fix this behavior. 737 // TODO(akalin): Fix this behavior.
738 738
739 if (sync_notifier_.get()) 739 if (invalidator_.get())
740 sync_notifier_->UnregisterHandler(this); 740 invalidator_->UnregisterHandler(this);
741 sync_notifier_.reset(); 741 invalidator_.reset();
742 742
743 if (connection_manager_.get()) 743 if (connection_manager_.get())
744 connection_manager_->RemoveListener(this); 744 connection_manager_->RemoveListener(this);
745 connection_manager_.reset(); 745 connection_manager_.reset();
746 746
747 net::NetworkChangeNotifier::RemoveIPAddressObserver(this); 747 net::NetworkChangeNotifier::RemoveIPAddressObserver(this);
748 observing_ip_address_changes_ = false; 748 observing_ip_address_changes_ = false;
749 749
750 if (initialized_ && directory()) { 750 if (initialized_ && directory()) {
751 directory()->SaveChanges(); 751 directory()->SaveChanges();
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
1012 OnSyncCycleCompleted(event.snapshot)); 1012 OnSyncCycleCompleted(event.snapshot));
1013 } 1013 }
1014 1014
1015 // This is here for tests, which are still using p2p notifications. 1015 // This is here for tests, which are still using p2p notifications.
1016 // 1016 //
1017 // TODO(chron): Consider changing this back to track has_more_to_sync 1017 // TODO(chron): Consider changing this back to track has_more_to_sync
1018 // only notify peers if a successful commit has occurred. 1018 // only notify peers if a successful commit has occurred.
1019 bool is_notifiable_commit = 1019 bool is_notifiable_commit =
1020 (event.snapshot.model_neutral_state().num_successful_commits > 0); 1020 (event.snapshot.model_neutral_state().num_successful_commits > 0);
1021 if (is_notifiable_commit) { 1021 if (is_notifiable_commit) {
1022 if (sync_notifier_.get()) { 1022 if (invalidator_.get()) {
1023 const ModelTypeSet changed_types = 1023 const ModelTypeSet changed_types =
1024 ModelTypeStateMapToSet(event.snapshot.source().types); 1024 ModelTypeStateMapToSet(event.snapshot.source().types);
1025 sync_notifier_->SendNotification(changed_types); 1025 invalidator_->SendNotification(changed_types);
1026 } else { 1026 } else {
1027 DVLOG(1) << "Not sending notification: sync_notifier_ is NULL"; 1027 DVLOG(1) << "Not sending notification: invalidator_ is NULL";
1028 } 1028 }
1029 } 1029 }
1030 } 1030 }
1031 1031
1032 if (event.what_happened == SyncEngineEvent::STOP_SYNCING_PERMANENTLY) { 1032 if (event.what_happened == SyncEngineEvent::STOP_SYNCING_PERMANENTLY) {
1033 FOR_EACH_OBSERVER(SyncManager::Observer, observers_, 1033 FOR_EACH_OBSERVER(SyncManager::Observer, observers_,
1034 OnStopSyncingPermanently()); 1034 OnStopSyncingPermanently());
1035 return; 1035 return;
1036 } 1036 }
1037 1037
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
1368 int SyncManagerImpl::GetDefaultNudgeDelay() { 1368 int SyncManagerImpl::GetDefaultNudgeDelay() {
1369 return kDefaultNudgeDelayMilliseconds; 1369 return kDefaultNudgeDelayMilliseconds;
1370 } 1370 }
1371 1371
1372 // static. 1372 // static.
1373 int SyncManagerImpl::GetPreferencesNudgeDelay() { 1373 int SyncManagerImpl::GetPreferencesNudgeDelay() {
1374 return kPreferencesNudgeDelayMilliseconds; 1374 return kPreferencesNudgeDelayMilliseconds;
1375 } 1375 }
1376 1376
1377 } // namespace syncer 1377 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/internal_api/sync_manager_impl.h ('k') | sync/internal_api/sync_manager_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698