Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Unified Diff: content/browser/download/download_file_impl.cc

Issue 10950015: Shift "commit point" for when a download will no longer accept cancels. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync'd to LKGR (157436) Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/download/download_file_impl.cc
diff --git a/content/browser/download/download_file_impl.cc b/content/browser/download/download_file_impl.cc
index 694121634bcc8a06f4324fd60cc54184c96f583d..7599900f108da8ba87e9bd1e7801bd9c8307528b 100644
--- a/content/browser/download/download_file_impl.cc
+++ b/content/browser/download/download_file_impl.cc
@@ -60,17 +60,20 @@ DownloadFileImpl::~DownloadFileImpl() {
}
content::DownloadInterruptReason DownloadFileImpl::Initialize() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
+
update_timer_.reset(new base::RepeatingTimer<DownloadFileImpl>());
- net::Error result = file_.Initialize(default_download_directory_);
- if (result != net::OK) {
+ net::Error net_result = file_.Initialize(default_download_directory_);
+ if (net_result != net::OK) {
return content::ConvertNetErrorToInterruptReason(
- result, content::DOWNLOAD_INTERRUPT_FROM_DISK);
+ net_result, content::DOWNLOAD_INTERRUPT_FROM_DISK);
}
stream_reader_->RegisterCallback(
base::Bind(&DownloadFileImpl::StreamActive, weak_factory_.GetWeakPtr()));
download_start_ = base::TimeTicks::Now();
+
// Initial pull from the straw.
StreamActive();
@@ -126,8 +129,17 @@ void DownloadFileImpl::Rename(const FilePath& full_path,
base::Bind(callback, reason, new_path));
}
-void DownloadFileImpl::Detach() {
+void DownloadFileImpl::Detach(base::Closure callback) {
+ // Doing the annotation here leaves a small window during
+ // which the file has the final name but hasn't been marked with the
+ // Mark Of The Web. However, it allows anti-virus scanners on Windows
+ // to actually see the data (http://crbug.com/127999), and the Window
+ // is pretty small (round trip to the UI thread).
+ AnnotateWithSourceInformation();
+
file_.Detach();
+
+ BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, callback);
benjhayden 2012/09/19 15:44:35 Seems like there should be a less magical way to d
Randy Smith (Not in Mondays) 2012/09/19 20:46:39 Because I wanted to be able to write a test to del
}
void DownloadFileImpl::Cancel() {

Powered by Google App Engine
This is Rietveld 408576698