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/ssl/ssl_error_info.h" | 5 #include "chrome/browser/ssl/ssl_error_info.h" |
6 | 6 |
7 #include "base/i18n/time_formatting.h" | 7 #include "base/i18n/time_formatting.h" |
| 8 #include "base/strings/string_number_conversions.h" |
8 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
9 #include "content/public/browser/cert_store.h" | 10 #include "content/public/browser/cert_store.h" |
10 #include "grit/chromium_strings.h" | 11 #include "grit/chromium_strings.h" |
11 #include "grit/generated_resources.h" | 12 #include "grit/generated_resources.h" |
12 #include "net/base/escape.h" | 13 #include "net/base/escape.h" |
13 #include "net/base/net_errors.h" | 14 #include "net/base/net_errors.h" |
14 #include "net/cert/cert_status_flags.h" | 15 #include "net/cert/cert_status_flags.h" |
15 #include "net/ssl/ssl_info.h" | 16 #include "net/ssl/ssl_info.h" |
16 #include "ui/base/l10n/l10n_util.h" | 17 #include "ui/base/l10n/l10n_util.h" |
17 #include "url/gurl.h" | 18 #include "url/gurl.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 for (; i < dns_names.size(); ++i) { | 52 for (; i < dns_names.size(); ++i) { |
52 if (dns_names[i] == cert->subject().common_name) | 53 if (dns_names[i] == cert->subject().common_name) |
53 break; | 54 break; |
54 } | 55 } |
55 if (i == dns_names.size()) | 56 if (i == dns_names.size()) |
56 i = 0; | 57 i = 0; |
57 details = | 58 details = |
58 l10n_util::GetStringFUTF16(IDS_CERT_ERROR_COMMON_NAME_INVALID_DETAILS, | 59 l10n_util::GetStringFUTF16(IDS_CERT_ERROR_COMMON_NAME_INVALID_DETAILS, |
59 UTF8ToUTF16(request_url.host()), | 60 UTF8ToUTF16(request_url.host()), |
60 net::EscapeForHTML( | 61 net::EscapeForHTML( |
61 UTF8ToUTF16(dns_names[i])), | 62 UTF8ToUTF16(dns_names[i]))); |
62 UTF8ToUTF16(request_url.host())); | |
63 short_description = l10n_util::GetStringUTF16( | 63 short_description = l10n_util::GetStringUTF16( |
64 IDS_CERT_ERROR_COMMON_NAME_INVALID_DESCRIPTION); | 64 IDS_CERT_ERROR_COMMON_NAME_INVALID_DESCRIPTION); |
65 extra_info.push_back( | 65 extra_info.push_back( |
66 l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXTRA_INFO_1)); | 66 l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXTRA_INFO_1)); |
67 extra_info.push_back( | 67 extra_info.push_back( |
68 l10n_util::GetStringFUTF16( | 68 l10n_util::GetStringFUTF16( |
69 IDS_CERT_ERROR_COMMON_NAME_INVALID_EXTRA_INFO_2, | 69 IDS_CERT_ERROR_COMMON_NAME_INVALID_EXTRA_INFO_2, |
70 net::EscapeForHTML(UTF8ToUTF16(cert->subject().common_name)), | 70 net::EscapeForHTML(UTF8ToUTF16(cert->subject().common_name)), |
71 UTF8ToUTF16(request_url.host()))); | 71 UTF8ToUTF16(request_url.host()))); |
72 break; | 72 break; |
73 } | 73 } |
74 case CERT_DATE_INVALID: | 74 case CERT_DATE_INVALID: |
75 extra_info.push_back( | 75 extra_info.push_back( |
76 l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXTRA_INFO_1)); | 76 l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXTRA_INFO_1)); |
77 if (cert->HasExpired()) { | 77 if (cert->HasExpired()) { |
78 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXPIRED_TITLE); | 78 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXPIRED_TITLE); |
79 details = l10n_util::GetStringFUTF16( | 79 details = l10n_util::GetStringFUTF16( |
80 IDS_CERT_ERROR_EXPIRED_DETAILS, | 80 IDS_CERT_ERROR_EXPIRED_DETAILS, |
81 UTF8ToUTF16(request_url.host()), | 81 UTF8ToUTF16(request_url.host()), |
82 UTF8ToUTF16(request_url.host()), | 82 base::IntToString16( |
83 base::TimeFormatFriendlyDateAndTime(base::Time::Now())); | 83 (base::Time::Now() - cert->valid_expiry()).InDays()), |
| 84 base::TimeFormatFriendlyDate(base::Time::Now())); |
84 short_description = | 85 short_description = |
85 l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXPIRED_DESCRIPTION); | 86 l10n_util::GetStringUTF16(IDS_CERT_ERROR_EXPIRED_DESCRIPTION); |
86 extra_info.push_back(l10n_util::GetStringUTF16( | 87 extra_info.push_back(l10n_util::GetStringUTF16( |
87 IDS_CERT_ERROR_EXPIRED_DETAILS_EXTRA_INFO_2)); | 88 IDS_CERT_ERROR_EXPIRED_DETAILS_EXTRA_INFO_2)); |
88 } else { | 89 } else { |
89 // Then it must be not yet valid. We don't check that it is not yet | 90 // Then it must be not yet valid. We don't check that it is not yet |
90 // valid as there is still a very unlikely chance that the cert might | 91 // valid as there is still a very unlikely chance that the cert might |
91 // have become valid since the error occurred. | 92 // have become valid since the error occurred. |
92 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_NOT_YET_VALID_TITLE); | 93 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_NOT_YET_VALID_TITLE); |
93 details = l10n_util::GetStringFUTF16( | 94 details = l10n_util::GetStringFUTF16( |
94 IDS_CERT_ERROR_NOT_YET_VALID_DETAILS, | 95 IDS_CERT_ERROR_NOT_YET_VALID_DETAILS, |
95 UTF8ToUTF16(request_url.host()), | 96 UTF8ToUTF16(request_url.host()), |
96 UTF8ToUTF16(request_url.host()), | 97 base::IntToString16( |
97 base::TimeFormatFriendlyDateAndTime(base::Time::Now())); | 98 (cert->valid_start() - base::Time::Now()).InDays())); |
98 short_description = | 99 short_description = |
99 l10n_util::GetStringUTF16(IDS_CERT_ERROR_NOT_YET_VALID_DESCRIPTION); | 100 l10n_util::GetStringUTF16(IDS_CERT_ERROR_NOT_YET_VALID_DESCRIPTION); |
100 extra_info.push_back( | 101 extra_info.push_back( |
101 l10n_util::GetStringUTF16( | 102 l10n_util::GetStringUTF16( |
102 IDS_CERT_ERROR_NOT_YET_VALID_DETAILS_EXTRA_INFO_2)); | 103 IDS_CERT_ERROR_NOT_YET_VALID_DETAILS_EXTRA_INFO_2)); |
103 } | 104 } |
104 break; | 105 break; |
105 case CERT_AUTHORITY_INVALID: | 106 case CERT_AUTHORITY_INVALID: |
106 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_AUTHORITY_INVALID_TITLE); | 107 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_AUTHORITY_INVALID_TITLE); |
107 details = l10n_util::GetStringFUTF16( | 108 details = l10n_util::GetStringFUTF16( |
(...skipping 28 matching lines...) Expand all Loading... |
136 break; | 137 break; |
137 case CERT_NO_REVOCATION_MECHANISM: | 138 case CERT_NO_REVOCATION_MECHANISM: |
138 title = l10n_util::GetStringUTF16( | 139 title = l10n_util::GetStringUTF16( |
139 IDS_CERT_ERROR_NO_REVOCATION_MECHANISM_TITLE); | 140 IDS_CERT_ERROR_NO_REVOCATION_MECHANISM_TITLE); |
140 details = l10n_util::GetStringUTF16( | 141 details = l10n_util::GetStringUTF16( |
141 IDS_CERT_ERROR_NO_REVOCATION_MECHANISM_DETAILS); | 142 IDS_CERT_ERROR_NO_REVOCATION_MECHANISM_DETAILS); |
142 short_description = l10n_util::GetStringUTF16( | 143 short_description = l10n_util::GetStringUTF16( |
143 IDS_CERT_ERROR_NO_REVOCATION_MECHANISM_DESCRIPTION); | 144 IDS_CERT_ERROR_NO_REVOCATION_MECHANISM_DESCRIPTION); |
144 break; | 145 break; |
145 case CERT_UNABLE_TO_CHECK_REVOCATION: | 146 case CERT_UNABLE_TO_CHECK_REVOCATION: |
146 title = l10n_util::GetStringUTF16( | 147 // TODO(felt): Hasn't this been deprecated? |
147 IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_TITLE); | 148 title = l10n_util::GetStringFUTF16( |
| 149 IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_TITLE, |
| 150 UTF8ToUTF16(request_url.host())); |
148 details = l10n_util::GetStringUTF16( | 151 details = l10n_util::GetStringUTF16( |
149 IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_DETAILS); | 152 IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_DETAILS); |
150 short_description = l10n_util::GetStringUTF16( | 153 short_description = l10n_util::GetStringUTF16( |
151 IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_DESCRIPTION); | 154 IDS_CERT_ERROR_UNABLE_TO_CHECK_REVOCATION_DESCRIPTION); |
152 break; | 155 break; |
153 case CERT_REVOKED: | 156 case CERT_REVOKED: |
154 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_REVOKED_CERT_TITLE); | 157 title = l10n_util::GetStringUTF16(IDS_CERT_ERROR_REVOKED_CERT_TITLE); |
155 details = l10n_util::GetStringFUTF16(IDS_CERT_ERROR_REVOKED_CERT_DETAILS, | 158 details = l10n_util::GetStringFUTF16(IDS_CERT_ERROR_REVOKED_CERT_DETAILS, |
156 UTF8ToUTF16(request_url.host())); | 159 UTF8ToUTF16(request_url.host())); |
157 short_description = | 160 short_description = |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 cert_id, &cert); | 320 cert_id, &cert); |
318 DCHECK(r); | 321 DCHECK(r); |
319 } | 322 } |
320 if (errors) | 323 if (errors) |
321 errors->push_back( | 324 errors->push_back( |
322 SSLErrorInfo::CreateError(kErrorTypes[i], cert.get(), url)); | 325 SSLErrorInfo::CreateError(kErrorTypes[i], cert.get(), url)); |
323 } | 326 } |
324 } | 327 } |
325 return count; | 328 return count; |
326 } | 329 } |
OLD | NEW |