OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/security_interstitials/core/safe_browsing_error_ui.h" | 5 #include "components/security_interstitials/core/safe_browsing_loud_error_ui.h" |
6 | 6 |
7 #include "base/i18n/time_formatting.h" | 7 #include "base/i18n/time_formatting.h" |
8 #include "base/metrics/histogram_macros.h" | 8 #include "base/metrics/histogram_macros.h" |
9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
11 #include "components/google/core/browser/google_util.h" | 11 #include "components/google/core/browser/google_util.h" |
12 #include "components/security_interstitials/core/common_string_util.h" | 12 #include "components/security_interstitials/core/common_string_util.h" |
13 #include "components/security_interstitials/core/metrics_helper.h" | 13 #include "components/security_interstitials/core/metrics_helper.h" |
14 #include "components/strings/grit/components_strings.h" | 14 #include "components/strings/grit/components_strings.h" |
15 #include "net/base/escape.h" | 15 #include "net/base/escape.h" |
16 #include "ui/base/l10n/l10n_util.h" | 16 #include "ui/base/l10n/l10n_util.h" |
17 | 17 |
18 namespace security_interstitials { | 18 namespace security_interstitials { |
19 namespace { | 19 namespace { |
20 | 20 |
21 // URL for the Help Center article on Safe Browsing warnings. | 21 // URL for the Help Center article on Safe Browsing warnings. |
22 const char kLearnMore[] = "https://support.google.com/chrome/answer/99020"; | 22 const char kLearnMore[] = |
| 23 "https://support.google.com/chrome/?p=cpn_safe_browsing"; |
23 | 24 |
24 // For malware interstitial pages, we link the problematic URL to Google's | 25 // For malware interstitial pages, we link the problematic URL to Google's |
25 // diagnostic page. | 26 // diagnostic page. |
26 #if defined(GOOGLE_CHROME_BUILD) | 27 #if defined(GOOGLE_CHROME_BUILD) |
27 const char kSbDiagnosticUrl[] = | 28 const char kSbDiagnosticUrl[] = |
28 "https://www.google.com/safebrowsing/" | 29 "https://www.google.com/safebrowsing/" |
29 "diagnostic?site=%s&client=googlechrome"; | 30 "diagnostic?site=%s&client=googlechrome"; |
30 #else | 31 #else |
31 const char kSbDiagnosticUrl[] = | 32 const char kSbDiagnosticUrl[] = |
32 "https://www.google.com/safebrowsing/diagnostic?site=%s&client=chromium"; | 33 "https://www.google.com/safebrowsing/diagnostic?site=%s&client=chromium"; |
(...skipping 10 matching lines...) Expand all Loading... |
43 report); | 44 report); |
44 } else { | 45 } else { |
45 UMA_HISTOGRAM_BOOLEAN( | 46 UMA_HISTOGRAM_BOOLEAN( |
46 "SafeBrowsing.Pref.Scout.SetPref.SBER1Pref.SecurityInterstitial", | 47 "SafeBrowsing.Pref.Scout.SetPref.SBER1Pref.SecurityInterstitial", |
47 report); | 48 report); |
48 } | 49 } |
49 } | 50 } |
50 | 51 |
51 } // namespace | 52 } // namespace |
52 | 53 |
53 SafeBrowsingErrorUI::SafeBrowsingErrorUI( | 54 SafeBrowsingLoudErrorUI::SafeBrowsingLoudErrorUI( |
54 const GURL& request_url, | 55 const GURL& request_url, |
55 const GURL& main_frame_url, | 56 const GURL& main_frame_url, |
56 SBInterstitialReason reason, | 57 SBInterstitialReason reason, |
57 const SBErrorDisplayOptions& display_options, | 58 const SBErrorDisplayOptions& display_options, |
58 const std::string& app_locale, | 59 const std::string& app_locale, |
59 const base::Time& time_triggered, | 60 const base::Time& time_triggered, |
60 ControllerClient* controller) | 61 ControllerClient* controller) |
61 : request_url_(request_url), | 62 : BaseSafeBrowsingErrorUI(request_url, |
62 main_frame_url_(main_frame_url), | 63 main_frame_url, |
63 interstitial_reason_(reason), | 64 reason, |
64 display_options_(display_options), | 65 display_options, |
65 app_locale_(app_locale), | 66 app_locale, |
66 time_triggered_(time_triggered), | 67 time_triggered, |
67 controller_(controller) { | 68 controller) { |
68 controller_->metrics_helper()->RecordUserDecision(MetricsHelper::SHOW); | 69 controller->metrics_helper()->RecordUserDecision(MetricsHelper::SHOW); |
69 controller_->metrics_helper()->RecordUserInteraction( | 70 controller->metrics_helper()->RecordUserInteraction( |
70 MetricsHelper::TOTAL_VISITS); | 71 MetricsHelper::TOTAL_VISITS); |
71 if (display_options_.is_proceed_anyway_disabled) | 72 if (is_proceed_anyway_disabled()) |
72 controller_->metrics_helper()->RecordUserDecision( | 73 controller->metrics_helper()->RecordUserDecision( |
73 security_interstitials::MetricsHelper::PROCEEDING_DISABLED); | 74 security_interstitials::MetricsHelper::PROCEEDING_DISABLED); |
74 } | 75 } |
75 | 76 |
76 SafeBrowsingErrorUI::~SafeBrowsingErrorUI() { | 77 SafeBrowsingLoudErrorUI::~SafeBrowsingLoudErrorUI() { |
77 controller_->metrics_helper()->RecordShutdownMetrics(); | 78 controller()->metrics_helper()->RecordShutdownMetrics(); |
78 } | 79 } |
79 | 80 |
80 void SafeBrowsingErrorUI::PopulateStringsForHTML( | 81 void SafeBrowsingLoudErrorUI::PopulateStringsForHTML( |
81 base::DictionaryValue* load_time_data) { | 82 base::DictionaryValue* load_time_data) { |
82 DCHECK(load_time_data); | 83 DCHECK(load_time_data); |
83 | 84 |
84 load_time_data->SetString("type", "SAFEBROWSING"); | 85 load_time_data->SetString("type", "SAFEBROWSING"); |
85 load_time_data->SetString( | 86 load_time_data->SetString( |
86 "tabTitle", l10n_util::GetStringUTF16(IDS_SAFEBROWSING_V3_TITLE)); | 87 "tabTitle", l10n_util::GetStringUTF16(IDS_SAFEBROWSING_V3_TITLE)); |
87 load_time_data->SetString( | 88 load_time_data->SetString( |
88 "openDetails", | 89 "openDetails", |
89 l10n_util::GetStringUTF16(IDS_SAFEBROWSING_V3_OPEN_DETAILS_BUTTON)); | 90 l10n_util::GetStringUTF16(IDS_SAFEBROWSING_V3_OPEN_DETAILS_BUTTON)); |
90 load_time_data->SetString( | 91 load_time_data->SetString( |
91 "closeDetails", | 92 "closeDetails", |
92 l10n_util::GetStringUTF16(IDS_SAFEBROWSING_V3_CLOSE_DETAILS_BUTTON)); | 93 l10n_util::GetStringUTF16(IDS_SAFEBROWSING_V3_CLOSE_DETAILS_BUTTON)); |
93 load_time_data->SetString( | 94 load_time_data->SetString( |
94 "primaryButtonText", | 95 "primaryButtonText", |
95 l10n_util::GetStringUTF16(IDS_SAFEBROWSING_OVERRIDABLE_SAFETY_BUTTON)); | 96 l10n_util::GetStringUTF16(IDS_SAFEBROWSING_OVERRIDABLE_SAFETY_BUTTON)); |
96 load_time_data->SetBoolean("overridable", | 97 load_time_data->SetBoolean("overridable", !is_proceed_anyway_disabled()); |
97 !display_options_.is_proceed_anyway_disabled); | 98 load_time_data->SetBoolean("hide_primary_button", !controller()->CanGoBack()); |
98 load_time_data->SetBoolean("hide_primary_button", !controller_->CanGoBack()); | |
99 | 99 |
100 switch (interstitial_reason_) { | 100 switch (interstitial_reason()) { |
101 case SB_REASON_MALWARE: | 101 case BaseSafeBrowsingErrorUI::SB_REASON_MALWARE: |
102 PopulateMalwareLoadTimeData(load_time_data); | 102 PopulateMalwareLoadTimeData(load_time_data); |
103 break; | 103 break; |
104 case SB_REASON_HARMFUL: | 104 case BaseSafeBrowsingErrorUI::SB_REASON_HARMFUL: |
105 PopulateHarmfulLoadTimeData(load_time_data); | 105 PopulateHarmfulLoadTimeData(load_time_data); |
106 break; | 106 break; |
107 case SB_REASON_PHISHING: | 107 case BaseSafeBrowsingErrorUI::SB_REASON_PHISHING: |
108 PopulatePhishingLoadTimeData(load_time_data); | 108 PopulatePhishingLoadTimeData(load_time_data); |
109 break; | 109 break; |
110 } | 110 } |
111 | 111 |
112 PopulateExtendedReportingOption(load_time_data); | 112 PopulateExtendedReportingOption(load_time_data); |
113 } | 113 } |
114 | 114 |
115 void SafeBrowsingErrorUI::HandleCommand(SecurityInterstitialCommands command) { | 115 void SafeBrowsingLoudErrorUI::HandleCommand( |
| 116 SecurityInterstitialCommands command) { |
116 switch (command) { | 117 switch (command) { |
117 case CMD_PROCEED: { | 118 case CMD_PROCEED: { |
118 // User pressed on the button to proceed. | 119 // User pressed on the button to proceed. |
119 if (!display_options_.is_proceed_anyway_disabled) { | 120 if (!is_proceed_anyway_disabled()) { |
120 controller_->metrics_helper()->RecordUserDecision( | 121 controller()->metrics_helper()->RecordUserDecision( |
121 MetricsHelper::PROCEED); | 122 MetricsHelper::PROCEED); |
122 controller_->Proceed(); | 123 controller()->Proceed(); |
123 break; | 124 break; |
124 } | 125 } |
125 } | 126 } |
126 // If the user can't proceed, fall through to CMD_DONT_PROCEED. | 127 // If the user can't proceed, fall through to CMD_DONT_PROCEED. |
127 case CMD_DONT_PROCEED: { | 128 case CMD_DONT_PROCEED: { |
128 // User pressed on the button to return to safety. | 129 // User pressed on the button to return to safety. |
129 // Don't record the user action here because there are other ways of | 130 // Don't record the user action here because there are other ways of |
130 // triggering DontProceed, like clicking the back button. | 131 // triggering DontProceed, like clicking the back button. |
131 if (display_options_.is_resource_cancellable) { | 132 if (is_resource_cancellable()) { |
132 // If the load is blocked, we want to close the interstitial and discard | 133 // If the load is blocked, we want to close the interstitial and discard |
133 // the pending entry. | 134 // the pending entry. |
134 controller_->GoBack(); | 135 controller()->GoBack(); |
135 } else { | 136 } else { |
136 // Otherwise the offending entry has committed, and we need to go back | 137 // Otherwise the offending entry has committed, and we need to go back |
137 // or to a safe page. We will close the interstitial when that page | 138 // or to a safe page. We will close the interstitial when that page |
138 // commits. | 139 // commits. |
139 controller_->GoBackAfterNavigationCommitted(); | 140 controller()->GoBackAfterNavigationCommitted(); |
140 } | 141 } |
141 break; | 142 break; |
142 } | 143 } |
143 case CMD_DO_REPORT: { | 144 case CMD_DO_REPORT: { |
144 // User enabled SB Extended Reporting via the checkbox. | 145 // User enabled SB Extended Reporting via the checkbox. |
145 display_options_.is_extended_reporting_enabled = true; | 146 set_extended_reporting(true); |
146 controller_->SetReportingPreference(true); | 147 controller()->SetReportingPreference(true); |
147 RecordExtendedReportingPrefChanged( | 148 RecordExtendedReportingPrefChanged(true, is_scout_reporting_enabled()); |
148 true, display_options_.is_scout_reporting_enabled); | |
149 break; | 149 break; |
150 } | 150 } |
151 case CMD_DONT_REPORT: { | 151 case CMD_DONT_REPORT: { |
152 // User disabled SB Extended Reporting via the checkbox. | 152 // User disabled SB Extended Reporting via the checkbox. |
153 display_options_.is_extended_reporting_enabled = false; | 153 set_extended_reporting(false); |
154 controller_->SetReportingPreference(false); | 154 controller()->SetReportingPreference(false); |
155 RecordExtendedReportingPrefChanged( | 155 RecordExtendedReportingPrefChanged(false, is_scout_reporting_enabled()); |
156 false, display_options_.is_scout_reporting_enabled); | |
157 break; | 156 break; |
158 } | 157 } |
159 case CMD_SHOW_MORE_SECTION: { | 158 case CMD_SHOW_MORE_SECTION: { |
160 controller_->metrics_helper()->RecordUserInteraction( | 159 controller()->metrics_helper()->RecordUserInteraction( |
161 security_interstitials::MetricsHelper::SHOW_ADVANCED); | 160 security_interstitials::MetricsHelper::SHOW_ADVANCED); |
162 break; | 161 break; |
163 } | 162 } |
164 case CMD_OPEN_HELP_CENTER: { | 163 case CMD_OPEN_HELP_CENTER: { |
165 // User pressed "Learn more". | 164 // User pressed "Learn more". |
166 controller_->metrics_helper()->RecordUserInteraction( | 165 controller()->metrics_helper()->RecordUserInteraction( |
167 security_interstitials::MetricsHelper::SHOW_LEARN_MORE); | 166 security_interstitials::MetricsHelper::SHOW_LEARN_MORE); |
168 GURL learn_more_url(kLearnMore); | 167 GURL learn_more_url(kLearnMore); |
169 learn_more_url = | 168 learn_more_url = |
170 google_util::AppendGoogleLocaleParam(learn_more_url, app_locale_); | 169 google_util::AppendGoogleLocaleParam(learn_more_url, app_locale()); |
171 controller_->OpenUrlInCurrentTab(learn_more_url); | 170 controller()->OpenUrlInCurrentTab(learn_more_url); |
172 break; | 171 break; |
173 } | 172 } |
174 case CMD_RELOAD: { | 173 case CMD_RELOAD: { |
175 controller_->metrics_helper()->RecordUserInteraction( | 174 controller()->metrics_helper()->RecordUserInteraction( |
176 security_interstitials::MetricsHelper::RELOAD); | 175 security_interstitials::MetricsHelper::RELOAD); |
177 controller_->Reload(); | 176 controller()->Reload(); |
178 break; | 177 break; |
179 } | 178 } |
180 case CMD_OPEN_REPORTING_PRIVACY: { | 179 case CMD_OPEN_REPORTING_PRIVACY: { |
181 // User pressed on the SB Extended Reporting "privacy policy" link. | 180 // User pressed on the SB Extended Reporting "privacy policy" link. |
182 controller_->OpenExtendedReportingPrivacyPolicy(); | 181 controller()->OpenExtendedReportingPrivacyPolicy(); |
183 break; | 182 break; |
184 } | 183 } |
185 case CMD_OPEN_WHITEPAPER: { | 184 case CMD_OPEN_WHITEPAPER: { |
186 controller_->OpenExtendedReportingWhitepaper(); | 185 controller()->OpenExtendedReportingWhitepaper(); |
187 break; | 186 break; |
188 } | 187 } |
189 case CMD_OPEN_DIAGNOSTIC: { | 188 case CMD_OPEN_DIAGNOSTIC: { |
190 controller_->metrics_helper()->RecordUserInteraction( | 189 controller()->metrics_helper()->RecordUserInteraction( |
191 security_interstitials::MetricsHelper::SHOW_DIAGNOSTIC); | 190 security_interstitials::MetricsHelper::SHOW_DIAGNOSTIC); |
192 std::string diagnostic = base::StringPrintf( | 191 std::string diagnostic = base::StringPrintf( |
193 kSbDiagnosticUrl, | 192 kSbDiagnosticUrl, |
194 net::EscapeQueryParamValue(request_url_.spec(), true).c_str()); | 193 net::EscapeQueryParamValue(request_url().spec(), true).c_str()); |
195 GURL diagnostic_url(diagnostic); | 194 GURL diagnostic_url(diagnostic); |
196 diagnostic_url = | 195 diagnostic_url = |
197 google_util::AppendGoogleLocaleParam(diagnostic_url, app_locale_); | 196 google_util::AppendGoogleLocaleParam(diagnostic_url, app_locale()); |
198 controller_->OpenUrlInCurrentTab(diagnostic_url); | 197 controller()->OpenUrlInCurrentTab(diagnostic_url); |
199 break; | 198 break; |
200 } | 199 } |
201 case CMD_REPORT_PHISHING_ERROR: { | 200 case CMD_REPORT_PHISHING_ERROR: { |
202 controller_->metrics_helper()->RecordUserInteraction( | 201 controller()->metrics_helper()->RecordUserInteraction( |
203 security_interstitials::MetricsHelper::REPORT_PHISHING_ERROR); | 202 security_interstitials::MetricsHelper::REPORT_PHISHING_ERROR); |
204 GURL phishing_error_url(kReportPhishingErrorUrl); | 203 GURL phishing_error_url(kReportPhishingErrorUrl); |
205 phishing_error_url = | 204 phishing_error_url = google_util::AppendGoogleLocaleParam( |
206 google_util::AppendGoogleLocaleParam(phishing_error_url, app_locale_); | 205 phishing_error_url, app_locale()); |
207 controller_->OpenUrlInCurrentTab(phishing_error_url); | 206 controller()->OpenUrlInCurrentTab(phishing_error_url); |
208 break; | 207 break; |
209 } | 208 } |
210 case CMD_OPEN_DATE_SETTINGS: | 209 case CMD_OPEN_DATE_SETTINGS: |
211 case CMD_OPEN_LOGIN: | 210 case CMD_OPEN_LOGIN: |
212 case CMD_ERROR: | 211 case CMD_ERROR: |
213 case CMD_TEXT_FOUND: | 212 case CMD_TEXT_FOUND: |
214 case CMD_TEXT_NOT_FOUND: | 213 case CMD_TEXT_NOT_FOUND: |
215 break; | 214 break; |
216 } | 215 } |
217 } | 216 } |
218 | 217 |
219 bool SafeBrowsingErrorUI::CanShowExtendedReportingOption() { | 218 void SafeBrowsingLoudErrorUI::PopulateMalwareLoadTimeData( |
220 return !is_off_the_record() && is_extended_reporting_opt_in_allowed(); | |
221 } | |
222 | |
223 void SafeBrowsingErrorUI::PopulateMalwareLoadTimeData( | |
224 base::DictionaryValue* load_time_data) { | 219 base::DictionaryValue* load_time_data) { |
225 load_time_data->SetBoolean("phishing", false); | 220 load_time_data->SetBoolean("phishing", false); |
226 load_time_data->SetString("heading", | 221 load_time_data->SetString("heading", |
227 l10n_util::GetStringUTF16(IDS_MALWARE_V3_HEADING)); | 222 l10n_util::GetStringUTF16(IDS_MALWARE_V3_HEADING)); |
228 load_time_data->SetString( | 223 load_time_data->SetString( |
229 "primaryParagraph", | 224 "primaryParagraph", |
230 l10n_util::GetStringFUTF16( | 225 l10n_util::GetStringFUTF16( |
231 IDS_MALWARE_V3_PRIMARY_PARAGRAPH, | 226 IDS_MALWARE_V3_PRIMARY_PARAGRAPH, |
232 common_string_util::GetFormattedHostName(request_url_))); | 227 common_string_util::GetFormattedHostName(request_url()))); |
233 load_time_data->SetString( | 228 load_time_data->SetString( |
234 "explanationParagraph", | 229 "explanationParagraph", |
235 display_options_.is_main_frame_load_blocked | 230 is_main_frame_load_blocked() |
236 ? l10n_util::GetStringFUTF16( | 231 ? l10n_util::GetStringFUTF16( |
237 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH, | 232 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH, |
238 common_string_util::GetFormattedHostName(request_url_)) | 233 common_string_util::GetFormattedHostName(request_url())) |
239 : l10n_util::GetStringFUTF16( | 234 : l10n_util::GetStringFUTF16( |
240 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE, | 235 IDS_MALWARE_V3_EXPLANATION_PARAGRAPH_SUBRESOURCE, |
241 base::UTF8ToUTF16(main_frame_url_.host()), | 236 base::UTF8ToUTF16(main_frame_url().host()), |
242 common_string_util::GetFormattedHostName(request_url_))); | 237 common_string_util::GetFormattedHostName(request_url()))); |
243 load_time_data->SetString( | 238 load_time_data->SetString( |
244 "finalParagraph", | 239 "finalParagraph", |
245 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH)); | 240 l10n_util::GetStringUTF16(IDS_MALWARE_V3_PROCEED_PARAGRAPH)); |
246 } | 241 } |
247 | 242 |
248 void SafeBrowsingErrorUI::PopulateHarmfulLoadTimeData( | 243 void SafeBrowsingLoudErrorUI::PopulateHarmfulLoadTimeData( |
249 base::DictionaryValue* load_time_data) { | 244 base::DictionaryValue* load_time_data) { |
250 load_time_data->SetBoolean("phishing", false); | 245 load_time_data->SetBoolean("phishing", false); |
251 load_time_data->SetString("heading", | 246 load_time_data->SetString("heading", |
252 l10n_util::GetStringUTF16(IDS_HARMFUL_V3_HEADING)); | 247 l10n_util::GetStringUTF16(IDS_HARMFUL_V3_HEADING)); |
253 load_time_data->SetString( | 248 load_time_data->SetString( |
254 "primaryParagraph", | 249 "primaryParagraph", |
255 l10n_util::GetStringFUTF16( | 250 l10n_util::GetStringFUTF16( |
256 IDS_HARMFUL_V3_PRIMARY_PARAGRAPH, | 251 IDS_HARMFUL_V3_PRIMARY_PARAGRAPH, |
257 common_string_util::GetFormattedHostName(request_url_))); | 252 common_string_util::GetFormattedHostName(request_url()))); |
258 load_time_data->SetString( | 253 load_time_data->SetString( |
259 "explanationParagraph", | 254 "explanationParagraph", |
260 l10n_util::GetStringFUTF16( | 255 l10n_util::GetStringFUTF16( |
261 IDS_HARMFUL_V3_EXPLANATION_PARAGRAPH, | 256 IDS_HARMFUL_V3_EXPLANATION_PARAGRAPH, |
262 common_string_util::GetFormattedHostName(request_url_))); | 257 common_string_util::GetFormattedHostName(request_url()))); |
263 load_time_data->SetString( | 258 load_time_data->SetString( |
264 "finalParagraph", | 259 "finalParagraph", |
265 l10n_util::GetStringUTF16(IDS_HARMFUL_V3_PROCEED_PARAGRAPH)); | 260 l10n_util::GetStringUTF16(IDS_HARMFUL_V3_PROCEED_PARAGRAPH)); |
266 } | 261 } |
267 | 262 |
268 void SafeBrowsingErrorUI::PopulatePhishingLoadTimeData( | 263 void SafeBrowsingLoudErrorUI::PopulatePhishingLoadTimeData( |
269 base::DictionaryValue* load_time_data) { | 264 base::DictionaryValue* load_time_data) { |
270 load_time_data->SetBoolean("phishing", true); | 265 load_time_data->SetBoolean("phishing", true); |
271 load_time_data->SetString("heading", | 266 load_time_data->SetString("heading", |
272 l10n_util::GetStringUTF16(IDS_PHISHING_V4_HEADING)); | 267 l10n_util::GetStringUTF16(IDS_PHISHING_V4_HEADING)); |
273 load_time_data->SetString( | 268 load_time_data->SetString( |
274 "primaryParagraph", | 269 "primaryParagraph", |
275 l10n_util::GetStringFUTF16( | 270 l10n_util::GetStringFUTF16( |
276 IDS_PHISHING_V4_PRIMARY_PARAGRAPH, | 271 IDS_PHISHING_V4_PRIMARY_PARAGRAPH, |
277 common_string_util::GetFormattedHostName(request_url_))); | 272 common_string_util::GetFormattedHostName(request_url()))); |
278 load_time_data->SetString( | 273 load_time_data->SetString( |
279 "explanationParagraph", | 274 "explanationParagraph", |
280 l10n_util::GetStringFUTF16( | 275 l10n_util::GetStringFUTF16( |
281 IDS_PHISHING_V4_EXPLANATION_PARAGRAPH, | 276 IDS_PHISHING_V4_EXPLANATION_PARAGRAPH, |
282 common_string_util::GetFormattedHostName(request_url_))); | 277 common_string_util::GetFormattedHostName(request_url()))); |
283 load_time_data->SetString( | 278 load_time_data->SetString( |
284 "finalParagraph", | 279 "finalParagraph", |
285 l10n_util::GetStringUTF16(IDS_PHISHING_V4_PROCEED_AND_REPORT_PARAGRAPH)); | 280 l10n_util::GetStringUTF16(IDS_PHISHING_V4_PROCEED_AND_REPORT_PARAGRAPH)); |
286 } | 281 } |
287 | 282 |
288 void SafeBrowsingErrorUI::PopulateExtendedReportingOption( | 283 void SafeBrowsingLoudErrorUI::PopulateExtendedReportingOption( |
289 base::DictionaryValue* load_time_data) { | 284 base::DictionaryValue* load_time_data) { |
290 bool can_show_extended_reporting_option = CanShowExtendedReportingOption(); | 285 bool can_show_extended_reporting_option = CanShowExtendedReportingOption(); |
291 load_time_data->SetBoolean(security_interstitials::kDisplayCheckBox, | 286 load_time_data->SetBoolean(security_interstitials::kDisplayCheckBox, |
292 can_show_extended_reporting_option); | 287 can_show_extended_reporting_option); |
293 if (!can_show_extended_reporting_option) | 288 if (!can_show_extended_reporting_option) |
294 return; | 289 return; |
295 | 290 |
296 const std::string privacy_link = base::StringPrintf( | 291 const std::string privacy_link = base::StringPrintf( |
297 security_interstitials::kPrivacyLinkHtml, | 292 security_interstitials::kPrivacyLinkHtml, |
298 security_interstitials::CMD_OPEN_REPORTING_PRIVACY, | 293 security_interstitials::CMD_OPEN_REPORTING_PRIVACY, |
299 l10n_util::GetStringUTF8(IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE).c_str()); | 294 l10n_util::GetStringUTF8(IDS_SAFE_BROWSING_PRIVACY_POLICY_PAGE).c_str()); |
300 load_time_data->SetString(security_interstitials::kOptInLink, | 295 load_time_data->SetString(security_interstitials::kOptInLink, |
301 l10n_util::GetStringFUTF16( | 296 l10n_util::GetStringFUTF16( |
302 display_options_.is_scout_reporting_enabled | 297 is_scout_reporting_enabled() |
303 ? IDS_SAFE_BROWSING_SCOUT_REPORTING_AGREE | 298 ? IDS_SAFE_BROWSING_SCOUT_REPORTING_AGREE |
304 : IDS_SAFE_BROWSING_MALWARE_REPORTING_AGREE, | 299 : IDS_SAFE_BROWSING_MALWARE_REPORTING_AGREE, |
305 base::UTF8ToUTF16(privacy_link))); | 300 base::UTF8ToUTF16(privacy_link))); |
306 load_time_data->SetBoolean(security_interstitials::kBoxChecked, | 301 load_time_data->SetBoolean(security_interstitials::kBoxChecked, |
307 display_options_.is_extended_reporting_enabled); | 302 is_extended_reporting_enabled()); |
308 } | 303 } |
309 | 304 |
310 } // security_interstitials | 305 } // security_interstitials |
OLD | NEW |