OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // Implementation of the SafeBrowsingBlockingPage class. | 5 // Implementation of the SafeBrowsingBlockingPage class. |
6 | 6 |
7 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" | 7 #include "chrome/browser/safe_browsing/safe_browsing_blocking_page.h" |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 26 matching lines...) Expand all Loading... |
37 static const char* const kSbDiagnosticUrl = | 37 static const char* const kSbDiagnosticUrl = |
38 "http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%s&clie
nt=googlechrome"; | 38 "http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%s&clie
nt=googlechrome"; |
39 #else | 39 #else |
40 static const char* const kSbDiagnosticUrl = | 40 static const char* const kSbDiagnosticUrl = |
41 "http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%s&clie
nt=chromium"; | 41 "http://safebrowsing.clients.google.com/safebrowsing/diagnostic?site=%s&clie
nt=chromium"; |
42 #endif | 42 #endif |
43 | 43 |
44 static const char* const kSbReportPhishingUrl = | 44 static const char* const kSbReportPhishingUrl = |
45 "http://www.google.com/safebrowsing/report_error/"; | 45 "http://www.google.com/safebrowsing/report_error/"; |
46 | 46 |
47 // URL for the "Learn more" link on the malware blocking page. | 47 // URL for the "Learn more" link on the multi threat malware blocking page. |
48 static const char* const kLearnMoreMalwareUrl = | 48 static const char* const kLearnMoreMalwareUrl = |
49 "http://www.google.com/support/bin/answer.py?answer=45449&topic=360" | 49 "http://www.google.com/support/bin/answer.py?answer=45449&topic=360" |
50 "&sa=X&oi=malwarewarninglink&resnum=1&ct=help"; | 50 "&sa=X&oi=malwarewarninglink&resnum=1&ct=help"; |
51 | 51 |
52 // URL for the "Learn more" link on the phishing blocking page. | 52 // URL for the "Learn more" link on the phishing blocking page. |
53 static const char* const kLearnMorePhishingUrl = | 53 static const char* const kLearnMorePhishingUrl = |
54 "http://www.google.com/support/bin/answer.py?answer=106318"; | 54 "http://www.google.com/support/bin/answer.py?answer=106318"; |
55 | 55 |
56 static const wchar_t* const kSbDiagnosticHtml = | 56 static const wchar_t* const kSbDiagnosticHtml = |
57 L"<a href=\"\" onClick=\"sendCommand('showDiagnostic'); return false;\" " | 57 L"<a href=\"\" onclick=\"sendCommand('showDiagnostic'); return false;\" " |
58 L"onMouseDown=\"return false;\">%ls</a>"; | 58 L"onmousedown=\"return false;\">%ls</a>"; |
| 59 |
| 60 static const wchar_t* const kPLinkHtml = |
| 61 L"<a href=\"\" onclick=\"sendCommand('proceed'); return false;\" " |
| 62 L"onmousedown=\"return false;\">%ls</a>"; |
59 | 63 |
60 // The commands returned by the page when the user performs an action. | 64 // The commands returned by the page when the user performs an action. |
61 static const char* const kShowDiagnosticCommand = "showDiagnostic"; | 65 static const char* const kShowDiagnosticCommand = "showDiagnostic"; |
62 static const char* const kReportErrorCommand = "reportError"; | 66 static const char* const kReportErrorCommand = "reportError"; |
63 static const char* const kLearnMoreCommand = "learnMore"; | 67 static const char* const kLearnMoreCommand = "learnMore"; |
64 static const char* const kProceedCommand = "proceed"; | 68 static const char* const kProceedCommand = "proceed"; |
65 static const char* const kTakeMeBackCommand = "takeMeBack"; | 69 static const char* const kTakeMeBackCommand = "takeMeBack"; |
66 | 70 |
67 // static | 71 // static |
68 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; | 72 SafeBrowsingBlockingPageFactory* SafeBrowsingBlockingPage::factory_ = NULL; |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 L""); | 206 L""); |
203 } else if (malware) { | 207 } else if (malware) { |
204 // Just malware. | 208 // Just malware. |
205 PopulateStringDictionary( | 209 PopulateStringDictionary( |
206 strings, | 210 strings, |
207 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_TITLE), | 211 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_TITLE), |
208 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_HEADLINE), | 212 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_HEADLINE), |
209 l10n_util::GetStringF(IDS_SAFE_BROWSING_MULTI_MALWARE_DESCRIPTION1, | 213 l10n_util::GetStringF(IDS_SAFE_BROWSING_MULTI_MALWARE_DESCRIPTION1, |
210 UTF8ToWide(tab()->GetURL().host())), | 214 UTF8ToWide(tab()->GetURL().host())), |
211 l10n_util::GetString(IDS_SAFE_BROWSING_MULTI_MALWARE_DESCRIPTION2), | 215 l10n_util::GetString(IDS_SAFE_BROWSING_MULTI_MALWARE_DESCRIPTION2), |
212 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION3)); | 216 l10n_util::GetString(IDS_SAFE_BROWSING_MULTI_MALWARE_DESCRIPTION3)); |
213 } else { | 217 } else { |
214 // Just phishing. | 218 // Just phishing. |
215 PopulateStringDictionary( | 219 PopulateStringDictionary( |
216 strings, | 220 strings, |
217 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_TITLE), | 221 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_TITLE), |
218 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_HEADLINE), | 222 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_HEADLINE), |
219 l10n_util::GetStringF(IDS_SAFE_BROWSING_MULTI_PHISHING_DESCRIPTION1, | 223 l10n_util::GetStringF(IDS_SAFE_BROWSING_MULTI_PHISHING_DESCRIPTION1, |
220 UTF8ToWide(tab()->GetURL().host())), | 224 UTF8ToWide(tab()->GetURL().host())), |
221 L"", L""); | 225 L"", L""); |
222 } | 226 } |
223 | 227 |
224 strings->SetString("confirm_text", | 228 strings->SetString("confirm_text", |
225 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION_AGREE)); | 229 l10n_util::GetStringUTF16( |
| 230 IDS_SAFE_BROWSING_MULTI_MALWARE_DESCRIPTION_AGREE)); |
226 strings->SetString("continue_button", | 231 strings->SetString("continue_button", |
227 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_PROCEED_BUTTON)); | 232 l10n_util::GetStringUTF16( |
| 233 IDS_SAFE_BROWSING_MULTI_MALWARE_PROCEED_BUTTON)); |
228 strings->SetString("back_button", | 234 strings->SetString("back_button", |
229 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON)); | 235 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON)); |
230 strings->SetString("textdirection", base::i18n::IsRTL() ? "rtl" : "ltr"); | 236 strings->SetString("textdirection", base::i18n::IsRTL() ? "rtl" : "ltr"); |
231 } | 237 } |
232 | 238 |
233 void SafeBrowsingBlockingPage::PopulateMalwareStringDictionary( | 239 void SafeBrowsingBlockingPage::PopulateMalwareStringDictionary( |
234 DictionaryValue* strings) { | 240 DictionaryValue* strings) { |
235 std::wstring link = StringPrintf(kSbDiagnosticHtml, | 241 std::wstring diagnostic_link = StringPrintf(kSbDiagnosticHtml, |
236 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DIAGNOSTIC_PAGE).c_str()); | 242 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DIAGNOSTIC_PAGE).c_str()); |
237 | 243 |
238 strings->SetString("badURL", url().host()); | 244 strings->SetString("badURL", url().host()); |
239 // Check to see if we're blocking the main page, or a sub-resource on the | 245 // Check to see if we're blocking the main page, or a sub-resource on the |
240 // main page. | 246 // main page. |
241 std::wstring description1, description2; | 247 std::wstring description1, description3, description5; |
242 if (is_main_frame_) { | 248 if (is_main_frame_) { |
243 description1 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION1, | 249 description1 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION1, |
244 UTF8ToWide(url().host())); | 250 UTF8ToWide(url().host())); |
245 description2 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION2, | |
246 link, | |
247 UTF8ToWide(url().host())); | |
248 } else { | 251 } else { |
249 description1 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION4, | 252 description1 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION4, |
250 UTF8ToWide(tab()->GetURL().host()), | 253 UTF8ToWide(tab()->GetURL().host()), |
251 UTF8ToWide(url().host())); | 254 UTF8ToWide(url().host())); |
252 description2 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION5, | |
253 link, | |
254 UTF8ToWide(url().host())); | |
255 } | 255 } |
256 | 256 |
| 257 std::wstring proceed_link = StringPrintf(kPLinkHtml, |
| 258 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_PROCEED_LINK).c_str()); |
| 259 description3 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION3, |
| 260 proceed_link); |
| 261 |
257 PopulateStringDictionary( | 262 PopulateStringDictionary( |
258 strings, | 263 strings, |
259 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_TITLE), | 264 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_TITLE), |
260 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_HEADLINE), | 265 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_HEADLINE), |
261 description1, description2, | 266 description1, |
262 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION3)); | 267 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION2), |
| 268 description3); |
263 | 269 |
264 strings->SetString("confirm_text", | 270 description5 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION5, |
265 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION_AGREE)); | 271 UTF8ToWide(url().host()), |
266 strings->SetString("continue_button", | 272 UTF8ToWide(url().host()), |
267 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_PROCEED_BUTTON)); | 273 diagnostic_link); |
| 274 |
| 275 strings->SetString("description5", WideToUTF16Hack(description5)); |
| 276 |
268 strings->SetString("back_button", | 277 strings->SetString("back_button", |
269 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON)); | 278 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON)); |
| 279 strings->SetString("more_info_button", |
| 280 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_MORE_INFO_BUTTON)); |
| 281 strings->SetString("less_info_button", |
| 282 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_LESS_INFO_BUTTON)); |
| 283 strings->SetString("proceed_link", |
| 284 l10n_util::GetStringUTF16(IDS_SAFE_BROWSING_MALWARE_PROCEED_LINK)); |
270 strings->SetString("textdirection", base::i18n::IsRTL() ? "rtl" : "ltr"); | 285 strings->SetString("textdirection", base::i18n::IsRTL() ? "rtl" : "ltr"); |
271 } | 286 } |
272 | 287 |
273 void SafeBrowsingBlockingPage::PopulatePhishingStringDictionary( | 288 void SafeBrowsingBlockingPage::PopulatePhishingStringDictionary( |
274 DictionaryValue* strings) { | 289 DictionaryValue* strings) { |
275 PopulateStringDictionary( | 290 PopulateStringDictionary( |
276 strings, | 291 strings, |
277 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_TITLE), | 292 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_TITLE), |
278 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_HEADLINE), | 293 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_HEADLINE), |
279 l10n_util::GetStringF(IDS_SAFE_BROWSING_PHISHING_DESCRIPTION1, | 294 l10n_util::GetStringF(IDS_SAFE_BROWSING_PHISHING_DESCRIPTION1, |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
532 UnsafeResourceMap* unsafe_resource_map = GetUnsafeResourcesMap(); | 547 UnsafeResourceMap* unsafe_resource_map = GetUnsafeResourcesMap(); |
533 (*unsafe_resource_map)[tab_contents].push_back(unsafe_resource); | 548 (*unsafe_resource_map)[tab_contents].push_back(unsafe_resource); |
534 } | 549 } |
535 | 550 |
536 // static | 551 // static |
537 bool SafeBrowsingBlockingPage::IsMainPage( | 552 bool SafeBrowsingBlockingPage::IsMainPage( |
538 const UnsafeResourceList& unsafe_resources) { | 553 const UnsafeResourceList& unsafe_resources) { |
539 return unsafe_resources.size() == 1 && | 554 return unsafe_resources.size() == 1 && |
540 unsafe_resources[0].resource_type == ResourceType::MAIN_FRAME; | 555 unsafe_resources[0].resource_type == ResourceType::MAIN_FRAME; |
541 } | 556 } |
OLD | NEW |