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