summaryrefslogtreecommitdiffstats
path: root/components/invalidation
diff options
context:
space:
mode:
Diffstat (limited to 'components/invalidation')
-rw-r--r--components/invalidation/BUILD.gn12
-rw-r--r--components/invalidation/DEPS8
-rw-r--r--components/invalidation/ack_handle.cc67
-rw-r--r--components/invalidation/ack_handle.h47
-rw-r--r--components/invalidation/ack_handler.cc17
-rw-r--r--components/invalidation/ack_handler.h40
-rw-r--r--components/invalidation/fake_invalidator.h2
-rw-r--r--components/invalidation/invalidation.cc170
-rw-r--r--components/invalidation/invalidation.h121
-rw-r--r--components/invalidation/invalidation_handler.h2
-rw-r--r--components/invalidation/invalidation_logger.h4
-rw-r--r--components/invalidation/invalidation_logger_observer.h4
-rw-r--r--components/invalidation/invalidation_notifier.h1
-rw-r--r--components/invalidation/invalidation_notifier_unittest.cc1
-rw-r--r--components/invalidation/invalidation_service.h4
-rw-r--r--components/invalidation/invalidation_service_test_template.h4
-rw-r--r--components/invalidation/invalidation_state_tracker.h4
-rw-r--r--components/invalidation/invalidation_test_util.cc120
-rw-r--r--components/invalidation/invalidation_test_util.h26
-rw-r--r--components/invalidation/invalidation_util.cc70
-rw-r--r--components/invalidation/invalidation_util.h57
-rw-r--r--components/invalidation/invalidator.h5
-rw-r--r--components/invalidation/invalidator_registrar.h2
-rw-r--r--components/invalidation/invalidator_state.cc25
-rw-r--r--components/invalidation/invalidator_state.h31
-rw-r--r--components/invalidation/mock_ack_handler.cc4
-rw-r--r--components/invalidation/mock_ack_handler.h4
-rw-r--r--components/invalidation/non_blocking_invalidator.h2
-rw-r--r--components/invalidation/notifier_reason_util.h2
-rw-r--r--components/invalidation/object_id_invalidation_map.h4
-rw-r--r--components/invalidation/object_id_invalidation_map_test_util.cc4
-rw-r--r--components/invalidation/object_id_invalidation_map_test_util.h2
-rw-r--r--components/invalidation/p2p_invalidator.cc2
-rw-r--r--components/invalidation/p2p_invalidator.h3
-rw-r--r--components/invalidation/p2p_invalidator_unittest.cc2
-rw-r--r--components/invalidation/registration_manager.cc2
-rw-r--r--components/invalidation/registration_manager.h2
-rw-r--r--components/invalidation/registration_manager_unittest.cc2
-rw-r--r--components/invalidation/single_object_invalidation_set.cc2
-rw-r--r--components/invalidation/single_object_invalidation_set.h4
-rw-r--r--components/invalidation/single_object_invalidation_set_unittest.cc2
-rw-r--r--components/invalidation/sync_invalidation_listener.cc2
-rw-r--r--components/invalidation/sync_invalidation_listener.h4
-rw-r--r--components/invalidation/sync_invalidation_listener_unittest.cc2
-rw-r--r--components/invalidation/sync_system_resources.cc2
-rw-r--r--components/invalidation/sync_system_resources.h2
-rw-r--r--components/invalidation/ticl_invalidation_service.cc4
-rw-r--r--components/invalidation/unacked_invalidation_set.cc2
-rw-r--r--components/invalidation/unacked_invalidation_set.h6
49 files changed, 852 insertions, 59 deletions
diff --git a/components/invalidation/BUILD.gn b/components/invalidation/BUILD.gn
index 0bf7988..fd6773a 100644
--- a/components/invalidation/BUILD.gn
+++ b/components/invalidation/BUILD.gn
@@ -4,6 +4,12 @@
static_library("invalidation") {
sources = [
+ "ack_handle.cc",
+ "ack_handle.h",
+ "ack_handler.cc",
+ "ack_handler.h",
+ "invalidation.cc",
+ "invalidation.h",
"invalidation_handler.cc",
"invalidation_handler.h",
"invalidation_logger.cc",
@@ -18,10 +24,14 @@ static_library("invalidation") {
"invalidation_state_tracker.h",
"invalidation_switches.cc",
"invalidation_switches.h",
+ "invalidation_util.cc",
+ "invalidation_util.h",
"invalidator.cc",
"invalidator.h",
"invalidator_registrar.cc",
"invalidator_registrar.h",
+ "invalidator_state.cc",
+ "invalidator_state.h",
"invalidator_storage.cc",
"invalidator_storage.h",
"mock_ack_handler.cc",
@@ -96,6 +106,8 @@ static_library("test_support") {
"fake_invalidator.h",
"invalidation_service_test_template.cc",
"invalidation_service_test_template.h",
+ "invalidation_test_util.cc",
+ "invalidation_test_util.h",
"invalidator_test_template.cc",
"invalidator_test_template.h",
"object_id_invalidation_map_test_util.cc",
diff --git a/components/invalidation/DEPS b/components/invalidation/DEPS
index 48f688d..e56ab22 100644
--- a/components/invalidation/DEPS
+++ b/components/invalidation/DEPS
@@ -16,11 +16,9 @@ include_rules = [
"+net/http/http_status_code.h",
"+net/url_request",
- # sync_notifier depends on the xmpp part of libjingle.
+ # invalidation_notifier depends on the xmpp part of libjingle.
"+talk/xmpp",
- #TODO(rlarocque): Move these dependencies into this component.
- # See crbug.com/259559.
- "+sync/internal_api/public/base",
- "+sync/internal_api/public/util",
+ #TODO(rlarocque): Remove this dependency. See crbug.com/394925.
+ "+sync/internal_api/public/util/weak_handle.h",
]
diff --git a/components/invalidation/ack_handle.cc b/components/invalidation/ack_handle.cc
new file mode 100644
index 0000000..ee0e8b6
--- /dev/null
+++ b/components/invalidation/ack_handle.cc
@@ -0,0 +1,67 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/invalidation/ack_handle.h"
+
+#include <cstddef>
+#include "base/rand_util.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/values.h"
+
+namespace syncer {
+
+namespace {
+// Hopefully enough bytes for uniqueness.
+const size_t kBytesInHandle = 16;
+} // namespace
+
+AckHandle AckHandle::CreateUnique() {
+ // This isn't a valid UUID, so we don't attempt to format it like one.
+ uint8 random_bytes[kBytesInHandle];
+ base::RandBytes(random_bytes, sizeof(random_bytes));
+ return AckHandle(base::HexEncode(random_bytes, sizeof(random_bytes)),
+ base::Time::Now());
+}
+
+AckHandle AckHandle::InvalidAckHandle() {
+ return AckHandle(std::string(), base::Time());
+}
+
+bool AckHandle::Equals(const AckHandle& other) const {
+ return state_ == other.state_ && timestamp_ == other.timestamp_;
+}
+
+scoped_ptr<base::DictionaryValue> AckHandle::ToValue() const {
+ scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue());
+ value->SetString("state", state_);
+ value->SetString("timestamp",
+ base::Int64ToString(timestamp_.ToInternalValue()));
+ return value.Pass();
+}
+
+bool AckHandle::ResetFromValue(const base::DictionaryValue& value) {
+ if (!value.GetString("state", &state_))
+ return false;
+ std::string timestamp_as_string;
+ if (!value.GetString("timestamp", &timestamp_as_string))
+ return false;
+ int64 timestamp_value;
+ if (!base::StringToInt64(timestamp_as_string, &timestamp_value))
+ return false;
+ timestamp_ = base::Time::FromInternalValue(timestamp_value);
+ return true;
+}
+
+bool AckHandle::IsValid() const {
+ return !state_.empty();
+}
+
+AckHandle::AckHandle(const std::string& state, base::Time timestamp)
+ : state_(state), timestamp_(timestamp) {
+}
+
+AckHandle::~AckHandle() {
+}
+
+} // namespace syncer
diff --git a/components/invalidation/ack_handle.h b/components/invalidation/ack_handle.h
new file mode 100644
index 0000000..2435efa
--- /dev/null
+++ b/components/invalidation/ack_handle.h
@@ -0,0 +1,47 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_INVALIDATION_ACK_HANDLE_H_
+#define COMPONENTS_INVALIDATION_ACK_HANDLE_H_
+
+#include <string>
+
+#include "base/basictypes.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/time/time.h"
+#include "components/invalidation/invalidation_export.h"
+
+namespace base {
+class DictionaryValue;
+}
+
+namespace syncer {
+
+// Opaque class that represents a local ack handle. We don't reuse the
+// invalidation ack handles to avoid unnecessary dependencies.
+class INVALIDATION_EXPORT AckHandle {
+ public:
+ static AckHandle CreateUnique();
+ static AckHandle InvalidAckHandle();
+
+ bool Equals(const AckHandle& other) const;
+
+ scoped_ptr<base::DictionaryValue> ToValue() const;
+ bool ResetFromValue(const base::DictionaryValue& value);
+
+ bool IsValid() const;
+
+ ~AckHandle();
+
+ private:
+ // Explicitly copyable and assignable for STL containers.
+ AckHandle(const std::string& state, base::Time timestamp);
+
+ std::string state_;
+ base::Time timestamp_;
+};
+
+} // namespace syncer
+
+#endif // COMPONENTS_INVALIDATION_ACK_HANDLE_H_
diff --git a/components/invalidation/ack_handler.cc b/components/invalidation/ack_handler.cc
new file mode 100644
index 0000000..68dc028
--- /dev/null
+++ b/components/invalidation/ack_handler.cc
@@ -0,0 +1,17 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/invalidation/ack_handler.h"
+
+#include "components/invalidation/invalidation.h"
+
+namespace syncer {
+
+AckHandler::AckHandler() {
+}
+
+AckHandler::~AckHandler() {
+}
+
+} // namespace syncer
diff --git a/components/invalidation/ack_handler.h b/components/invalidation/ack_handler.h
new file mode 100644
index 0000000..0a2f642
--- /dev/null
+++ b/components/invalidation/ack_handler.h
@@ -0,0 +1,40 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_INVALIDATION_ACK_HANDLER_H_
+#define COMPONENTS_INVALIDATION_ACK_HANDLER_H_
+
+#include <vector>
+
+#include "components/invalidation/invalidation_export.h"
+
+namespace invalidation {
+class ObjectId;
+} // namespace invalidation
+
+namespace syncer {
+
+class AckHandle;
+
+// An interface for classes that keep track of invalidation acknowledgements.
+//
+// We don't expect to support more than one "real" implementation of AckHandler,
+// but this interface is very useful for testing and implementation hiding.
+class INVALIDATION_EXPORT AckHandler {
+ public:
+ AckHandler();
+ virtual ~AckHandler() = 0;
+
+ // Record the local acknowledgement of an invalidation identified by |handle|.
+ virtual void Acknowledge(const invalidation::ObjectId& id,
+ const AckHandle& handle) = 0;
+
+ // Record the drop of an invalidation identified by |handle|.
+ virtual void Drop(const invalidation::ObjectId& id,
+ const AckHandle& handle) = 0;
+};
+
+} // namespace syncer
+
+#endif // COMPONENTS_INVALIDATION_ACK_HANDLER_H_
diff --git a/components/invalidation/fake_invalidator.h b/components/invalidation/fake_invalidator.h
index e149dbf..38e8c56 100644
--- a/components/invalidation/fake_invalidator.h
+++ b/components/invalidation/fake_invalidator.h
@@ -9,9 +9,9 @@
#include "base/callback_forward.h"
#include "base/compiler_specific.h"
+#include "components/invalidation/invalidation_util.h"
#include "components/invalidation/invalidator.h"
#include "components/invalidation/invalidator_registrar.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
namespace syncer {
diff --git a/components/invalidation/invalidation.cc b/components/invalidation/invalidation.cc
new file mode 100644
index 0000000..0962c9e
--- /dev/null
+++ b/components/invalidation/invalidation.cc
@@ -0,0 +1,170 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/invalidation/invalidation.h"
+
+#include <cstddef>
+
+#include "base/json/json_string_value_serializer.h"
+#include "base/rand_util.h"
+#include "base/strings/string_number_conversions.h"
+#include "base/values.h"
+#include "components/invalidation/ack_handler.h"
+#include "components/invalidation/invalidation_util.h"
+
+namespace syncer {
+
+namespace {
+const char kObjectIdKey[] = "objectId";
+const char kIsUnknownVersionKey[] = "isUnknownVersion";
+const char kVersionKey[] = "version";
+const char kPayloadKey[] = "payload";
+const int64 kInvalidVersion = -1;
+}
+
+Invalidation Invalidation::Init(const invalidation::ObjectId& id,
+ int64 version,
+ const std::string& payload) {
+ return Invalidation(id, false, version, payload, AckHandle::CreateUnique());
+}
+
+Invalidation Invalidation::InitUnknownVersion(
+ const invalidation::ObjectId& id) {
+ return Invalidation(
+ id, true, kInvalidVersion, std::string(), AckHandle::CreateUnique());
+}
+
+Invalidation Invalidation::InitFromDroppedInvalidation(
+ const Invalidation& dropped) {
+ return Invalidation(
+ dropped.id_, true, kInvalidVersion, std::string(), dropped.ack_handle_);
+}
+
+scoped_ptr<Invalidation> Invalidation::InitFromValue(
+ const base::DictionaryValue& value) {
+ invalidation::ObjectId id;
+
+ const base::DictionaryValue* object_id_dict;
+ if (!value.GetDictionary(kObjectIdKey, &object_id_dict) ||
+ !ObjectIdFromValue(*object_id_dict, &id)) {
+ DLOG(WARNING) << "Failed to parse id";
+ return scoped_ptr<Invalidation>();
+ }
+ bool is_unknown_version;
+ if (!value.GetBoolean(kIsUnknownVersionKey, &is_unknown_version)) {
+ DLOG(WARNING) << "Failed to parse is_unknown_version flag";
+ return scoped_ptr<Invalidation>();
+ }
+ if (is_unknown_version) {
+ return scoped_ptr<Invalidation>(new Invalidation(
+ id,
+ true,
+ kInvalidVersion,
+ std::string(),
+ AckHandle::CreateUnique()));
+ }
+ int64 version = 0;
+ std::string version_as_string;
+ if (!value.GetString(kVersionKey, &version_as_string)
+ || !base::StringToInt64(version_as_string, &version)) {
+ DLOG(WARNING) << "Failed to parse version";
+ return scoped_ptr<Invalidation>();
+ }
+ std::string payload;
+ if (!value.GetString(kPayloadKey, &payload)) {
+ DLOG(WARNING) << "Failed to parse payload";
+ return scoped_ptr<Invalidation>();
+ }
+ return scoped_ptr<Invalidation>(new Invalidation(
+ id,
+ false,
+ version,
+ payload,
+ AckHandle::CreateUnique()));
+}
+
+Invalidation::~Invalidation() {
+}
+
+invalidation::ObjectId Invalidation::object_id() const {
+ return id_;
+}
+
+bool Invalidation::is_unknown_version() const {
+ return is_unknown_version_;
+}
+
+int64 Invalidation::version() const {
+ DCHECK(!is_unknown_version_);
+ return version_;
+}
+
+const std::string& Invalidation::payload() const {
+ DCHECK(!is_unknown_version_);
+ return payload_;
+}
+
+const AckHandle& Invalidation::ack_handle() const {
+ return ack_handle_;
+}
+
+void Invalidation::set_ack_handler(syncer::WeakHandle<AckHandler> handler) {
+ ack_handler_ = handler;
+}
+
+bool Invalidation::SupportsAcknowledgement() const {
+ return ack_handler_.IsInitialized();
+}
+
+void Invalidation::Acknowledge() const {
+ if (SupportsAcknowledgement()) {
+ ack_handler_.Call(FROM_HERE, &AckHandler::Acknowledge, id_, ack_handle_);
+ }
+}
+
+void Invalidation::Drop() {
+ if (SupportsAcknowledgement()) {
+ ack_handler_.Call(FROM_HERE, &AckHandler::Drop, id_, ack_handle_);
+ }
+}
+
+bool Invalidation::Equals(const Invalidation& other) const {
+ return id_ == other.id_ && is_unknown_version_ == other.is_unknown_version_ &&
+ version_ == other.version_ && payload_ == other.payload_;
+}
+
+scoped_ptr<base::DictionaryValue> Invalidation::ToValue() const {
+ scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue());
+ value->Set(kObjectIdKey, ObjectIdToValue(id_).release());
+ if (is_unknown_version_) {
+ value->SetBoolean(kIsUnknownVersionKey, true);
+ } else {
+ value->SetBoolean(kIsUnknownVersionKey, false);
+ value->SetString(kVersionKey, base::Int64ToString(version_));
+ value->SetString(kPayloadKey, payload_);
+ }
+ return value.Pass();
+}
+
+std::string Invalidation::ToString() const {
+ std::string output;
+ JSONStringValueSerializer serializer(&output);
+ serializer.set_pretty_print(true);
+ serializer.Serialize(*ToValue().get());
+ return output;
+}
+
+Invalidation::Invalidation(const invalidation::ObjectId& id,
+ bool is_unknown_version,
+ int64 version,
+ const std::string& payload,
+ AckHandle ack_handle)
+ : id_(id),
+ is_unknown_version_(is_unknown_version),
+ version_(version),
+ payload_(payload),
+ ack_handle_(ack_handle) {
+}
+
+} // namespace syncer
diff --git a/components/invalidation/invalidation.h b/components/invalidation/invalidation.h
new file mode 100644
index 0000000..4d6a5e3
--- /dev/null
+++ b/components/invalidation/invalidation.h
@@ -0,0 +1,121 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_INVALIDATION_INVALIDATION_H_
+#define COMPONENTS_INVALIDATION_INVALIDATION_H_
+
+#include <string>
+
+#include "base/basictypes.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/values.h"
+#include "components/invalidation/ack_handle.h"
+#include "components/invalidation/invalidation_export.h"
+#include "google/cacheinvalidation/include/types.h"
+#include "sync/internal_api/public/util/weak_handle.h"
+
+namespace syncer {
+
+class DroppedInvalidationTracker;
+class AckHandler;
+
+// Represents a local invalidation, and is roughly analogous to
+// invalidation::Invalidation. Unlike invalidation::Invalidation, this class
+// supports "local" ack-tracking and simple serialization to pref values.
+class INVALIDATION_EXPORT Invalidation {
+ public:
+ // Factory functions.
+ static Invalidation Init(const invalidation::ObjectId& id,
+ int64 version,
+ const std::string& payload);
+ static Invalidation InitUnknownVersion(const invalidation::ObjectId& id);
+ static Invalidation InitFromDroppedInvalidation(const Invalidation& dropped);
+ static scoped_ptr<Invalidation> InitFromValue(
+ const base::DictionaryValue& value);
+
+ ~Invalidation();
+
+ // Compares two invalidations. The comparison ignores ack-tracking state.
+ bool Equals(const Invalidation& other) const;
+
+ invalidation::ObjectId object_id() const;
+ bool is_unknown_version() const;
+
+ // Safe to call only if is_unknown_version() returns false.
+ int64 version() const;
+
+ // Safe to call only if is_unknown_version() returns false.
+ const std::string& payload() const;
+
+ const AckHandle& ack_handle() const;
+
+ // Sets the AckHandler to be used to track this Invalidation.
+ //
+ // This should be set by the class that generates the invalidation. Clients
+ // of the Invalidations API should not need to call this.
+ //
+ // Note that some sources of invalidations do not support ack tracking, and do
+ // not set the ack_handler. This will be hidden from users of this class.
+ void set_ack_handler(syncer::WeakHandle<AckHandler> ack_handler);
+
+ // Returns whether or not this instance supports ack tracking. This will
+ // depend on whether or not the source of invaliadations supports
+ // invalidations.
+ //
+ // Clients can safely ignore this flag. They can assume that all
+ // invalidations support ack tracking. If they're wrong, then invalidations
+ // will be less reliable, but their behavior will be no less correct.
+ bool SupportsAcknowledgement() const;
+
+ // Acknowledges the receipt of this invalidation.
+ //
+ // Clients should call this on a received invalidation when they have fully
+ // processed the invalidation and persisted the results to disk. Once this
+ // function is called, the invalidations system is under no obligation to
+ // re-deliver this invalidation in the event of a crash or restart.
+ void Acknowledge() const;
+
+ // Informs the ack tracker that this invalidation will not be serviced.
+ //
+ // If a client's buffer reaches its limit and it is forced to start dropping
+ // invalidations, it should call this function before dropping its
+ // invalidations in order to allow the ack tracker to drop the invalidation,
+ // too.
+ //
+ // To indicate recovery from a drop event, the client should call
+ // Acknowledge() on the most recently dropped inavlidation.
+ void Drop();
+
+ scoped_ptr<base::DictionaryValue> ToValue() const;
+ std::string ToString() const;
+
+ private:
+ Invalidation(const invalidation::ObjectId& id,
+ bool is_unknown_version,
+ int64 version,
+ const std::string& payload,
+ AckHandle ack_handle);
+
+ // The ObjectId to which this invalidation belongs.
+ invalidation::ObjectId id_;
+
+ // This flag is set to true if this is an unknown version invalidation.
+ bool is_unknown_version_;
+
+ // The version number of this invalidation. Should not be accessed if this is
+ // an unkown version invalidation.
+ int64 version_;
+
+ // The payaload associated with this invalidation. Should not be accessed if
+ // this is an unknown version invalidation.
+ std::string payload_;
+
+ // A locally generated unique ID used to manage local acknowledgements.
+ AckHandle ack_handle_;
+ syncer::WeakHandle<AckHandler> ack_handler_;
+};
+
+} // namespace syncer
+
+#endif // COMPONENTS_INVALIDATION_INVALIDATION_H_
diff --git a/components/invalidation/invalidation_handler.h b/components/invalidation/invalidation_handler.h
index 6180aa3..665406d 100644
--- a/components/invalidation/invalidation_handler.h
+++ b/components/invalidation/invalidation_handler.h
@@ -8,7 +8,7 @@
#include <string>
#include "components/invalidation/invalidation_export.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
+#include "components/invalidation/invalidator_state.h"
namespace syncer {
diff --git a/components/invalidation/invalidation_logger.h b/components/invalidation/invalidation_logger.h
index 0fb6be7..39d754e 100644
--- a/components/invalidation/invalidation_logger.h
+++ b/components/invalidation/invalidation_logger.h
@@ -10,8 +10,8 @@
#include "base/memory/scoped_ptr.h"
#include "base/observer_list.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
+#include "components/invalidation/invalidation_util.h"
+#include "components/invalidation/invalidator_state.h"
namespace base {
class DictionaryValue;
diff --git a/components/invalidation/invalidation_logger_observer.h b/components/invalidation/invalidation_logger_observer.h
index c5daa2e..d754b93 100644
--- a/components/invalidation/invalidation_logger_observer.h
+++ b/components/invalidation/invalidation_logger_observer.h
@@ -6,9 +6,9 @@
#define COMPONENTS_INVALIDATION_INVALIDATION_LOGGER_OBSERVER_H_
#include "base/memory/scoped_ptr.h"
+#include "components/invalidation/invalidation_util.h"
+#include "components/invalidation/invalidator_state.h"
#include "components/invalidation/object_id_invalidation_map.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
namespace base {
class DictionaryValue;
diff --git a/components/invalidation/invalidation_notifier.h b/components/invalidation/invalidation_notifier.h
index c776fb5..154d1e6 100644
--- a/components/invalidation/invalidation_notifier.h
+++ b/components/invalidation/invalidation_notifier.h
@@ -23,7 +23,6 @@
#include "components/invalidation/invalidator.h"
#include "components/invalidation/invalidator_registrar.h"
#include "components/invalidation/sync_invalidation_listener.h"
-#include "sync/internal_api/public/base/model_type.h"
#include "sync/internal_api/public/util/weak_handle.h"
namespace notifier {
diff --git a/components/invalidation/invalidation_notifier_unittest.cc b/components/invalidation/invalidation_notifier_unittest.cc
index 7240c84..5fd249f 100644
--- a/components/invalidation/invalidation_notifier_unittest.cc
+++ b/components/invalidation/invalidation_notifier_unittest.cc
@@ -15,7 +15,6 @@
#include "jingle/notifier/base/notifier_options.h"
#include "jingle/notifier/listener/fake_push_client.h"
#include "net/url_request/url_request_test_util.h"
-#include "sync/internal_api/public/base/model_type.h"
#include "sync/internal_api/public/util/weak_handle.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/components/invalidation/invalidation_service.h b/components/invalidation/invalidation_service.h
index 92ecd3d..bf7a23d 100644
--- a/components/invalidation/invalidation_service.h
+++ b/components/invalidation/invalidation_service.h
@@ -6,8 +6,8 @@
#define COMPONENTS_INVALIDATION_INVALIDATION_SERVICE_H_
#include "base/callback_forward.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
+#include "components/invalidation/invalidation_util.h"
+#include "components/invalidation/invalidator_state.h"
class IdentityProvider;
diff --git a/components/invalidation/invalidation_service_test_template.h b/components/invalidation/invalidation_service_test_template.h
index 94ef33e..ae1d04f 100644
--- a/components/invalidation/invalidation_service_test_template.h
+++ b/components/invalidation/invalidation_service_test_template.h
@@ -73,14 +73,14 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
+#include "components/invalidation/ack_handle.h"
#include "components/invalidation/fake_invalidation_handler.h"
+#include "components/invalidation/invalidation.h"
#include "components/invalidation/invalidation_service.h"
#include "components/invalidation/object_id_invalidation_map.h"
#include "components/invalidation/object_id_invalidation_map_test_util.h"
#include "google/cacheinvalidation/include/types.h"
#include "google/cacheinvalidation/types.pb.h"
-#include "sync/internal_api/public/base/ack_handle.h"
-#include "sync/internal_api/public/base/invalidation.h"
#include "testing/gtest/include/gtest/gtest.h"
template <typename InvalidatorTestDelegate>
diff --git a/components/invalidation/invalidation_state_tracker.h b/components/invalidation/invalidation_state_tracker.h
index 0d8acf8..6e03dab 100644
--- a/components/invalidation/invalidation_state_tracker.h
+++ b/components/invalidation/invalidation_state_tracker.h
@@ -18,11 +18,11 @@
#include "base/basictypes.h"
#include "base/callback_forward.h"
#include "base/memory/ref_counted.h"
+#include "components/invalidation/invalidation.h"
#include "components/invalidation/invalidation_export.h"
+#include "components/invalidation/invalidation_util.h"
#include "components/invalidation/unacked_invalidation_set.h"
#include "google/cacheinvalidation/include/types.h"
-#include "sync/internal_api/public/base/invalidation.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
namespace base {
class TaskRunner;
diff --git a/components/invalidation/invalidation_test_util.cc b/components/invalidation/invalidation_test_util.cc
new file mode 100644
index 0000000..3368797
--- /dev/null
+++ b/components/invalidation/invalidation_test_util.cc
@@ -0,0 +1,120 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/invalidation/invalidation_test_util.h"
+
+#include "base/basictypes.h"
+#include "base/json/json_writer.h"
+#include "base/json/string_escape.h"
+#include "base/values.h"
+#include "components/invalidation/invalidation.h"
+
+namespace syncer {
+
+using ::testing::MakeMatcher;
+using ::testing::MatchResultListener;
+using ::testing::Matcher;
+using ::testing::MatcherInterface;
+using ::testing::PrintToString;
+
+namespace {
+
+class AckHandleEqMatcher : public MatcherInterface<const AckHandle&> {
+ public:
+ explicit AckHandleEqMatcher(const AckHandle& expected);
+
+ virtual bool MatchAndExplain(const AckHandle& actual,
+ MatchResultListener* listener) const;
+ virtual void DescribeTo(::std::ostream* os) const;
+ virtual void DescribeNegationTo(::std::ostream* os) const;
+
+ private:
+ const AckHandle expected_;
+
+ DISALLOW_COPY_AND_ASSIGN(AckHandleEqMatcher);
+};
+
+AckHandleEqMatcher::AckHandleEqMatcher(const AckHandle& expected)
+ : expected_(expected) {
+}
+
+bool AckHandleEqMatcher::MatchAndExplain(const AckHandle& actual,
+ MatchResultListener* listener) const {
+ return expected_.Equals(actual);
+}
+
+void AckHandleEqMatcher::DescribeTo(::std::ostream* os) const {
+ *os << " is equal to " << PrintToString(expected_);
+}
+
+void AckHandleEqMatcher::DescribeNegationTo(::std::ostream* os) const {
+ *os << " isn't equal to " << PrintToString(expected_);
+}
+
+class InvalidationEqMatcher : public MatcherInterface<const Invalidation&> {
+ public:
+ explicit InvalidationEqMatcher(const Invalidation& expected);
+
+ virtual bool MatchAndExplain(const Invalidation& actual,
+ MatchResultListener* listener) const;
+ virtual void DescribeTo(::std::ostream* os) const;
+ virtual void DescribeNegationTo(::std::ostream* os) const;
+
+ private:
+ const Invalidation expected_;
+
+ DISALLOW_COPY_AND_ASSIGN(InvalidationEqMatcher);
+};
+
+InvalidationEqMatcher::InvalidationEqMatcher(const Invalidation& expected)
+ : expected_(expected) {
+}
+
+bool InvalidationEqMatcher::MatchAndExplain(
+ const Invalidation& actual,
+ MatchResultListener* listener) const {
+ if (!(expected_.object_id() == actual.object_id())) {
+ return false;
+ }
+ if (expected_.is_unknown_version() && actual.is_unknown_version()) {
+ return true;
+ } else if (expected_.is_unknown_version() != actual.is_unknown_version()) {
+ return false;
+ } else {
+ // Neither is unknown version.
+ return expected_.payload() == actual.payload() &&
+ expected_.version() == actual.version();
+ }
+}
+
+void InvalidationEqMatcher::DescribeTo(::std::ostream* os) const {
+ *os << " is equal to " << PrintToString(expected_);
+}
+
+void InvalidationEqMatcher::DescribeNegationTo(::std::ostream* os) const {
+ *os << " isn't equal to " << PrintToString(expected_);
+}
+
+} // namespace
+
+void PrintTo(const AckHandle& ack_handle, ::std::ostream* os) {
+ scoped_ptr<base::Value> value(ack_handle.ToValue());
+ std::string printable_ack_handle;
+ base::JSONWriter::Write(value.get(), &printable_ack_handle);
+ *os << "{ ack_handle: " << printable_ack_handle << " }";
+}
+
+Matcher<const AckHandle&> Eq(const AckHandle& expected) {
+ return MakeMatcher(new AckHandleEqMatcher(expected));
+}
+
+void PrintTo(const Invalidation& inv, ::std::ostream* os) {
+ *os << "{ payload: " << inv.ToString() << " }";
+}
+
+Matcher<const Invalidation&> Eq(const Invalidation& expected) {
+ return MakeMatcher(new InvalidationEqMatcher(expected));
+}
+
+} // namespace syncer
diff --git a/components/invalidation/invalidation_test_util.h b/components/invalidation/invalidation_test_util.h
new file mode 100644
index 0000000..c039494
--- /dev/null
+++ b/components/invalidation/invalidation_test_util.h
@@ -0,0 +1,26 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_INVALIDATION_INVALIDATION_TEST_UTIL_H_
+#define COMPONENTS_INVALIDATION_INVALIDATION_TEST_UTIL_H_
+
+#include <iosfwd>
+
+#include "testing/gmock/include/gmock/gmock.h"
+
+namespace syncer {
+
+class AckHandle;
+class Invalidation;
+
+void PrintTo(const AckHandle& ack_handle, ::std::ostream* os);
+::testing::Matcher<const AckHandle&> Eq(const AckHandle& expected);
+
+void PrintTo(const Invalidation& invalidation, ::std::ostream* os);
+
+::testing::Matcher<const Invalidation&> Eq(const Invalidation& expected);
+
+} // namespace syncer
+
+#endif // COMPONENTS_INVALIDATION_INVALIDATION_TEST_UTIL_H_
diff --git a/components/invalidation/invalidation_util.cc b/components/invalidation/invalidation_util.cc
new file mode 100644
index 0000000..50e3a5c
--- /dev/null
+++ b/components/invalidation/invalidation_util.cc
@@ -0,0 +1,70 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/invalidation/invalidation_util.h"
+
+#include <ostream>
+#include <sstream>
+
+#include "base/json/json_writer.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/values.h"
+#include "components/invalidation/invalidation.h"
+#include "google/cacheinvalidation/include/types.h"
+#include "google/cacheinvalidation/types.pb.h"
+
+namespace syncer {
+
+bool ObjectIdLessThan::operator()(const invalidation::ObjectId& lhs,
+ const invalidation::ObjectId& rhs) const {
+ return (lhs.source() < rhs.source()) ||
+ (lhs.source() == rhs.source() && lhs.name() < rhs.name());
+}
+
+bool InvalidationVersionLessThan::operator()(const Invalidation& a,
+ const Invalidation& b) const {
+ DCHECK(a.object_id() == b.object_id())
+ << "a: " << ObjectIdToString(a.object_id()) << ", "
+ << "b: " << ObjectIdToString(a.object_id());
+
+ if (a.is_unknown_version() && !b.is_unknown_version())
+ return true;
+
+ if (!a.is_unknown_version() && b.is_unknown_version())
+ return false;
+
+ if (a.is_unknown_version() && b.is_unknown_version())
+ return false;
+
+ return a.version() < b.version();
+}
+
+scoped_ptr<base::DictionaryValue> ObjectIdToValue(
+ const invalidation::ObjectId& object_id) {
+ scoped_ptr<base::DictionaryValue> value(new base::DictionaryValue());
+ value->SetInteger("source", object_id.source());
+ value->SetString("name", object_id.name());
+ return value.Pass();
+}
+
+bool ObjectIdFromValue(const base::DictionaryValue& value,
+ invalidation::ObjectId* out) {
+ *out = invalidation::ObjectId();
+ std::string name;
+ int source = 0;
+ if (!value.GetInteger("source", &source) || !value.GetString("name", &name)) {
+ return false;
+ }
+ *out = invalidation::ObjectId(source, name);
+ return true;
+}
+
+std::string ObjectIdToString(const invalidation::ObjectId& object_id) {
+ scoped_ptr<base::DictionaryValue> value(ObjectIdToValue(object_id));
+ std::string str;
+ base::JSONWriter::Write(value.get(), &str);
+ return str;
+}
+
+} // namespace syncer
diff --git a/components/invalidation/invalidation_util.h b/components/invalidation/invalidation_util.h
new file mode 100644
index 0000000..b5b21b6
--- /dev/null
+++ b/components/invalidation/invalidation_util.h
@@ -0,0 +1,57 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// Various utilities for dealing with invalidation data types.
+
+#ifndef COMPONENTS_INVALIDATION_INVALIDATION_UTIL_H_
+#define COMPONENTS_INVALIDATION_INVALIDATION_UTIL_H_
+
+#include <map>
+#include <set>
+#include <string>
+
+#include "base/memory/scoped_ptr.h"
+#include "components/invalidation/invalidation_export.h"
+
+namespace base {
+class DictionaryValue;
+} // namespace
+
+namespace invalidation {
+class Invalidation;
+class ObjectId;
+} // namespace invalidation
+
+namespace syncer {
+
+class Invalidation;
+
+struct INVALIDATION_EXPORT ObjectIdLessThan {
+ bool operator()(const invalidation::ObjectId& lhs,
+ const invalidation::ObjectId& rhs) const;
+};
+
+struct INVALIDATION_EXPORT InvalidationVersionLessThan {
+ bool operator()(const syncer::Invalidation& a,
+ const syncer::Invalidation& b) const;
+};
+
+typedef std::set<invalidation::ObjectId, ObjectIdLessThan> ObjectIdSet;
+
+typedef std::map<invalidation::ObjectId, int, ObjectIdLessThan>
+ ObjectIdCountMap;
+
+// Caller owns the returned DictionaryValue.
+scoped_ptr<base::DictionaryValue> ObjectIdToValue(
+ const invalidation::ObjectId& object_id);
+
+bool ObjectIdFromValue(const base::DictionaryValue& value,
+ invalidation::ObjectId* out);
+
+INVALIDATION_EXPORT std::string ObjectIdToString(
+ const invalidation::ObjectId& object_id);
+
+} // namespace syncer
+
+#endif // COMPONENTS_INVALIDATION_INVALIDATION_UTIL_H_
diff --git a/components/invalidation/invalidator.h b/components/invalidation/invalidator.h
index fc4c355..35c81de0 100644
--- a/components/invalidation/invalidator.h
+++ b/components/invalidation/invalidator.h
@@ -13,9 +13,8 @@
#include "base/callback.h"
#include "components/invalidation/invalidation_export.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
-#include "sync/internal_api/public/base/model_type.h"
+#include "components/invalidation/invalidation_util.h"
+#include "components/invalidation/invalidator_state.h"
namespace syncer {
class InvalidationHandler;
diff --git a/components/invalidation/invalidator_registrar.h b/components/invalidation/invalidator_registrar.h
index 561d29e..f2e41a2 100644
--- a/components/invalidation/invalidator_registrar.h
+++ b/components/invalidation/invalidator_registrar.h
@@ -12,7 +12,7 @@
#include "base/threading/thread_checker.h"
#include "components/invalidation/invalidation_export.h"
#include "components/invalidation/invalidation_handler.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
+#include "components/invalidation/invalidation_util.h"
namespace invalidation {
class ObjectId;
diff --git a/components/invalidation/invalidator_state.cc b/components/invalidation/invalidator_state.cc
new file mode 100644
index 0000000..1ad3c45
--- /dev/null
+++ b/components/invalidation/invalidator_state.cc
@@ -0,0 +1,25 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/invalidation/invalidator_state.h"
+
+#include "base/logging.h"
+
+namespace syncer {
+
+const char* InvalidatorStateToString(InvalidatorState state) {
+ switch (state) {
+ case TRANSIENT_INVALIDATION_ERROR:
+ return "TRANSIENT_INVALIDATION_ERROR";
+ case INVALIDATION_CREDENTIALS_REJECTED:
+ return "INVALIDATION_CREDENTIALS_REJECTED";
+ case INVALIDATIONS_ENABLED:
+ return "INVALIDATIONS_ENABLED";
+ default:
+ NOTREACHED();
+ return "UNKNOWN_INVALIDATOR_STATE";
+ }
+}
+
+} // namespace syncer
diff --git a/components/invalidation/invalidator_state.h b/components/invalidation/invalidator_state.h
new file mode 100644
index 0000000..cee5bd8
--- /dev/null
+++ b/components/invalidation/invalidator_state.h
@@ -0,0 +1,31 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_INVALIDATION_INVALIDATOR_STATE_H_
+#define COMPONENTS_INVALIDATION_INVALIDATOR_STATE_H_
+
+#include "components/invalidation/invalidation_export.h"
+
+namespace syncer {
+
+enum InvalidatorState {
+ // Failure states
+ // --------------
+ // There is an underlying transient problem (e.g., network- or
+ // XMPP-related).
+ TRANSIENT_INVALIDATION_ERROR,
+ DEFAULT_INVALIDATION_ERROR = TRANSIENT_INVALIDATION_ERROR,
+ // Our credentials have been rejected.
+ INVALIDATION_CREDENTIALS_REJECTED,
+
+ // Invalidations are fully working.
+ INVALIDATIONS_ENABLED
+};
+
+INVALIDATION_EXPORT const char* InvalidatorStateToString(
+ InvalidatorState state);
+
+} // namespace syncer
+
+#endif // COMPONENTS_INVALIDATION_INVALIDATOR_STATE_H_
diff --git a/components/invalidation/mock_ack_handler.cc b/components/invalidation/mock_ack_handler.cc
index 359090c..aba96cb 100644
--- a/components/invalidation/mock_ack_handler.cc
+++ b/components/invalidation/mock_ack_handler.cc
@@ -4,8 +4,8 @@
#include "components/invalidation/mock_ack_handler.h"
-#include "sync/internal_api/public/base/ack_handle.h"
-#include "sync/internal_api/public/base/invalidation.h"
+#include "components/invalidation/ack_handle.h"
+#include "components/invalidation/invalidation.h"
namespace syncer {
diff --git a/components/invalidation/mock_ack_handler.h b/components/invalidation/mock_ack_handler.h
index c22f810..cd394b7 100644
--- a/components/invalidation/mock_ack_handler.h
+++ b/components/invalidation/mock_ack_handler.h
@@ -10,9 +10,9 @@
#include "base/compiler_specific.h"
#include "base/memory/weak_ptr.h"
+#include "components/invalidation/ack_handler.h"
#include "components/invalidation/invalidation_export.h"
-#include "sync/internal_api/public/base/ack_handler.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
+#include "components/invalidation/invalidation_util.h"
#include "sync/internal_api/public/util/weak_handle.h"
namespace syncer {
diff --git a/components/invalidation/non_blocking_invalidator.h b/components/invalidation/non_blocking_invalidator.h
index e2c31c7..ab19ce1 100644
--- a/components/invalidation/non_blocking_invalidator.h
+++ b/components/invalidation/non_blocking_invalidator.h
@@ -19,9 +19,9 @@
#include "components/invalidation/invalidation_state_tracker.h"
#include "components/invalidation/invalidator.h"
#include "components/invalidation/invalidator_registrar.h"
+#include "components/invalidation/invalidator_state.h"
#include "components/invalidation/unacked_invalidation_set.h"
#include "jingle/notifier/base/notifier_options.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
namespace base {
class SingleThreadTaskRunner;
diff --git a/components/invalidation/notifier_reason_util.h b/components/invalidation/notifier_reason_util.h
index 530cbb8..16025ba 100644
--- a/components/invalidation/notifier_reason_util.h
+++ b/components/invalidation/notifier_reason_util.h
@@ -5,8 +5,8 @@
#ifndef COMPONENTS_INVALIDATION_NOTIFIER_REASON_UTIL_H_
#define COMPONENTS_INVALIDATION_NOTIFIER_REASON_UTIL_H_
+#include "components/invalidation/invalidator_state.h"
#include "jingle/notifier/listener/push_client_observer.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
namespace syncer {
diff --git a/components/invalidation/object_id_invalidation_map.h b/components/invalidation/object_id_invalidation_map.h
index c2eecb0..ac37d30 100644
--- a/components/invalidation/object_id_invalidation_map.h
+++ b/components/invalidation/object_id_invalidation_map.h
@@ -8,10 +8,10 @@
#include <map>
#include <vector>
+#include "components/invalidation/invalidation.h"
#include "components/invalidation/invalidation_export.h"
+#include "components/invalidation/invalidation_util.h"
#include "components/invalidation/single_object_invalidation_set.h"
-#include "sync/internal_api/public/base/invalidation.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
namespace syncer {
diff --git a/components/invalidation/object_id_invalidation_map_test_util.cc b/components/invalidation/object_id_invalidation_map_test_util.cc
index 0711e1e..f52674f 100644
--- a/components/invalidation/object_id_invalidation_map_test_util.cc
+++ b/components/invalidation/object_id_invalidation_map_test_util.cc
@@ -39,8 +39,6 @@ ObjectIdInvalidationMapEqMatcher::ObjectIdInvalidationMapEqMatcher(
const ObjectIdInvalidationMap& expected) : expected_(expected) {
}
-namespace {
-
struct InvalidationEqPredicate {
InvalidationEqPredicate(const Invalidation& inv1)
: inv1_(inv1) { }
@@ -52,8 +50,6 @@ struct InvalidationEqPredicate {
const Invalidation& inv1_;
};
-}
-
bool ObjectIdInvalidationMapEqMatcher::MatchAndExplain(
const ObjectIdInvalidationMap& actual,
MatchResultListener* listener) const {
diff --git a/components/invalidation/object_id_invalidation_map_test_util.h b/components/invalidation/object_id_invalidation_map_test_util.h
index b1e1a93..9be67a8 100644
--- a/components/invalidation/object_id_invalidation_map_test_util.h
+++ b/components/invalidation/object_id_invalidation_map_test_util.h
@@ -6,8 +6,8 @@
#define COMPONENTS_INVALIDATION_OBJECT_ID_INVALIDATION_MAP_TEST_UTIL_H_
// Convince googletest to use the correct overload for PrintTo().
+#include "components/invalidation/invalidation_test_util.h"
#include "components/invalidation/object_id_invalidation_map.h"
-#include "sync/internal_api/public/base/invalidation_test_util.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace syncer {
diff --git a/components/invalidation/p2p_invalidator.cc b/components/invalidation/p2p_invalidator.cc
index c3f0359..c583d44 100644
--- a/components/invalidation/p2p_invalidator.cc
+++ b/components/invalidation/p2p_invalidator.cc
@@ -12,10 +12,10 @@
#include "base/logging.h"
#include "base/values.h"
#include "components/invalidation/invalidation_handler.h"
+#include "components/invalidation/invalidation_util.h"
#include "components/invalidation/notifier_reason_util.h"
#include "components/invalidation/object_id_invalidation_map.h"
#include "jingle/notifier/listener/push_client.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
namespace syncer {
diff --git a/components/invalidation/p2p_invalidator.h b/components/invalidation/p2p_invalidator.h
index 683b462..f82914e 100644
--- a/components/invalidation/p2p_invalidator.h
+++ b/components/invalidation/p2p_invalidator.h
@@ -19,12 +19,11 @@
#include "components/invalidation/invalidation_export.h"
#include "components/invalidation/invalidator.h"
#include "components/invalidation/invalidator_registrar.h"
+#include "components/invalidation/invalidator_state.h"
#include "components/invalidation/object_id_invalidation_map.h"
#include "jingle/notifier/base/notifier_options.h"
#include "jingle/notifier/listener/push_client.h"
#include "jingle/notifier/listener/push_client_observer.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
-#include "sync/internal_api/public/base/model_type.h"
namespace notifier {
class PushClient;
diff --git a/components/invalidation/p2p_invalidator_unittest.cc b/components/invalidation/p2p_invalidator_unittest.cc
index 0ad7afc..a56dace 100644
--- a/components/invalidation/p2p_invalidator_unittest.cc
+++ b/components/invalidation/p2p_invalidator_unittest.cc
@@ -7,10 +7,10 @@
#include <cstddef>
#include "components/invalidation/fake_invalidation_handler.h"
+#include "components/invalidation/invalidator_state.h"
#include "components/invalidation/invalidator_test_template.h"
#include "components/invalidation/notifier_reason_util.h"
#include "jingle/notifier/listener/fake_push_client.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace syncer {
diff --git a/components/invalidation/registration_manager.cc b/components/invalidation/registration_manager.cc
index 4d153a7..f0a1f93 100644
--- a/components/invalidation/registration_manager.cc
+++ b/components/invalidation/registration_manager.cc
@@ -12,9 +12,9 @@
#include "base/rand_util.h"
#include "base/stl_util.h"
+#include "components/invalidation/invalidation_util.h"
#include "google/cacheinvalidation/include/invalidation-client.h"
#include "google/cacheinvalidation/include/types.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
namespace syncer {
diff --git a/components/invalidation/registration_manager.h b/components/invalidation/registration_manager.h
index 1bf77d5..00eb48e 100644
--- a/components/invalidation/registration_manager.h
+++ b/components/invalidation/registration_manager.h
@@ -16,9 +16,9 @@
#include "base/timer/timer.h"
// For invalidation::InvalidationListener::RegistrationState.
#include "components/invalidation/invalidation_export.h"
+#include "components/invalidation/invalidation_util.h"
#include "google/cacheinvalidation/include/invalidation-listener.h"
#include "google/cacheinvalidation/include/types.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
namespace syncer {
diff --git a/components/invalidation/registration_manager_unittest.cc b/components/invalidation/registration_manager_unittest.cc
index 9389e99..2afbd02 100644
--- a/components/invalidation/registration_manager_unittest.cc
+++ b/components/invalidation/registration_manager_unittest.cc
@@ -13,8 +13,8 @@
#include "base/basictypes.h"
#include "base/message_loop/message_loop.h"
#include "base/stl_util.h"
+#include "components/invalidation/invalidation_util.h"
#include "google/cacheinvalidation/include/invalidation-client.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace syncer {
diff --git a/components/invalidation/single_object_invalidation_set.cc b/components/invalidation/single_object_invalidation_set.cc
index 6544489..c05c517 100644
--- a/components/invalidation/single_object_invalidation_set.cc
+++ b/components/invalidation/single_object_invalidation_set.cc
@@ -5,7 +5,7 @@
#include "components/invalidation/single_object_invalidation_set.h"
#include "base/values.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
+#include "components/invalidation/invalidation_util.h"
namespace syncer {
diff --git a/components/invalidation/single_object_invalidation_set.h b/components/invalidation/single_object_invalidation_set.h
index 11ab3e3..f424114 100644
--- a/components/invalidation/single_object_invalidation_set.h
+++ b/components/invalidation/single_object_invalidation_set.h
@@ -8,9 +8,9 @@
#include <set>
#include "base/memory/scoped_ptr.h"
+#include "components/invalidation/invalidation.h"
#include "components/invalidation/invalidation_export.h"
-#include "sync/internal_api/public/base/invalidation.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
+#include "components/invalidation/invalidation_util.h"
namespace base {
class ListValue;
diff --git a/components/invalidation/single_object_invalidation_set_unittest.cc b/components/invalidation/single_object_invalidation_set_unittest.cc
index 34172a1..aae71d0 100644
--- a/components/invalidation/single_object_invalidation_set_unittest.cc
+++ b/components/invalidation/single_object_invalidation_set_unittest.cc
@@ -4,8 +4,8 @@
#include "components/invalidation/single_object_invalidation_set.h"
+#include "components/invalidation/invalidation_test_util.h"
#include "google/cacheinvalidation/types.pb.h"
-#include "sync/internal_api/public/base/invalidation_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace syncer {
diff --git a/components/invalidation/sync_invalidation_listener.cc b/components/invalidation/sync_invalidation_listener.cc
index d15c606..a6566be 100644
--- a/components/invalidation/sync_invalidation_listener.cc
+++ b/components/invalidation/sync_invalidation_listener.cc
@@ -11,12 +11,12 @@
#include "base/compiler_specific.h"
#include "base/logging.h"
#include "base/tracked_objects.h"
+#include "components/invalidation/invalidation_util.h"
#include "components/invalidation/object_id_invalidation_map.h"
#include "components/invalidation/registration_manager.h"
#include "google/cacheinvalidation/include/invalidation-client.h"
#include "google/cacheinvalidation/include/types.h"
#include "jingle/notifier/listener/push_client.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
namespace {
diff --git a/components/invalidation/sync_invalidation_listener.h b/components/invalidation/sync_invalidation_listener.h
index c2fe08c..647a04d 100644
--- a/components/invalidation/sync_invalidation_listener.h
+++ b/components/invalidation/sync_invalidation_listener.h
@@ -16,14 +16,14 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "base/threading/non_thread_safe.h"
+#include "components/invalidation/ack_handler.h"
#include "components/invalidation/invalidation_export.h"
#include "components/invalidation/invalidation_state_tracker.h"
+#include "components/invalidation/invalidator_state.h"
#include "components/invalidation/state_writer.h"
#include "components/invalidation/sync_system_resources.h"
#include "components/invalidation/unacked_invalidation_set.h"
#include "google/cacheinvalidation/include/invalidation-listener.h"
-#include "sync/internal_api/public/base/ack_handler.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
#include "sync/internal_api/public/util/weak_handle.h"
namespace buzz {
diff --git a/components/invalidation/sync_invalidation_listener_unittest.cc b/components/invalidation/sync_invalidation_listener_unittest.cc
index 8f63cb2..339511e 100644
--- a/components/invalidation/sync_invalidation_listener_unittest.cc
+++ b/components/invalidation/sync_invalidation_listener_unittest.cc
@@ -12,6 +12,7 @@
#include "base/message_loop/message_loop.h"
#include "base/stl_util.h"
#include "components/invalidation/fake_invalidation_state_tracker.h"
+#include "components/invalidation/invalidation_util.h"
#include "components/invalidation/object_id_invalidation_map.h"
#include "components/invalidation/push_client_channel.h"
#include "components/invalidation/sync_invalidation_listener.h"
@@ -19,7 +20,6 @@
#include "google/cacheinvalidation/include/invalidation-client.h"
#include "google/cacheinvalidation/include/types.h"
#include "jingle/notifier/listener/fake_push_client.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
#include "sync/internal_api/public/util/weak_handle.h"
#include "testing/gtest/include/gtest/gtest.h"
diff --git a/components/invalidation/sync_system_resources.cc b/components/invalidation/sync_system_resources.cc
index 5685dea..04c5c77 100644
--- a/components/invalidation/sync_system_resources.cc
+++ b/components/invalidation/sync_system_resources.cc
@@ -16,11 +16,11 @@
#include "base/strings/stringprintf.h"
#include "components/invalidation/gcm_network_channel.h"
#include "components/invalidation/gcm_network_channel_delegate.h"
+#include "components/invalidation/invalidation_util.h"
#include "components/invalidation/push_client_channel.h"
#include "google/cacheinvalidation/deps/callback.h"
#include "google/cacheinvalidation/include/types.h"
#include "jingle/notifier/listener/push_client.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
namespace syncer {
diff --git a/components/invalidation/sync_system_resources.h b/components/invalidation/sync_system_resources.h
index c0e8ec2..f576573 100644
--- a/components/invalidation/sync_system_resources.h
+++ b/components/invalidation/sync_system_resources.h
@@ -20,10 +20,10 @@
#include "base/threading/non_thread_safe.h"
#include "base/values.h"
#include "components/invalidation/invalidation_export.h"
+#include "components/invalidation/invalidator_state.h"
#include "components/invalidation/state_writer.h"
#include "google/cacheinvalidation/include/system-resources.h"
#include "jingle/notifier/base/notifier_options.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
namespace syncer {
diff --git a/components/invalidation/ticl_invalidation_service.cc b/components/invalidation/ticl_invalidation_service.cc
index 8a63af3..03dd30e 100644
--- a/components/invalidation/ticl_invalidation_service.cc
+++ b/components/invalidation/ticl_invalidation_service.cc
@@ -9,13 +9,13 @@
#include "components/gcm_driver/gcm_driver.h"
#include "components/invalidation/gcm_invalidation_bridge.h"
#include "components/invalidation/invalidation_service_util.h"
+#include "components/invalidation/invalidation_util.h"
#include "components/invalidation/invalidator.h"
+#include "components/invalidation/invalidator_state.h"
#include "components/invalidation/non_blocking_invalidator.h"
#include "components/invalidation/object_id_invalidation_map.h"
#include "google_apis/gaia/gaia_constants.h"
#include "net/url_request/url_request_context_getter.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
-#include "sync/internal_api/public/base/invalidator_state.h"
static const char* kOAuth2Scopes[] = {
GaiaConstants::kGoogleTalkOAuth2Scope
diff --git a/components/invalidation/unacked_invalidation_set.cc b/components/invalidation/unacked_invalidation_set.cc
index 0d94a2f..b2d2e68 100644
--- a/components/invalidation/unacked_invalidation_set.cc
+++ b/components/invalidation/unacked_invalidation_set.cc
@@ -5,8 +5,8 @@
#include "components/invalidation/unacked_invalidation_set.h"
#include "base/strings/string_number_conversions.h"
+#include "components/invalidation/ack_handle.h"
#include "components/invalidation/object_id_invalidation_map.h"
-#include "sync/internal_api/public/base/ack_handle.h"
namespace {
diff --git a/components/invalidation/unacked_invalidation_set.h b/components/invalidation/unacked_invalidation_set.h
index 6dd2c46..7b9b729 100644
--- a/components/invalidation/unacked_invalidation_set.h
+++ b/components/invalidation/unacked_invalidation_set.h
@@ -5,11 +5,11 @@
#ifndef COMPONENTS_INVALIDATION_UNACKED_INVALIDATION_SET_H_
#define COMPONENTS_INVALIDATION_UNACKED_INVALIDATION_SET_H_
-#include <vector>
+#include <set>
+#include "components/invalidation/invalidation.h"
#include "components/invalidation/invalidation_export.h"
-#include "sync/internal_api/public/base/invalidation.h"
-#include "sync/internal_api/public/base/invalidation_util.h"
+#include "components/invalidation/invalidation_util.h"
#include "sync/internal_api/public/util/weak_handle.h"
namespace base {