| Index: chrome/browser/download/download_path_reservation_tracker.cc
|
| diff --git a/chrome/browser/download/download_path_reservation_tracker.cc b/chrome/browser/download/download_path_reservation_tracker.cc
|
| index cec817364dc6f1bf2fd45d1b316a367df34c9d7e..2f0e3d86cfa8cffeaeca0469f69cd4e7210472e6 100644
|
| --- a/chrome/browser/download/download_path_reservation_tracker.cc
|
| +++ b/chrome/browser/download/download_path_reservation_tracker.cc
|
| @@ -36,7 +36,7 @@ class DownloadItemObserver : public DownloadItem::Observer {
|
|
|
| // DownloadItem::Observer
|
| virtual void OnDownloadUpdated(DownloadItem* download) OVERRIDE;
|
| - virtual void OnDownloadOpened(DownloadItem* download) OVERRIDE;
|
| + virtual void OnDownloadDestroyed(DownloadItem* download) OVERRIDE;
|
|
|
| DownloadItem& download_item_;
|
|
|
| @@ -89,10 +89,6 @@ void DownloadItemObserver::OnDownloadUpdated(DownloadItem* download) {
|
| case DownloadItem::CANCELLED:
|
| // We no longer need the reservation if the download is being removed.
|
|
|
| - case DownloadItem::REMOVING:
|
| - // Ditto, but this case shouldn't happen in practice. We should have
|
| - // received another notification beforehand.
|
| -
|
| case DownloadItem::INTERRUPTED:
|
| // The download filename will need to be re-generated when the download is
|
| // restarted. Holding on to the reservation now would prevent the name
|
| @@ -108,10 +104,11 @@ void DownloadItemObserver::OnDownloadUpdated(DownloadItem* download) {
|
| }
|
| }
|
|
|
| -void DownloadItemObserver::OnDownloadOpened(DownloadItem* download) {
|
| - // We shouldn't be tracking reservations for a download that has been
|
| - // externally opened. The tracker should have detached itself when the
|
| - // download was complete.
|
| +void DownloadItemObserver::OnDownloadDestroyed(DownloadItem* download) {
|
| + // This shouldn't happen. We should catch either COMPLETE, CANCELLED, or
|
| + // INTERRUPTED first.
|
| + BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, revoke_callback_);
|
| + delete this;
|
| }
|
|
|
| } // namespace
|
|
|