Move DownloadTargetInfo into components/download
This moves DownloadTargetInfo into components/download and adjusts the
callback for DownloadItemImplDelegate::DetermineDownloadTarget() to
use it. This opens the door to add more items to DownloadTargetInfo
without having to to a ton of plumbing.
Bug: 1510399
Change-Id: I3946c68a9826f6f8f272e53536a8ee21f193aab8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5213708
Owners-Override: Avi Drissman <[email protected]>
Reviewed-by: Min Qin <[email protected]>
Commit-Queue: Avi Drissman <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1249598}
diff --git a/content/shell/browser/shell_download_manager_delegate.cc b/content/shell/browser/shell_download_manager_delegate.cc
index 5ef6ff7..0f3f9597 100644
--- a/content/shell/browser/shell_download_manager_delegate.cc
+++ b/content/shell/browser/shell_download_manager_delegate.cc
@@ -8,6 +8,7 @@
#include <string>
#include "build/build_config.h"
+#include "components/download/public/common/download_target_info.h"
#if BUILDFLAG(IS_WIN)
#include <windows.h>
@@ -63,7 +64,7 @@
bool ShellDownloadManagerDelegate::DetermineDownloadTarget(
download::DownloadItem* download,
- DownloadTargetCallback* callback) {
+ download::DownloadTargetCallback* callback) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
// This assignment needs to be here because even at the call to
// SetDownloadManager, the system is not fully initialized.
@@ -73,13 +74,11 @@
}
if (!download->GetForcedFilePath().empty()) {
- std::move(*callback).Run(
- download->GetForcedFilePath(),
- download::DownloadItem::TARGET_DISPOSITION_OVERWRITE,
- download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
- download::DownloadItem::InsecureDownloadStatus::UNKNOWN,
- download->GetForcedFilePath(), base::FilePath(),
- std::string() /*mime_type*/, download::DOWNLOAD_INTERRUPT_REASON_NONE);
+ download::DownloadTargetInfo target_info;
+ target_info.target_path = download->GetForcedFilePath();
+ target_info.intermediate_path = download->GetForcedFilePath();
+
+ std::move(*callback).Run(std::move(target_info));
return true;
}
@@ -135,18 +134,17 @@
void ShellDownloadManagerDelegate::OnDownloadPathGenerated(
uint32_t download_id,
- DownloadTargetCallback callback,
+ download::DownloadTargetCallback callback,
const base::FilePath& suggested_path) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (suppress_prompting_) {
// Testing exit.
- std::move(callback).Run(
- suggested_path, download::DownloadItem::TARGET_DISPOSITION_OVERWRITE,
- download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
- download::DownloadItem::InsecureDownloadStatus::UNKNOWN,
- suggested_path.AddExtension(FILE_PATH_LITERAL(".crdownload")),
- base::FilePath(), std::string() /*mime_type*/,
- download::DOWNLOAD_INTERRUPT_REASON_NONE);
+ download::DownloadTargetInfo target_info;
+ target_info.target_path = suggested_path;
+ target_info.intermediate_path =
+ suggested_path.AddExtension(FILE_PATH_LITERAL(".crdownload"));
+
+ std::move(callback).Run(std::move(target_info));
return;
}
@@ -155,7 +153,7 @@
void ShellDownloadManagerDelegate::ChooseDownloadPath(
uint32_t download_id,
- DownloadTargetCallback callback,
+ download::DownloadTargetCallback callback,
const base::FilePath& suggested_path) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
download::DownloadItem* item = download_manager_->GetDownload(download_id);
@@ -193,12 +191,13 @@
NOTIMPLEMENTED();
#endif
- std::move(callback).Run(
- result, download::DownloadItem::TARGET_DISPOSITION_PROMPT,
- download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
- download::DownloadItem::InsecureDownloadStatus::UNKNOWN, result,
- base::FilePath(), std::string() /*mime_type*/,
- download::DOWNLOAD_INTERRUPT_REASON_NONE);
+ download::DownloadTargetInfo target_info;
+ target_info.target_path = result;
+ target_info.intermediate_path = result;
+ target_info.target_disposition =
+ download::DownloadItem::TARGET_DISPOSITION_PROMPT;
+
+ std::move(callback).Run(std::move(target_info));
}
void ShellDownloadManagerDelegate::SetDownloadBehaviorForTesting(