Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(290)

Unified Diff: chrome/browser/safe_browsing/safe_browsing_blocking_page.cc

Issue 584433002: Add UI for the new harmful download warning (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add histograms to histograms.xml Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
index be1adc97f847e1c93cf916edbfa2c55ae0c31167..4cf9f2e06c2742b7a9396b133ec8ebf3e08d5fda 100644
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
@@ -106,6 +106,7 @@ const char kDisplayCheckBox[] = "displaycheckbox";
// Constants for the Experience Sampling instrumentation.
#if defined(ENABLE_EXTENSIONS)
const char kEventNameMalware[] = "safebrowsing_interstitial_";
+const char kEventNameHarmful[] = "harmful_interstitial_";
const char kEventNamePhishing[] = "phishing_interstitial_";
const char kEventNameOther[] = "safebrowsing_other_interstitial_";
#endif
@@ -161,6 +162,7 @@ SafeBrowsingBlockingPage::SafeBrowsingBlockingPage(
create_view_(true),
num_visits_(-1) {
bool malware = false;
+ bool harmful = false;
bool phishing = false;
for (UnsafeResourceList::const_iterator iter = unsafe_resources_.begin();
iter != unsafe_resources_.end(); ++iter) {
@@ -169,15 +171,19 @@ SafeBrowsingBlockingPage::SafeBrowsingBlockingPage(
if (threat_type == SB_THREAT_TYPE_URL_MALWARE ||
threat_type == SB_THREAT_TYPE_CLIENT_SIDE_MALWARE_URL) {
malware = true;
+ } else if (threat_type == SB_THREAT_TYPE_URL_HARMFUL) {
+ harmful = true;
} else {
DCHECK(threat_type == SB_THREAT_TYPE_URL_PHISHING ||
threat_type == SB_THREAT_TYPE_CLIENT_SIDE_PHISHING_URL);
phishing = true;
}
}
- DCHECK(phishing || malware);
+ DCHECK(phishing || malware || harmful);
if (malware)
interstitial_type_ = TYPE_MALWARE;
+ else if (harmful)
+ interstitial_type_ = TYPE_HARMFUL;
else
interstitial_type_ = TYPE_PHISHING;
@@ -224,6 +230,9 @@ SafeBrowsingBlockingPage::SafeBrowsingBlockingPage(
case TYPE_MALWARE:
event_name = kEventNameMalware;
break;
+ case TYPE_HARMFUL:
+ event_name = kEventNameHarmful;
+ break;
case TYPE_PHISHING:
event_name = kEventNamePhishing;
break;
@@ -492,13 +501,16 @@ void SafeBrowsingBlockingPage::RecordUserDecision(Decision decision) {
decision,
MAX_DECISION);
break;
+ case TYPE_HARMFUL:
+ UMA_HISTOGRAM_ENUMERATION("interstitial.harmful.decision",
+ decision,
+ MAX_DECISION);
+ break;
case TYPE_PHISHING:
UMA_HISTOGRAM_ENUMERATION("interstitial.phishing.decision",
decision,
MAX_DECISION);
break;
- default:
- NOTREACHED();
}
#if defined(ENABLE_EXTENSIONS)
@@ -541,6 +553,11 @@ void SafeBrowsingBlockingPage::RecordUserInteraction(Interaction interaction) {
interaction,
MAX_INTERACTION);
break;
+ case TYPE_HARMFUL:
+ UMA_HISTOGRAM_ENUMERATION("interstitial.harmful.interaction",
+ interaction,
+ MAX_INTERACTION);
+ break;
case TYPE_PHISHING:
UMA_HISTOGRAM_ENUMERATION("interstitial.phishing.interaction",
interaction,
@@ -690,10 +707,17 @@ std::string SafeBrowsingBlockingPage::GetHTMLContents() {
"overridable",
!IsPrefEnabled(prefs::kSafeBrowsingProceedAnywayDisabled));
- if (interstitial_type_ == TYPE_PHISHING)
- PopulatePhishingLoadTimeData(&load_time_data);
- else
- PopulateMalwareLoadTimeData(&load_time_data);
+ switch (interstitial_type_) {
+ case TYPE_MALWARE:
+ PopulateMalwareLoadTimeData(&load_time_data);
+ break;
+ case TYPE_HARMFUL:
+ PopulateHarmfulLoadTimeData(&load_time_data);
+ break;
+ case TYPE_PHISHING:
+ PopulatePhishingLoadTimeData(&load_time_data);
+ break;
+ }
base::StringPiece html(
ResourceBundle::GetSharedInstance().GetRawDataResource(
@@ -742,6 +766,41 @@ void SafeBrowsingBlockingPage::PopulateMalwareLoadTimeData(
}
}
+void SafeBrowsingBlockingPage::PopulateHarmfulLoadTimeData(
+ base::DictionaryValue* load_time_data) {
+ load_time_data->SetBoolean("phishing", false);
+ load_time_data->SetString(
+ "heading", l10n_util::GetStringUTF16(IDS_HARMFUL_V3_HEADING));
+ load_time_data->SetString(
+ "primaryParagraph",
+ l10n_util::GetStringFUTF16(
+ IDS_HARMFUL_V3_PRIMARY_PARAGRAPH,
+ base::UTF8ToUTF16(url_.host())));
+ load_time_data->SetString(
+ "explanationParagraph",
+ l10n_util::GetStringFUTF16(
+ IDS_HARMFUL_V3_EXPLANATION_PARAGRAPH,
+ base::UTF8ToUTF16(url_.host())));
+ load_time_data->SetString(
+ "finalParagraph",
+ l10n_util::GetStringUTF16(IDS_HARMFUL_V3_PROCEED_PARAGRAPH));
+
+ load_time_data->SetBoolean(kDisplayCheckBox, CanShowMalwareDetailsOption());
+ if (CanShowMalwareDetailsOption()) {
+ std::string privacy_link = base::StringPrintf(
+ kPrivacyLinkHtml,
+ l10n_util::GetStringUTF8(
+ IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE).c_str());
+ load_time_data->SetString(
+ "optInLink",
+ l10n_util::GetStringFUTF16(IDS_SAFE_BROWSING_MALWARE_REPORTING_AGREE,
+ base::UTF8ToUTF16(privacy_link)));
+ load_time_data->SetBoolean(
+ kBoxChecked,
+ IsPrefEnabled(prefs::kSafeBrowsingExtendedReportingEnabled));
+ }
+}
+
void SafeBrowsingBlockingPage::PopulatePhishingLoadTimeData(
base::DictionaryValue* load_time_data) {
load_time_data->SetBoolean("phishing", true);

Powered by Google App Engine
This is Rietveld 408576698