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-28 22:52:55 +0000
committermichaeln@chromium.org <michaeln@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-28 22:52:55 +0000
commit7176ef1c7ada2da66a47ed38987c92a06f3bfb4a (patch)
tree2c634b56eccb0626448ee99cb3415ba1809499c0 /webkit/glue/weburlloader_impl.cc
parentecc523f661dd66ab6dafa276971c84f491f2521e (diff)
downloadchromium_src-7176ef1c7ada2da66a47ed38987c92a06f3bfb4a.zip
chromium_src-7176ef1c7ada2da66a47ed38987c92a06f3bfb4a.tar.gz
chromium_src-7176ef1c7ada2da66a47ed38987c92a06f3bfb4a.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,56752 Review URL: http://codereview.chromium.org/3396029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60862 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) {