OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/website_settings.h" | 5 #include "chrome/browser/website_settings.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 | 68 |
69 // TODO(markusheintz): Add the strings below to the grd file once a decision | 69 // TODO(markusheintz): Add the strings below to the grd file once a decision |
70 // has been made about the exact wording. | 70 // has been made about the exact wording. |
71 std::string site_info; | 71 std::string site_info; |
72 switch (site_identity_status_) { | 72 switch (site_identity_status_) { |
73 case WebsiteSettings::SITE_IDENTITY_STATUS_CERT: | 73 case WebsiteSettings::SITE_IDENTITY_STATUS_CERT: |
74 case WebsiteSettings::SITE_IDENTITY_STATUS_DNSSEC_CERT: | 74 case WebsiteSettings::SITE_IDENTITY_STATUS_DNSSEC_CERT: |
75 site_info = "Identity verified"; | 75 site_info = "Identity verified"; |
76 break; | 76 break; |
77 case WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT: | 77 case WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT: |
78 site_info = UTF16ToUTF8(organization_name()); | 78 site_info = organization_name(); |
79 site_info += " - Identity verified"; | 79 site_info += " - Identity verified"; |
80 break; | 80 break; |
81 default: | 81 default: |
82 site_info = "Identity not verified"; | 82 site_info = "Identity not verified"; |
83 break; | 83 break; |
84 } | 84 } |
85 ui_->SetSiteInfo(site_info); | 85 ui_->SetSiteInfo(site_info); |
86 | 86 |
87 PresentSitePermissions(); | 87 PresentSitePermissions(); |
88 } | 88 } |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
120 | 120 |
121 ui_->SetPermissionInfo(permission_info_list); | 121 ui_->SetPermissionInfo(permission_info_list); |
122 } | 122 } |
123 | 123 |
124 void WebsiteSettings::Init(Profile* profile, | 124 void WebsiteSettings::Init(Profile* profile, |
125 const GURL& url, | 125 const GURL& url, |
126 const content::SSLStatus& ssl) { | 126 const content::SSLStatus& ssl) { |
127 if (url.SchemeIs(chrome::kChromeUIScheme)) { | 127 if (url.SchemeIs(chrome::kChromeUIScheme)) { |
128 site_identity_status_ = SITE_IDENTITY_STATUS_INTERNAL_PAGE; | 128 site_identity_status_ = SITE_IDENTITY_STATUS_INTERNAL_PAGE; |
129 site_identity_details_ = | 129 site_identity_details_ = |
130 l10n_util::GetStringUTF16(IDS_PAGE_INFO_INTERNAL_PAGE); | 130 l10n_util::GetStringUTF8(IDS_PAGE_INFO_INTERNAL_PAGE); |
131 site_connection_status_ = SITE_CONNECTION_STATUS_INTERNAL_PAGE; | 131 site_connection_status_ = SITE_CONNECTION_STATUS_INTERNAL_PAGE; |
132 return; | 132 return; |
133 } | 133 } |
134 | 134 |
135 scoped_refptr<net::X509Certificate> cert; | 135 scoped_refptr<net::X509Certificate> cert; |
136 | 136 |
137 // Identity section. | 137 // Identity section. |
138 string16 subject_name(UTF8ToUTF16(url.host())); | 138 std::string subject_name(url.host()); |
139 if (subject_name.empty()) { | 139 if (subject_name.empty()) { |
140 subject_name.assign( | 140 subject_name.assign( |
141 l10n_util::GetStringUTF16(IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY)); | 141 l10n_util::GetStringUTF8(IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY)); |
142 } | 142 } |
143 | 143 |
144 if (ssl.cert_id && | 144 if (ssl.cert_id && |
145 cert_store_->RetrieveCert(ssl.cert_id, &cert) && | 145 cert_store_->RetrieveCert(ssl.cert_id, &cert) && |
146 (!net::IsCertStatusError(ssl.cert_status) || | 146 (!net::IsCertStatusError(ssl.cert_status) || |
147 net::IsCertStatusMinorError(ssl.cert_status))) { | 147 net::IsCertStatusMinorError(ssl.cert_status))) { |
148 // There are no major errors. Check for minor errors. | 148 // There are no major errors. Check for minor errors. |
149 if (net::IsCertStatusMinorError(ssl.cert_status)) { | 149 if (net::IsCertStatusMinorError(ssl.cert_status)) { |
150 site_identity_status_ = SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN; | 150 site_identity_status_ = SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN; |
151 string16 issuer_name(UTF8ToUTF16(cert->issuer().GetDisplayName())); | 151 std::string issuer_name(cert->issuer().GetDisplayName()); |
152 if (issuer_name.empty()) { | 152 if (issuer_name.empty()) { |
153 issuer_name.assign(l10n_util::GetStringUTF16( | 153 issuer_name.assign(l10n_util::GetStringUTF8( |
154 IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY)); | 154 IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY)); |
155 } | 155 } |
156 site_identity_details_.assign(l10n_util::GetStringFUTF16( | 156 site_identity_details_.assign(l10n_util::GetStringFUTF8( |
157 IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, issuer_name)); | 157 IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, |
| 158 UTF8ToUTF16(issuer_name))); |
158 | 159 |
159 site_identity_details_ += ASCIIToUTF16("\n\n"); | 160 site_identity_details_ += "\n\n"; |
160 if (ssl.cert_status & net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION) { | 161 if (ssl.cert_status & net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION) { |
161 site_identity_details_ += l10n_util::GetStringUTF16( | 162 site_identity_details_ += l10n_util::GetStringUTF8( |
162 IDS_PAGE_INFO_SECURITY_TAB_UNABLE_TO_CHECK_REVOCATION); | 163 IDS_PAGE_INFO_SECURITY_TAB_UNABLE_TO_CHECK_REVOCATION); |
163 } else if (ssl.cert_status & net::CERT_STATUS_NO_REVOCATION_MECHANISM) { | 164 } else if (ssl.cert_status & net::CERT_STATUS_NO_REVOCATION_MECHANISM) { |
164 site_identity_details_ += l10n_util::GetStringUTF16( | 165 site_identity_details_ += l10n_util::GetStringUTF8( |
165 IDS_PAGE_INFO_SECURITY_TAB_NO_REVOCATION_MECHANISM); | 166 IDS_PAGE_INFO_SECURITY_TAB_NO_REVOCATION_MECHANISM); |
166 } else { | 167 } else { |
167 NOTREACHED() << "Need to specify string for this warning"; | 168 NOTREACHED() << "Need to specify string for this warning"; |
168 } | 169 } |
169 } else if (ssl.cert_status & net::CERT_STATUS_IS_EV) { | 170 } else if (ssl.cert_status & net::CERT_STATUS_IS_EV) { |
170 // EV HTTPS page. | 171 // EV HTTPS page. |
171 site_identity_status_ = SITE_IDENTITY_STATUS_EV_CERT; | 172 site_identity_status_ = SITE_IDENTITY_STATUS_EV_CERT; |
172 DCHECK(!cert->subject().organization_names.empty()); | 173 DCHECK(!cert->subject().organization_names.empty()); |
173 organization_name_ = UTF8ToUTF16(cert->subject().organization_names[0]); | 174 organization_name_ = cert->subject().organization_names[0]; |
174 // An EV Cert is required to have a city (localityName) and country but | 175 // An EV Cert is required to have a city (localityName) and country but |
175 // state is "if any". | 176 // state is "if any". |
176 DCHECK(!cert->subject().locality_name.empty()); | 177 DCHECK(!cert->subject().locality_name.empty()); |
177 DCHECK(!cert->subject().country_name.empty()); | 178 DCHECK(!cert->subject().country_name.empty()); |
178 string16 locality; | 179 std::string locality; |
179 if (!cert->subject().state_or_province_name.empty()) { | 180 if (!cert->subject().state_or_province_name.empty()) { |
180 locality = l10n_util::GetStringFUTF16( | 181 locality = l10n_util::GetStringFUTF8( |
181 IDS_PAGEINFO_ADDRESS, | 182 IDS_PAGEINFO_ADDRESS, |
182 UTF8ToUTF16(cert->subject().locality_name), | 183 UTF8ToUTF16(cert->subject().locality_name), |
183 UTF8ToUTF16(cert->subject().state_or_province_name), | 184 UTF8ToUTF16(cert->subject().state_or_province_name), |
184 UTF8ToUTF16(cert->subject().country_name)); | 185 UTF8ToUTF16(cert->subject().country_name)); |
185 } else { | 186 } else { |
186 locality = l10n_util::GetStringFUTF16( | 187 locality = l10n_util::GetStringFUTF8( |
187 IDS_PAGEINFO_PARTIAL_ADDRESS, | 188 IDS_PAGEINFO_PARTIAL_ADDRESS, |
188 UTF8ToUTF16(cert->subject().locality_name), | 189 UTF8ToUTF16(cert->subject().locality_name), |
189 UTF8ToUTF16(cert->subject().country_name)); | 190 UTF8ToUTF16(cert->subject().country_name)); |
190 } | 191 } |
191 DCHECK(!cert->subject().organization_names.empty()); | 192 DCHECK(!cert->subject().organization_names.empty()); |
192 site_identity_details_.assign(l10n_util::GetStringFUTF16( | 193 site_identity_details_.assign(l10n_util::GetStringFUTF8( |
193 IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY_EV, | 194 IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY_EV, |
194 UTF8ToUTF16(cert->subject().organization_names[0]), | 195 UTF8ToUTF16(cert->subject().organization_names[0]), |
195 locality, | 196 UTF8ToUTF16(locality), |
196 UTF8ToUTF16(cert->issuer().GetDisplayName()))); | 197 UTF8ToUTF16(cert->issuer().GetDisplayName()))); |
197 } else if (ssl.cert_status & net::CERT_STATUS_IS_DNSSEC) { | 198 } else if (ssl.cert_status & net::CERT_STATUS_IS_DNSSEC) { |
198 // DNSSEC authenticated page. | 199 // DNSSEC authenticated page. |
199 site_identity_status_ = SITE_IDENTITY_STATUS_DNSSEC_CERT; | 200 site_identity_status_ = SITE_IDENTITY_STATUS_DNSSEC_CERT; |
200 site_identity_details_.assign(l10n_util::GetStringFUTF16( | 201 site_identity_details_.assign(l10n_util::GetStringFUTF8( |
201 IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, UTF8ToUTF16("DNSSEC"))); | 202 IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, UTF8ToUTF16("DNSSEC"))); |
202 } else { | 203 } else { |
203 // Non-EV OK HTTPS page. | 204 // Non-EV OK HTTPS page. |
204 site_identity_status_ = SITE_IDENTITY_STATUS_CERT; | 205 site_identity_status_ = SITE_IDENTITY_STATUS_CERT; |
205 string16 issuer_name(UTF8ToUTF16(cert->issuer().GetDisplayName())); | 206 std::string issuer_name(cert->issuer().GetDisplayName()); |
206 if (issuer_name.empty()) { | 207 if (issuer_name.empty()) { |
207 issuer_name.assign(l10n_util::GetStringUTF16( | 208 issuer_name.assign(l10n_util::GetStringUTF8( |
208 IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY)); | 209 IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY)); |
209 } | 210 } |
210 site_identity_details_.assign(l10n_util::GetStringFUTF16( | 211 site_identity_details_.assign(l10n_util::GetStringFUTF8( |
211 IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, issuer_name)); | 212 IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, |
| 213 UTF8ToUTF16(issuer_name))); |
212 } | 214 } |
213 } else { | 215 } else { |
214 // HTTP or HTTPS with errors (not warnings). | 216 // HTTP or HTTPS with errors (not warnings). |
215 site_identity_details_.assign(l10n_util::GetStringUTF16( | 217 site_identity_details_.assign(l10n_util::GetStringUTF8( |
216 IDS_PAGE_INFO_SECURITY_TAB_INSECURE_IDENTITY)); | 218 IDS_PAGE_INFO_SECURITY_TAB_INSECURE_IDENTITY)); |
217 if (ssl.security_style == content::SECURITY_STYLE_UNAUTHENTICATED) | 219 if (ssl.security_style == content::SECURITY_STYLE_UNAUTHENTICATED) |
218 site_identity_status_ = SITE_IDENTITY_STATUS_NO_CERT; | 220 site_identity_status_ = SITE_IDENTITY_STATUS_NO_CERT; |
219 else | 221 else |
220 site_identity_status_ = SITE_IDENTITY_STATUS_ERROR; | 222 site_identity_status_ = SITE_IDENTITY_STATUS_ERROR; |
221 | 223 |
222 const string16 bullet = UTF8ToUTF16("\n • "); | 224 const std::string bullet = "\n • "; |
223 std::vector<SSLErrorInfo> errors; | 225 std::vector<SSLErrorInfo> errors; |
224 SSLErrorInfo::GetErrorsForCertStatus(ssl.cert_id, ssl.cert_status, | 226 SSLErrorInfo::GetErrorsForCertStatus(ssl.cert_id, ssl.cert_status, |
225 url, &errors); | 227 url, &errors); |
226 for (size_t i = 0; i < errors.size(); ++i) { | 228 for (size_t i = 0; i < errors.size(); ++i) { |
227 site_identity_details_ += bullet; | 229 site_identity_details_ += bullet; |
228 site_identity_details_ += errors[i].short_description(); | 230 site_identity_details_ += UTF16ToUTF8(errors[i].short_description()); |
229 } | 231 } |
230 | 232 |
231 if (ssl.cert_status & net::CERT_STATUS_NON_UNIQUE_NAME) { | 233 if (ssl.cert_status & net::CERT_STATUS_NON_UNIQUE_NAME) { |
232 site_identity_details_ += ASCIIToUTF16("\n\n"); | 234 site_identity_details_ += "\n\n"; |
233 site_identity_details_ += l10n_util::GetStringUTF16( | 235 site_identity_details_ += l10n_util::GetStringUTF8( |
234 IDS_PAGE_INFO_SECURITY_TAB_NON_UNIQUE_NAME); | 236 IDS_PAGE_INFO_SECURITY_TAB_NON_UNIQUE_NAME); |
235 } | 237 } |
236 } | 238 } |
237 | 239 |
238 // Site Connection | 240 // Site Connection |
239 // We consider anything less than 80 bits encryption to be weak encryption. | 241 // We consider anything less than 80 bits encryption to be weak encryption. |
240 // TODO(wtc): Bug 1198735: report mixed/unsafe content for unencrypted and | 242 // TODO(wtc): Bug 1198735: report mixed/unsafe content for unencrypted and |
241 // weakly encrypted connections. | 243 // weakly encrypted connections. |
242 site_connection_status_ = SITE_CONNECTION_STATUS_UNKNOWN; | 244 site_connection_status_ = SITE_CONNECTION_STATUS_UNKNOWN; |
243 | 245 |
244 if (!ssl.cert_id) { | 246 if (!ssl.cert_id) { |
245 // Not HTTPS. | 247 // Not HTTPS. |
246 DCHECK_EQ(ssl.security_style, content::SECURITY_STYLE_UNAUTHENTICATED); | 248 DCHECK_EQ(ssl.security_style, content::SECURITY_STYLE_UNAUTHENTICATED); |
247 if (ssl.security_style == content::SECURITY_STYLE_UNAUTHENTICATED) | 249 if (ssl.security_style == content::SECURITY_STYLE_UNAUTHENTICATED) |
248 site_connection_status_ = SITE_CONNECTION_STATUS_UNENCRYPTED; | 250 site_connection_status_ = SITE_CONNECTION_STATUS_UNENCRYPTED; |
249 else | 251 else |
250 site_connection_status_ = SITE_CONNECTION_STATUS_ENCRYPTED_ERROR; | 252 site_connection_status_ = SITE_CONNECTION_STATUS_ENCRYPTED_ERROR; |
251 | 253 |
252 site_connection_details_.assign(l10n_util::GetStringFUTF16( | 254 site_connection_details_.assign(l10n_util::GetStringFUTF8( |
253 IDS_PAGE_INFO_SECURITY_TAB_NOT_ENCRYPTED_CONNECTION_TEXT, | 255 IDS_PAGE_INFO_SECURITY_TAB_NOT_ENCRYPTED_CONNECTION_TEXT, |
254 subject_name)); | 256 UTF8ToUTF16(subject_name))); |
255 } else if (ssl.security_bits < 0) { | 257 } else if (ssl.security_bits < 0) { |
256 // Security strength is unknown. Say nothing. | 258 // Security strength is unknown. Say nothing. |
257 site_connection_status_ = SITE_CONNECTION_STATUS_ENCRYPTED_ERROR; | 259 site_connection_status_ = SITE_CONNECTION_STATUS_ENCRYPTED_ERROR; |
258 } else if (ssl.security_bits == 0) { | 260 } else if (ssl.security_bits == 0) { |
259 DCHECK_NE(ssl.security_style, content::SECURITY_STYLE_UNAUTHENTICATED); | 261 DCHECK_NE(ssl.security_style, content::SECURITY_STYLE_UNAUTHENTICATED); |
260 site_connection_status_ = SITE_CONNECTION_STATUS_ENCRYPTED_ERROR; | 262 site_connection_status_ = SITE_CONNECTION_STATUS_ENCRYPTED_ERROR; |
261 site_connection_details_.assign(l10n_util::GetStringFUTF16( | 263 site_connection_details_.assign(l10n_util::GetStringFUTF8( |
262 IDS_PAGE_INFO_SECURITY_TAB_NOT_ENCRYPTED_CONNECTION_TEXT, | 264 IDS_PAGE_INFO_SECURITY_TAB_NOT_ENCRYPTED_CONNECTION_TEXT, |
263 subject_name)); | 265 UTF8ToUTF16(subject_name))); |
264 } else if (ssl.security_bits < 80) { | 266 } else if (ssl.security_bits < 80) { |
265 site_connection_status_ = SITE_CONNECTION_STATUS_ENCRYPTED_ERROR; | 267 site_connection_status_ = SITE_CONNECTION_STATUS_ENCRYPTED_ERROR; |
266 site_connection_details_.assign(l10n_util::GetStringFUTF16( | 268 site_connection_details_.assign(l10n_util::GetStringFUTF8( |
267 IDS_PAGE_INFO_SECURITY_TAB_WEAK_ENCRYPTION_CONNECTION_TEXT, | 269 IDS_PAGE_INFO_SECURITY_TAB_WEAK_ENCRYPTION_CONNECTION_TEXT, |
268 subject_name)); | 270 UTF8ToUTF16(subject_name))); |
269 } else { | 271 } else { |
270 site_connection_status_ = SITE_CONNECTION_STATUS_ENCRYPTED; | 272 site_connection_status_ = SITE_CONNECTION_STATUS_ENCRYPTED; |
271 site_connection_details_.assign(l10n_util::GetStringFUTF16( | 273 site_connection_details_.assign(l10n_util::GetStringFUTF8( |
272 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_CONNECTION_TEXT, | 274 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_CONNECTION_TEXT, |
273 subject_name, | 275 UTF8ToUTF16(subject_name), |
274 base::IntToString16(ssl.security_bits))); | 276 base::IntToString16(ssl.security_bits))); |
275 if (ssl.content_status) { | 277 if (ssl.content_status) { |
276 bool ran_insecure_content = | 278 bool ran_insecure_content = |
277 !!(ssl.content_status & content::SSLStatus::RAN_INSECURE_CONTENT); | 279 !!(ssl.content_status & content::SSLStatus::RAN_INSECURE_CONTENT); |
278 site_connection_status_ = ran_insecure_content ? | 280 site_connection_status_ = ran_insecure_content ? |
279 SITE_CONNECTION_STATUS_ENCRYPTED_ERROR | 281 SITE_CONNECTION_STATUS_ENCRYPTED_ERROR |
280 : SITE_CONNECTION_STATUS_MIXED_CONTENT; | 282 : SITE_CONNECTION_STATUS_MIXED_CONTENT; |
281 site_connection_details_.assign(l10n_util::GetStringFUTF16( | 283 site_connection_details_.assign(l10n_util::GetStringFUTF8( |
282 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_SENTENCE_LINK, | 284 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_SENTENCE_LINK, |
283 site_connection_details_, | 285 UTF8ToUTF16(site_connection_details_), |
284 l10n_util::GetStringUTF16(ran_insecure_content ? | 286 l10n_util::GetStringUTF16(ran_insecure_content ? |
285 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_ERROR : | 287 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_ERROR : |
286 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_WARNING))); | 288 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTED_INSECURE_CONTENT_WARNING))); |
287 } | 289 } |
288 } | 290 } |
289 | 291 |
290 uint16 cipher_suite = | 292 uint16 cipher_suite = |
291 net::SSLConnectionStatusToCipherSuite(ssl.connection_status); | 293 net::SSLConnectionStatusToCipherSuite(ssl.connection_status); |
292 if (ssl.security_bits > 0 && cipher_suite) { | 294 if (ssl.security_bits > 0 && cipher_suite) { |
293 int ssl_version = | 295 int ssl_version = |
294 net::SSLConnectionStatusToVersion(ssl.connection_status); | 296 net::SSLConnectionStatusToVersion(ssl.connection_status); |
295 const char* ssl_version_str; | 297 const char* ssl_version_str; |
296 net::SSLVersionToString(&ssl_version_str, ssl_version); | 298 net::SSLVersionToString(&ssl_version_str, ssl_version); |
297 site_connection_details_ += ASCIIToUTF16("\n\n"); | 299 site_connection_details_ += "\n\n"; |
298 site_connection_details_ += l10n_util::GetStringFUTF16( | 300 site_connection_details_ += l10n_util::GetStringFUTF8( |
299 IDS_PAGE_INFO_SECURITY_TAB_SSL_VERSION, | 301 IDS_PAGE_INFO_SECURITY_TAB_SSL_VERSION, |
300 ASCIIToUTF16(ssl_version_str)); | 302 ASCIIToUTF16(ssl_version_str)); |
301 | 303 |
302 bool did_fallback = (ssl.connection_status & | 304 bool did_fallback = (ssl.connection_status & |
303 net::SSL_CONNECTION_SSL3_FALLBACK) != 0; | 305 net::SSL_CONNECTION_SSL3_FALLBACK) != 0; |
304 bool no_renegotiation = | 306 bool no_renegotiation = |
305 (ssl.connection_status & | 307 (ssl.connection_status & |
306 net::SSL_CONNECTION_NO_RENEGOTIATION_EXTENSION) != 0; | 308 net::SSL_CONNECTION_NO_RENEGOTIATION_EXTENSION) != 0; |
307 const char *key_exchange, *cipher, *mac; | 309 const char *key_exchange, *cipher, *mac; |
308 net::SSLCipherSuiteToStrings(&key_exchange, &cipher, &mac, cipher_suite); | 310 net::SSLCipherSuiteToStrings(&key_exchange, &cipher, &mac, cipher_suite); |
309 | 311 |
310 site_connection_details_ += ASCIIToUTF16("\n\n"); | 312 site_connection_details_ += "\n\n"; |
311 site_connection_details_ += l10n_util::GetStringFUTF16( | 313 site_connection_details_ += l10n_util::GetStringFUTF8( |
312 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTION_DETAILS, | 314 IDS_PAGE_INFO_SECURITY_TAB_ENCRYPTION_DETAILS, |
313 ASCIIToUTF16(cipher), ASCIIToUTF16(mac), ASCIIToUTF16(key_exchange)); | 315 ASCIIToUTF16(cipher), ASCIIToUTF16(mac), ASCIIToUTF16(key_exchange)); |
314 | 316 |
315 site_connection_details_ += ASCIIToUTF16("\n\n"); | 317 site_connection_details_ += "\n\n"; |
316 uint8 compression_id = | 318 uint8 compression_id = |
317 net::SSLConnectionStatusToCompression(ssl.connection_status); | 319 net::SSLConnectionStatusToCompression(ssl.connection_status); |
318 if (compression_id) { | 320 if (compression_id) { |
319 const char* compression; | 321 const char* compression; |
320 net::SSLCompressionToString(&compression, compression_id); | 322 net::SSLCompressionToString(&compression, compression_id); |
321 site_connection_details_ += l10n_util::GetStringFUTF16( | 323 site_connection_details_ += l10n_util::GetStringFUTF8( |
322 IDS_PAGE_INFO_SECURITY_TAB_COMPRESSION_DETAILS, | 324 IDS_PAGE_INFO_SECURITY_TAB_COMPRESSION_DETAILS, |
323 ASCIIToUTF16(compression)); | 325 UTF8ToUTF16(compression)); |
324 } else { | 326 } else { |
325 site_connection_details_ += l10n_util::GetStringUTF16( | 327 site_connection_details_ += l10n_util::GetStringUTF8( |
326 IDS_PAGE_INFO_SECURITY_TAB_NO_COMPRESSION); | 328 IDS_PAGE_INFO_SECURITY_TAB_NO_COMPRESSION); |
327 } | 329 } |
328 | 330 |
329 if (did_fallback) { | 331 if (did_fallback) { |
330 // For now, only SSLv3 fallback will trigger a warning icon. | 332 // For now, only SSLv3 fallback will trigger a warning icon. |
331 if (site_connection_status_ < SITE_CONNECTION_STATUS_MIXED_CONTENT) | 333 if (site_connection_status_ < SITE_CONNECTION_STATUS_MIXED_CONTENT) |
332 site_connection_status_ = SITE_CONNECTION_STATUS_MIXED_CONTENT; | 334 site_connection_status_ = SITE_CONNECTION_STATUS_MIXED_CONTENT; |
333 site_connection_details_ += ASCIIToUTF16("\n\n"); | 335 site_connection_details_ += "\n\n"; |
334 site_connection_details_ += l10n_util::GetStringUTF16( | 336 site_connection_details_ += l10n_util::GetStringUTF8( |
335 IDS_PAGE_INFO_SECURITY_TAB_FALLBACK_MESSAGE); | 337 IDS_PAGE_INFO_SECURITY_TAB_FALLBACK_MESSAGE); |
336 } | 338 } |
337 if (no_renegotiation) { | 339 if (no_renegotiation) { |
338 site_connection_details_ += ASCIIToUTF16("\n\n"); | 340 site_connection_details_ += "\n\n"; |
339 site_connection_details_ += l10n_util::GetStringUTF16( | 341 site_connection_details_ += l10n_util::GetStringUTF8( |
340 IDS_PAGE_INFO_SECURITY_TAB_RENEGOTIATION_MESSAGE); | 342 IDS_PAGE_INFO_SECURITY_TAB_RENEGOTIATION_MESSAGE); |
341 } | 343 } |
342 } | 344 } |
343 } | 345 } |
344 | 346 |
345 void WebsiteSettings::OnUIClosing() { | 347 void WebsiteSettings::OnUIClosing() { |
346 ui_->SetPresenter(NULL); | 348 ui_->SetPresenter(NULL); |
347 delete this; | 349 delete this; |
348 } | 350 } |
349 | 351 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
407 // static | 409 // static |
408 void WebsiteSettings::Show(gfx::NativeWindow parent, | 410 void WebsiteSettings::Show(gfx::NativeWindow parent, |
409 Profile* profile, | 411 Profile* profile, |
410 TabContentsWrapper* tab_contents_wrapper, | 412 TabContentsWrapper* tab_contents_wrapper, |
411 const GURL& url, | 413 const GURL& url, |
412 const content::SSLStatus& ssl) { | 414 const content::SSLStatus& ssl) { |
413 #if defined(TOOLKIT_GTK) | 415 #if defined(TOOLKIT_GTK) |
414 // The WebsiteSettingsModel will delete itself after the UI is closed. | 416 // The WebsiteSettingsModel will delete itself after the UI is closed. |
415 new WebsiteSettings(new WebsiteSettingsPopupGtk(parent, | 417 new WebsiteSettings(new WebsiteSettingsPopupGtk(parent, |
416 profile, | 418 profile, |
417 tab_contents_wrapper), | 419 tab_contents_wrapper), |
418 profile, | 420 profile, |
419 url, | 421 url, |
420 ssl, | 422 ssl, |
421 content::CertStore::GetInstance()); | 423 content::CertStore::GetInstance()); |
422 #endif | 424 #endif |
423 } | 425 } |
OLD | NEW |