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

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: 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 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 request.load_flags = original_request->load_flags(); 438 request.load_flags = original_request->load_flags();
439 // Set to SUB_RESOURCE because we shouldn't trigger NavigationResourceThrottle 439 // Set to SUB_RESOURCE because we shouldn't trigger NavigationResourceThrottle
440 // for the service worker navigation preload request. 440 // for the service worker navigation preload request.
441 request.resource_type = RESOURCE_TYPE_SUB_RESOURCE; 441 request.resource_type = RESOURCE_TYPE_SUB_RESOURCE;
442 request.priority = original_request->priority(); 442 request.priority = original_request->priority();
443 request.skip_service_worker = SkipServiceWorker::ALL; 443 request.skip_service_worker = SkipServiceWorker::ALL;
444 request.do_not_prompt_for_login = true; 444 request.do_not_prompt_for_login = true;
445 request.render_frame_id = original_info->GetRenderFrameID(); 445 request.render_frame_id = original_info->GetRenderFrameID();
446 request.is_main_frame = original_info->IsMainFrame(); 446 request.is_main_frame = original_info->IsMainFrame();
447 request.parent_is_main_frame = original_info->ParentIsMainFrame(); 447 request.parent_is_main_frame = original_info->ParentIsMainFrame();
448 request.enable_load_timing = original_info->is_load_timing_enabled();
449 request.report_raw_headers = original_info->ShouldReportRawHeaders();
448 450
449 DCHECK(net::HttpUtil::IsValidHeaderValue( 451 DCHECK(net::HttpUtil::IsValidHeaderValue(
450 version_->navigation_preload_state().header)); 452 version_->navigation_preload_state().header));
451 ServiceWorkerMetrics::RecordNavigationPreloadRequestHeaderSize( 453 ServiceWorkerMetrics::RecordNavigationPreloadRequestHeaderSize(
452 version_->navigation_preload_state().header.length()); 454 version_->navigation_preload_state().header.length());
453 request.headers = "Service-Worker-Navigation-Preload: " + 455 request.headers = "Service-Worker-Navigation-Preload: " +
454 version_->navigation_preload_state().header; 456 version_->navigation_preload_state().header;
455 457
456 const int request_id = ResourceDispatcherHostImpl::Get()->MakeRequestID(); 458 const int request_id = ResourceDispatcherHostImpl::Get()->MakeRequestID();
457 DCHECK_LT(request_id, -1); 459 DCHECK_LT(request_id, -1);
458 460
459 preload_handle_ = mojom::FetchEventPreloadHandle::New(); 461 preload_handle_ = mojom::FetchEventPreloadHandle::New();
460 mojom::URLLoaderClientPtr url_loader_client_ptr; 462 mojom::URLLoaderClientPtr url_loader_client_ptr;
461 preload_handle_->url_loader_client_request = 463 preload_handle_->url_loader_client_request =
462 mojo::MakeRequest(&url_loader_client_ptr); 464 mojo::MakeRequest(&url_loader_client_ptr);
463 auto url_loader_client = base::MakeUnique<DelegatingURLLoaderClient>( 465 auto url_loader_client = base::MakeUnique<DelegatingURLLoaderClient>(
464 std::move(url_loader_client_ptr)); 466 std::move(url_loader_client_ptr));
465 mojom::URLLoaderClientAssociatedPtrInfo url_loader_client_associated_ptr_info; 467 mojom::URLLoaderClientAssociatedPtrInfo url_loader_client_associated_ptr_info;
466 url_loader_client->Bind(&url_loader_client_associated_ptr_info, 468 url_loader_client->Bind(&url_loader_client_associated_ptr_info,
467 url_loader_factory_.associated_group()); 469 url_loader_factory_.associated_group());
468 mojom::URLLoaderAssociatedPtr url_loader_associated_ptr; 470 mojom::URLLoaderAssociatedPtr url_loader_associated_ptr;
469 471
472 preload_handle_->sent_timestamp =
473 base::TimeTicks::Now().ToInternalValue() /
474 static_cast<double>(base::Time::kMicrosecondsPerSecond);
falken 2017/01/17 14:38:36 Is this converting microseconds to seconds? ToInte
horo 2017/01/18 14:25:02 Humm...I think there is no other way. There is the
475 preload_handle_->sent_wall_time = base::Time::Now().ToDoubleT();
falken 2017/01/17 14:38:36 Could we use Mojo time types instead of these, and
horo 2017/01/18 14:25:02 Done.
476
470 url_loader_factory_->CreateLoaderAndStart( 477 url_loader_factory_->CreateLoaderAndStart(
471 mojo::MakeRequest(&url_loader_associated_ptr, 478 mojo::MakeRequest(&url_loader_associated_ptr,
472 url_loader_factory_.associated_group()), 479 url_loader_factory_.associated_group()),
473 original_info->GetRouteID(), request_id, request, 480 original_info->GetRouteID(), request_id, request,
474 std::move(url_loader_client_associated_ptr_info)); 481 std::move(url_loader_client_associated_ptr_info));
475 482
476 std::unique_ptr<DelegatingURLLoader> url_loader( 483 std::unique_ptr<DelegatingURLLoader> url_loader(
477 new DelegatingURLLoader(std::move(url_loader_associated_ptr))); 484 new DelegatingURLLoader(std::move(url_loader_associated_ptr)));
478 preload_handle_->url_loader = url_loader->CreateInterfacePtrAndBind(); 485 preload_handle_->url_loader = url_loader->CreateInterfacePtrAndBind();
479 url_loader_ = std::move(url_loader); 486 url_loader_ = std::move(url_loader);
480 url_loader_client_ = std::move(url_loader_client); 487 url_loader_client_ = std::move(url_loader_client);
481 } 488 }
482 489
483 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() 490 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType()
484 const { 491 const {
485 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) 492 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH)
486 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; 493 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH;
487 return ResourceTypeToEventType(resource_type_); 494 return ResourceTypeToEventType(resource_type_);
488 } 495 }
489 496
490 } // namespace content 497 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698