OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/engine/syncapi.h" | 5 #include "chrome/browser/sync/engine/syncapi.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <bitset> | 8 #include <bitset> |
9 #include <iomanip> | 9 #include <iomanip> |
10 #include <list> | 10 #include <list> |
(...skipping 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1100 } | 1100 } |
1101 | 1101 |
1102 const sync_pb::PasswordSpecificsData& | 1102 const sync_pb::PasswordSpecificsData& |
1103 SyncManager::ExtraPasswordChangeRecordData::unencrypted() const { | 1103 SyncManager::ExtraPasswordChangeRecordData::unencrypted() const { |
1104 return unencrypted_; | 1104 return unencrypted_; |
1105 } | 1105 } |
1106 | 1106 |
1107 ////////////////////////////////////////////////////////////////////////// | 1107 ////////////////////////////////////////////////////////////////////////// |
1108 // SyncManager's implementation: SyncManager::SyncInternal | 1108 // SyncManager's implementation: SyncManager::SyncInternal |
1109 class SyncManager::SyncInternal | 1109 class SyncManager::SyncInternal |
1110 : public net::NetworkChangeNotifier::Observer, | 1110 : public net::NetworkChangeNotifier::IPAddressObserver, |
1111 public TalkMediator::Delegate, | 1111 public TalkMediator::Delegate, |
1112 public sync_notifier::StateWriter, | 1112 public sync_notifier::StateWriter, |
1113 public browser_sync::ChannelEventHandler<syncable::DirectoryChangeEvent>, | 1113 public browser_sync::ChannelEventHandler<syncable::DirectoryChangeEvent>, |
1114 public browser_sync::JsBackend, | 1114 public browser_sync::JsBackend, |
1115 public SyncEngineEventListener { | 1115 public SyncEngineEventListener { |
1116 static const int kDefaultNudgeDelayMilliseconds; | 1116 static const int kDefaultNudgeDelayMilliseconds; |
1117 static const int kPreferencesNudgeDelayMilliseconds; | 1117 static const int kPreferencesNudgeDelayMilliseconds; |
1118 public: | 1118 public: |
1119 explicit SyncInternal(SyncManager* sync_manager) | 1119 explicit SyncInternal(SyncManager* sync_manager) |
1120 : core_message_loop_(NULL), | 1120 : core_message_loop_(NULL), |
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1660 | 1660 |
1661 share_.dir_manager.reset(new DirectoryManager(database_location)); | 1661 share_.dir_manager.reset(new DirectoryManager(database_location)); |
1662 | 1662 |
1663 connection_manager_.reset(new SyncAPIServerConnectionManager( | 1663 connection_manager_.reset(new SyncAPIServerConnectionManager( |
1664 sync_server_and_path, port, use_ssl, user_agent, post_factory)); | 1664 sync_server_and_path, port, use_ssl, user_agent, post_factory)); |
1665 | 1665 |
1666 connection_manager_hookup_.reset( | 1666 connection_manager_hookup_.reset( |
1667 NewEventListenerHookup(connection_manager()->channel(), this, | 1667 NewEventListenerHookup(connection_manager()->channel(), this, |
1668 &SyncManager::SyncInternal::HandleServerConnectionEvent)); | 1668 &SyncManager::SyncInternal::HandleServerConnectionEvent)); |
1669 | 1669 |
1670 net::NetworkChangeNotifier::AddObserver(this); | 1670 net::NetworkChangeNotifier::AddIPAddressObserver(this); |
1671 // TODO(akalin): CheckServerReachable() can block, which may cause jank if we | 1671 // TODO(akalin): CheckServerReachable() can block, which may cause jank if we |
1672 // try to shut down sync. Fix this. | 1672 // try to shut down sync. Fix this. |
1673 core_message_loop_->PostTask(FROM_HERE, | 1673 core_message_loop_->PostTask(FROM_HERE, |
1674 method_factory_.NewRunnableMethod(&SyncInternal::CheckServerReachable)); | 1674 method_factory_.NewRunnableMethod(&SyncInternal::CheckServerReachable)); |
1675 | 1675 |
1676 // Test mode does not use a syncer context or syncer thread. | 1676 // Test mode does not use a syncer context or syncer thread. |
1677 if (!setup_for_test_mode_) { | 1677 if (!setup_for_test_mode_) { |
1678 // Build a SyncSessionContext and store the worker in it. | 1678 // Build a SyncSessionContext and store the worker in it. |
1679 VLOG(1) << "Sync is bringing up SyncSessionContext."; | 1679 VLOG(1) << "Sync is bringing up SyncSessionContext."; |
1680 std::vector<SyncEngineEventListener*> listeners; | 1680 std::vector<SyncEngineEventListener*> listeners; |
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2152 // and HandleTalkMediatorEvent() for the | 2152 // and HandleTalkMediatorEvent() for the |
2153 // events that may be posted.) | 2153 // events that may be posted.) |
2154 { | 2154 { |
2155 CHECK(core_message_loop_); | 2155 CHECK(core_message_loop_); |
2156 bool old_state = core_message_loop_->NestableTasksAllowed(); | 2156 bool old_state = core_message_loop_->NestableTasksAllowed(); |
2157 core_message_loop_->SetNestableTasksAllowed(true); | 2157 core_message_loop_->SetNestableTasksAllowed(true); |
2158 core_message_loop_->RunAllPending(); | 2158 core_message_loop_->RunAllPending(); |
2159 core_message_loop_->SetNestableTasksAllowed(old_state); | 2159 core_message_loop_->SetNestableTasksAllowed(old_state); |
2160 } | 2160 } |
2161 | 2161 |
2162 net::NetworkChangeNotifier::RemoveObserver(this); | 2162 net::NetworkChangeNotifier::RemoveIPAddressObserver(this); |
2163 | 2163 |
2164 connection_manager_hookup_.reset(); | 2164 connection_manager_hookup_.reset(); |
2165 | 2165 |
2166 if (dir_manager()) { | 2166 if (dir_manager()) { |
2167 dir_manager()->FinalSaveChangesForAll(); | 2167 dir_manager()->FinalSaveChangesForAll(); |
2168 dir_manager()->Close(username_for_share()); | 2168 dir_manager()->Close(username_for_share()); |
2169 } | 2169 } |
2170 | 2170 |
2171 // Reset the DirectoryManager and UserSettings so they relinquish sqlite | 2171 // Reset the DirectoryManager and UserSettings so they relinquish sqlite |
2172 // handles to backing files. | 2172 // handles to backing files. |
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2822 | 2822 |
2823 void SyncManager::TriggerOnIncomingNotificationForTest( | 2823 void SyncManager::TriggerOnIncomingNotificationForTest( |
2824 const syncable::ModelTypeBitSet& model_types) { | 2824 const syncable::ModelTypeBitSet& model_types) { |
2825 IncomingNotificationData notification_data; | 2825 IncomingNotificationData notification_data; |
2826 notification_data.service_url = model_types.to_string(); | 2826 notification_data.service_url = model_types.to_string(); |
2827 // Here we rely on the default notification method being SERVER. | 2827 // Here we rely on the default notification method being SERVER. |
2828 data_->OnIncomingNotification(notification_data); | 2828 data_->OnIncomingNotification(notification_data); |
2829 } | 2829 } |
2830 | 2830 |
2831 } // namespace sync_api | 2831 } // namespace sync_api |
OLD | NEW |