| Index: content/browser/loader/resource_dispatcher_host_impl.cc
|
| diff --git a/content/browser/loader/resource_dispatcher_host_impl.cc b/content/browser/loader/resource_dispatcher_host_impl.cc
|
| index 1fbd0004096973802910cea4abca6b3ca02c09bd..7a6e6f5960de6a9fbe2c9f732407543f08c8cc77 100644
|
| --- a/content/browser/loader/resource_dispatcher_host_impl.cc
|
| +++ b/content/browser/loader/resource_dispatcher_host_impl.cc
|
| @@ -1586,12 +1586,19 @@ ResourceDispatcherHostImpl::CreateResourceHandler(
|
| }
|
| }
|
|
|
| + bool start_detached = request_data.download_to_network_cache_only;
|
| +
|
| // Prefetches and <a ping> requests outlive their child process.
|
| - if (!sync_result && IsDetachableResourceType(request_data.resource_type)) {
|
| - handler.reset(new DetachableResourceHandler(
|
| - request,
|
| - base::TimeDelta::FromMilliseconds(kDefaultDetachableCancelDelayMs),
|
| - std::move(handler)));
|
| + if (!sync_result && (start_detached ||
|
| + IsDetachableResourceType(request_data.resource_type))) {
|
| + std::unique_ptr<DetachableResourceHandler> detachable_handler =
|
| + base::MakeUnique<DetachableResourceHandler>(
|
| + request,
|
| + base::TimeDelta::FromMilliseconds(kDefaultDetachableCancelDelayMs),
|
| + std::move(handler));
|
| + if (start_detached)
|
| + detachable_handler->Detach();
|
| + handler = std::move(detachable_handler);
|
| }
|
|
|
| // PlzNavigate: If using --enable-browser-side-navigation, the
|
|
|