| Index: chrome/browser/download/chrome_download_manager_delegate.cc
|
| diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
|
| index 296ae5e45ccb13d71d1d493e5ea4f4cea1e168a4..1876f08e57daa233f73576514e1deadaf49a6aca 100644
|
| --- a/chrome/browser/download/chrome_download_manager_delegate.cc
|
| +++ b/chrome/browser/download/chrome_download_manager_delegate.cc
|
| @@ -159,7 +159,8 @@ void CheckDownloadUrlDone(
|
| bool is_content_check_supported,
|
| DownloadProtectionService::DownloadCheckResult result) {
|
| content::DownloadDangerType danger_type;
|
| - if (result == DownloadProtectionService::SAFE) {
|
| + if (result == DownloadProtectionService::SAFE ||
|
| + result == DownloadProtectionService::UNKNOWN) {
|
| // If this type of files is handled by the enhanced SafeBrowsing download
|
| // protection, mark it as potentially dangerous content until we are done
|
| // with scanning it.
|
| @@ -636,6 +637,11 @@ void ChromeDownloadManagerDelegate::CheckClientDownloadDone(
|
| content::DownloadDangerType danger_type =
|
| content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS;
|
| switch (result) {
|
| + case DownloadProtectionService::UNKNOWN:
|
| + // The check failed or was inconclusive.
|
| + if (DownloadItemModel(item).IsDangerousFileBasedOnType())
|
| + danger_type = content::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE;
|
| + break;
|
| case DownloadProtectionService::SAFE:
|
| // Do nothing.
|
| break;
|
| @@ -688,10 +694,15 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined(
|
| scoped_ptr<DownloadTargetInfo> target_info) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| DownloadItem* item = download_manager_->GetDownload(download_id);
|
| - if (!target_info->target_path.empty() && item &&
|
| - IsOpenInBrowserPreferreredForFile(target_info->target_path) &&
|
| - target_info->is_filetype_handled_safely)
|
| - DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
|
| + if (item) {
|
| + if (!target_info->target_path.empty() &&
|
| + IsOpenInBrowserPreferreredForFile(target_info->target_path) &&
|
| + target_info->is_filetype_handled_safely)
|
| + DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
|
| +
|
| + if (target_info->is_dangerous_file)
|
| + DownloadItemModel(item).SetIsDangerousFileBasedOnType(true);
|
| + }
|
| callback.Run(target_info->target_path,
|
| target_info->target_disposition,
|
| target_info->danger_type,
|
|
|