Skip to content

Commit

Permalink
Cleanup SafeBrowsingDeepScanningUpdatedUX
Browse files Browse the repository at this point in the history
This feature has been ENABLED_BY_DEFAULT for two milestones, and can be
removed.

Fixed: 1424527
Change-Id: I8bdb1d72510ec47512061781cb17a6649e30f60b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4973335
Commit-Queue: Daniel Rubery <drubery@chromium.org>
Reviewed-by: Xinghui Lu <xinghuilu@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1215837}
  • Loading branch information
Daniel Rubery authored and Chromium LUCI CQ committed Oct 27, 2023
1 parent fd80349 commit d1d0b7e
Show file tree
Hide file tree
Showing 23 changed files with 73 additions and 311 deletions.
4 changes: 0 additions & 4 deletions chrome/app/chromium_strings.grd
Original file line number Diff line number Diff line change
Expand Up @@ -688,10 +688,6 @@ Permissions you've already given to websites and apps may apply to this account.
desc="Subpage summary for malware warning for the user.">
Chromium blocked this file because it has malware
</message>
<message name="IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_DEEP_SCANNING_PROMPT"
desc="Subpage summary of warning for Deep Scanning.">
Chromium recommends scanning this file because it may be dangerous
</message>
<message name="IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_WARNING_BLOCKED_LEARN_MORE_LINK"
desc="Text for the link to the help page about why Chromium blocks some downloaded files.">
Learn why Chromium blocks some downloads
Expand Down

This file was deleted.

16 changes: 0 additions & 16 deletions chrome/app/generated_resources.grd
Original file line number Diff line number Diff line change
Expand Up @@ -2187,10 +2187,6 @@ are declared in tools/grit/grit_rule.gni.
desc="Message shown to the user on chrome://downloads page to explain that this download is blocked because it was insecurely delivered.">
This file can't be downloaded securely
</message>
<message name="IDS_BLOCK_REASON_DEEP_SCANNING"
desc="Message shown on chrome://downloads when a download is being scanned">
This file is being scanned.
</message>
<message name="IDS_BLOCK_REASON_DEEP_SCANNING_UPDATED"
desc="Message shown on chrome://downloads when a download is being scanned">
This file might be a virus or malware. You can send it to Google to check if it's unsafe.
Expand All @@ -2203,10 +2199,6 @@ are declared in tools/grit/grit_rule.gni.
desc="Message shown to the user on chrome://downloads page to explain that this download is recommended to be scanned.">
This file might be a virus or malware. You can send it to Google to check if it's unsafe.
</message>
<message name="IDS_DEEP_SCANNED_SAFE_DESCRIPTION"
desc="Message shown to the user on chrome://downloads page to explain this this download was deep scanned, and found to be safe.">
Security checks are done
</message>
<message name="IDS_DEEP_SCANNED_OPENED_DANGEROUS_DESCRIPTION"
desc="Message shown to the user on chrome://downloads page to explain this this download was deep scanned, and found to be malicious.">
This file is dangerous
Expand Down Expand Up @@ -2868,10 +2860,6 @@ are declared in tools/grit/grit_rule.gni.
desc="When a download is finished, let the user know.">
Done
</message>
<message name="IDS_DOWNLOAD_BUBBLE_STATUS_DEEP_SCANNING_DONE"
desc="When a download has finished deep scanning and the result is safe, let the user know.">
Done, no issues found
</message>
<message name="IDS_DOWNLOAD_BUBBLE_STATUS_DEEP_SCANNING_DONE_UPDATED"
desc="When a download has finished deep scanning and the result is safe, let the user know.">
Scan is done
Expand Down Expand Up @@ -3296,10 +3284,6 @@ are declared in tools/grit/grit_rule.gni.
</message>

<!-- Deep scanning in download bubble -->
<message name="IDS_DOWNLOAD_BUBBLE_STATUS_DEEP_SCANNING_PROMPT"
desc="Prompt for Deep Scanning of a download">
Scan before opening
</message>
<message name="IDS_DOWNLOAD_BUBBLE_STATUS_DEEP_SCANNING_PROMPT_UPDATED"
desc="Prompt for Deep Scanning of a download">
Scan for malware
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

4 changes: 0 additions & 4 deletions chrome/app/google_chrome_strings.grd
Original file line number Diff line number Diff line change
Expand Up @@ -683,10 +683,6 @@ Permissions you've already given to websites and apps may apply to this account.
desc="Subpage summary for malware warning for the user.">
Chrome blocked this file because it has malware
</message>
<message name="IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_DEEP_SCANNING_PROMPT"
desc="Subpage summary of warning for Deep Scanning.">
Chrome recommends scanning this file because it may be dangerous
</message>
<message name="IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_WARNING_BLOCKED_LEARN_MORE_LINK"
desc="Text for the link to the help page about why Chrome blocks some downloaded files.">
Learn why Chrome blocks some downloads
Expand Down

This file was deleted.

5 changes: 0 additions & 5 deletions chrome/browser/download/download_item_model_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -543,13 +543,8 @@ TEST_F(DownloadItemModelTest, CompletedStatus) {

EXPECT_CALL(item(), GetDangerType())
.WillRepeatedly(Return(download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_SAFE));
if (base::FeatureList::IsEnabled(safe_browsing::kDeepScanningUpdatedUX)) {
EXPECT_EQ("2 B \xE2\x80\xA2 Scan is done",
base::UTF16ToUTF8(model().GetStatusText()));
} else {
EXPECT_EQ("2 B \xE2\x80\xA2 Done, no issues found",
base::UTF16ToUTF8(model().GetStatusText()));
}

#if BUILDFLAG(IS_MAC)
EXPECT_EQ("Show in Finder", base::UTF16ToUTF8(model().GetShowInFolderText()));
Expand Down
122 changes: 42 additions & 80 deletions chrome/browser/download/download_ui_model.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1363,83 +1363,60 @@ DownloadUIModel::GetBubbleUIInfoForInProgressOrComplete(
.AddSecondarySubpageButton(
l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_CONTINUE),
DownloadCommands::Command::KEEP, kColorDownloadItemTextWarning);
case download::DOWNLOAD_DANGER_TYPE_PROMPT_FOR_SCANNING:
case download::DOWNLOAD_DANGER_TYPE_PROMPT_FOR_SCANNING: {
ui_info = DownloadUIModel::BubbleUIInfo()
.AddIconAndColor(features::IsChromeRefresh2023()
? kDownloadWarningIcon
: vector_icons::kNotSecureWarningIcon,
kColorDownloadItemIconWarning)
.AddSecondaryTextColor(kColorDownloadItemTextWarning);
if (base::FeatureList::IsEnabled(safe_browsing::kDeepScanningUpdatedUX)) {
std::u16string subpage_text = l10n_util::GetStringFUTF16(
IsEncryptedArchive()
? IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_DEEP_SCANNING_PROMPT_ENCRYPTED_ARCHIVE
: IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_DEEP_SCANNING_PROMPT_UPDATED,
u"\n\n");
ui_info.AddSubpageSummary(subpage_text)
.AddPrimarySubpageButton(
l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_SCAN_UPDATED),
DownloadCommands::Command::DEEP_SCAN)
.AddSecondarySubpageButton(
l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_OPEN_UPDATED),
DownloadCommands::Command::BYPASS_DEEP_SCANNING);
} else {
ui_info.AddPrimaryButton(DownloadCommands::Command::DEEP_SCAN)
.AddSubpageSummary(l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_DEEP_SCANNING_PROMPT))
.AddPrimarySubpageButton(
l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_SCAN),
DownloadCommands::Command::DEEP_SCAN)
.AddSecondarySubpageButton(
l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_OPEN),
DownloadCommands::Command::BYPASS_DEEP_SCANNING,
kColorDownloadItemTextWarning);
}

std::u16string subpage_text = l10n_util::GetStringFUTF16(
IsEncryptedArchive()
? IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_DEEP_SCANNING_PROMPT_ENCRYPTED_ARCHIVE
: IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_DEEP_SCANNING_PROMPT_UPDATED,
u"\n\n");
ui_info.AddSubpageSummary(subpage_text)
.AddPrimarySubpageButton(
l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_SCAN_UPDATED),
DownloadCommands::Command::DEEP_SCAN)
.AddSecondarySubpageButton(
l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_OPEN_UPDATED),
DownloadCommands::Command::BYPASS_DEEP_SCANNING);
return ui_info;
}
case download::DOWNLOAD_DANGER_TYPE_PROMPT_FOR_LOCAL_PASSWORD_SCANNING:
// TODO(crbug.com/1491184): Implement UX for this danger type.
NOTREACHED();
break;
case download::DOWNLOAD_DANGER_TYPE_ASYNC_SCANNING:
if (base::FeatureList::IsEnabled(safe_browsing::kDeepScanningUpdatedUX)) {
ui_info =
DownloadUIModel::BubbleUIInfo()
.AddProgressBar()
.SetProgressBarLooping()
.AddSubpageSummary(l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_ASYNC_SCANNING))
.AddSubpageSecondaryIconAndText(
vector_icons::kDocumentScannerIcon,
download::DoesDownloadConnectorBlock(profile(), GetURL())
? l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_ASYNC_SCANNING_ENTERPRISE_SECONDARY)
: l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_ASYNC_SCANNING_SECONDARY))
.AddIconAndColor(features::IsChromeRefresh2023()
? kDownloadWarningIcon
: vector_icons::kNotSecureWarningIcon,
kColorDownloadItemIconWarning)
.AddPrimarySubpageButton(
l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_ASYNC_SCANNING_DISCARD),
DownloadCommands::Command::DISCARD);
ui_info.subpage_buttons[0].is_prominent = false;
if (!download::DoesDownloadConnectorBlock(profile(), GetURL())) {
ui_info.AddSecondarySubpageButton(
l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_ASYNC_SCANNING_CANCEL),
DownloadCommands::Command::CANCEL_DEEP_SCAN,
ui::kColorButtonForeground);
}
} else {
ui_info = DownloadUIModel::BubbleUIInfo()
.AddProgressBar()
.SetProgressBarLooping();
if (!download::DoesDownloadConnectorBlock(profile(), GetURL())) {
ui_info.AddPrimaryButton(
DownloadCommands::Command::BYPASS_DEEP_SCANNING);
}
ui_info =
DownloadUIModel::BubbleUIInfo()
.AddProgressBar()
.SetProgressBarLooping()
.AddSubpageSummary(l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_ASYNC_SCANNING))
.AddSubpageSecondaryIconAndText(
vector_icons::kDocumentScannerIcon,
download::DoesDownloadConnectorBlock(profile(), GetURL())
? l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_ASYNC_SCANNING_ENTERPRISE_SECONDARY)
: l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_ASYNC_SCANNING_SECONDARY))
.AddIconAndColor(features::IsChromeRefresh2023()
? kDownloadWarningIcon
: vector_icons::kNotSecureWarningIcon,
kColorDownloadItemIconWarning)
.AddPrimarySubpageButton(
l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_ASYNC_SCANNING_DISCARD),
DownloadCommands::Command::DISCARD);
ui_info.subpage_buttons[0].is_prominent = false;
if (!download::DoesDownloadConnectorBlock(profile(), GetURL())) {
ui_info.AddSecondarySubpageButton(
l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_SUBPAGE_SUMMARY_ASYNC_SCANNING_CANCEL),
DownloadCommands::Command::CANCEL_DEEP_SCAN,
ui::kColorButtonForeground);
}
return ui_info;
case download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_FAILED:
Expand Down Expand Up @@ -1791,18 +1768,12 @@ DownloadUIModel::BubbleStatusTextBuilder::GetBubbleWarningStatusText() const {
return l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_INTERRUPTED_STATUS_BLOCKED_ORGANIZATION);
case download::DOWNLOAD_DANGER_TYPE_PROMPT_FOR_SCANNING:
if (base::FeatureList::IsEnabled(safe_browsing::kDeepScanningUpdatedUX)) {
// "Scan for malware • Suspicious"
return l10n_util::GetStringFUTF16(
IDS_DOWNLOAD_BUBBLE_DOWNLOAD_STATUS_MESSAGE_WITH_SEPARATOR,
l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_STATUS_DEEP_SCANNING_PROMPT_UPDATED),
l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_STATUS_SUSPICIOUS));
} else {
// "Scan before opening"
return l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_STATUS_DEEP_SCANNING_PROMPT);
}
case download::DOWNLOAD_DANGER_TYPE_PROMPT_FOR_LOCAL_PASSWORD_SCANNING:
// TODO(crbug.com/1491184): Implement UX for this danger type.
NOTREACHED();
Expand All @@ -1823,15 +1794,12 @@ DownloadUIModel::BubbleStatusTextBuilder::GetBubbleWarningStatusText() const {
IDS_DOWNLOAD_BUBBLE_STATUS_ASYNC_SCANNING);
#endif
case download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_FAILED:
if (base::FeatureList::IsEnabled(safe_browsing::kDeepScanningUpdatedUX)) {
// "Scan failed • Suspicious"
return l10n_util::GetStringFUTF16(
IDS_DOWNLOAD_BUBBLE_DOWNLOAD_STATUS_MESSAGE_WITH_SEPARATOR,
l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_STATUS_DEEP_SCANNED_FAILED_UPDATED),
l10n_util::GetStringUTF16(IDS_DOWNLOAD_BUBBLE_STATUS_SUSPICIOUS));
}
[[fallthrough]];
case download::DOWNLOAD_DANGER_TYPE_BLOCKED_UNSUPPORTED_FILETYPE:
case download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_SAFE:
case download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_OPENED_DANGEROUS:
Expand Down Expand Up @@ -1970,15 +1938,9 @@ DownloadUIModel::BubbleStatusTextBuilder::GetCompletedStatusText() const {
std::u16string delta_str;
if (model_->GetDangerType() ==
download::DOWNLOAD_DANGER_TYPE_DEEP_SCANNED_SAFE) {
if (base::FeatureList::IsEnabled(safe_browsing::kDeepScanningUpdatedUX)) {
// "2 B • Scan is done"
delta_str = l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_STATUS_DEEP_SCANNING_DONE_UPDATED);
} else {
// "2 B • Done, no issues found"
delta_str = l10n_util::GetStringUTF16(
IDS_DOWNLOAD_BUBBLE_STATUS_DEEP_SCANNING_DONE);
}
} else {
base::TimeDelta time_elapsed = base::Time::Now() - model_->GetEndTime();
// If less than 1 minute has passed since download completed: "2 B • Done"
Expand Down
3 changes: 0 additions & 3 deletions chrome/browser/metrics/chrome_feature_list_creator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,6 @@ GetSwitchDependentFeatureOverrides(const base::CommandLine& command_line) {
base::FeatureList::OverrideState override_state;
} chrome_layer_override_info[] = {
// Overrides for --enable-download-warning-improvements.
{switches::kEnableDownloadWarningImprovements,
std::cref(safe_browsing::kDeepScanningUpdatedUX),
base::FeatureList::OVERRIDE_ENABLE_FEATURE},
{switches::kEnableDownloadWarningImprovements,
std::cref(safe_browsing::kDeepScanningEncryptedArchives),
base::FeatureList::OVERRIDE_ENABLE_FEATURE},
Expand Down
28 changes: 7 additions & 21 deletions chrome/browser/resources/downloads/item.html
Original file line number Diff line number Diff line change
Expand Up @@ -312,13 +312,13 @@
aria-hidden="[[computeIconAriaHidden_(iconAriaLabel_)]]">
<img class="icon" id="file-icon" alt="" hidden="[[!useFileIcon_]]"
icon-color$="[[computeIconColor_(isDangerous_, data.dangerType,
useFileIcon_, updateDeepScanningUx_, improvedDownloadWarningsUx_,
useFileIcon_, improvedDownloadWarningsUx_,
displayType_)]]">
<iron-icon class="icon" hidden="[[useFileIcon_]]"
icon$="[[computeIcon_(isDangerous_, data.dangerType, useFileIcon_,
updateDeepScanningUx_, improvedDownloadWarningsUx_, displayType_)]]"
improvedDownloadWarningsUx_, displayType_)]]"
icon-color$="[[computeIconColor_(isDangerous_, data.dangerType,
useFileIcon_, updateDeepScanningUx_, improvedDownloadWarningsUx_,
useFileIcon_, improvedDownloadWarningsUx_,
displayType_)]]"></iron-icon>
</div>

Expand Down Expand Up @@ -346,28 +346,26 @@
description-color$="[[iconAndDescriptionColor_(displayType_,
improvedDownloadWarningsUx_)]]"
hidden$="[[!computeDescriptionVisible_(data.*, displayType_,
updateDeepScanningUx_, improvedDownloadWarningsUx_)]]">
improvedDownloadWarningsUx_)]]">
[[computeDescription_(
data.state,
data.dangerType,
data.fileName,
data.progressStatusText,
displayType_,
updateDeepScanningUx_,
improvedDownloadWarningsUx_)]]
</div>

<div class="description" role="gridcell"
hidden="[[!computeSecondLineVisible_(data.state,
updateDeepScanningUx_)]]">
hidden="[[!computeSecondLineVisible_(data.state)]]">
$i18n{asyncScanningDownloadDescSecond}
</div>

<template is="dom-if" if="[[showProgress_]]">
<div role="gridcell">
<paper-progress id="progress"
indeterminate="[[isIndeterminate_(data.percent,
updateDeepScanningUx_)]]" value="[[data.percent]]">
indeterminate="[[isIndeterminate_(data.percent)]]"
value="[[data.percent]]">
</paper-progress>
</div>
</template>
Expand Down Expand Up @@ -399,14 +397,6 @@
</cr-button>
</span>
</template>
<template is="dom-if" if="[[showOpenNow_]]" restamp>
<span role="gridcell">
<cr-button on-click="onOpenNowClick_" id="openNow"
class="action-button" focus-row-control focus-type="open">
$i18n{controlOpenNow}
</cr-button>
</span>
</template>
<template is="dom-if" if="[[showDeepScan_]]" restamp>
<span role="gridcell">
<cr-button on-click="onDeepScanClick_" id="deepScan"
Expand Down Expand Up @@ -559,10 +549,6 @@
hidden="[[!data.retry]]" id="retry">
$i18n{controlRetry}
</button>
<button class="dropdown-item" on-click="onOpenNowClick_"
hidden="[[!showOpenNow_]]" id="open-now">
$i18n{controlOpenNow}
</button>
<button class="dropdown-item" on-click="onDeepScanClick_"
hidden="[[!showDeepScan_]]" id="deep-scan">
$i18n{controlDeepScan}
Expand Down

0 comments on commit d1d0b7e

Please sign in to comment.