| Index: content/browser/download/save_package.cc
|
| ===================================================================
|
| --- content/browser/download/save_package.cc (revision 154444)
|
| +++ content/browser/download/save_package.cc (working copy)
|
| @@ -18,6 +18,7 @@
|
| #include "base/sys_string_conversions.h"
|
| #include "base/threading/thread.h"
|
| #include "base/utf_string_conversions.h"
|
| +#include "content/browser/download/download_file_manager.h"
|
| #include "content/browser/download/download_item_impl.h"
|
| #include "content/browser/download/download_manager_impl.h"
|
| #include "content/browser/download/download_stats.h"
|
| @@ -34,8 +35,6 @@
|
| #include "content/public/browser/content_browser_client.h"
|
| #include "content/public/browser/download_manager_delegate.h"
|
| #include "content/public/browser/navigation_entry.h"
|
| -#include "content/public/browser/notification_service.h"
|
| -#include "content/public/browser/notification_types.h"
|
| #include "content/public/browser/resource_context.h"
|
| #include "content/public/browser/web_contents.h"
|
| #include "content/public/common/url_constants.h"
|
| @@ -334,19 +333,12 @@
|
| return;
|
| }
|
| wrote_to_completed_file_ = true;
|
| -
|
| - // Hack to avoid touching download_ after user cancel.
|
| - // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem
|
| - // with SavePackage flow.
|
| - if (download_->IsInProgress()) {
|
| - download_->SetTotalBytes(size);
|
| - download_->UpdateProgress(size, size, DownloadItem::kEmptyFileHash);
|
| - // Must call OnAllDataSaved here in order for
|
| - // GDataDownloadObserver::ShouldUpload() to return true.
|
| - // ShouldCompleteDownload() may depend on the gdata uploader to finish.
|
| - download_->OnAllDataSaved(DownloadItem::kEmptyFileHash);
|
| - }
|
| -
|
| + download_->SetTotalBytes(size);
|
| + download_->UpdateProgress(size, size, DownloadItem::kEmptyFileHash);
|
| + // Must call OnAllDataSaved here in order for
|
| + // GDataDownloadObserver::ShouldUpload() to return true.
|
| + // ShouldCompleteDownload() may depend on the gdata uploader to finish.
|
| + download_->OnAllDataSaved(size, DownloadItem::kEmptyFileHash);
|
| if (!download_manager_->GetDelegate() ||
|
| download_manager_->GetDelegate()->ShouldCompleteDownload(
|
| download_, base::Bind(&SavePackage::Finish, this))) {
|
| @@ -748,17 +740,13 @@
|
| file_manager_,
|
| save_ids));
|
|
|
| - // Hack to avoid touching download_ after user cancel.
|
| - // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem
|
| - // with SavePackage flow.
|
| - if (download_ && download_->IsInProgress()) {
|
| - if (save_type_ != content::SAVE_PAGE_TYPE_AS_MHTML) {
|
| - download_->UpdateProgress(all_save_items_count_, CurrentSpeed(), "");
|
| - download_->OnAllDataSaved(DownloadItem::kEmptyFileHash);
|
| - }
|
| + if (download_) {
|
| + if (save_type_ != content::SAVE_PAGE_TYPE_AS_MHTML)
|
| + download_->OnAllDataSaved(all_save_items_count_,
|
| + DownloadItem::kEmptyFileHash);
|
| download_->MarkAsComplete();
|
| + FinalizeDownloadEntry();
|
| }
|
| - FinalizeDownloadEntry();
|
| }
|
|
|
| // Called for updating end state.
|
| @@ -778,10 +766,7 @@
|
|
|
| // Inform the DownloadItem to update UI.
|
| // We use the received bytes as number of saved files.
|
| - // Hack to avoid touching download_ after user cancel.
|
| - // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem
|
| - // with SavePackage flow.
|
| - if (download_ && download_->IsInProgress())
|
| + if (download_)
|
| download_->UpdateProgress(completed_count(), CurrentSpeed(), "");
|
|
|
| if (save_item->save_source() == SaveFileCreateInfo::SAVE_FILE_FROM_DOM &&
|
| @@ -823,10 +808,7 @@
|
|
|
| // Inform the DownloadItem to update UI.
|
| // We use the received bytes as number of saved files.
|
| - // Hack to avoid touching download_ after user cancel.
|
| - // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem
|
| - // with SavePackage flow.
|
| - if (download_ && download_->IsInProgress())
|
| + if (download_)
|
| download_->UpdateProgress(completed_count(), CurrentSpeed(), "");
|
|
|
| if ((save_type_ == content::SAVE_PAGE_TYPE_AS_ONLY_HTML) ||
|
| @@ -1114,10 +1096,7 @@
|
| static_cast<int>(frames_list.size());
|
|
|
| // We use total bytes as the total number of files we want to save.
|
| - // Hack to avoid touching download_ after user cancel.
|
| - // TODO(rdsmith/benjhayden): Integrate canceling on DownloadItem
|
| - // with SavePackage flow.
|
| - if (download_ && download_->IsInProgress())
|
| + if (download_)
|
| download_->SetTotalBytes(all_save_items_count_);
|
|
|
| if (all_save_items_count_) {
|
| @@ -1386,16 +1365,6 @@
|
| DCHECK(download_);
|
| DCHECK(download_manager_);
|
|
|
| - content::NotificationService::current()->Notify(
|
| - content::NOTIFICATION_SAVE_PACKAGE_SUCCESSFULLY_FINISHED,
|
| - // We use the DownloadManager as the source as that's a
|
| - // central SavePackage related location that observers can
|
| - // get to if they want to wait for notifications for a
|
| - // particular BrowserContext. Alternatively, we could make
|
| - // it come from the WebContents, which would be more specific
|
| - // but less useful to (current) customers.
|
| - content::Source<content::DownloadManager>(download_manager_),
|
| - content::Details<content::DownloadItem>(download_));
|
| download_manager_->SavePageDownloadFinished(download_);
|
| StopObservation();
|
| }
|
|
|