Chromium Code Reviews| Index: chrome/browser/android/data_usage/external_data_use_reporter.cc |
| diff --git a/chrome/browser/android/data_usage/external_data_use_reporter.cc b/chrome/browser/android/data_usage/external_data_use_reporter.cc |
| index 898a7cbe485388776e0531c15ae2837a965f9b03..a3cf4be46f5701c6c0a80fecc216c748a65be623 100644 |
| --- a/chrome/browser/android/data_usage/external_data_use_reporter.cc |
| +++ b/chrome/browser/android/data_usage/external_data_use_reporter.cc |
| @@ -10,8 +10,6 @@ |
| #include "base/metrics/histogram_base.h" |
| #include "base/metrics/histogram_macros.h" |
| #include "base/strings/string_number_conversions.h" |
| -#include "chrome/browser/android/data_usage/data_use_tab_model.h" |
| -#include "chrome/browser/android/data_usage/external_data_use_observer_bridge.h" |
| #include "components/data_usage/core/data_use.h" |
| #include "components/variations/variations_associated_data.h" |
| @@ -100,10 +98,20 @@ const size_t ExternalDataUseReporter::kMaxBufferSize = 100; |
| ExternalDataUseReporter::ExternalDataUseReporter( |
| const char* field_trial, |
| - DataUseTabModel* data_use_tab_model, |
| - ExternalDataUseObserverBridge* external_data_use_observer_bridge) |
| - : external_data_use_observer_bridge_(external_data_use_observer_bridge), |
| - data_use_tab_model_(data_use_tab_model), |
| + const base::Callback<bool(SessionID::id_type, |
|
tbansal1
2016/07/21 00:19:30
You can use typedef here too.
Raj
2016/07/21 04:09:16
Done.
|
| + const base::TimeTicks&, |
| + DataUseTabModel::TrackingInfo*)>& |
| + get_tracking_info_callback, |
| + const base::Callback<void(const std::string&, |
| + const std::string&, |
| + net::NetworkChangeNotifier::ConnectionType, |
| + const std::string&, |
| + const base::Time&, |
| + const base::Time&, |
| + int64_t, |
| + int64_t)>& report_data_use_callback) |
| + : get_tracking_info_callback_(get_tracking_info_callback), |
| + report_data_use_callback_(report_data_use_callback), |
| last_data_report_submitted_ticks_(base::TimeTicks()), |
| pending_report_bytes_(0), |
| previous_report_time_(base::Time::Now()), |
| @@ -111,6 +119,8 @@ ExternalDataUseReporter::ExternalDataUseReporter( |
| data_use_report_min_bytes_(GetMinBytes(field_trial)), |
| data_report_submit_timeout_(base::TimeDelta::FromMilliseconds( |
| GetDataReportSubmitTimeoutMsec(field_trial))) { |
| + DCHECK(get_tracking_info_callback_); |
| + DCHECK(report_data_use_callback_); |
| DCHECK(last_data_report_submitted_ticks_.is_null()); |
| // Detach from current thread since rest of ExternalDataUseReporter lives on |
| // the UI thread and the current thread may not be UI thread.. |
| @@ -136,8 +146,8 @@ void ExternalDataUseReporter::OnDataUse(const data_usage::DataUse& data_use) { |
| const base::Time now_time = base::Time::Now(); |
| DataUseTabModel::TrackingInfo tracking_info; |
| - if (!data_use_tab_model_->GetTrackingInfoForTabAtTime( |
| - data_use.tab_id, data_use.request_start, &tracking_info)) { |
| + if (!get_tracking_info_callback_.Run(data_use.tab_id, data_use.request_start, |
| + &tracking_info)) { |
| return; |
| } |
| @@ -273,9 +283,9 @@ void ExternalDataUseReporter::SubmitBufferedDataUseReport(bool immediate) { |
| buffered_data_reports_.erase(it); |
| total_bytes_buffered_ -= (report.bytes_downloaded + report.bytes_uploaded); |
| - external_data_use_observer_bridge_->ReportDataUse( |
| - key.label, key.tag, key.connection_type, key.mcc_mnc, report.start_time, |
| - report.end_time, report.bytes_downloaded, report.bytes_uploaded); |
| + report_data_use_callback_.Run(key.label, key.tag, key.connection_type, |
| + key.mcc_mnc, report.start_time, report.end_time, |
| + report.bytes_downloaded, report.bytes_uploaded); |
| } |
| ExternalDataUseReporter::DataUseReportKey::DataUseReportKey( |