Chromium Code Reviews| Index: chrome/browser/android/data_usage/external_data_use_observer.h |
| diff --git a/chrome/browser/android/data_usage/external_data_use_observer.h b/chrome/browser/android/data_usage/external_data_use_observer.h |
| index 1a2b5b29d9749dd0f05428877b5b31839a99f8f9..470e033df462b4b76400b5190215f0a5cfa1b948 100644 |
| --- a/chrome/browser/android/data_usage/external_data_use_observer.h |
| +++ b/chrome/browser/android/data_usage/external_data_use_observer.h |
| @@ -96,29 +96,30 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
| bool MatchesAppPackageName(const std::string& app_package_name, |
| std::string* label) const; |
| - DataUseTabModel* data_use_tab_model() const { |
| - return data_use_tab_model_.get(); |
| + const base::WeakPtr<DataUseTabModel>& data_use_tab_model_weak_ptr() const { |
|
sclittle
2015/11/23 23:06:16
nit: Why can't this just be as it was before? Or m
tbansal1
2015/11/24 00:42:03
weak ptr has to be generated on IO thread, stored
sclittle
2015/11/24 04:11:50
I'm confused - this method is run on the IO thread
|
| + return data_use_tab_model_weak_ptr_; |
| } |
| private: |
| friend class DataUseTabModelTest; |
| friend class ExternalDataUseObserverTest; |
| - FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, SingleRegex); |
| - FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, TwoRegex); |
| - FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, MultipleRegex); |
| - FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, ChangeRegex); |
| - FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, LabelRemoved); |
| FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, |
| AtMostOneDataUseSubmitRequest); |
| + FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, BufferDataUseReports); |
| + FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, BufferSize); |
| + FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, ChangeRegex); |
| + FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, HashFunction); |
| + FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, LabelRemoved); |
| FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, MultipleMatchingRules); |
| + FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, MultipleRegex); |
| + FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, |
| + PeriodicFetchMatchingRules); |
| FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, ReportsMergedCorrectly); |
| + FRIEND_TEST_ALL_PREFIXES(DataUseUITabModelTest, ReportTabEventsTest); |
| + FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, SingleRegex); |
| FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, |
| TimestampsMergedCorrectly); |
| - FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, HashFunction); |
| - FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, BufferSize); |
| - FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, |
| - PeriodicFetchMatchingRules); |
| - FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, BufferDataUseReports); |
| + FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, TwoRegex); |
| FRIEND_TEST_ALL_PREFIXES(ExternalDataUseObserverTest, Variations); |
| // DataUseReportKey is a unique identifier for a data use report. |
| @@ -277,6 +278,7 @@ class ExternalDataUseObserver : public data_usage::DataUseAggregator::Observer { |
| // Maintains tab sessions. |
| scoped_ptr<DataUseTabModel> data_use_tab_model_; |
| + base::WeakPtr<DataUseTabModel> data_use_tab_model_weak_ptr_; |
| // True if callback from |FetchMatchingRulesDone| is currently pending. |
| bool matching_rules_fetch_pending_; |