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

Side by Side Diff: content/browser/service_worker/service_worker_fetch_dispatcher.cc

Issue 2620463002: Show service worker navigation preload requests in DevTools Network tab (Closed)
Patch Set: incorporated falken's comment Created 3 years, 11 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/browser/service_worker/service_worker_fetch_dispatcher.h" 5 #include "content/browser/service_worker/service_worker_fetch_dispatcher.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 request.load_flags = original_request->load_flags(); 423 request.load_flags = original_request->load_flags();
424 // Set to SUB_RESOURCE because we shouldn't trigger NavigationResourceThrottle 424 // Set to SUB_RESOURCE because we shouldn't trigger NavigationResourceThrottle
425 // for the service worker navigation preload request. 425 // for the service worker navigation preload request.
426 request.resource_type = RESOURCE_TYPE_SUB_RESOURCE; 426 request.resource_type = RESOURCE_TYPE_SUB_RESOURCE;
427 request.priority = original_request->priority(); 427 request.priority = original_request->priority();
428 request.skip_service_worker = SkipServiceWorker::ALL; 428 request.skip_service_worker = SkipServiceWorker::ALL;
429 request.do_not_prompt_for_login = true; 429 request.do_not_prompt_for_login = true;
430 request.render_frame_id = original_info->GetRenderFrameID(); 430 request.render_frame_id = original_info->GetRenderFrameID();
431 request.is_main_frame = original_info->IsMainFrame(); 431 request.is_main_frame = original_info->IsMainFrame();
432 request.parent_is_main_frame = original_info->ParentIsMainFrame(); 432 request.parent_is_main_frame = original_info->ParentIsMainFrame();
433 request.enable_load_timing = original_info->is_load_timing_enabled();
434 request.report_raw_headers = original_info->ShouldReportRawHeaders();
433 435
434 DCHECK(net::HttpUtil::IsValidHeaderValue( 436 DCHECK(net::HttpUtil::IsValidHeaderValue(
435 version_->navigation_preload_state().header)); 437 version_->navigation_preload_state().header));
436 ServiceWorkerMetrics::RecordNavigationPreloadRequestHeaderSize( 438 ServiceWorkerMetrics::RecordNavigationPreloadRequestHeaderSize(
437 version_->navigation_preload_state().header.length()); 439 version_->navigation_preload_state().header.length());
438 request.headers = "Service-Worker-Navigation-Preload: " + 440 request.headers = "Service-Worker-Navigation-Preload: " +
439 version_->navigation_preload_state().header; 441 version_->navigation_preload_state().header;
440 442
441 const int request_id = ResourceDispatcherHostImpl::Get()->MakeRequestID(); 443 const int request_id = ResourceDispatcherHostImpl::Get()->MakeRequestID();
442 DCHECK_LT(request_id, -1); 444 DCHECK_LT(request_id, -1);
443 445
444 preload_handle_ = mojom::FetchEventPreloadHandle::New(); 446 preload_handle_ = mojom::FetchEventPreloadHandle::New();
445 mojom::URLLoaderClientPtr url_loader_client_ptr; 447 mojom::URLLoaderClientPtr url_loader_client_ptr;
446 preload_handle_->url_loader_client_request = 448 preload_handle_->url_loader_client_request =
447 mojo::MakeRequest(&url_loader_client_ptr); 449 mojo::MakeRequest(&url_loader_client_ptr);
448 auto url_loader_client = base::MakeUnique<DelegatingURLLoaderClient>( 450 auto url_loader_client = base::MakeUnique<DelegatingURLLoaderClient>(
449 std::move(url_loader_client_ptr)); 451 std::move(url_loader_client_ptr));
450 mojom::URLLoaderClientAssociatedPtrInfo url_loader_client_associated_ptr_info; 452 mojom::URLLoaderClientAssociatedPtrInfo url_loader_client_associated_ptr_info;
451 url_loader_client->Bind(&url_loader_client_associated_ptr_info, 453 url_loader_client->Bind(&url_loader_client_associated_ptr_info,
452 url_loader_factory_.associated_group()); 454 url_loader_factory_.associated_group());
453 mojom::URLLoaderAssociatedPtr url_loader_associated_ptr; 455 mojom::URLLoaderAssociatedPtr url_loader_associated_ptr;
454 456
457 preload_handle_->sent_timestamp = base::TimeTicks::Now();
458 preload_handle_->sent_wall_time = base::Time::Now();
459
455 url_loader_factory_->CreateLoaderAndStart( 460 url_loader_factory_->CreateLoaderAndStart(
456 mojo::MakeRequest(&url_loader_associated_ptr, 461 mojo::MakeRequest(&url_loader_associated_ptr,
457 url_loader_factory_.associated_group()), 462 url_loader_factory_.associated_group()),
458 original_info->GetRouteID(), request_id, request, 463 original_info->GetRouteID(), request_id, request,
459 std::move(url_loader_client_associated_ptr_info)); 464 std::move(url_loader_client_associated_ptr_info));
460 465
461 std::unique_ptr<DelegatingURLLoader> url_loader( 466 std::unique_ptr<DelegatingURLLoader> url_loader(
462 new DelegatingURLLoader(std::move(url_loader_associated_ptr))); 467 new DelegatingURLLoader(std::move(url_loader_associated_ptr)));
463 preload_handle_->url_loader = url_loader->CreateInterfacePtrAndBind(); 468 preload_handle_->url_loader = url_loader->CreateInterfacePtrAndBind();
464 url_loader_ = std::move(url_loader); 469 url_loader_ = std::move(url_loader);
465 url_loader_client_ = std::move(url_loader_client); 470 url_loader_client_ = std::move(url_loader_client);
466 return true; 471 return true;
467 } 472 }
468 473
469 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() 474 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType()
470 const { 475 const {
471 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) 476 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH)
472 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; 477 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH;
473 return ResourceTypeToEventType(resource_type_); 478 return ResourceTypeToEventType(resource_type_);
474 } 479 }
475 480
476 } // namespace content 481 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698