Index: chrome/browser/android/data_usage/data_use_matcher.h |
diff --git a/chrome/browser/android/data_usage/data_use_matcher.h b/chrome/browser/android/data_usage/data_use_matcher.h |
index 9d1a12c9971404bc6ea5dd7924be12edd8a46303..f905ab09678f31ebe84ed314eeb653d994206eb3 100644 |
--- a/chrome/browser/android/data_usage/data_use_matcher.h |
+++ b/chrome/browser/android/data_usage/data_use_matcher.h |
@@ -18,7 +18,6 @@ |
#include "chrome/browser/android/data_usage/data_use_tab_model.h" |
namespace base { |
-class SingleThreadTaskRunner; |
class TickClock; |
} |
@@ -32,7 +31,7 @@ namespace chrome { |
namespace android { |
-class ExternalDataUseObserver; |
+class ExternalDataUseObserverBridge; |
// DataUseMatcher stores the matching URL patterns and package names along with |
// the labels. It also provides functionality to get the matching label for a |
@@ -41,8 +40,7 @@ class DataUseMatcher { |
public: |
DataUseMatcher( |
const base::WeakPtr<DataUseTabModel>& data_use_tab_model, |
- const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner, |
- const base::WeakPtr<ExternalDataUseObserver>& external_data_use_observer, |
+ const ExternalDataUseObserverBridge* external_data_use_observer_bridge, |
const base::TimeDelta& default_matching_rule_expiration_duration); |
~DataUseMatcher(); |
@@ -67,7 +65,7 @@ class DataUseMatcher { |
std::string* label) const WARN_UNUSED_RESULT; |
// Fetches the matching rules asynchronously from |
- // |external_data_use_observer_|. |
+ // |external_data_use_observer_bridge_|. |
void FetchMatchingRules(); |
// Returns true if there is any valid matching rule. |
@@ -137,12 +135,13 @@ class DataUseMatcher { |
// TickClock used for obtaining the current time. |
scoped_ptr<base::TickClock> tick_clock_; |
- // |io_task_runner_| is used to call ExternalDataUseObserver methods on |
- // IO thread. |
- scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; |
- // |external_data_use_observer_| is notified when matching rules are fetched. |
- base::WeakPtr<ExternalDataUseObserver> external_data_use_observer_; |
+ // Pointer to the ExternalDataUseObserverBridge owned by |
+ // ExternalDataUseObserver. DataUseTabModel (owner of |this|) and |
+ // ExternalDataUseObserverBridge are owned by ExternalDataUseObserver, and are |
+ // destroyed in that order. So |external_data_use_observer_bridge_| is |
+ // guaranteed to be non-null. |
+ const ExternalDataUseObserverBridge* external_data_use_observer_bridge_; |
DISALLOW_COPY_AND_ASSIGN(DataUseMatcher); |
}; |