summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc11
-rw-r--r--chrome/browser/sync/notifier/cache_invalidation_packet_handler.h4
2 files changed, 10 insertions, 5 deletions
diff --git a/chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc
index ca2f7c2..b2b1766 100644
--- a/chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc
+++ b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.cc
@@ -8,6 +8,7 @@
#include "base/base64.h"
#include "base/callback.h"
+#include "base/compiler_specific.h"
#include "base/logging.h"
#include "base/rand_util.h"
#include "base/string_number_conversions.h"
@@ -197,7 +198,8 @@ std::string MakeSid() {
CacheInvalidationPacketHandler::CacheInvalidationPacketHandler(
buzz::XmppClient* xmpp_client,
invalidation::InvalidationClient* invalidation_client)
- : xmpp_client_(xmpp_client),
+ : scoped_callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
+ xmpp_client_(xmpp_client),
invalidation_client_(invalidation_client),
seq_(0),
sid_(MakeSid()) {
@@ -207,14 +209,13 @@ CacheInvalidationPacketHandler::CacheInvalidationPacketHandler(
invalidation_client_->network_endpoint();
CHECK(network_endpoint);
network_endpoint->RegisterOutboundListener(
- invalidation::NewPermanentCallback(
- this,
+ scoped_callback_factory_.NewCallback(
&CacheInvalidationPacketHandler::HandleOutboundPacket));
// Owned by xmpp_client.
CacheInvalidationListenTask* listen_task =
new CacheInvalidationListenTask(
- xmpp_client, NewCallback(
- this, &CacheInvalidationPacketHandler::HandleInboundPacket));
+ xmpp_client, scoped_callback_factory_.NewCallback(
+ &CacheInvalidationPacketHandler::HandleInboundPacket));
listen_task->Start();
}
diff --git a/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h
index e3e89f2..e96c897 100644
--- a/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h
+++ b/chrome/browser/sync/notifier/cache_invalidation_packet_handler.h
@@ -12,6 +12,7 @@
#include <string>
#include "base/basictypes.h"
+#include "base/scoped_callback_factory.h"
#include "talk/xmpp/jid.h"
namespace buzz {
@@ -48,6 +49,9 @@ class CacheInvalidationPacketHandler {
void HandleInboundPacket(const std::string& packet);
+ base::ScopedCallbackFactory<CacheInvalidationPacketHandler>
+ scoped_callback_factory_;
+
buzz::XmppClient* xmpp_client_;
invalidation::InvalidationClient* invalidation_client_;