| Index: components/security_interstitials/core/safe_browsing_loud_error_ui.cc
|
| diff --git a/components/security_interstitials/core/safe_browsing_error_ui.cc b/components/security_interstitials/core/safe_browsing_loud_error_ui.cc
|
| similarity index 68%
|
| rename from components/security_interstitials/core/safe_browsing_error_ui.cc
|
| rename to components/security_interstitials/core/safe_browsing_loud_error_ui.cc
|
| index 7b2ad57b6ee03534da4554929edaa53107a48e41..8c0df9ab2f270fbb33326a865658ddcaf4c74b43 100644
|
| --- a/components/security_interstitials/core/safe_browsing_error_ui.cc
|
| +++ b/components/security_interstitials/core/safe_browsing_loud_error_ui.cc
|
| @@ -2,7 +2,7 @@
|
| // 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_error_ui.h"
|
| +#include "components/security_interstitials/core/safe_browsing_loud_error_ui.h"
|
|
|
| #include "base/i18n/time_formatting.h"
|
| #include "base/metrics/histogram_macros.h"
|
| @@ -19,7 +19,8 @@ namespace security_interstitials {
|
| namespace {
|
|
|
| // URL for the Help Center article on Safe Browsing warnings.
|
| -const char kLearnMore[] = "https://support.google.com/chrome/answer/99020";
|
| +const char kLearnMore[] =
|
| + "https://support.google.com/chrome/?p=cpn_safe_browsing";
|
|
|
| // For malware interstitial pages, we link the problematic URL to Google's
|
| // diagnostic page.
|
| @@ -50,7 +51,7 @@ void RecordExtendedReportingPrefChanged(bool report, bool is_scout) {
|
|
|
| } // namespace
|
|
|
| -SafeBrowsingErrorUI::SafeBrowsingErrorUI(
|
| +SafeBrowsingLoudErrorUI::SafeBrowsingLoudErrorUI(
|
| const GURL& request_url,
|
| const GURL& main_frame_url,
|
| SBInterstitialReason reason,
|
| @@ -58,26 +59,26 @@ SafeBrowsingErrorUI::SafeBrowsingErrorUI(
|
| const std::string& app_locale,
|
| const base::Time& time_triggered,
|
| ControllerClient* controller)
|
| - : request_url_(request_url),
|
| - main_frame_url_(main_frame_url),
|
| - interstitial_reason_(reason),
|
| - display_options_(display_options),
|
| - app_locale_(app_locale),
|
| - time_triggered_(time_triggered),
|
| - controller_(controller) {
|
| - controller_->metrics_helper()->RecordUserDecision(MetricsHelper::SHOW);
|
| - controller_->metrics_helper()->RecordUserInteraction(
|
| + : BaseSafeBrowsingErrorUI(request_url,
|
| + main_frame_url,
|
| + reason,
|
| + display_options,
|
| + app_locale,
|
| + time_triggered,
|
| + controller) {
|
| + controller->metrics_helper()->RecordUserDecision(MetricsHelper::SHOW);
|
| + controller->metrics_helper()->RecordUserInteraction(
|
| MetricsHelper::TOTAL_VISITS);
|
| - if (display_options_.is_proceed_anyway_disabled)
|
| - controller_->metrics_helper()->RecordUserDecision(
|
| + if (is_proceed_anyway_disabled())
|
| + controller->metrics_helper()->RecordUserDecision(
|
| security_interstitials::MetricsHelper::PROCEEDING_DISABLED);
|
| }
|
|
|
| -SafeBrowsingErrorUI::~SafeBrowsingErrorUI() {
|
| - controller_->metrics_helper()->RecordShutdownMetrics();
|
| +SafeBrowsingLoudErrorUI::~SafeBrowsingLoudErrorUI() {
|
| + controller()->metrics_helper()->RecordShutdownMetrics();
|
| }
|
|
|
| -void SafeBrowsingErrorUI::PopulateStringsForHTML(
|
| +void SafeBrowsingLoudErrorUI::PopulateStringsForHTML(
|
| base::DictionaryValue* load_time_data) {
|
| DCHECK(load_time_data);
|
|
|
| @@ -93,18 +94,17 @@ void SafeBrowsingErrorUI::PopulateStringsForHTML(
|
| load_time_data->SetString(
|
| "primaryButtonText",
|
| l10n_util::GetStringUTF16(IDS_SAFEBROWSING_OVERRIDABLE_SAFETY_BUTTON));
|
| - load_time_data->SetBoolean("overridable",
|
| - !display_options_.is_proceed_anyway_disabled);
|
| - load_time_data->SetBoolean("hide_primary_button", !controller_->CanGoBack());
|
| + load_time_data->SetBoolean("overridable", !is_proceed_anyway_disabled());
|
| + load_time_data->SetBoolean("hide_primary_button", !controller()->CanGoBack());
|
|
|
| - switch (interstitial_reason_) {
|
| - case SB_REASON_MALWARE:
|
| + switch (interstitial_reason()) {
|
| + case BaseSafeBrowsingErrorUI::SB_REASON_MALWARE:
|
| PopulateMalwareLoadTimeData(load_time_data);
|
| break;
|
| - case SB_REASON_HARMFUL:
|
| + case BaseSafeBrowsingErrorUI::SB_REASON_HARMFUL:
|
| PopulateHarmfulLoadTimeData(load_time_data);
|
| break;
|
| - case SB_REASON_PHISHING:
|
| + case BaseSafeBrowsingErrorUI::SB_REASON_PHISHING:
|
| PopulatePhishingLoadTimeData(load_time_data);
|
| break;
|
| }
|
| @@ -112,14 +112,15 @@ void SafeBrowsingErrorUI::PopulateStringsForHTML(
|
| PopulateExtendedReportingOption(load_time_data);
|
| }
|
|
|
| -void SafeBrowsingErrorUI::HandleCommand(SecurityInterstitialCommands command) {
|
| +void SafeBrowsingLoudErrorUI::HandleCommand(
|
| + SecurityInterstitialCommands command) {
|
| switch (command) {
|
| case CMD_PROCEED: {
|
| // User pressed on the button to proceed.
|
| - if (!display_options_.is_proceed_anyway_disabled) {
|
| - controller_->metrics_helper()->RecordUserDecision(
|
| + if (!is_proceed_anyway_disabled()) {
|
| + controller()->metrics_helper()->RecordUserDecision(
|
| MetricsHelper::PROCEED);
|
| - controller_->Proceed();
|
| + controller()->Proceed();
|
| break;
|
| }
|
| }
|
| @@ -128,83 +129,81 @@ void SafeBrowsingErrorUI::HandleCommand(SecurityInterstitialCommands command) {
|
| // User pressed on the button to return to safety.
|
| // Don't record the user action here because there are other ways of
|
| // triggering DontProceed, like clicking the back button.
|
| - if (display_options_.is_resource_cancellable) {
|
| + if (is_resource_cancellable()) {
|
| // If the load is blocked, we want to close the interstitial and discard
|
| // the pending entry.
|
| - controller_->GoBack();
|
| + controller()->GoBack();
|
| } else {
|
| // Otherwise the offending entry has committed, and we need to go back
|
| // or to a safe page. We will close the interstitial when that page
|
| // commits.
|
| - controller_->GoBackAfterNavigationCommitted();
|
| + controller()->GoBackAfterNavigationCommitted();
|
| }
|
| break;
|
| }
|
| case CMD_DO_REPORT: {
|
| // User enabled SB Extended Reporting via the checkbox.
|
| - display_options_.is_extended_reporting_enabled = true;
|
| - controller_->SetReportingPreference(true);
|
| - RecordExtendedReportingPrefChanged(
|
| - true, display_options_.is_scout_reporting_enabled);
|
| + set_extended_reporting(true);
|
| + controller()->SetReportingPreference(true);
|
| + RecordExtendedReportingPrefChanged(true, is_scout_reporting_enabled());
|
| break;
|
| }
|
| case CMD_DONT_REPORT: {
|
| // User disabled SB Extended Reporting via the checkbox.
|
| - display_options_.is_extended_reporting_enabled = false;
|
| - controller_->SetReportingPreference(false);
|
| - RecordExtendedReportingPrefChanged(
|
| - false, display_options_.is_scout_reporting_enabled);
|
| + set_extended_reporting(false);
|
| + controller()->SetReportingPreference(false);
|
| + RecordExtendedReportingPrefChanged(false, is_scout_reporting_enabled());
|
| break;
|
| }
|
| case CMD_SHOW_MORE_SECTION: {
|
| - controller_->metrics_helper()->RecordUserInteraction(
|
| + controller()->metrics_helper()->RecordUserInteraction(
|
| security_interstitials::MetricsHelper::SHOW_ADVANCED);
|
| break;
|
| }
|
| case CMD_OPEN_HELP_CENTER: {
|
| // User pressed "Learn more".
|
| - controller_->metrics_helper()->RecordUserInteraction(
|
| + controller()->metrics_helper()->RecordUserInteraction(
|
| security_interstitials::MetricsHelper::SHOW_LEARN_MORE);
|
| GURL learn_more_url(kLearnMore);
|
| learn_more_url =
|
| - google_util::AppendGoogleLocaleParam(learn_more_url, app_locale_);
|
| - controller_->OpenUrlInCurrentTab(learn_more_url);
|
| + google_util::AppendGoogleLocaleParam(learn_more_url, app_locale());
|
| + controller()->OpenUrlInCurrentTab(learn_more_url);
|
| break;
|
| }
|
| case CMD_RELOAD: {
|
| - controller_->metrics_helper()->RecordUserInteraction(
|
| + controller()->metrics_helper()->RecordUserInteraction(
|
| security_interstitials::MetricsHelper::RELOAD);
|
| - controller_->Reload();
|
| + controller()->Reload();
|
| break;
|
| }
|
| case CMD_OPEN_REPORTING_PRIVACY: {
|
| // User pressed on the SB Extended Reporting "privacy policy" link.
|
| - controller_->OpenExtendedReportingPrivacyPolicy();
|
| + controller()->OpenExtendedReportingPrivacyPolicy();
|
| break;
|
| }
|
| case CMD_OPEN_WHITEPAPER: {
|
| - controller_->OpenExtendedReportingWhitepaper();
|
| + controller()->OpenExtendedReportingWhitepaper();
|
| break;
|
| }
|
| case CMD_OPEN_DIAGNOSTIC: {
|
| - controller_->metrics_helper()->RecordUserInteraction(
|
| + controller()->metrics_helper()->RecordUserInteraction(
|
| security_interstitials::MetricsHelper::SHOW_DIAGNOSTIC);
|
| std::string diagnostic = base::StringPrintf(
|
| kSbDiagnosticUrl,
|
| - net::EscapeQueryParamValue(request_url_.spec(), true).c_str());
|
| + net::EscapeQueryParamValue(request_url().spec(), true).c_str());
|
| GURL diagnostic_url(diagnostic);
|
| diagnostic_url =
|
| - google_util::AppendGoogleLocaleParam(diagnostic_url, app_locale_);
|
| - controller_->OpenUrlInCurrentTab(diagnostic_url);
|
| + google_util::AppendGoogleLocaleParam(diagnostic_url, app_locale());
|
| + controller()->OpenUrlInCurrentTab(diagnostic_url);
|
| break;
|
| }
|
| case CMD_REPORT_PHISHING_ERROR: {
|
| - controller_->metrics_helper()->RecordUserInteraction(
|
| + controller()->metrics_helper()->RecordUserInteraction(
|
| security_interstitials::MetricsHelper::REPORT_PHISHING_ERROR);
|
| GURL phishing_error_url(kReportPhishingErrorUrl);
|
| - phishing_error_url =
|
| - google_util::AppendGoogleLocaleParam(phishing_error_url, app_locale_);
|
| - controller_->OpenUrlInCurrentTab(phishing_error_url);
|
| + phishing_error_url = google_util::AppendGoogleLocaleParam(
|
| + phishing_error_url, app_locale());
|
| + controller()->OpenUrlInCurrentTab(phishing_error_url);
|
| break;
|
| }
|
| case CMD_OPEN_DATE_SETTINGS:
|
| @@ -216,11 +215,7 @@ void SafeBrowsingErrorUI::HandleCommand(SecurityInterstitialCommands command) {
|
| }
|
| }
|
|
|
| -bool SafeBrowsingErrorUI::CanShowExtendedReportingOption() {
|
| - return !is_off_the_record() && is_extended_reporting_opt_in_allowed();
|
| -}
|
| -
|
| -void SafeBrowsingErrorUI::PopulateMalwareLoadTimeData(
|
| +void SafeBrowsingLoudErrorUI::PopulateMalwareLoadTimeData(
|
| base::DictionaryValue* load_time_data) {
|
| load_time_data->SetBoolean("phishing", false);
|
| load_time_data->SetString("heading",
|
| @@ -229,23 +224,23 @@ void SafeBrowsingErrorUI::PopulateMalwareLoadTimeData(
|
| "primaryParagraph",
|
| l10n_util::GetStringFUTF16(
|
| IDS_MALWARE_V3_PRIMARY_PARAGRAPH,
|
| - common_string_util::GetFormattedHostName(request_url_)));
|
| + common_string_util::GetFormattedHostName(request_url())));
|
| load_time_data->SetString(
|
| "explanationParagraph",
|
| - display_options_.is_main_frame_load_blocked
|
| + is_main_frame_load_blocked()
|
| ? l10n_util::GetStringFUTF16(
|
| IDS_MALWARE_V3_EXPLANATION_PARAGRAPH,
|
| - common_string_util::GetFormattedHostName(request_url_))
|
| + common_string_util::GetFormattedHostName(request_url()))
|
| : l10n_util::GetStringFUTF16(
|
| IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE,
|
| - base::UTF8ToUTF16(main_frame_url_.host()),
|
| - common_string_util::GetFormattedHostName(request_url_)));
|
| + base::UTF8ToUTF16(main_frame_url().host()),
|
| + common_string_util::GetFormattedHostName(request_url())));
|
| load_time_data->SetString(
|
| "finalParagraph",
|
| l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH));
|
| }
|
|
|
| -void SafeBrowsingErrorUI::PopulateHarmfulLoadTimeData(
|
| +void SafeBrowsingLoudErrorUI::PopulateHarmfulLoadTimeData(
|
| base::DictionaryValue* load_time_data) {
|
| load_time_data->SetBoolean("phishing", false);
|
| load_time_data->SetString("heading",
|
| @@ -254,18 +249,18 @@ void SafeBrowsingErrorUI::PopulateHarmfulLoadTimeData(
|
| "primaryParagraph",
|
| l10n_util::GetStringFUTF16(
|
| IDS_HARMFUL_V3_PRIMARY_PARAGRAPH,
|
| - common_string_util::GetFormattedHostName(request_url_)));
|
| + common_string_util::GetFormattedHostName(request_url())));
|
| load_time_data->SetString(
|
| "explanationParagraph",
|
| l10n_util::GetStringFUTF16(
|
| IDS_HARMFUL_V3_EXPLANATION_PARAGRAPH,
|
| - common_string_util::GetFormattedHostName(request_url_)));
|
| + common_string_util::GetFormattedHostName(request_url())));
|
| load_time_data->SetString(
|
| "finalParagraph",
|
| l10n_util::GetStringUTF16(IDS_HARMFUL_V3_PROCEED_PARAGRAPH));
|
| }
|
|
|
| -void SafeBrowsingErrorUI::PopulatePhishingLoadTimeData(
|
| +void SafeBrowsingLoudErrorUI::PopulatePhishingLoadTimeData(
|
| base::DictionaryValue* load_time_data) {
|
| load_time_data->SetBoolean("phishing", true);
|
| load_time_data->SetString("heading",
|
| @@ -274,18 +269,18 @@ void SafeBrowsingErrorUI::PopulatePhishingLoadTimeData(
|
| "primaryParagraph",
|
| l10n_util::GetStringFUTF16(
|
| IDS_PHISHING_V4_PRIMARY_PARAGRAPH,
|
| - common_string_util::GetFormattedHostName(request_url_)));
|
| + common_string_util::GetFormattedHostName(request_url())));
|
| load_time_data->SetString(
|
| "explanationParagraph",
|
| l10n_util::GetStringFUTF16(
|
| IDS_PHISHING_V4_EXPLANATION_PARAGRAPH,
|
| - common_string_util::GetFormattedHostName(request_url_)));
|
| + common_string_util::GetFormattedHostName(request_url())));
|
| load_time_data->SetString(
|
| "finalParagraph",
|
| l10n_util::GetStringUTF16(IDS_PHISHING_V4_PROCEED_AND_REPORT_PARAGRAPH));
|
| }
|
|
|
| -void SafeBrowsingErrorUI::PopulateExtendedReportingOption(
|
| +void SafeBrowsingLoudErrorUI::PopulateExtendedReportingOption(
|
| base::DictionaryValue* load_time_data) {
|
| bool can_show_extended_reporting_option = CanShowExtendedReportingOption();
|
| load_time_data->SetBoolean(security_interstitials::kDisplayCheckBox,
|
| @@ -299,12 +294,12 @@ void SafeBrowsingErrorUI::PopulateExtendedReportingOption(
|
| l10n_util::GetStringUTF8(IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE).c_str());
|
| load_time_data->SetString(security_interstitials::kOptInLink,
|
| l10n_util::GetStringFUTF16(
|
| - display_options_.is_scout_reporting_enabled
|
| + is_scout_reporting_enabled()
|
| ? IDS_SAFE_BROWSING_SCOUT_REPORTING_AGREE
|
| : IDS_SAFE_BROWSING_MALWARE_REPORTING_AGREE,
|
| base::UTF8ToUTF16(privacy_link)));
|
| load_time_data->SetBoolean(security_interstitials::kBoxChecked,
|
| - display_options_.is_extended_reporting_enabled);
|
| + is_extended_reporting_enabled());
|
| }
|
|
|
| } // security_interstitials
|
|
|