Index: sync/notifier/non_blocking_invalidator.h |
diff --git a/sync/notifier/non_blocking_invalidator.h b/sync/notifier/non_blocking_invalidator.h |
index 47bd216f9d2a82a75c54f76839b3ec848f2d31bd..a0410c20d2c9cae502c333dd3d8b824f8871853e 100644 |
--- a/sync/notifier/non_blocking_invalidator.h |
+++ b/sync/notifier/non_blocking_invalidator.h |
@@ -17,7 +17,6 @@ |
#include "base/memory/weak_ptr.h" |
#include "jingle/notifier/base/notifier_options.h" |
#include "sync/base/sync_export.h" |
-#include "sync/internal_api/public/util/weak_handle.h" |
#include "sync/notifier/invalidation_handler.h" |
#include "sync/notifier/invalidation_state_tracker.h" |
#include "sync/notifier/invalidator.h" |
@@ -41,14 +40,13 @@ class SYNC_EXPORT_PRIVATE NonBlockingInvalidator |
// InvalidationHandler to "observe" our Core via WeakHandle. |
public InvalidationHandler { |
public: |
- // |invalidation_state_tracker| must be initialized. |
+ // |invalidation_state_tracker| must be initialized and must outlive |this|. |
NonBlockingInvalidator( |
NetworkChannelCreator network_channel_creator, |
const std::string& invalidator_client_id, |
const UnackedInvalidationsMap& saved_invalidations, |
const std::string& invalidation_bootstrap_data, |
- const WeakHandle<InvalidationStateTracker>& |
- invalidation_state_tracker, |
+ InvalidationStateTracker* invalidation_state_tracker, |
const std::string& client_info, |
const scoped_refptr<net::URLRequestContextGetter>& |
request_context_getter); |
@@ -94,6 +92,8 @@ class SYNC_EXPORT_PRIVATE NonBlockingInvalidator |
scoped_refptr<base::SingleThreadTaskRunner> parent_task_runner_; |
scoped_refptr<base::SingleThreadTaskRunner> network_task_runner_; |
+ base::WeakPtrFactory<InvalidationStateTracker> |
+ invalidation_state_tracker_weak_ptr_factory_; |
base::WeakPtrFactory<NonBlockingInvalidator> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(NonBlockingInvalidator); |