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

Side by Side Diff: chrome/browser/net/chrome_network_delegate.cc

Issue 1569673002: [NOT FOR LANDING] Detailed loading traces Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 9 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 <stddef.h> 7 #include <stddef.h>
8 #include <stdlib.h> 8 #include <stdlib.h>
9 9
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/trace_event/trace_event.h"
12 #include "base/base_paths.h" 13 #include "base/base_paths.h"
13 #include "base/command_line.h" 14 #include "base/command_line.h"
14 #include "base/debug/alias.h" 15 #include "base/debug/alias.h"
15 #include "base/debug/dump_without_crashing.h" 16 #include "base/debug/dump_without_crashing.h"
16 #include "base/debug/stack_trace.h" 17 #include "base/debug/stack_trace.h"
17 #include "base/logging.h" 18 #include "base/logging.h"
18 #include "base/macros.h" 19 #include "base/macros.h"
19 #include "base/metrics/field_trial.h" 20 #include "base/metrics/field_trial.h"
20 #include "base/metrics/histogram.h" 21 #include "base/metrics/histogram.h"
21 #include "base/metrics/sparse_histogram.h" 22 #include "base/metrics/sparse_histogram.h"
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 371
371 // static 372 // static
372 void ChromeNetworkDelegate::AllowAccessToAllFiles() { 373 void ChromeNetworkDelegate::AllowAccessToAllFiles() {
373 g_allow_file_access_ = true; 374 g_allow_file_access_ = true;
374 } 375 }
375 376
376 int ChromeNetworkDelegate::OnBeforeURLRequest( 377 int ChromeNetworkDelegate::OnBeforeURLRequest(
377 net::URLRequest* request, 378 net::URLRequest* request,
378 const net::CompletionCallback& callback, 379 const net::CompletionCallback& callback,
379 GURL* new_url) { 380 GURL* new_url) {
381 TRACE_EVENT0("toplevel", "ChromeNetworkDelegate::OnBeforeURLRequest");
382
380 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. 383 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed.
381 tracked_objects::ScopedTracker tracking_profile1( 384 tracked_objects::ScopedTracker tracking_profile1(
382 FROM_HERE_WITH_EXPLICIT_FUNCTION( 385 FROM_HERE_WITH_EXPLICIT_FUNCTION(
383 "456327 URLRequest::ChromeNetworkDelegate::OnBeforeURLRequest")); 386 "456327 URLRequest::ChromeNetworkDelegate::OnBeforeURLRequest"));
384 387 TRACE_EVENT0("toplevel", "ChromeNetworkDelegate::OnBeforeURLRequest::A");
385 #if defined(ENABLE_CONFIGURATION_POLICY) 388 #if defined(ENABLE_CONFIGURATION_POLICY)
386 // TODO(joaodasilva): This prevents extensions from seeing URLs that are 389 // TODO(joaodasilva): This prevents extensions from seeing URLs that are
387 // blocked. However, an extension might redirect the request to another URL, 390 // blocked. However, an extension might redirect the request to another URL,
388 // which is not blocked. 391 // which is not blocked.
389 392
390 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); 393 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
391 int error = net::ERR_BLOCKED_BY_ADMINISTRATOR; 394 int error = net::ERR_BLOCKED_BY_ADMINISTRATOR;
392 if (info && content::IsResourceTypeFrame(info->GetResourceType()) && 395 if (info && content::IsResourceTypeFrame(info->GetResourceType()) &&
393 url_blacklist_manager_ && 396 url_blacklist_manager_ &&
394 url_blacklist_manager_->ShouldBlockRequestForFrame( 397 url_blacklist_manager_->ShouldBlockRequestForFrame(
395 request->url(), &error)) { 398 request->url(), &error)) {
396 // URL access blocked by policy. 399 // URL access blocked by policy.
397 request->net_log().AddEvent( 400 request->net_log().AddEvent(
398 net::NetLog::TYPE_CHROME_POLICY_ABORTED_REQUEST, 401 net::NetLog::TYPE_CHROME_POLICY_ABORTED_REQUEST,
399 net::NetLog::StringCallback("url", 402 net::NetLog::StringCallback("url",
400 &request->url().possibly_invalid_spec())); 403 &request->url().possibly_invalid_spec()));
401 return error; 404 return error;
402 } 405 }
403 #endif 406 #endif
404 407 TRACE_EVENT0("toplevel", "ChromeNetworkDelegate::OnBeforeURLRequest::A.1");
405 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. 408 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed.
406 tracked_objects::ScopedTracker tracking_profile2( 409 tracked_objects::ScopedTracker tracking_profile2(
407 FROM_HERE_WITH_EXPLICIT_FUNCTION( 410 FROM_HERE_WITH_EXPLICIT_FUNCTION(
408 "456327 URLRequest::ChromeNetworkDelegate::OnBeforeURLRequest 2")); 411 "456327 URLRequest::ChromeNetworkDelegate::OnBeforeURLRequest 2"));
409 412
410 extensions_delegate_->ForwardStartRequestStatus(request); 413 extensions_delegate_->ForwardStartRequestStatus(request);
411 414 TRACE_EVENT0("toplevel", "ChromeNetworkDelegate::OnBeforeURLRequest::B");
412 if (!enable_referrers_->GetValue()) 415 if (!enable_referrers_->GetValue())
413 request->SetReferrer(std::string()); 416 request->SetReferrer(std::string());
414 if (enable_do_not_track_ && enable_do_not_track_->GetValue()) 417 if (enable_do_not_track_ && enable_do_not_track_->GetValue())
415 request->SetExtraRequestHeaderByName(kDNTHeader, "1", true /* override */); 418 request->SetExtraRequestHeaderByName(kDNTHeader, "1", true /* override */);
416 419
417 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. 420 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed.
418 tracked_objects::ScopedTracker tracking_profile3( 421 tracked_objects::ScopedTracker tracking_profile3(
419 FROM_HERE_WITH_EXPLICIT_FUNCTION( 422 FROM_HERE_WITH_EXPLICIT_FUNCTION(
420 "456327 URLRequest::ChromeNetworkDelegate::OnBeforeURLRequest 3")); 423 "456327 URLRequest::ChromeNetworkDelegate::OnBeforeURLRequest 3"));
421 424
422 bool force_safe_search = 425 bool force_safe_search =
423 (force_google_safe_search_ && force_google_safe_search_->GetValue()); 426 (force_google_safe_search_ && force_google_safe_search_->GetValue());
424 427
425 net::CompletionCallback wrapped_callback = callback; 428 net::CompletionCallback wrapped_callback = callback;
426 if (force_safe_search) { 429 if (force_safe_search) {
427 wrapped_callback = base::Bind(&ForceGoogleSafeSearchCallbackWrapper, 430 wrapped_callback = base::Bind(&ForceGoogleSafeSearchCallbackWrapper,
428 callback, 431 callback,
429 base::Unretained(request), 432 base::Unretained(request),
430 base::Unretained(new_url)); 433 base::Unretained(new_url));
431 } 434 }
432 435 TRACE_EVENT0("toplevel", "ChromeNetworkDelegate::OnBeforeURLRequest::C");
433 int rv = extensions_delegate_->OnBeforeURLRequest( 436 int rv = extensions_delegate_->OnBeforeURLRequest(
434 request, wrapped_callback, new_url); 437 request, wrapped_callback, new_url);
435 438 TRACE_EVENT0("toplevel", "ChromeNetworkDelegate::OnBeforeURLRequest::C.1");
436 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. 439 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed.
437 tracked_objects::ScopedTracker tracking_profile4( 440 tracked_objects::ScopedTracker tracking_profile4(
438 FROM_HERE_WITH_EXPLICIT_FUNCTION( 441 FROM_HERE_WITH_EXPLICIT_FUNCTION(
439 "456327 URLRequest::ChromeNetworkDelegate::OnBeforeURLRequest 4")); 442 "456327 URLRequest::ChromeNetworkDelegate::OnBeforeURLRequest 4"));
440 443
441 if (force_safe_search && rv == net::OK && new_url->is_empty()) 444 if (force_safe_search && rv == net::OK && new_url->is_empty())
442 safe_search_util::ForceGoogleSafeSearch(request, new_url); 445 safe_search_util::ForceGoogleSafeSearch(request, new_url);
443 446 TRACE_EVENT0("toplevel", "ChromeNetworkDelegate::OnBeforeURLRequest::C.2");
444 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed. 447 // TODO(mmenke): Remove ScopedTracker below once crbug.com/456327 is fixed.
445 tracked_objects::ScopedTracker tracking_profile5( 448 tracked_objects::ScopedTracker tracking_profile5(
446 FROM_HERE_WITH_EXPLICIT_FUNCTION( 449 FROM_HERE_WITH_EXPLICIT_FUNCTION(
447 "456327 URLRequest::ChromeNetworkDelegate::OnBeforeURLRequest 5")); 450 "456327 URLRequest::ChromeNetworkDelegate::OnBeforeURLRequest 5"));
448 451
449 if (connect_interceptor_) 452 if (connect_interceptor_)
450 connect_interceptor_->WitnessURLRequest(request); 453 connect_interceptor_->WitnessURLRequest(request);
451 454 TRACE_EVENT0("toplevel", "ChromeNetworkDelegate::OnBeforeURLRequest::C.3");
452 return rv; 455 return rv;
453 } 456 }
454 457
455 int ChromeNetworkDelegate::OnBeforeSendHeaders( 458 int ChromeNetworkDelegate::OnBeforeSendHeaders(
456 net::URLRequest* request, 459 net::URLRequest* request,
457 const net::CompletionCallback& callback, 460 const net::CompletionCallback& callback,
458 net::HttpRequestHeaders* headers) { 461 net::HttpRequestHeaders* headers) {
459 if (force_youtube_safety_mode_ && force_youtube_safety_mode_->GetValue()) 462 if (force_youtube_safety_mode_ && force_youtube_safety_mode_->GetValue())
460 safe_search_util::ForceYouTubeSafetyMode(request, headers); 463 safe_search_util::ForceYouTubeSafetyMode(request, headers);
461 464
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 ReportDataUsageStats(request, 0 /* tx_bytes */, bytes_received); 511 ReportDataUsageStats(request, 0 /* tx_bytes */, bytes_received);
509 } 512 }
510 513
511 void ChromeNetworkDelegate::OnNetworkBytesSent(net::URLRequest* request, 514 void ChromeNetworkDelegate::OnNetworkBytesSent(net::URLRequest* request,
512 int64_t bytes_sent) { 515 int64_t bytes_sent) {
513 ReportDataUsageStats(request, bytes_sent, 0 /* rx_bytes */); 516 ReportDataUsageStats(request, bytes_sent, 0 /* rx_bytes */);
514 } 517 }
515 518
516 void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request, 519 void ChromeNetworkDelegate::OnCompleted(net::URLRequest* request,
517 bool started) { 520 bool started) {
521 TRACE_EVENT0("toplevel", "ChromeNetworkDelegate::OnCompleted");
518 // TODO(amohammadkhan): Verify that there is no double recording in data use 522 // TODO(amohammadkhan): Verify that there is no double recording in data use
519 // of redirected requests. 523 // of redirected requests.
520 data_use_measurement_.ReportDataUseUMA(request); 524 data_use_measurement_.ReportDataUseUMA(request);
521 RecordNetworkErrorHistograms(request); 525 RecordNetworkErrorHistograms(request);
522 if (started) { 526 if (started) {
523 // Only call in for requests that were started, to obey the precondition 527 // Only call in for requests that were started, to obey the precondition
524 // that RecordCacheStateStats can only be called on requests for which 528 // that RecordCacheStateStats can only be called on requests for which
525 // OnResponseStarted was called. 529 // OnResponseStarted was called.
526 RecordCacheStateStats(request); 530 RecordCacheStateStats(request);
527 } 531 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 const net::AuthChallengeInfo& auth_info, 576 const net::AuthChallengeInfo& auth_info,
573 const AuthCallback& callback, 577 const AuthCallback& callback,
574 net::AuthCredentials* credentials) { 578 net::AuthCredentials* credentials) {
575 return extensions_delegate_->OnAuthRequired( 579 return extensions_delegate_->OnAuthRequired(
576 request, auth_info, callback, credentials); 580 request, auth_info, callback, credentials);
577 } 581 }
578 582
579 bool ChromeNetworkDelegate::OnCanGetCookies( 583 bool ChromeNetworkDelegate::OnCanGetCookies(
580 const net::URLRequest& request, 584 const net::URLRequest& request,
581 const net::CookieList& cookie_list) { 585 const net::CookieList& cookie_list) {
586 TRACE_EVENT0("toplevel", "ChromeNetworkDelegate::OnCanGetCookies");
582 // NULL during tests, or when we're running in the system context. 587 // NULL during tests, or when we're running in the system context.
583 if (!cookie_settings_.get()) 588 if (!cookie_settings_.get())
584 return true; 589 return true;
585 590
586 bool allow = cookie_settings_->IsReadingCookieAllowed( 591 bool allow = cookie_settings_->IsReadingCookieAllowed(
587 request.url(), request.first_party_for_cookies()); 592 request.url(), request.first_party_for_cookies());
588 593
589 int render_process_id = -1; 594 int render_process_id = -1;
590 int render_frame_id = -1; 595 int render_frame_id = -1;
591 if (content::ResourceRequestInfo::GetRenderFrameForRequest( 596 if (content::ResourceRequestInfo::GetRenderFrameForRequest(
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 if (!data_use_aggregator_) 753 if (!data_use_aggregator_)
749 return; 754 return;
750 755
751 if (is_data_usage_off_the_record_) { 756 if (is_data_usage_off_the_record_) {
752 data_use_aggregator_->ReportOffTheRecordDataUse(tx_bytes, rx_bytes); 757 data_use_aggregator_->ReportOffTheRecordDataUse(tx_bytes, rx_bytes);
753 return; 758 return;
754 } 759 }
755 760
756 data_use_aggregator_->ReportDataUse(request, tx_bytes, rx_bytes); 761 data_use_aggregator_->ReportDataUse(request, tx_bytes, rx_bytes);
757 } 762 }
OLDNEW
« no previous file with comments | « chrome/browser/download/download_resource_throttle.cc ('k') | chrome/browser/net/connect_interceptor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698