Chromium Code Reviews| Index: components/security_interstitials/core/safe_browsing_quiet_error_ui.cc |
| diff --git a/components/security_interstitials/core/safe_browsing_quiet_error_ui.cc b/components/security_interstitials/core/safe_browsing_quiet_error_ui.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a8684bbd503734bee43f04cb5c138353ee96d51e |
| --- /dev/null |
| +++ b/components/security_interstitials/core/safe_browsing_quiet_error_ui.cc |
| @@ -0,0 +1,94 @@ |
| +// Copyright 2017 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "components/security_interstitials/core/safe_browsing_quiet_error_ui.h" |
| + |
| +#include "base/i18n/time_formatting.h" |
| +#include "base/metrics/histogram_macros.h" |
| +#include "base/strings/stringprintf.h" |
| +#include "base/strings/utf_string_conversions.h" |
| +#include "components/google/core/browser/google_util.h" |
| +#include "components/security_interstitials/core/common_string_util.h" |
| +#include "components/security_interstitials/core/metrics_helper.h" |
| +#include "components/strings/grit/components_strings.h" |
| +#include "net/base/escape.h" |
| +#include "ui/base/l10n/l10n_util.h" |
| + |
| +namespace security_interstitials { |
| + |
| +SafeBrowsingQuietErrorUI::SafeBrowsingQuietErrorUI( |
| + const GURL& request_url, |
| + const GURL& main_frame_url, |
| + BaseSafeBrowsingErrorUI::SBInterstitialReason reason, |
| + const BaseSafeBrowsingErrorUI::SBErrorDisplayOptions& display_options, |
| + const std::string& app_locale, |
| + const base::Time& time_triggered, |
| + ControllerClient* controller, |
| + const bool is_giant_webview) |
| + : BaseSafeBrowsingErrorUI(request_url, |
| + main_frame_url, |
| + reason, |
| + display_options, |
| + app_locale, |
| + time_triggered, |
| + controller), |
| + is_giant_webview_(is_giant_webview) { |
| + controller->metrics_helper()->RecordUserDecision(MetricsHelper::SHOW); |
| + controller->metrics_helper()->RecordUserInteraction( |
| + MetricsHelper::TOTAL_VISITS); |
| + if (is_proceed_anyway_disabled()) { |
| + controller->metrics_helper()->RecordUserDecision( |
| + security_interstitials::MetricsHelper::PROCEEDING_DISABLED); |
| + } |
| +} |
| + |
| +SafeBrowsingQuietErrorUI::~SafeBrowsingQuietErrorUI() { |
| + controller()->metrics_helper()->RecordShutdownMetrics(); |
| +} |
| + |
| +void SafeBrowsingQuietErrorUI::PopulateStringsForHtml( |
| + base::DictionaryValue* load_time_data) { |
| + DCHECK(load_time_data); |
| + |
| + load_time_data->SetString("type", "SAFEBROWSING"); |
| + load_time_data->SetString( |
| + "tabTitle", l10n_util::GetStringUTF16(IDS_SAFEBROWSING_V3_TITLE)); |
| + load_time_data->SetBoolean("overridable", !is_proceed_anyway_disabled()); |
| + load_time_data->SetString( |
| + "openDetails", |
| + l10n_util::GetStringUTF16(IDS_SAFEBROWSING_V3_OPEN_DETAILS_BUTTON)); |
| + load_time_data->SetBoolean("is_giant", is_giant_webview_); |
| + load_time_data->SetString( |
| + "proceedLink", l10n_util::GetStringUTF16(IDS_WEBVIEW_PROCEED_LINK)); |
| + |
| + bool phishing = |
| + interstitial_reason() == BaseSafeBrowsingErrorUI::SB_REASON_PHISHING; |
| + load_time_data->SetBoolean("phishing", phishing); |
| + load_time_data->SetString( |
| + "heading", phishing |
| + ? l10n_util::GetStringUTF16(IDS_PHISHING_WEBVIEW_HEADING) |
| + : l10n_util::GetStringUTF16(IDS_MALWARE_WEBVIEW_HEADING)); |
| + |
| + int explanation_ids = -1; |
| + if (phishing) |
| + explanation_ids = IDS_PHISHING_WEBVIEW_EXPLANATION_PARAGRAPH; |
| + else if (interstitial_reason() == BaseSafeBrowsingErrorUI::SB_REASON_MALWARE) |
| + explanation_ids = IDS_MALWARE_WEBVIEW_EXPLANATION_PARAGRAPH; |
| + |
| + if (explanation_ids > -1) { |
| + load_time_data->SetString("explanationParagraph", |
|
felt
2017/05/17 16:33:26
is it safe to leave explanationParagraph blank oth
edwardjung
2017/05/17 22:49:32
We're only showing this interstitial for phishing
felt
2017/05/18 16:44:50
could you then do a NOTREACHED or DCHECK to make s
edwardjung
2017/05/19 08:14:57
Done.
|
| + l10n_util::GetStringUTF16(explanation_ids)); |
| + } |
| +} |
| + |
| +void SafeBrowsingQuietErrorUI::SetGiantWebView(bool is_giant_webview) { |
| + is_giant_webview_ = is_giant_webview; |
| +} |
| + |
| +void SafeBrowsingQuietErrorUI::HandleCommand( |
| + SecurityInterstitialCommands command) { |
| + NOTREACHED(); |
| +} |
| + |
| +} // security_interstitials |