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 |