OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/android/data_usage/external_data_use_observer.h" | 5 #include "chrome/browser/android/data_usage/external_data_use_observer.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 // It is okay to use base::Unretained for the callbacks, since | 56 // It is okay to use base::Unretained for the callbacks, since |
57 // |external_data_use_observer_bridge_| is owned by |this|, and is | 57 // |external_data_use_observer_bridge_| is owned by |this|, and is |
58 // destroyed on UI thread after |this| and |data_use_tab_model_| are | 58 // destroyed on UI thread after |this| and |data_use_tab_model_| are |
59 // destroyed. | 59 // destroyed. |
60 data_use_tab_model_(new DataUseTabModel( | 60 data_use_tab_model_(new DataUseTabModel( |
61 base::Bind(&ExternalDataUseObserverBridge::FetchMatchingRules, | 61 base::Bind(&ExternalDataUseObserverBridge::FetchMatchingRules, |
62 base::Unretained(external_data_use_observer_bridge_)), | 62 base::Unretained(external_data_use_observer_bridge_)), |
63 base::Bind( | 63 base::Bind( |
64 &ExternalDataUseObserverBridge::ShouldRegisterAsDataUseObserver, | 64 &ExternalDataUseObserverBridge::ShouldRegisterAsDataUseObserver, |
65 base::Unretained(external_data_use_observer_bridge_)))), | 65 base::Unretained(external_data_use_observer_bridge_)))), |
66 external_data_use_reporter_( | 66 // It is okay to use base::Unretained for the callbacks, since |
67 new ExternalDataUseReporter(kExternalDataUseObserverFieldTrial, | 67 // |external_data_use_observer_bridge_| and |data_use_tab_model_| are |
68 data_use_tab_model_, | 68 // owned by |this|, and are destroyed on UI thread after |this| and |
69 external_data_use_observer_bridge_)), | 69 // |external_data_use_reporter_| are destroyed. |
| 70 external_data_use_reporter_(new ExternalDataUseReporter( |
| 71 kExternalDataUseObserverFieldTrial, |
| 72 base::Bind(&DataUseTabModel::GetTrackingInfoForTabAtTime, |
| 73 base::Unretained(data_use_tab_model_)), |
| 74 base::Bind(&ExternalDataUseObserverBridge::ReportDataUse, |
| 75 base::Unretained(external_data_use_observer_bridge_)))), |
70 io_task_runner_(io_task_runner), | 76 io_task_runner_(io_task_runner), |
71 ui_task_runner_(ui_task_runner), | 77 ui_task_runner_(ui_task_runner), |
72 last_matching_rules_fetch_time_(base::TimeTicks::Now()), | 78 last_matching_rules_fetch_time_(base::TimeTicks::Now()), |
73 fetch_matching_rules_duration_( | 79 fetch_matching_rules_duration_( |
74 base::TimeDelta::FromSeconds(GetFetchMatchingRulesDurationSeconds())), | 80 base::TimeDelta::FromSeconds(GetFetchMatchingRulesDurationSeconds())), |
75 registered_as_data_use_observer_(false), | 81 registered_as_data_use_observer_(false), |
76 weak_factory_(this) { | 82 weak_factory_(this) { |
77 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); | 83 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); |
78 DCHECK(data_use_aggregator_); | 84 DCHECK(data_use_aggregator_); |
79 DCHECK(io_task_runner_); | 85 DCHECK(io_task_runner_); |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 } | 213 } |
208 | 214 |
209 DataUseTabModel* ExternalDataUseObserver::GetDataUseTabModel() const { | 215 DataUseTabModel* ExternalDataUseObserver::GetDataUseTabModel() const { |
210 DCHECK(thread_checker_.CalledOnValidThread()); | 216 DCHECK(thread_checker_.CalledOnValidThread()); |
211 return data_use_tab_model_; | 217 return data_use_tab_model_; |
212 } | 218 } |
213 | 219 |
214 } // namespace android | 220 } // namespace android |
215 | 221 |
216 } // namespace chrome | 222 } // namespace chrome |
OLD | NEW |