Index: trunk/src/content/browser/loader/resource_dispatcher_host_impl.cc |
=================================================================== |
--- trunk/src/content/browser/loader/resource_dispatcher_host_impl.cc (revision 256703) |
+++ trunk/src/content/browser/loader/resource_dispatcher_host_impl.cc (working copy) |
@@ -1156,22 +1156,20 @@ |
handler.reset(new SyncResourceHandler(request, sync_result, this)); |
} else { |
handler.reset(new AsyncResourceHandler(request, this)); |
+ if (IsDetachableResourceType(request_data.resource_type)) { |
+ handler.reset(new DetachableResourceHandler( |
+ request, |
+ base::TimeDelta::FromMilliseconds(kDefaultDetachableCancelDelayMs), |
+ handler.Pass())); |
+ } |
} |
// The RedirectToFileResourceHandler depends on being next in the chain. |
if (request_data.download_to_file) { |
handler.reset( |
- new RedirectToFileResourceHandler(handler.Pass(), request)); |
+ new RedirectToFileResourceHandler(handler.Pass(), request, this)); |
} |
- // 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), |
- handler.Pass())); |
- } |
- |
// Install a CrossSiteResourceHandler for all main frame requests. This will |
// let us check whether a transfer is required and pause for the unload |
// handler either if so or if a cross-process navigation is already under way. |
@@ -1224,11 +1222,7 @@ |
} |
void ResourceDispatcherHostImpl::RegisterDownloadedTempFile( |
- int child_id, int request_id, const base::FilePath& file_path) { |
- scoped_refptr<ShareableFileReference> reference = |
- ShareableFileReference::Get(file_path); |
- DCHECK(reference); |
- |
+ int child_id, int request_id, ShareableFileReference* reference) { |
registered_temp_files_[child_id][request_id] = reference; |
ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadFile( |
child_id, reference->path()); |