Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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_) { | |
|
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
| |
| 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_) { | |
|
bengr
2015/10/06 19:30:27
Same here.
sclittle
2015/10/07 01:07:55
See above.
| |
| 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 Loading... | |
| 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 } |
| OLD | NEW |