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