Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1870)

Unified Diff: chrome/browser/page_info_model.cc

Issue 3293019: Show these three cert errors as warnings, not errors (as requested by Ian):... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/page_info_model.cc
===================================================================
--- chrome/browser/page_info_model.cc (revision 59352)
+++ chrome/browser/page_info_model.cc (working copy)
@@ -42,11 +42,41 @@
l10n_util::GetStringUTF16(IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY));
empty_subject_name = true;
}
+
+ // Some of what IsCertStatusError classifies as errors we want to show as
+ // warnings instead.
+ static const int cert_warnings =
+ net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION |
+ net::CERT_STATUS_NO_REVOCATION_MECHANISM;
+ int status_with_warnings_removed = ssl.cert_status() & ~cert_warnings;
+
if (ssl.cert_id() &&
CertStore::GetSharedInstance()->RetrieveCert(ssl.cert_id(), &cert) &&
- !net::IsCertStatusError(ssl.cert_status())) {
- // OK HTTPS page.
- if ((ssl.cert_status() & net::CERT_STATUS_IS_EV) != 0) {
+ !net::IsCertStatusError(status_with_warnings_removed)) {
+ // No error found so far, check cert_status warnings.
+ int cert_status = ssl.cert_status();
+ if (cert_status & cert_warnings) {
+ string16 issuer_name(UTF8ToUTF16(cert->issuer().GetDisplayName()));
+ if (issuer_name.empty()) {
+ issuer_name.assign(l10n_util::GetStringUTF16(
+ IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY));
+ }
+ description.assign(l10n_util::GetStringFUTF16(
+ IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, issuer_name));
+
+ description += ASCIIToUTF16("\n\n");
+ if (cert_status & net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION) {
+ description += l10n_util::GetStringUTF16(
+ IDS_PAGE_INFO_SECURITY_TAB_UNABLE_TO_CHECK_REVOCATION);
+ } else if (cert_status & net::CERT_STATUS_NO_REVOCATION_MECHANISM) {
wtc 2010/09/14 22:31:56 Strictly speaking, we should not use "else if" her
+ description += l10n_util::GetStringUTF16(
+ IDS_PAGE_INFO_SECURITY_TAB_NO_REVOCATION_MECHANISM);
+ } else {
+ NOTREACHED() << "Need to specify string for this warning";
+ }
+ state = SECTION_STATE_WARNING_MINOR;
+ } else if ((ssl.cert_status() & net::CERT_STATUS_IS_EV) != 0) {
+ // EV HTTPS page.
DCHECK(!cert->subject().organization_names.empty());
headline =
l10n_util::GetStringFUTF16(IDS_PAGE_INFO_EV_IDENTITY_TITLE,
@@ -76,7 +106,7 @@
locality,
UTF8ToUTF16(cert->issuer().GetDisplayName())));
} else {
- // Non EV OK HTTPS.
+ // Non-EV OK HTTPS page.
if (empty_subject_name)
headline.clear(); // Don't display any title.
else
@@ -85,13 +115,12 @@
if (issuer_name.empty()) {
issuer_name.assign(l10n_util::GetStringUTF16(
IDS_PAGE_INFO_SECURITY_TAB_UNKNOWN_PARTY));
- } else {
- description.assign(l10n_util::GetStringFUTF16(
- IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, issuer_name));
}
+ description.assign(l10n_util::GetStringFUTF16(
+ IDS_PAGE_INFO_SECURITY_TAB_SECURE_IDENTITY, issuer_name));
}
} else {
- // HTTP or bad HTTPS.
+ // HTTP or HTTPS with errors (not warnings).
description.assign(l10n_util::GetStringUTF16(
IDS_PAGE_INFO_SECURITY_TAB_INSECURE_IDENTITY));
state = ssl.security_style() == SECURITY_STYLE_UNAUTHENTICATED ?
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698