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 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
621 invalidator_->UpdateRegisteredIds(handler, ids); | 621 invalidator_->UpdateRegisteredIds(handler, ids); |
622 } | 622 } |
623 | 623 |
624 void SyncManagerImpl::UnregisterInvalidationHandler( | 624 void SyncManagerImpl::UnregisterInvalidationHandler( |
625 InvalidationHandler* handler) { | 625 InvalidationHandler* handler) { |
626 DCHECK(thread_checker_.CalledOnValidThread()); | 626 DCHECK(thread_checker_.CalledOnValidThread()); |
627 DCHECK(initialized_); | 627 DCHECK(initialized_); |
628 invalidator_->UnregisterHandler(handler); | 628 invalidator_->UnregisterHandler(handler); |
629 } | 629 } |
630 | 630 |
| 631 void SyncManagerImpl::AcknowledgeInvalidation( |
| 632 const invalidation::ObjectId& id, const syncer::AckHandle& ack_handle) { |
| 633 DCHECK(thread_checker_.CalledOnValidThread()); |
| 634 DCHECK(initialized_); |
| 635 invalidator_->Acknowledge(id, ack_handle); |
| 636 } |
| 637 |
631 void SyncManagerImpl::AddObserver(SyncManager::Observer* observer) { | 638 void SyncManagerImpl::AddObserver(SyncManager::Observer* observer) { |
632 DCHECK(thread_checker_.CalledOnValidThread()); | 639 DCHECK(thread_checker_.CalledOnValidThread()); |
633 observers_.AddObserver(observer); | 640 observers_.AddObserver(observer); |
634 } | 641 } |
635 | 642 |
636 void SyncManagerImpl::RemoveObserver(SyncManager::Observer* observer) { | 643 void SyncManagerImpl::RemoveObserver(SyncManager::Observer* observer) { |
637 DCHECK(thread_checker_.CalledOnValidThread()); | 644 DCHECK(thread_checker_.CalledOnValidThread()); |
638 observers_.RemoveObserver(observer); | 645 observers_.RemoveObserver(observer); |
639 } | 646 } |
640 | 647 |
(...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1224 js_event_handler_.Call(FROM_HERE, | 1231 js_event_handler_.Call(FROM_HERE, |
1225 &JsEventHandler::HandleJsEvent, | 1232 &JsEventHandler::HandleJsEvent, |
1226 "onNotificationStateChange", | 1233 "onNotificationStateChange", |
1227 JsEventDetails(&details)); | 1234 JsEventDetails(&details)); |
1228 } | 1235 } |
1229 } | 1236 } |
1230 | 1237 |
1231 void SyncManagerImpl::OnIncomingInvalidation( | 1238 void SyncManagerImpl::OnIncomingInvalidation( |
1232 const ObjectIdInvalidationMap& invalidation_map) { | 1239 const ObjectIdInvalidationMap& invalidation_map) { |
1233 DCHECK(thread_checker_.CalledOnValidThread()); | 1240 DCHECK(thread_checker_.CalledOnValidThread()); |
| 1241 |
| 1242 // TODO(dcheng): Acknowledge immediately for now. Fix this once the |
| 1243 // invalidator doesn't repeatedly ping for unacknowledged invaliations, since |
| 1244 // it conflicts with the sync scheduler's internal backoff algorithm. |
| 1245 // See http://crbug.com/124149 for more information. |
| 1246 for (ObjectIdInvalidationMap::const_iterator it = invalidation_map.begin(); |
| 1247 it != invalidation_map.end(); ++it) { |
| 1248 invalidator_->Acknowledge(it->first, it->second.ack_handle); |
| 1249 } |
| 1250 |
1234 const ModelTypeInvalidationMap& type_invalidation_map = | 1251 const ModelTypeInvalidationMap& type_invalidation_map = |
1235 ObjectIdInvalidationMapToModelTypeInvalidationMap(invalidation_map); | 1252 ObjectIdInvalidationMapToModelTypeInvalidationMap(invalidation_map); |
1236 if (type_invalidation_map.empty()) { | 1253 if (type_invalidation_map.empty()) { |
1237 LOG(WARNING) << "Sync received invalidation without any type information."; | 1254 LOG(WARNING) << "Sync received invalidation without any type information."; |
1238 } else { | 1255 } else { |
1239 allstatus_.IncrementNudgeCounter(NUDGE_SOURCE_NOTIFICATION); | 1256 allstatus_.IncrementNudgeCounter(NUDGE_SOURCE_NOTIFICATION); |
1240 scheduler_->ScheduleNudgeWithStatesAsync( | 1257 scheduler_->ScheduleNudgeWithStatesAsync( |
1241 TimeDelta::FromMilliseconds(kSyncSchedulerDelayMsec), | 1258 TimeDelta::FromMilliseconds(kSyncSchedulerDelayMsec), |
1242 NUDGE_SOURCE_NOTIFICATION, | 1259 NUDGE_SOURCE_NOTIFICATION, |
1243 type_invalidation_map, FROM_HERE); | 1260 type_invalidation_map, FROM_HERE); |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1374 int SyncManagerImpl::GetDefaultNudgeDelay() { | 1391 int SyncManagerImpl::GetDefaultNudgeDelay() { |
1375 return kDefaultNudgeDelayMilliseconds; | 1392 return kDefaultNudgeDelayMilliseconds; |
1376 } | 1393 } |
1377 | 1394 |
1378 // static. | 1395 // static. |
1379 int SyncManagerImpl::GetPreferencesNudgeDelay() { | 1396 int SyncManagerImpl::GetPreferencesNudgeDelay() { |
1380 return kPreferencesNudgeDelayMilliseconds; | 1397 return kPreferencesNudgeDelayMilliseconds; |
1381 } | 1398 } |
1382 | 1399 |
1383 } // namespace syncer | 1400 } // namespace syncer |
OLD | NEW |