diff options
Diffstat (limited to 'chrome/browser/sync/notifier/registration_manager.cc')
-rw-r--r-- | chrome/browser/sync/notifier/registration_manager.cc | 66 |
1 files changed, 13 insertions, 53 deletions
diff --git a/chrome/browser/sync/notifier/registration_manager.cc b/chrome/browser/sync/notifier/registration_manager.cc index 5b98902..c03c07c 100644 --- a/chrome/browser/sync/notifier/registration_manager.cc +++ b/chrome/browser/sync/notifier/registration_manager.cc @@ -8,7 +8,6 @@ #include "chrome/browser/sync/notifier/invalidation_util.h" #include "chrome/browser/sync/syncable/model_type.h" -#include "google/cacheinvalidation/invalidation-client.h" namespace sync_notifier { @@ -22,20 +21,21 @@ RegistrationManager::~RegistrationManager() { DCHECK(non_thread_safe_.CalledOnValidThread()); } -bool RegistrationManager::RegisterType(syncable::ModelType model_type) { +void RegistrationManager::RegisterType(syncable::ModelType model_type) { DCHECK(non_thread_safe_.CalledOnValidThread()); invalidation::ObjectId object_id; if (!RealModelTypeToObjectId(model_type, &object_id)) { - LOG(ERROR) << "Invalid model type: " << model_type; - return false; + LOG(DFATAL) << "Invalid model type: " << model_type; + return; } RegistrationStatusMap::iterator it = registration_status_.insert( - std::make_pair(model_type, UNREGISTERED)).first; - if (it->second == UNREGISTERED) { + std::make_pair( + model_type, + invalidation::RegistrationState_UNREGISTERED)).first; + if (it->second == invalidation::RegistrationState_UNREGISTERED) { RegisterObject(object_id, it); } - return true; } bool RegistrationManager::IsRegistered( @@ -46,7 +46,7 @@ bool RegistrationManager::IsRegistered( if (it == registration_status_.end()) { return false; } - return it->second == REGISTERED; + return it->second == invalidation::RegistrationState_REGISTERED; } void RegistrationManager::MarkRegistrationLost( @@ -63,7 +63,7 @@ void RegistrationManager::MarkRegistrationLost( LOG(ERROR) << "Unknown model type: " << model_type; return; } - it->second = UNREGISTERED; + it->second = invalidation::RegistrationState_UNREGISTERED; RegisterObject(object_id, it); } @@ -77,7 +77,7 @@ void RegistrationManager::MarkAllRegistrationsLost() { LOG(DFATAL) << "Invalid model type: " << it->first; continue; } - it->second = UNREGISTERED; + it->second = invalidation::RegistrationState_UNREGISTERED; RegisterObject(object_id, it); } } @@ -85,49 +85,9 @@ void RegistrationManager::MarkAllRegistrationsLost() { void RegistrationManager::RegisterObject( const invalidation::ObjectId& object_id, RegistrationStatusMap::iterator it) { - DCHECK_EQ(it->second, UNREGISTERED); - invalidation_client_->Register( - object_id, - invalidation::NewPermanentCallback( - this, &RegistrationManager::OnRegister)); - it->second = PENDING; -} - -void RegistrationManager::OnRegister( - const invalidation::RegistrationUpdateResult& result) { - DCHECK(non_thread_safe_.CalledOnValidThread()); - LOG(INFO) << "OnRegister: " << RegistrationUpdateResultToString(result); - if (result.operation().type() != - invalidation::RegistrationUpdate::REGISTER) { - LOG(ERROR) << "Got non-register result"; - return; - } - syncable::ModelType model_type; - if (!ObjectIdToRealModelType(result.operation().object_id(), - &model_type)) { - LOG(ERROR) << "Could not get model type"; - return; - } - RegistrationStatusMap::iterator it = - registration_status_.find(model_type); - if (it == registration_status_.end()) { - LOG(ERROR) << "Unknown model type: " << model_type; - return; - } - invalidation::Status::Code code = result.status().code(); - switch (code) { - case invalidation::Status::SUCCESS: - it->second = REGISTERED; - break; - case invalidation::Status::TRANSIENT_FAILURE: - // TODO(akalin): Add retry logic. For now, just fall through. - default: - // Treat everything else as a permanent failure. - if (VLOG_IS_ON(1)) { - LOG(ERROR) << "Registration failed with code: " << code; - } - break; - } + DCHECK_EQ(it->second, invalidation::RegistrationState_UNREGISTERED); + invalidation_client_->Register(object_id); + it->second = invalidation::RegistrationState_REGISTERED; } } // namespace sync_notifier |