| OLD | NEW |
| 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 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 626 invalidator_->UpdateRegisteredIds(handler, ids); | 626 invalidator_->UpdateRegisteredIds(handler, ids); |
| 627 } | 627 } |
| 628 | 628 |
| 629 void SyncManagerImpl::UnregisterInvalidationHandler( | 629 void SyncManagerImpl::UnregisterInvalidationHandler( |
| 630 InvalidationHandler* handler) { | 630 InvalidationHandler* handler) { |
| 631 DCHECK(thread_checker_.CalledOnValidThread()); | 631 DCHECK(thread_checker_.CalledOnValidThread()); |
| 632 DCHECK(initialized_); | 632 DCHECK(initialized_); |
| 633 invalidator_->UnregisterHandler(handler); | 633 invalidator_->UnregisterHandler(handler); |
| 634 } | 634 } |
| 635 | 635 |
| 636 void SyncManagerImpl::AcknowledgeInvalidation( |
| 637 const invalidation::ObjectId& id, const syncer::AckHandle& ack_handle) { |
| 638 DCHECK(thread_checker_.CalledOnValidThread()); |
| 639 DCHECK(initialized_); |
| 640 invalidator_->Acknowledge(id, ack_handle); |
| 641 } |
| 642 |
| 636 void SyncManagerImpl::AddObserver(SyncManager::Observer* observer) { | 643 void SyncManagerImpl::AddObserver(SyncManager::Observer* observer) { |
| 637 DCHECK(thread_checker_.CalledOnValidThread()); | 644 DCHECK(thread_checker_.CalledOnValidThread()); |
| 638 observers_.AddObserver(observer); | 645 observers_.AddObserver(observer); |
| 639 } | 646 } |
| 640 | 647 |
| 641 void SyncManagerImpl::RemoveObserver(SyncManager::Observer* observer) { | 648 void SyncManagerImpl::RemoveObserver(SyncManager::Observer* observer) { |
| 642 DCHECK(thread_checker_.CalledOnValidThread()); | 649 DCHECK(thread_checker_.CalledOnValidThread()); |
| 643 observers_.RemoveObserver(observer); | 650 observers_.RemoveObserver(observer); |
| 644 } | 651 } |
| 645 | 652 |
| (...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1230 js_event_handler_.Call(FROM_HERE, | 1237 js_event_handler_.Call(FROM_HERE, |
| 1231 &JsEventHandler::HandleJsEvent, | 1238 &JsEventHandler::HandleJsEvent, |
| 1232 "onNotificationStateChange", | 1239 "onNotificationStateChange", |
| 1233 JsEventDetails(&details)); | 1240 JsEventDetails(&details)); |
| 1234 } | 1241 } |
| 1235 } | 1242 } |
| 1236 | 1243 |
| 1237 void SyncManagerImpl::OnIncomingInvalidation( | 1244 void SyncManagerImpl::OnIncomingInvalidation( |
| 1238 const ObjectIdInvalidationMap& invalidation_map) { | 1245 const ObjectIdInvalidationMap& invalidation_map) { |
| 1239 DCHECK(thread_checker_.CalledOnValidThread()); | 1246 DCHECK(thread_checker_.CalledOnValidThread()); |
| 1247 |
| 1248 // TODO(dcheng): Acknowledge immediately for now. Fix this once the |
| 1249 // invalidator doesn't repeatedly ping for unacknowledged invaliations, since |
| 1250 // it conflicts with the sync scheduler's internal backoff algorithm. |
| 1251 // See http://crbug.com/124149 for more information. |
| 1252 for (ObjectIdInvalidationMap::const_iterator it = invalidation_map.begin(); |
| 1253 it != invalidation_map.end(); ++it) { |
| 1254 invalidator_->Acknowledge(it->first, it->second.ack_handle); |
| 1255 } |
| 1256 |
| 1240 const ModelTypeInvalidationMap& type_invalidation_map = | 1257 const ModelTypeInvalidationMap& type_invalidation_map = |
| 1241 ObjectIdInvalidationMapToModelTypeInvalidationMap(invalidation_map); | 1258 ObjectIdInvalidationMapToModelTypeInvalidationMap(invalidation_map); |
| 1242 if (type_invalidation_map.empty()) { | 1259 if (type_invalidation_map.empty()) { |
| 1243 LOG(WARNING) << "Sync received invalidation without any type information."; | 1260 LOG(WARNING) << "Sync received invalidation without any type information."; |
| 1244 } else { | 1261 } else { |
| 1245 allstatus_.IncrementNudgeCounter(NUDGE_SOURCE_NOTIFICATION); | 1262 allstatus_.IncrementNudgeCounter(NUDGE_SOURCE_NOTIFICATION); |
| 1246 scheduler_->ScheduleNudgeWithStatesAsync( | 1263 scheduler_->ScheduleNudgeWithStatesAsync( |
| 1247 TimeDelta::FromMilliseconds(kSyncSchedulerDelayMsec), | 1264 TimeDelta::FromMilliseconds(kSyncSchedulerDelayMsec), |
| 1248 NUDGE_SOURCE_NOTIFICATION, | 1265 NUDGE_SOURCE_NOTIFICATION, |
| 1249 type_invalidation_map, FROM_HERE); | 1266 type_invalidation_map, FROM_HERE); |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1384 int SyncManagerImpl::GetDefaultNudgeDelay() { | 1401 int SyncManagerImpl::GetDefaultNudgeDelay() { |
| 1385 return kDefaultNudgeDelayMilliseconds; | 1402 return kDefaultNudgeDelayMilliseconds; |
| 1386 } | 1403 } |
| 1387 | 1404 |
| 1388 // static. | 1405 // static. |
| 1389 int SyncManagerImpl::GetPreferencesNudgeDelay() { | 1406 int SyncManagerImpl::GetPreferencesNudgeDelay() { |
| 1390 return kPreferencesNudgeDelayMilliseconds; | 1407 return kPreferencesNudgeDelayMilliseconds; |
| 1391 } | 1408 } |
| 1392 | 1409 |
| 1393 } // namespace syncer | 1410 } // namespace syncer |
| OLD | NEW |