Index: components/security_interstitials/core/safe_browsing_error_ui.cc |
diff --git a/components/security_interstitials/core/safe_browsing_error_ui.cc b/components/security_interstitials/core/safe_browsing_error_ui.cc |
deleted file mode 100644 |
index 38566d65e6c5bbeecec6a36cd6b8ddaeb3c4f0bb..0000000000000000000000000000000000000000 |
--- a/components/security_interstitials/core/safe_browsing_error_ui.cc |
+++ /dev/null |
@@ -1,309 +0,0 @@ |
-// Copyright 2016 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_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 { |
-namespace { |
- |
-// URL for the Help Center article on Safe Browsing warnings. |
-const char kLearnMore[] = "https://support.google.com/chrome/answer/99020"; |
- |
-// For malware interstitial pages, we link the problematic URL to Google's |
-// diagnostic page. |
-#if defined(GOOGLE_CHROME_BUILD) |
-const char kSbDiagnosticUrl[] = |
- "https://www.google.com/safebrowsing/" |
- "diagnostic?site=%s&client=googlechrome"; |
-#else |
-const char kSbDiagnosticUrl[] = |
- "https://www.google.com/safebrowsing/diagnostic?site=%s&client=chromium"; |
-#endif |
- |
-// Constants for the V4 phishing string upgrades. |
-const char kReportPhishingErrorUrl[] = |
- "https://www.google.com/safebrowsing/report_error/"; |
- |
-void RecordExtendedReportingPrefChanged(bool report, bool is_scout) { |
- if (is_scout) { |
- UMA_HISTOGRAM_BOOLEAN( |
- "SafeBrowsing.Pref.Scout.SetPref.SBER2Pref.SecurityInterstitial", |
- report); |
- } else { |
- UMA_HISTOGRAM_BOOLEAN( |
- "SafeBrowsing.Pref.Scout.SetPref.SBER1Pref.SecurityInterstitial", |
- report); |
- } |
-} |
- |
-} // namespace |
- |
-SafeBrowsingErrorUI::SafeBrowsingErrorUI( |
- const GURL& request_url, |
- const GURL& main_frame_url, |
- SBInterstitialReason reason, |
- const SBErrorDisplayOptions& display_options, |
- 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( |
- MetricsHelper::TOTAL_VISITS); |
- if (display_options_.is_proceed_anyway_disabled) |
- controller_->metrics_helper()->RecordUserDecision( |
- security_interstitials::MetricsHelper::PROCEEDING_DISABLED); |
-} |
- |
-SafeBrowsingErrorUI::~SafeBrowsingErrorUI() { |
- controller_->metrics_helper()->RecordShutdownMetrics(); |
-} |
- |
-void SafeBrowsingErrorUI::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->SetString( |
- "openDetails", |
- l10n_util::GetStringUTF16(IDS_SAFEBROWSING_V3_OPEN_DETAILS_BUTTON)); |
- load_time_data->SetString( |
- "closeDetails", |
- l10n_util::GetStringUTF16(IDS_SAFEBROWSING_V3_CLOSE_DETAILS_BUTTON)); |
- load_time_data->SetString( |
- "primaryButtonText", |
- l10n_util::GetStringUTF16(IDS_SAFEBROWSING_OVERRIDABLE_SAFETY_BUTTON)); |
- load_time_data->SetBoolean("overridable", |
- !display_options_.is_proceed_anyway_disabled); |
- |
- switch (interstitial_reason_) { |
- case SB_REASON_MALWARE: |
- PopulateMalwareLoadTimeData(load_time_data); |
- break; |
- case SB_REASON_HARMFUL: |
- PopulateHarmfulLoadTimeData(load_time_data); |
- break; |
- case SB_REASON_PHISHING: |
- PopulatePhishingLoadTimeData(load_time_data); |
- break; |
- } |
- |
- PopulateExtendedReportingOption(load_time_data); |
-} |
- |
-void SafeBrowsingErrorUI::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( |
- MetricsHelper::PROCEED); |
- controller_->Proceed(); |
- break; |
- } |
- } |
- // If the user can't proceed, fall through to CMD_DONT_PROCEED. |
- case CMD_DONT_PROCEED: { |
- // 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 the load is blocked, we want to close the interstitial and discard |
- // the pending entry. |
- 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(); |
- } |
- 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); |
- 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); |
- break; |
- } |
- case CMD_SHOW_MORE_SECTION: { |
- controller_->metrics_helper()->RecordUserInteraction( |
- security_interstitials::MetricsHelper::SHOW_ADVANCED); |
- break; |
- } |
- case CMD_OPEN_HELP_CENTER: { |
- // User pressed "Learn more". |
- 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); |
- break; |
- } |
- case CMD_RELOAD: { |
- controller_->metrics_helper()->RecordUserInteraction( |
- security_interstitials::MetricsHelper::RELOAD); |
- controller_->Reload(); |
- break; |
- } |
- case CMD_OPEN_REPORTING_PRIVACY: { |
- // User pressed on the SB Extended Reporting "privacy policy" link. |
- controller_->OpenExtendedReportingPrivacyPolicy(); |
- break; |
- } |
- case CMD_OPEN_WHITEPAPER: { |
- controller_->OpenExtendedReportingWhitepaper(); |
- break; |
- } |
- case CMD_OPEN_DIAGNOSTIC: { |
- controller_->metrics_helper()->RecordUserInteraction( |
- security_interstitials::MetricsHelper::SHOW_DIAGNOSTIC); |
- std::string diagnostic = base::StringPrintf( |
- kSbDiagnosticUrl, |
- 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); |
- break; |
- } |
- case CMD_REPORT_PHISHING_ERROR: { |
- 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); |
- break; |
- } |
- case CMD_OPEN_DATE_SETTINGS: |
- case CMD_OPEN_LOGIN: |
- case CMD_ERROR: |
- case CMD_TEXT_FOUND: |
- case CMD_TEXT_NOT_FOUND: |
- break; |
- } |
-} |
- |
-bool SafeBrowsingErrorUI::CanShowExtendedReportingOption() { |
- return !is_off_the_record() && is_extended_reporting_opt_in_allowed(); |
-} |
- |
-void SafeBrowsingErrorUI::PopulateMalwareLoadTimeData( |
- base::DictionaryValue* load_time_data) { |
- load_time_data->SetBoolean("phishing", false); |
- load_time_data->SetString("heading", |
- l10n_util::GetStringUTF16(IDS_MALWARE_V3_HEADING)); |
- load_time_data->SetString( |
- "primaryParagraph", |
- l10n_util::GetStringFUTF16( |
- IDS_MALWARE_V3_PRIMARY_PARAGRAPH, |
- common_string_util::GetFormattedHostName(request_url_))); |
- load_time_data->SetString( |
- "explanationParagraph", |
- display_options_.is_main_frame_load_blocked |
- ? l10n_util::GetStringFUTF16( |
- IDS_MALWARE_V3_EXPLANATION_PARAGRAPH, |
- 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_))); |
- load_time_data->SetString( |
- "finalParagraph", |
- l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH)); |
-} |
- |
-void SafeBrowsingErrorUI::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, |
- 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_))); |
- load_time_data->SetString( |
- "finalParagraph", |
- l10n_util::GetStringUTF16(IDS_HARMFUL_V3_PROCEED_PARAGRAPH)); |
-} |
- |
-void SafeBrowsingErrorUI::PopulatePhishingLoadTimeData( |
- base::DictionaryValue* load_time_data) { |
- load_time_data->SetBoolean("phishing", true); |
- load_time_data->SetString("heading", |
- l10n_util::GetStringUTF16(IDS_PHISHING_V4_HEADING)); |
- load_time_data->SetString( |
- "primaryParagraph", |
- l10n_util::GetStringFUTF16( |
- IDS_PHISHING_V4_PRIMARY_PARAGRAPH, |
- 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_))); |
- load_time_data->SetString( |
- "finalParagraph", |
- l10n_util::GetStringUTF16(IDS_PHISHING_V4_PROCEED_AND_REPORT_PARAGRAPH)); |
-} |
- |
-void SafeBrowsingErrorUI::PopulateExtendedReportingOption( |
- base::DictionaryValue* load_time_data) { |
- bool can_show_extended_reporting_option = CanShowExtendedReportingOption(); |
- load_time_data->SetBoolean(security_interstitials::kDisplayCheckBox, |
- can_show_extended_reporting_option); |
- if (!can_show_extended_reporting_option) |
- return; |
- |
- const std::string privacy_link = base::StringPrintf( |
- security_interstitials::kPrivacyLinkHtml, |
- security_interstitials::CMD_OPEN_REPORTING_PRIVACY, |
- 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 |
- ? 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); |
-} |
- |
-} // security_interstitials |