| Index: content/browser/download/download_item_impl.cc
|
| diff --git a/content/browser/download/download_item_impl.cc b/content/browser/download/download_item_impl.cc
|
| index 380a219cf0e64b44eded274cec9a48f8e31f38bd..be78ab35ccfb4c3c404daa119b3fb12e74ccbf6a 100644
|
| --- a/content/browser/download/download_item_impl.cc
|
| +++ b/content/browser/download/download_item_impl.cc
|
| @@ -616,7 +616,7 @@ bool DownloadItemImpl::GetFileExternallyRemoved() const {
|
| return file_externally_removed_;
|
| }
|
|
|
| -void DownloadItemImpl::DeleteFile() {
|
| +void DownloadItemImpl::DeleteFile(const base::Callback<void(bool)>& callback) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| if ((GetState() != DownloadItem::COMPLETE) ||
|
| file_externally_removed_) {
|
| @@ -625,11 +625,21 @@ void DownloadItemImpl::DeleteFile() {
|
| BrowserThread::PostTaskAndReplyWithResult(
|
| BrowserThread::FILE, FROM_HERE,
|
| base::Bind(&DeleteDownloadedFile, current_path_),
|
| - base::Bind(&DownloadItemImpl::OnDownloadedFileRemoved,
|
| - weak_ptr_factory_.GetWeakPtr()));
|
| + base::Bind(&DownloadItemImpl::DeleteFileDone,
|
| + weak_ptr_factory_.GetWeakPtr(),
|
| + callback));
|
| current_path_.clear();
|
| }
|
|
|
| +void DownloadItemImpl::DeleteFileDone(
|
| + const base::Callback<void(bool)>& callback,
|
| + bool success) {
|
| + if (success) {
|
| + OnDownloadedFileRemoved();
|
| + }
|
| + callback.Run(success);
|
| +}
|
| +
|
| bool DownloadItemImpl::IsDangerous() const {
|
| #if defined(OS_WIN)
|
| // TODO(noelutz): At this point only the windows views UI supports
|
| @@ -946,9 +956,7 @@ void DownloadItemImpl::NotifyRemoved() {
|
| FOR_EACH_OBSERVER(Observer, observers_, OnDownloadRemoved(this));
|
| }
|
|
|
| -void DownloadItemImpl::OnDownloadedFileRemoved(bool success) {
|
| - if (!success)
|
| - return;
|
| +void DownloadItemImpl::OnDownloadedFileRemoved() {
|
| file_externally_removed_ = true;
|
| VLOG(20) << __FUNCTION__ << " download=" << DebugString(true);
|
| UpdateObservers();
|
|
|