| 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 |