| 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 666418ebbdde0c7666586f6422246c959d9e58cb..1708a63c50cabe56137073dea3f94dff5acf0a38 100644
|
| --- a/content/browser/download/download_item_impl.cc
|
| +++ b/content/browser/download/download_item_impl.cc
|
| @@ -65,30 +65,6 @@ void DeleteDownloadedFile(const base::FilePath& path) {
|
| file_util::Delete(path, false);
|
| }
|
|
|
| -// Classes to null out request handle calls (for SavePage DownloadItems, which
|
| -// may have, e.g., Cancel() called on them without it doing anything)
|
| -// and to DCHECK on them (for history DownloadItems, which should never have
|
| -// any operation that implies an off-thread component, since they don't
|
| -// have any).
|
| -class NullDownloadRequestHandle : public DownloadRequestHandleInterface {
|
| - public:
|
| - NullDownloadRequestHandle() {}
|
| -
|
| - // DownloadRequestHandleInterface calls
|
| - virtual WebContents* GetWebContents() const OVERRIDE {
|
| - return NULL;
|
| - }
|
| - virtual DownloadManager* GetDownloadManager() const OVERRIDE {
|
| - return NULL;
|
| - }
|
| - virtual void PauseRequest() const OVERRIDE {}
|
| - virtual void ResumeRequest() const OVERRIDE {}
|
| - virtual void CancelRequest() const OVERRIDE {}
|
| - virtual std::string DebugString() const OVERRIDE {
|
| - return "Null DownloadRequestHandle";
|
| - }
|
| -};
|
| -
|
| // Wrapper around DownloadFile::Detach and DownloadFile::Cancel that
|
| // takes ownership of the DownloadFile and hence implicitly destroys it
|
| // at the end of the function.
|
| @@ -217,14 +193,16 @@ DownloadItemImpl::DownloadItemImpl(
|
| }
|
|
|
| // Constructing for the "Save Page As..." feature:
|
| -DownloadItemImpl::DownloadItemImpl(DownloadItemImplDelegate* delegate,
|
| - const base::FilePath& path,
|
| - const GURL& url,
|
| - DownloadId download_id,
|
| - const std::string& mime_type,
|
| - const net::BoundNetLog& bound_net_log)
|
| +DownloadItemImpl::DownloadItemImpl(
|
| + DownloadItemImplDelegate* delegate,
|
| + const base::FilePath& path,
|
| + const GURL& url,
|
| + DownloadId download_id,
|
| + const std::string& mime_type,
|
| + scoped_ptr<DownloadRequestHandleInterface> request_handle,
|
| + const net::BoundNetLog& bound_net_log)
|
| : is_save_package_download_(true),
|
| - request_handle_(new NullDownloadRequestHandle()),
|
| + request_handle_(request_handle.Pass()),
|
| download_id_(download_id),
|
| current_path_(path),
|
| target_path_(path),
|
| @@ -1126,7 +1104,6 @@ void DownloadItemImpl::OnDownloadFileInitialized(
|
| // If we're resuming an interrupted download, we may already know
|
| // the download target so we can skip target name determination.
|
| if (!GetTargetFilePath().empty() && !GetFullPath().empty()) {
|
| - delegate_->ShowDownloadInBrowser(this);
|
| MaybeCompleteDownload();
|
| return;
|
| }
|
| @@ -1203,14 +1180,10 @@ void DownloadItemImpl::OnDownloadRenamedToIntermediateName(
|
| VLOG(20) << __FUNCTION__ << " download=" << DebugString(true);
|
| if (DOWNLOAD_INTERRUPT_REASON_NONE != reason) {
|
| Interrupt(reason);
|
| - // MaybeCompleteDownload() is a no-op if we've been interrupted,
|
| - // so it's safe to fall through.
|
| } else {
|
| SetFullPath(full_path);
|
| + MaybeCompleteDownload();
|
| }
|
| - delegate_->ShowDownloadInBrowser(this);
|
| -
|
| - MaybeCompleteDownload();
|
| }
|
|
|
| // When SavePackage downloads MHTML to GData (see
|
|
|