OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "base/string_util.h" | 9 #include "base/string_util.h" |
10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 return jstemplate_builder::GetTemplateHtml(html, &strings, "template_root"); | 96 return jstemplate_builder::GetTemplateHtml(html, &strings, "template_root"); |
97 } | 97 } |
98 | 98 |
99 void SafeBrowsingBlockingPage::PopulateStringDictionary( | 99 void SafeBrowsingBlockingPage::PopulateStringDictionary( |
100 DictionaryValue* strings, | 100 DictionaryValue* strings, |
101 const std::wstring& title, | 101 const std::wstring& title, |
102 const std::wstring& headline, | 102 const std::wstring& headline, |
103 const std::wstring& description1, | 103 const std::wstring& description1, |
104 const std::wstring& description2, | 104 const std::wstring& description2, |
105 const std::wstring& description3) { | 105 const std::wstring& description3) { |
106 strings->SetString(L"title", title); | 106 strings->SetString(ASCIIToUTF16("title"), WideToUTF16Hack(title)); |
107 strings->SetString(L"headLine", headline); | 107 strings->SetString(ASCIIToUTF16("headLine"), WideToUTF16Hack(headline)); |
108 strings->SetString(L"description1", description1); | 108 strings->SetString(ASCIIToUTF16("description1"), |
109 strings->SetString(L"description2", description2); | 109 WideToUTF16Hack(description1)); |
110 strings->SetString(L"description3", description3); | 110 strings->SetString(ASCIIToUTF16("description2"), |
| 111 WideToUTF16Hack(description2)); |
| 112 strings->SetString(ASCIIToUTF16("description3"), |
| 113 WideToUTF16Hack(description3)); |
111 } | 114 } |
112 | 115 |
113 void SafeBrowsingBlockingPage::PopulateMultipleThreatStringDictionary( | 116 void SafeBrowsingBlockingPage::PopulateMultipleThreatStringDictionary( |
114 DictionaryValue* strings) { | 117 DictionaryValue* strings) { |
115 bool malware = false; | 118 bool malware = false; |
116 bool phishing = false; | 119 bool phishing = false; |
117 | 120 |
118 std::wstring phishing_label = | 121 string16 phishing_label = |
119 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_LABEL); | 122 WideToUTF16Hack(l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_LABEL)); |
120 std::wstring phishing_link = | 123 string16 phishing_link = |
121 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_REPORT_ERROR); | 124 WideToUTF16Hack( |
122 std::wstring malware_label = | 125 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_REPORT_ERROR)); |
123 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_LABEL); | 126 string16 malware_label = |
124 std::wstring malware_link = | 127 WideToUTF16Hack( |
125 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DIAGNOSTIC_PAGE); | 128 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_LABEL)); |
| 129 string16 malware_link = |
| 130 WideToUTF16Hack( |
| 131 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DIAGNOSTIC_PAGE)); |
126 | 132 |
127 ListValue* error_strings = new ListValue; | 133 ListValue* error_strings = new ListValue; |
128 for (UnsafeResourceList::const_iterator iter = unsafe_resources_.begin(); | 134 for (UnsafeResourceList::const_iterator iter = unsafe_resources_.begin(); |
129 iter != unsafe_resources_.end(); ++iter) { | 135 iter != unsafe_resources_.end(); ++iter) { |
130 const SafeBrowsingService::UnsafeResource& resource = *iter; | 136 const SafeBrowsingService::UnsafeResource& resource = *iter; |
131 DictionaryValue* current_error_strings = new DictionaryValue; | 137 DictionaryValue* current_error_strings = new DictionaryValue; |
132 if (resource.threat_type == SafeBrowsingService::URL_MALWARE) { | 138 if (resource.threat_type == SafeBrowsingService::URL_MALWARE) { |
133 malware = true; | 139 malware = true; |
134 current_error_strings->SetString(L"type", L"malware"); | 140 current_error_strings->SetString(ASCIIToUTF16("type"), |
135 current_error_strings->SetString(L"typeLabel", malware_label); | 141 ASCIIToUTF16("malware")); |
136 current_error_strings->SetString(L"errorLink", malware_link); | 142 current_error_strings->SetString(ASCIIToUTF16("typeLabel"), |
| 143 malware_label); |
| 144 current_error_strings->SetString(ASCIIToUTF16("errorLink"), malware_link); |
137 } else { | 145 } else { |
138 DCHECK(resource.threat_type == SafeBrowsingService::URL_PHISHING); | 146 DCHECK(resource.threat_type == SafeBrowsingService::URL_PHISHING); |
139 phishing = true; | 147 phishing = true; |
140 current_error_strings->SetString(L"type", L"phishing"); | 148 current_error_strings->SetString(ASCIIToUTF16("type"), |
141 current_error_strings->SetString(L"typeLabel", phishing_label); | 149 ASCIIToUTF16("phishing")); |
142 current_error_strings->SetString(L"errorLink", phishing_link); | 150 current_error_strings->SetString(ASCIIToUTF16("typeLabel"), |
| 151 phishing_label); |
| 152 current_error_strings->SetString(ASCIIToUTF16("errorLink"), |
| 153 phishing_link); |
143 } | 154 } |
144 current_error_strings->SetString(L"url", UTF8ToWide(resource.url.spec())); | 155 current_error_strings->SetString(ASCIIToUTF16("url"), |
| 156 UTF8ToUTF16(resource.url.spec())); |
145 error_strings->Append(current_error_strings); | 157 error_strings->Append(current_error_strings); |
146 } | 158 } |
147 strings->Set(L"errors", error_strings); | 159 strings->Set(ASCIIToUTF16("errors"), error_strings); |
148 DCHECK(phishing || malware); | 160 DCHECK(phishing || malware); |
149 | 161 |
150 if (malware && phishing) { | 162 if (malware && phishing) { |
151 PopulateStringDictionary( | 163 PopulateStringDictionary( |
152 strings, | 164 strings, |
153 // Use the malware headline, it is the scariest one. | 165 // Use the malware headline, it is the scariest one. |
154 l10n_util::GetString(IDS_SAFE_BROWSING_MULTI_THREAT_TITLE), | 166 l10n_util::GetString(IDS_SAFE_BROWSING_MULTI_THREAT_TITLE), |
155 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_HEADLINE), | 167 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_HEADLINE), |
156 l10n_util::GetStringF(IDS_SAFE_BROWSING_MULTI_THREAT_DESCRIPTION1, | 168 l10n_util::GetStringF(IDS_SAFE_BROWSING_MULTI_THREAT_DESCRIPTION1, |
157 UTF8ToWide(tab()->GetURL().host())), | 169 UTF8ToWide(tab()->GetURL().host())), |
(...skipping 13 matching lines...) Expand all Loading... |
171 // Just phishing. | 183 // Just phishing. |
172 PopulateStringDictionary( | 184 PopulateStringDictionary( |
173 strings, | 185 strings, |
174 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_TITLE), | 186 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_TITLE), |
175 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_HEADLINE), | 187 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_HEADLINE), |
176 l10n_util::GetStringF(IDS_SAFE_BROWSING_MULTI_PHISHING_DESCRIPTION1, | 188 l10n_util::GetStringF(IDS_SAFE_BROWSING_MULTI_PHISHING_DESCRIPTION1, |
177 UTF8ToWide(tab()->GetURL().host())), | 189 UTF8ToWide(tab()->GetURL().host())), |
178 L"", L""); | 190 L"", L""); |
179 } | 191 } |
180 | 192 |
181 strings->SetString(L"confirm_text", | 193 strings->SetString(ASCIIToUTF16("confirm_text"), |
182 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION_AGREE)); | 194 WideToUTF16Hack(l10n_util::GetString( |
183 strings->SetString(L"continue_button", | 195 IDS_SAFE_BROWSING_MALWARE_DESCRIPTION_AGREE))); |
184 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_PROCEED_BUTTON)); | 196 strings->SetString(ASCIIToUTF16("continue_button"), |
185 strings->SetString(L"back_button", | 197 WideToUTF16Hack(l10n_util::GetString( |
186 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON)); | 198 IDS_SAFE_BROWSING_MALWARE_PROCEED_BUTTON))); |
187 strings->SetString(L"textdirection", | 199 strings->SetString(ASCIIToUTF16("back_button"), |
| 200 WideToUTF16Hack(l10n_util::GetString( |
| 201 IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON))); |
| 202 strings->SetString(ASCIIToUTF16("textdirection"), |
188 (l10n_util::GetTextDirection() == l10n_util::RIGHT_TO_LEFT) ? | 203 (l10n_util::GetTextDirection() == l10n_util::RIGHT_TO_LEFT) ? |
189 L"rtl" : L"ltr"); | 204 ASCIIToUTF16("rtl") : ASCIIToUTF16("ltr")); |
190 } | 205 } |
191 | 206 |
192 void SafeBrowsingBlockingPage::PopulateMalwareStringDictionary( | 207 void SafeBrowsingBlockingPage::PopulateMalwareStringDictionary( |
193 DictionaryValue* strings) { | 208 DictionaryValue* strings) { |
194 std::wstring link = StringPrintf(kSbDiagnosticHtml, | 209 std::wstring link = StringPrintf(kSbDiagnosticHtml, |
195 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DIAGNOSTIC_PAGE).c_str()); | 210 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DIAGNOSTIC_PAGE).c_str()); |
196 | 211 |
197 strings->SetString(L"badURL", UTF8ToWide(url().host())); | 212 strings->SetString(ASCIIToUTF16("badURL"), UTF8ToUTF16(url().host())); |
198 // Check to see if we're blocking the main page, or a sub-resource on the | 213 // Check to see if we're blocking the main page, or a sub-resource on the |
199 // main page. | 214 // main page. |
200 std::wstring description1, description2; | 215 std::wstring description1, description2; |
201 if (is_main_frame_) { | 216 if (is_main_frame_) { |
202 description1 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION1, | 217 description1 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION1, |
203 UTF8ToWide(url().host())); | 218 UTF8ToWide(url().host())); |
204 description2 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION2, | 219 description2 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION2, |
205 link, | 220 link, |
206 UTF8ToWide(url().host())); | 221 UTF8ToWide(url().host())); |
207 } else { | 222 } else { |
208 description1 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION4, | 223 description1 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION4, |
209 UTF8ToWide(tab()->GetURL().host()), | 224 UTF8ToWide(tab()->GetURL().host()), |
210 UTF8ToWide(url().host())); | 225 UTF8ToWide(url().host())); |
211 description2 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION5, | 226 description2 = l10n_util::GetStringF(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION5, |
212 link, | 227 link, |
213 UTF8ToWide(url().host())); | 228 UTF8ToWide(url().host())); |
214 } | 229 } |
215 | 230 |
216 PopulateStringDictionary( | 231 PopulateStringDictionary( |
217 strings, | 232 strings, |
218 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_TITLE), | 233 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_TITLE), |
219 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_HEADLINE), | 234 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_HEADLINE), |
220 description1, description2, | 235 description1, description2, |
221 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION3)); | 236 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION3)); |
222 | 237 |
223 strings->SetString(L"confirm_text", | 238 strings->SetString(ASCIIToUTF16("confirm_text"), |
224 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_DESCRIPTION_AGREE)); | 239 WideToUTF16Hack(l10n_util::GetString( |
225 strings->SetString(L"continue_button", | 240 IDS_SAFE_BROWSING_MALWARE_DESCRIPTION_AGREE))); |
226 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_PROCEED_BUTTON)); | 241 strings->SetString(ASCIIToUTF16("continue_button"), |
227 strings->SetString(L"back_button", | 242 WideToUTF16Hack(l10n_util::GetString( |
228 l10n_util::GetString(IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON)); | 243 IDS_SAFE_BROWSING_MALWARE_PROCEED_BUTTON))); |
229 strings->SetString(L"textdirection", | 244 strings->SetString(ASCIIToUTF16("back_button"), |
| 245 WideToUTF16Hack(l10n_util::GetString( |
| 246 IDS_SAFE_BROWSING_MALWARE_BACK_BUTTON))); |
| 247 strings->SetString(ASCIIToUTF16("textdirection"), |
230 (l10n_util::GetTextDirection() == l10n_util::RIGHT_TO_LEFT) ? | 248 (l10n_util::GetTextDirection() == l10n_util::RIGHT_TO_LEFT) ? |
231 L"rtl" : L"ltr"); | 249 ASCIIToUTF16("rtl") : ASCIIToUTF16("ltr")); |
232 } | 250 } |
233 | 251 |
234 void SafeBrowsingBlockingPage::PopulatePhishingStringDictionary( | 252 void SafeBrowsingBlockingPage::PopulatePhishingStringDictionary( |
235 DictionaryValue* strings) { | 253 DictionaryValue* strings) { |
236 PopulateStringDictionary( | 254 PopulateStringDictionary( |
237 strings, | 255 strings, |
238 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_TITLE), | 256 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_TITLE), |
239 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_HEADLINE), | 257 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_HEADLINE), |
240 l10n_util::GetStringF(IDS_SAFE_BROWSING_PHISHING_DESCRIPTION1, | 258 l10n_util::GetStringF(IDS_SAFE_BROWSING_PHISHING_DESCRIPTION1, |
241 UTF8ToWide(url().host())), | 259 UTF8ToWide(url().host())), |
242 l10n_util::GetStringF(IDS_SAFE_BROWSING_PHISHING_DESCRIPTION2, | 260 l10n_util::GetStringF(IDS_SAFE_BROWSING_PHISHING_DESCRIPTION2, |
243 UTF8ToWide(url().host())), | 261 UTF8ToWide(url().host())), |
244 L""); | 262 L""); |
245 | 263 |
246 strings->SetString(L"continue_button", | 264 strings->SetString(ASCIIToUTF16("continue_button"), |
247 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_PROCEED_BUTTON)); | 265 WideToUTF16Hack(l10n_util::GetString( |
248 strings->SetString(L"back_button", | 266 IDS_SAFE_BROWSING_PHISHING_PROCEED_BUTTON))); |
249 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_BACK_BUTTON)); | 267 strings->SetString(ASCIIToUTF16("back_button"), |
250 strings->SetString(L"report_error", | 268 WideToUTF16Hack(l10n_util::GetString( |
251 l10n_util::GetString(IDS_SAFE_BROWSING_PHISHING_REPORT_ERROR)); | 269 IDS_SAFE_BROWSING_PHISHING_BACK_BUTTON))); |
252 strings->SetString(L"textdirection", | 270 strings->SetString(ASCIIToUTF16("report_error"), |
| 271 WideToUTF16Hack(l10n_util::GetString( |
| 272 IDS_SAFE_BROWSING_PHISHING_REPORT_ERROR))); |
| 273 strings->SetString(ASCIIToUTF16("textdirection"), |
253 (l10n_util::GetTextDirection() == l10n_util::RIGHT_TO_LEFT) ? | 274 (l10n_util::GetTextDirection() == l10n_util::RIGHT_TO_LEFT) ? |
254 L"rtl" : L"ltr"); | 275 ASCIIToUTF16("rtl") : ASCIIToUTF16("ltr")); |
255 } | 276 } |
256 | 277 |
257 void SafeBrowsingBlockingPage::CommandReceived(const std::string& cmd) { | 278 void SafeBrowsingBlockingPage::CommandReceived(const std::string& cmd) { |
258 std::string command(cmd); // Make a local copy so we can modify it. | 279 std::string command(cmd); // Make a local copy so we can modify it. |
259 // The Jasonified response has quotes, remove them. | 280 // The Jasonified response has quotes, remove them. |
260 if (command.length() > 1 && command[0] == '"') { | 281 if (command.length() > 1 && command[0] == '"') { |
261 command = command.substr(1, command.length() - 2); | 282 command = command.substr(1, command.length() - 2); |
262 } | 283 } |
263 | 284 |
264 if (command == kLearnMoreCommand) { | 285 if (command == kLearnMoreCommand) { |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 UnsafeResourceMap* unsafe_resource_map = GetUnsafeResourcesMap(); | 449 UnsafeResourceMap* unsafe_resource_map = GetUnsafeResourcesMap(); |
429 (*unsafe_resource_map)[web_contents].push_back(unsafe_resource); | 450 (*unsafe_resource_map)[web_contents].push_back(unsafe_resource); |
430 } | 451 } |
431 | 452 |
432 // static | 453 // static |
433 bool SafeBrowsingBlockingPage::IsMainPage( | 454 bool SafeBrowsingBlockingPage::IsMainPage( |
434 const UnsafeResourceList& unsafe_resources) { | 455 const UnsafeResourceList& unsafe_resources) { |
435 return unsafe_resources.size() == 1 && | 456 return unsafe_resources.size() == 1 && |
436 unsafe_resources[0].resource_type == ResourceType::MAIN_FRAME; | 457 unsafe_resources[0].resource_type == ResourceType::MAIN_FRAME; |
437 } | 458 } |
438 | |
OLD | NEW |