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 ui_task_runner_(ui_task_runner), | 76 ui_task_runner_(ui_task_runner), |
71 last_matching_rules_fetch_time_(base::TimeTicks::Now()), | 77 last_matching_rules_fetch_time_(base::TimeTicks::Now()), |
72 fetch_matching_rules_duration_( | 78 fetch_matching_rules_duration_( |
73 base::TimeDelta::FromSeconds(GetFetchMatchingRulesDurationSeconds())), | 79 base::TimeDelta::FromSeconds(GetFetchMatchingRulesDurationSeconds())), |
74 registered_as_data_use_observer_(false), | 80 registered_as_data_use_observer_(false), |
75 weak_factory_(this) { | 81 weak_factory_(this) { |
76 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); | 82 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); |
77 DCHECK(data_use_aggregator_); | 83 DCHECK(data_use_aggregator_); |
78 DCHECK(io_task_runner); | 84 DCHECK(io_task_runner); |
79 DCHECK(ui_task_runner_); | 85 DCHECK(ui_task_runner_); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 } | 195 } |
190 | 196 |
191 DataUseTabModel* ExternalDataUseObserver::GetDataUseTabModel() const { | 197 DataUseTabModel* ExternalDataUseObserver::GetDataUseTabModel() const { |
192 DCHECK(thread_checker_.CalledOnValidThread()); | 198 DCHECK(thread_checker_.CalledOnValidThread()); |
193 return data_use_tab_model_; | 199 return data_use_tab_model_; |
194 } | 200 } |
195 | 201 |
196 } // namespace android | 202 } // namespace android |
197 | 203 |
198 } // namespace chrome | 204 } // namespace chrome |
OLD | NEW |