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..c0718e69f55d44422c2b4bec9b0e53600f1358ef 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,31 @@ void ChromeNetworkDelegate::OnNetworkBytesReceived( |
| task_management::TaskManagerInterface::OnRawBytesRead(request, |
| bytes_received); |
| #endif // defined(ENABLE_TASK_MANAGER) |
| + |
| + if (data_use_aggregator_) { |
|
tbansal1
2015/10/01 20:30:43
May be reverse the boolean condition to reduce ind
sclittle
2015/10/03 03:27:52
I'd prefer to avoid adding returns like that, sinc
|
| + if (is_data_usage_off_the_record_) { |
| + data_use_aggregator_->ReportOffTheRecordDataUse(0 /* tx_bytes */, |
| + bytes_received); |
| + } else { |
| + data_use_aggregator_->ReportDataUse( |
| + request.url(), request.first_party_for_cookies(), -1 /* tab_id */, |
| + 0 /* tx_bytes */, bytes_received); |
| + } |
| + } |
| +} |
| + |
| +void ChromeNetworkDelegate::OnNetworkBytesSent(const net::URLRequest& request, |
| + int64_t bytes_sent) { |
| + if (data_use_aggregator_) { |
| + if (is_data_usage_off_the_record_) { |
| + data_use_aggregator_->ReportOffTheRecordDataUse(bytes_sent, |
| + 0 /* rx_bytes */); |
| + } else { |
| + data_use_aggregator_->ReportDataUse( |
| + request.url(), request.first_party_for_cookies(), -1 /* tab_id */, |
| + bytes_sent, 0 /* rx_bytes */); |
| + } |
| + } |
| } |
| void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request, |