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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/net/chrome_network_delegate.h" 5 #include "chrome/browser/net/chrome_network_delegate.h"
6 6
7 #include <stdlib.h> 7 #include <stdlib.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 18 matching lines...) Expand all
29 #include "chrome/browser/content_settings/tab_specific_content_settings.h" 29 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
30 #include "chrome/browser/custom_handlers/protocol_handler_registry.h" 30 #include "chrome/browser/custom_handlers/protocol_handler_registry.h"
31 #include "chrome/browser/net/chrome_extensions_network_delegate.h" 31 #include "chrome/browser/net/chrome_extensions_network_delegate.h"
32 #include "chrome/browser/net/connect_interceptor.h" 32 #include "chrome/browser/net/connect_interceptor.h"
33 #include "chrome/browser/net/request_source_bandwidth_histograms.h" 33 #include "chrome/browser/net/request_source_bandwidth_histograms.h"
34 #include "chrome/browser/net/safe_search_util.h" 34 #include "chrome/browser/net/safe_search_util.h"
35 #include "chrome/browser/profiles/profile_manager.h" 35 #include "chrome/browser/profiles/profile_manager.h"
36 #include "chrome/browser/task_management/task_manager_interface.h" 36 #include "chrome/browser/task_management/task_manager_interface.h"
37 #include "chrome/common/pref_names.h" 37 #include "chrome/common/pref_names.h"
38 #include "components/content_settings/core/browser/cookie_settings.h" 38 #include "components/content_settings/core/browser/cookie_settings.h"
39 #include "components/data_usage/core/data_use_aggregator.h"
39 #include "components/domain_reliability/monitor.h" 40 #include "components/domain_reliability/monitor.h"
40 #include "content/public/browser/browser_thread.h" 41 #include "content/public/browser/browser_thread.h"
41 #include "content/public/browser/render_frame_host.h" 42 #include "content/public/browser/render_frame_host.h"
42 #include "content/public/browser/render_view_host.h" 43 #include "content/public/browser/render_view_host.h"
43 #include "content/public/browser/resource_request_info.h" 44 #include "content/public/browser/resource_request_info.h"
44 #include "content/public/common/content_switches.h" 45 #include "content/public/common/content_switches.h"
45 #include "content/public/common/process_type.h" 46 #include "content/public/common/process_type.h"
46 #include "net/base/host_port_pair.h" 47 #include "net/base/host_port_pair.h"
47 #include "net/base/load_flags.h" 48 #include "net/base/load_flags.h"
48 #include "net/base/net_errors.h" 49 #include "net/base/net_errors.h"
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 : profile_(NULL), 287 : profile_(NULL),
287 enable_referrers_(enable_referrers), 288 enable_referrers_(enable_referrers),
288 enable_do_not_track_(NULL), 289 enable_do_not_track_(NULL),
289 force_google_safe_search_(NULL), 290 force_google_safe_search_(NULL),
290 force_youtube_safety_mode_(NULL), 291 force_youtube_safety_mode_(NULL),
291 #if defined(ENABLE_CONFIGURATION_POLICY) 292 #if defined(ENABLE_CONFIGURATION_POLICY)
292 url_blacklist_manager_(NULL), 293 url_blacklist_manager_(NULL),
293 #endif 294 #endif
294 domain_reliability_monitor_(NULL), 295 domain_reliability_monitor_(NULL),
295 experimental_web_platform_features_enabled_( 296 experimental_web_platform_features_enabled_(
296 base::CommandLine::ForCurrentProcess()->HasSwitch( 297 base::CommandLine::ForCurrentProcess()
297 switches::kEnableExperimentalWebPlatformFeatures)) { 298 ->HasSwitch(switches::kEnableExperimentalWebPlatformFeatures)),
299 data_use_aggregator_(nullptr),
300 is_data_usage_off_the_record_(true) {
298 DCHECK(enable_referrers); 301 DCHECK(enable_referrers);
299 extensions_delegate_.reset( 302 extensions_delegate_.reset(
300 ChromeExtensionsNetworkDelegate::Create(event_router)); 303 ChromeExtensionsNetworkDelegate::Create(event_router));
301 } 304 }
302 305
303 ChromeNetworkDelegate::~ChromeNetworkDelegate() {} 306 ChromeNetworkDelegate::~ChromeNetworkDelegate() {}
304 307
305 void ChromeNetworkDelegate::set_extension_info_map( 308 void ChromeNetworkDelegate::set_extension_info_map(
306 extensions::InfoMap* extension_info_map) { 309 extensions::InfoMap* extension_info_map) {
307 extensions_delegate_->set_extension_info_map(extension_info_map); 310 extensions_delegate_->set_extension_info_map(extension_info_map);
308 } 311 }
309 312
310 void ChromeNetworkDelegate::set_profile(void* profile) { 313 void ChromeNetworkDelegate::set_profile(void* profile) {
311 profile_ = profile; 314 profile_ = profile;
312 extensions_delegate_->set_profile(profile); 315 extensions_delegate_->set_profile(profile);
313 } 316 }
314 317
315 void ChromeNetworkDelegate::set_cookie_settings( 318 void ChromeNetworkDelegate::set_cookie_settings(
316 content_settings::CookieSettings* cookie_settings) { 319 content_settings::CookieSettings* cookie_settings) {
317 cookie_settings_ = cookie_settings; 320 cookie_settings_ = cookie_settings;
318 } 321 }
319 322
320 void ChromeNetworkDelegate::set_predictor( 323 void ChromeNetworkDelegate::set_predictor(
321 chrome_browser_net::Predictor* predictor) { 324 chrome_browser_net::Predictor* predictor) {
322 connect_interceptor_.reset( 325 connect_interceptor_.reset(
323 new chrome_browser_net::ConnectInterceptor(predictor)); 326 new chrome_browser_net::ConnectInterceptor(predictor));
324 } 327 }
325 328
329 void ChromeNetworkDelegate::set_data_use_aggregator(
330 data_usage::DataUseAggregator* data_use_aggregator,
331 bool is_data_usage_off_the_record) {
332 data_use_aggregator_ = data_use_aggregator;
333 is_data_usage_off_the_record_ = is_data_usage_off_the_record;
334 }
335
326 // static 336 // static
327 void ChromeNetworkDelegate::InitializePrefsOnUIThread( 337 void ChromeNetworkDelegate::InitializePrefsOnUIThread(
328 BooleanPrefMember* enable_referrers, 338 BooleanPrefMember* enable_referrers,
329 BooleanPrefMember* enable_do_not_track, 339 BooleanPrefMember* enable_do_not_track,
330 BooleanPrefMember* force_google_safe_search, 340 BooleanPrefMember* force_google_safe_search,
331 BooleanPrefMember* force_youtube_safety_mode, 341 BooleanPrefMember* force_youtube_safety_mode,
332 PrefService* pref_service) { 342 PrefService* pref_service) {
333 DCHECK_CURRENTLY_ON(BrowserThread::UI); 343 DCHECK_CURRENTLY_ON(BrowserThread::UI);
334 enable_referrers->Init(prefs::kEnableReferrers, pref_service); 344 enable_referrers->Init(prefs::kEnableReferrers, pref_service);
335 enable_referrers->MoveToThread( 345 enable_referrers->MoveToThread(
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 494
485 void ChromeNetworkDelegate::OnNetworkBytesReceived( 495 void ChromeNetworkDelegate::OnNetworkBytesReceived(
486 const net::URLRequest& request, 496 const net::URLRequest& request,
487 int64_t bytes_received) { 497 int64_t bytes_received) {
488 #if defined(ENABLE_TASK_MANAGER) 498 #if defined(ENABLE_TASK_MANAGER)
489 // Note: Currently, OnNetworkBytesReceived is only implemented for HTTP jobs, 499 // Note: Currently, OnNetworkBytesReceived is only implemented for HTTP jobs,
490 // not FTP or other types, so those kinds of bytes will not be reported here. 500 // not FTP or other types, so those kinds of bytes will not be reported here.
491 task_management::TaskManagerInterface::OnRawBytesRead(request, 501 task_management::TaskManagerInterface::OnRawBytesRead(request,
492 bytes_received); 502 bytes_received);
493 #endif // defined(ENABLE_TASK_MANAGER) 503 #endif // defined(ENABLE_TASK_MANAGER)
504
505 if (data_use_aggregator_) {
506 if (is_data_usage_off_the_record_) {
507 data_use_aggregator_->ReportOffTheRecordDataUse(0 /* tx_bytes */,
508 bytes_received);
509 } else {
510 data_use_aggregator_->ReportDataUse(request, -1 /* tab_id */,
511 0 /* tx_bytes */, bytes_received);
512 }
513 }
514 }
515
516 void ChromeNetworkDelegate::OnNetworkBytesSent(const net::URLRequest& request,
517 int64_t bytes_sent) {
518 if (data_use_aggregator_) {
519 if (is_data_usage_off_the_record_) {
520 data_use_aggregator_->ReportOffTheRecordDataUse(bytes_sent,
521 0 /* rx_bytes */);
522 } else {
523 data_use_aggregator_->ReportDataUse(request, -1 /* tab_id */, bytes_sent,
524 0 /* rx_bytes */);
525 }
526 }
494 } 527 }
495 528
496 void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request, 529 void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request,
497 bool started) { 530 bool started) {
498 #if !defined(OS_IOS) 531 #if !defined(OS_IOS)
499 // TODO(amohammadkhan): Verify that there is no double recording in data use 532 // TODO(amohammadkhan): Verify that there is no double recording in data use
500 // of redirected requests. 533 // of redirected requests.
501 data_use_measurement_.ReportDataUseUMA(request); 534 data_use_measurement_.ReportDataUseUMA(request);
502 #endif 535 #endif
503 RecordNetworkErrorHistograms(request); 536 RecordNetworkErrorHistograms(request);
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 return experimental_web_platform_features_enabled_; 735 return experimental_web_platform_features_enabled_;
703 } 736 }
704 737
705 bool ChromeNetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader( 738 bool ChromeNetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader(
706 const net::URLRequest& request, 739 const net::URLRequest& request,
707 const GURL& target_url, 740 const GURL& target_url,
708 const GURL& referrer_url) const { 741 const GURL& referrer_url) const {
709 ReportInvalidReferrerSend(target_url, referrer_url); 742 ReportInvalidReferrerSend(target_url, referrer_url);
710 return true; 743 return true;
711 } 744 }
OLDNEW
« 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