Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(655)

Unified Diff: sync/notifier/chrome_invalidation_client.cc

Issue 10827133: [Sync] Rework unit tests for ChromeInvalidationClient (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync to head Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sync/notifier/chrome_invalidation_client.h ('k') | sync/notifier/chrome_invalidation_client_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/notifier/chrome_invalidation_client.cc
diff --git a/sync/notifier/chrome_invalidation_client.cc b/sync/notifier/chrome_invalidation_client.cc
index 8b9cd4fda6765a1429de57e1e0b30720ac7b4a59..6ec46595a0df5420ca9f347dc42252cc9779bf22 100644
--- a/sync/notifier/chrome_invalidation_client.cc
+++ b/sync/notifier/chrome_invalidation_client.cc
@@ -7,10 +7,10 @@
#include <string>
#include <vector>
+#include "base/callback.h"
#include "base/compiler_specific.h"
#include "base/logging.h"
#include "base/tracked_objects.h"
-#include "google/cacheinvalidation/include/invalidation-client-factory.h"
#include "google/cacheinvalidation/include/invalidation-client.h"
#include "google/cacheinvalidation/include/types.h"
#include "google/cacheinvalidation/types.pb.h"
@@ -48,6 +48,8 @@ ChromeInvalidationClient::~ChromeInvalidationClient() {
}
void ChromeInvalidationClient::Start(
+ const CreateInvalidationClientCallback&
+ create_invalidation_client_callback,
const std::string& client_id, const std::string& client_info,
const std::string& state,
const InvalidationVersionMap& initial_max_invalidation_versions,
@@ -85,7 +87,7 @@ void ChromeInvalidationClient::Start(
int client_type = ipc::invalidation::ClientType::CHROME_SYNC;
invalidation_client_.reset(
- invalidation::CreateInvalidationClient(
+ create_invalidation_client_callback.Run(
&chrome_system_resources_, client_type, client_id,
kApplicationName, this));
invalidation_client_->Start();
@@ -100,23 +102,25 @@ void ChromeInvalidationClient::UpdateCredentials(
chrome_system_resources_.network()->UpdateCredentials(email, token);
}
-void ChromeInvalidationClient::RegisterIds(const ObjectIdSet& ids) {
+void ChromeInvalidationClient::UpdateRegisteredIds(const ObjectIdSet& ids) {
DCHECK(CalledOnValidThread());
registered_ids_ = ids;
// |ticl_state_| can go to NO_NOTIFICATION_ERROR even without a
// working XMPP connection (as observed by us), so check it instead
// of GetState() (see http://crbug.com/139424).
if (ticl_state_ == NO_NOTIFICATION_ERROR && registration_manager_.get()) {
- registration_manager_->SetRegisteredIds(registered_ids_);
+ registration_manager_->UpdateRegisteredIds(registered_ids_);
}
// TODO(akalin): Clear invalidation versions for unregistered types.
}
void ChromeInvalidationClient::Ready(
invalidation::InvalidationClient* client) {
+ DCHECK(CalledOnValidThread());
+ DCHECK_EQ(client, invalidation_client_.get());
ticl_state_ = NO_NOTIFICATION_ERROR;
EmitStateChange();
- registration_manager_->SetRegisteredIds(registered_ids_);
+ registration_manager_->UpdateRegisteredIds(registered_ids_);
}
void ChromeInvalidationClient::Invalidate(
@@ -124,6 +128,7 @@ void ChromeInvalidationClient::Invalidate(
const invalidation::Invalidation& invalidation,
const invalidation::AckHandle& ack_handle) {
DCHECK(CalledOnValidThread());
+ DCHECK_EQ(client, invalidation_client_.get());
DVLOG(1) << "Invalidate: " << InvalidationToString(invalidation);
const invalidation::ObjectId& id = invalidation.object_id();
@@ -170,6 +175,7 @@ void ChromeInvalidationClient::InvalidateUnknownVersion(
const invalidation::ObjectId& object_id,
const invalidation::AckHandle& ack_handle) {
DCHECK(CalledOnValidThread());
+ DCHECK_EQ(client, invalidation_client_.get());
DVLOG(1) << "InvalidateUnknownVersion";
ObjectIdPayloadMap id_payloads;
@@ -186,6 +192,7 @@ void ChromeInvalidationClient::InvalidateAll(
invalidation::InvalidationClient* client,
const invalidation::AckHandle& ack_handle) {
DCHECK(CalledOnValidThread());
+ DCHECK_EQ(client, invalidation_client_.get());
DVLOG(1) << "InvalidateAll";
ObjectIdPayloadMap id_payloads;
@@ -210,6 +217,7 @@ void ChromeInvalidationClient::InformRegistrationStatus(
const invalidation::ObjectId& object_id,
InvalidationListener::RegistrationState new_state) {
DCHECK(CalledOnValidThread());
+ DCHECK_EQ(client, invalidation_client_.get());
DVLOG(1) << "InformRegistrationStatus: "
<< ObjectIdToString(object_id) << " " << new_state;
@@ -225,6 +233,7 @@ void ChromeInvalidationClient::InformRegistrationFailure(
bool is_transient,
const std::string& error_message) {
DCHECK(CalledOnValidThread());
+ DCHECK_EQ(client, invalidation_client_.get());
DVLOG(1) << "InformRegistrationFailure: "
<< ObjectIdToString(object_id)
<< "is_transient=" << is_transient
@@ -248,6 +257,7 @@ void ChromeInvalidationClient::ReissueRegistrations(
const std::string& prefix,
int prefix_length) {
DCHECK(CalledOnValidThread());
+ DCHECK_EQ(client, invalidation_client_.get());
DVLOG(1) << "AllRegistrationsLost";
registration_manager_->MarkAllRegistrationsLost();
}
@@ -255,6 +265,8 @@ void ChromeInvalidationClient::ReissueRegistrations(
void ChromeInvalidationClient::InformError(
invalidation::InvalidationClient* client,
const invalidation::ErrorInfo& error_info) {
+ DCHECK(CalledOnValidThread());
+ DCHECK_EQ(client, invalidation_client_.get());
LOG(ERROR) << "Ticl error " << error_info.error_reason() << ": "
<< error_info.error_message()
<< " (transient = " << error_info.is_transient() << ")";
@@ -273,6 +285,11 @@ void ChromeInvalidationClient::WriteState(const std::string& state) {
FROM_HERE, &InvalidationStateTracker::SetInvalidationState, state);
}
+void ChromeInvalidationClient::StopForTest() {
+ DCHECK(CalledOnValidThread());
+ Stop();
+}
+
void ChromeInvalidationClient::Stop() {
DCHECK(CalledOnValidThread());
if (!invalidation_client_.get()) {
« no previous file with comments | « sync/notifier/chrome_invalidation_client.h ('k') | sync/notifier/chrome_invalidation_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698