summaryrefslogtreecommitdiffstats
path: root/webkit/glue/weburlloader_impl.cc
diff options
context:
space:
mode:
authormichaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-23 23:16:45 +0000
committermichaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-23 23:16:45 +0000
commit145d22229a434580485e7059cf97f2fd5b6f5242 (patch)
tree5b6bf96cea21ba4e704912077c6de0f4af7b26ed /webkit/glue/weburlloader_impl.cc
parent508f9b4095e005aaf949f925042d9283c71020a5 (diff)
downloadchromium_src-145d22229a434580485e7059cf97f2fd5b6f5242.zip
chromium_src-145d22229a434580485e7059cf97f2fd5b6f5242.tar.gz
chromium_src-145d22229a434580485e7059cf97f2fd5b6f5242.tar.bz2
Flesh out URLLoader's download_to_file function.
* tie the lifetime of the resulting temp file to the lifetime of the URLLoader (the plan is to later extend the lifetime of the temp file to support xhr.responseBlob) * make it work in test_shell * make it work for sync requests * added OnDataDownloaded messages to report progress A related BlobURL loading change. * grab a reference to the blob early on to ensure it's still there when the 'job' is finally started. TEST=manual and deletable_file_reference_unittest.cc BUG=52486 Review URL: http://codereview.chromium.org/3165062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60378 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/weburlloader_impl.cc')
-rw-r--r--webkit/glue/weburlloader_impl.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/webkit/glue/weburlloader_impl.cc b/webkit/glue/weburlloader_impl.cc
index 528626e..aa63fc2 100644
--- a/webkit/glue/weburlloader_impl.cc
+++ b/webkit/glue/weburlloader_impl.cc
@@ -284,6 +284,7 @@ class WebURLLoaderImpl::Context : public base::RefCounted<Context>,
scoped_ptr<ResourceLoaderBridge> bridge_;
scoped_ptr<FtpDirectoryListingResponseDelegate> ftp_listing_delegate_;
scoped_ptr<MultipartResponseDelegate> multipart_delegate_;
+ scoped_ptr<ResourceLoaderBridge> completed_bridge_;
// TODO(japhet): Storing this is a temporary hack for site isolation logging.
WebURL response_url_;
@@ -598,8 +599,10 @@ void WebURLLoaderImpl::Context::OnCompletedRequest(
multipart_delegate_.reset(NULL);
}
- // Prevent any further IPC to the browser now that we're complete.
- bridge_.reset();
+ // Prevent any further IPC to the browser now that we're complete, but
+ // don't delete it to keep any downloaded temp files alive.
+ DCHECK(!completed_bridge_.get());
+ completed_bridge_.swap(bridge_);
if (client_) {
if (status.status() != URLRequestStatus::SUCCESS) {