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

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: rebase and include time.h in ServiceWorkerGlobalScopeProxy.* 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 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 request.load_flags = original_request->load_flags(); 453 request.load_flags = original_request->load_flags();
454 // Set to SUB_RESOURCE because we shouldn't trigger NavigationResourceThrottle 454 // Set to SUB_RESOURCE because we shouldn't trigger NavigationResourceThrottle
455 // for the service worker navigation preload request. 455 // for the service worker navigation preload request.
456 request.resource_type = RESOURCE_TYPE_SUB_RESOURCE; 456 request.resource_type = RESOURCE_TYPE_SUB_RESOURCE;
457 request.priority = original_request->priority(); 457 request.priority = original_request->priority();
458 request.skip_service_worker = SkipServiceWorker::ALL; 458 request.skip_service_worker = SkipServiceWorker::ALL;
459 request.do_not_prompt_for_login = true; 459 request.do_not_prompt_for_login = true;
460 request.render_frame_id = original_info->GetRenderFrameID(); 460 request.render_frame_id = original_info->GetRenderFrameID();
461 request.is_main_frame = original_info->IsMainFrame(); 461 request.is_main_frame = original_info->IsMainFrame();
462 request.parent_is_main_frame = original_info->ParentIsMainFrame(); 462 request.parent_is_main_frame = original_info->ParentIsMainFrame();
463 request.enable_load_timing = original_info->is_load_timing_enabled();
464 request.report_raw_headers = original_info->ShouldReportRawHeaders();
463 465
464 DCHECK(net::HttpUtil::IsValidHeaderValue( 466 DCHECK(net::HttpUtil::IsValidHeaderValue(
465 version_->navigation_preload_state().header)); 467 version_->navigation_preload_state().header));
466 ServiceWorkerMetrics::RecordNavigationPreloadRequestHeaderSize( 468 ServiceWorkerMetrics::RecordNavigationPreloadRequestHeaderSize(
467 version_->navigation_preload_state().header.length()); 469 version_->navigation_preload_state().header.length());
468 request.headers = "Service-Worker-Navigation-Preload: " + 470 request.headers = "Service-Worker-Navigation-Preload: " +
469 version_->navigation_preload_state().header; 471 version_->navigation_preload_state().header;
470 472
471 const int request_id = ResourceDispatcherHostImpl::Get()->MakeRequestID(); 473 const int request_id = ResourceDispatcherHostImpl::Get()->MakeRequestID();
472 DCHECK_LT(request_id, -1); 474 DCHECK_LT(request_id, -1);
(...skipping 12 matching lines...) Expand all
485 url_loader_factory->CreateLoaderAndStart( 487 url_loader_factory->CreateLoaderAndStart(
486 mojo::MakeRequest(&url_loader_associated_ptr, 488 mojo::MakeRequest(&url_loader_associated_ptr,
487 url_loader_factory.associated_group()), 489 url_loader_factory.associated_group()),
488 original_info->GetRouteID(), request_id, request, 490 original_info->GetRouteID(), request_id, request,
489 std::move(url_loader_client_associated_ptr_info)); 491 std::move(url_loader_client_associated_ptr_info));
490 492
491 std::unique_ptr<DelegatingURLLoader> url_loader( 493 std::unique_ptr<DelegatingURLLoader> url_loader(
492 base::MakeUnique<DelegatingURLLoader>( 494 base::MakeUnique<DelegatingURLLoader>(
493 std::move(url_loader_associated_ptr))); 495 std::move(url_loader_associated_ptr)));
494 preload_handle_->url_loader = url_loader->CreateInterfacePtrAndBind(); 496 preload_handle_->url_loader = url_loader->CreateInterfacePtrAndBind();
497 preload_handle_->sent_timestamp = base::TimeTicks::Now();
498 preload_handle_->sent_wall_time = base::Time::Now();
495 url_loader_assets_ = 499 url_loader_assets_ =
496 new URLLoaderAssets(std::move(url_loader_factory), std::move(url_loader), 500 new URLLoaderAssets(std::move(url_loader_factory), std::move(url_loader),
497 std::move(url_loader_client)); 501 std::move(url_loader_client));
498 return true; 502 return true;
499 } 503 }
500 504
501 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() 505 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType()
502 const { 506 const {
503 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) 507 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH)
504 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; 508 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH;
505 return ResourceTypeToEventType(resource_type_); 509 return ResourceTypeToEventType(resource_type_);
506 } 510 }
507 511
508 // static 512 // static
509 void ServiceWorkerFetchDispatcher::OnFetchEventFinished( 513 void ServiceWorkerFetchDispatcher::OnFetchEventFinished(
510 ServiceWorkerVersion* version, 514 ServiceWorkerVersion* version,
511 int event_finish_id, 515 int event_finish_id,
512 scoped_refptr<URLLoaderAssets> url_loader_assets, 516 scoped_refptr<URLLoaderAssets> url_loader_assets,
513 ServiceWorkerStatusCode status, 517 ServiceWorkerStatusCode status,
514 base::Time dispatch_event_time) { 518 base::Time dispatch_event_time) {
515 version->FinishRequest(event_finish_id, status != SERVICE_WORKER_ERROR_ABORT, 519 version->FinishRequest(event_finish_id, status != SERVICE_WORKER_ERROR_ABORT,
516 dispatch_event_time); 520 dispatch_event_time);
517 } 521 }
518 522
519 } // namespace content 523 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698