Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3325)

Unified Diff: chrome/browser/net/chrome_network_delegate.cc

Issue 1373373002: Create component to expose network usage stats to consumers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed nits Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_) {
+ 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_) {
+ 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,
« no previous file with comments | « chrome/browser/net/chrome_network_delegate.h ('k') | chrome/browser/net/chrome_network_delegate_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698