Chromium Code Reviews| Index: chrome/browser/net/chrome_network_delegate.cc |
| diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc |
| index 8fd2976e149934d21be6e42ac73a1bc1ea23639f..ef78b9eda44f18d85de7a6d32e49ec5af6869aed 100644 |
| --- a/chrome/browser/net/chrome_network_delegate.cc |
| +++ b/chrome/browser/net/chrome_network_delegate.cc |
| @@ -36,6 +36,7 @@ |
| #include "chrome/browser/task_management/task_manager_interface.h" |
| #include "chrome/common/pref_names.h" |
| #include "components/content_settings/core/browser/cookie_settings.h" |
| +#include "components/data_usage/core/data_use_aggregator.h" |
| #include "components/domain_reliability/monitor.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/render_frame_host.h" |
| @@ -293,8 +294,10 @@ ChromeNetworkDelegate::ChromeNetworkDelegate( |
| #endif |
| domain_reliability_monitor_(NULL), |
| experimental_web_platform_features_enabled_( |
| - base::CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kEnableExperimentalWebPlatformFeatures)) { |
| + base::CommandLine::ForCurrentProcess() |
| + ->HasSwitch(switches::kEnableExperimentalWebPlatformFeatures)), |
| + data_use_aggregator_(nullptr), |
| + is_data_usage_off_the_record_(true) { |
| DCHECK(enable_referrers); |
| extensions_delegate_.reset( |
| ChromeExtensionsNetworkDelegate::Create(event_router)); |
| @@ -323,6 +326,13 @@ void ChromeNetworkDelegate::set_predictor( |
| new chrome_browser_net::ConnectInterceptor(predictor)); |
| } |
| +void ChromeNetworkDelegate::set_data_use_aggregator( |
| + data_usage::DataUseAggregator* data_use_aggregator, |
| + bool is_data_usage_off_the_record) { |
| + data_use_aggregator_ = data_use_aggregator; |
| + is_data_usage_off_the_record_ = is_data_usage_off_the_record; |
| +} |
| + |
| // static |
| void ChromeNetworkDelegate::InitializePrefsOnUIThread( |
| BooleanPrefMember* enable_referrers, |
| @@ -491,6 +501,29 @@ void ChromeNetworkDelegate::OnNetworkBytesReceived( |
| task_management::TaskManagerInterface::OnRawBytesRead(request, |
| bytes_received); |
| #endif // defined(ENABLE_TASK_MANAGER) |
| + |
| + if (data_use_aggregator_) { |
|
bengr
2015/10/06 19:30:27
How about:
if (!data_use_aggregator_)
return;
sclittle
2015/10/07 01:07:55
We could, but that would make it harder to add new
|
| + if (is_data_usage_off_the_record_) { |
| + data_use_aggregator_->ReportOffTheRecordDataUse(0 /* tx_bytes */, |
| + bytes_received); |
| + } else { |
| + data_use_aggregator_->ReportDataUse(request, -1 /* tab_id */, |
| + 0 /* tx_bytes */, bytes_received); |
| + } |
| + } |
| +} |
| + |
| +void ChromeNetworkDelegate::OnNetworkBytesSent(const net::URLRequest& request, |
| + int64_t bytes_sent) { |
| + if (data_use_aggregator_) { |
|
bengr
2015/10/06 19:30:27
Same here.
sclittle
2015/10/07 01:07:55
See above.
|
| + if (is_data_usage_off_the_record_) { |
| + data_use_aggregator_->ReportOffTheRecordDataUse(bytes_sent, |
| + 0 /* rx_bytes */); |
| + } else { |
| + data_use_aggregator_->ReportDataUse(request, -1 /* tab_id */, bytes_sent, |
| + 0 /* rx_bytes */); |
| + } |
| + } |
| } |
| void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request, |