| OLD | NEW |
| 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 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 did_complete_ = true; | 373 did_complete_ = true; |
| 374 net_log_.EndEvent( | 374 net_log_.EndEvent( |
| 375 net::NetLogEventType::SERVICE_WORKER_DISPATCH_FETCH_EVENT, | 375 net::NetLogEventType::SERVICE_WORKER_DISPATCH_FETCH_EVENT, |
| 376 base::Bind(&NetLogFetchEventCallback, status, fetch_result)); | 376 base::Bind(&NetLogFetchEventCallback, status, fetch_result)); |
| 377 | 377 |
| 378 FetchCallback fetch_callback = fetch_callback_; | 378 FetchCallback fetch_callback = fetch_callback_; |
| 379 scoped_refptr<ServiceWorkerVersion> version = version_; | 379 scoped_refptr<ServiceWorkerVersion> version = version_; |
| 380 fetch_callback.Run(status, fetch_result, response, version); | 380 fetch_callback.Run(status, fetch_result, response, version); |
| 381 } | 381 } |
| 382 | 382 |
| 383 void ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload( | 383 bool ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload( |
| 384 net::URLRequest* original_request) { | 384 net::URLRequest* original_request) { |
| 385 if (resource_type_ != RESOURCE_TYPE_MAIN_FRAME && | 385 if (resource_type_ != RESOURCE_TYPE_MAIN_FRAME && |
| 386 resource_type_ != RESOURCE_TYPE_SUB_FRAME) { | 386 resource_type_ != RESOURCE_TYPE_SUB_FRAME) { |
| 387 return; | 387 return false; |
| 388 } | 388 } |
| 389 if (!version_->navigation_preload_state().enabled) | 389 if (!version_->navigation_preload_state().enabled) |
| 390 return; | 390 return false; |
| 391 // TODO(horo): Currently NavigationPreload doesn't support request body. | 391 // TODO(horo): Currently NavigationPreload doesn't support request body. |
| 392 if (!request_->blob_uuid.empty()) | 392 if (!request_->blob_uuid.empty()) |
| 393 return; | 393 return false; |
| 394 | 394 |
| 395 ServiceWorkerVersion::NavigationPreloadSupportStatus support_status = | 395 ServiceWorkerVersion::NavigationPreloadSupportStatus support_status = |
| 396 version_->GetNavigationPreloadSupportStatus(); | 396 version_->GetNavigationPreloadSupportStatus(); |
| 397 if (support_status != | 397 if (support_status != |
| 398 ServiceWorkerVersion::NavigationPreloadSupportStatus::SUPPORTED) { | 398 ServiceWorkerVersion::NavigationPreloadSupportStatus::SUPPORTED) { |
| 399 return; | 399 return false; |
| 400 } | 400 } |
| 401 | 401 |
| 402 ResourceRequestInfoImpl* original_info = | 402 ResourceRequestInfoImpl* original_info = |
| 403 ResourceRequestInfoImpl::ForRequest(original_request); | 403 ResourceRequestInfoImpl::ForRequest(original_request); |
| 404 ResourceRequesterInfo* requester_info = original_info->requester_info(); | 404 ResourceRequesterInfo* requester_info = original_info->requester_info(); |
| 405 if (IsBrowserSideNavigationEnabled()) { | 405 if (IsBrowserSideNavigationEnabled()) { |
| 406 DCHECK(requester_info->IsBrowserSideNavigation()); | 406 DCHECK(requester_info->IsBrowserSideNavigation()); |
| 407 } else { | 407 } else { |
| 408 DCHECK(requester_info->IsRenderer()); | 408 DCHECK(requester_info->IsRenderer()); |
| 409 if (!requester_info->filter()) | 409 if (!requester_info->filter()) |
| 410 return; | 410 return false; |
| 411 } | 411 } |
| 412 | 412 |
| 413 DCHECK(!url_loader_factory_); | 413 DCHECK(!url_loader_factory_); |
| 414 mojom::URLLoaderFactoryPtr factory; | 414 mojom::URLLoaderFactoryPtr factory; |
| 415 URLLoaderFactoryImpl::Create( | 415 URLLoaderFactoryImpl::Create( |
| 416 ResourceRequesterInfo::CreateForNavigationPreload(requester_info), | 416 ResourceRequesterInfo::CreateForNavigationPreload(requester_info), |
| 417 mojo::MakeRequest(&url_loader_factory_)); | 417 mojo::MakeRequest(&url_loader_factory_)); |
| 418 | 418 |
| 419 preload_handle_ = mojom::FetchEventPreloadHandle::New(); | 419 preload_handle_ = mojom::FetchEventPreloadHandle::New(); |
| 420 | 420 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 464 mojo::MakeRequest(&url_loader_associated_ptr, | 464 mojo::MakeRequest(&url_loader_associated_ptr, |
| 465 url_loader_factory_.associated_group()), | 465 url_loader_factory_.associated_group()), |
| 466 original_info->GetRouteID(), request_id, request, | 466 original_info->GetRouteID(), request_id, request, |
| 467 std::move(url_loader_client_associated_ptr_info)); | 467 std::move(url_loader_client_associated_ptr_info)); |
| 468 | 468 |
| 469 std::unique_ptr<DelegatingURLLoader> url_loader( | 469 std::unique_ptr<DelegatingURLLoader> url_loader( |
| 470 new DelegatingURLLoader(std::move(url_loader_associated_ptr))); | 470 new DelegatingURLLoader(std::move(url_loader_associated_ptr))); |
| 471 preload_handle_->url_loader = url_loader->CreateInterfacePtrAndBind(); | 471 preload_handle_->url_loader = url_loader->CreateInterfacePtrAndBind(); |
| 472 url_loader_ = std::move(url_loader); | 472 url_loader_ = std::move(url_loader); |
| 473 url_loader_client_ = std::move(url_loader_client); | 473 url_loader_client_ = std::move(url_loader_client); |
| 474 return true; |
| 474 } | 475 } |
| 475 | 476 |
| 476 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() | 477 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() |
| 477 const { | 478 const { |
| 478 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) | 479 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) |
| 479 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; | 480 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; |
| 480 return ResourceTypeToEventType(resource_type_); | 481 return ResourceTypeToEventType(resource_type_); |
| 481 } | 482 } |
| 482 | 483 |
| 483 } // namespace content | 484 } // namespace content |
| OLD | NEW |