| Index: components/ssl_errors/error_info.cc | 
| diff --git a/components/ssl_errors/error_info.cc b/components/ssl_errors/error_info.cc | 
| index 7ef291ebe4b443c39dadb389877a4c9481bce1fc..ab7afccb05cfa37c20d9d09d15700aedaed06a93 100644 | 
| --- a/components/ssl_errors/error_info.cc | 
| +++ b/components/ssl_errors/error_info.cc | 
| @@ -32,22 +32,30 @@ ErrorInfo ErrorInfo::CreateError(ErrorType error_type, | 
| base::string16 details, short_description; | 
| switch (error_type) { | 
| case CERT_COMMON_NAME_INVALID: { | 
| -      // If the certificate contains multiple DNS names, we choose the most | 
| -      // representative one -- either the DNS name that's also in the subject | 
| -      // field, or the first one.  If this heuristic turns out to be | 
| -      // inadequate, we can consider choosing the DNS name that is the | 
| -      // "closest match" to the host name in the request URL, or listing all | 
| -      // the DNS names with an HTML <ul>. | 
| std::vector<std::string> dns_names; | 
| -      cert->GetDNSNames(&dns_names); | 
| -      DCHECK(!dns_names.empty()); | 
| +      cert->GetSubjectAltName(&dns_names, nullptr); | 
| + | 
| size_t i = 0; | 
| -      for (; i < dns_names.size(); ++i) { | 
| -        if (dns_names[i] == cert->subject().common_name) | 
| -          break; | 
| +      if (dns_names.empty()) { | 
| +        // The certificate had no DNS names, display an explanatory string. | 
| +        // TODO(elawrence): Change the error messsage instead of just the | 
| +        // placeholder string; see https://crbug.com/708268 | 
| +        dns_names.push_back("[missing_subjectAltName]"); | 
| +      } else { | 
| +        // If the certificate contains multiple DNS names, we choose the most | 
| +        // representative one -- either the DNS name that's also in the subject | 
| +        // field, or the first one. If this heuristic turns out to be | 
| +        // inadequate, we can consider choosing the DNS name that is the | 
| +        // "closest match" to the host name in the request URL, or listing all | 
| +        // the DNS names with an HTML <ul>. | 
| +        for (; i < dns_names.size(); ++i) { | 
| +          if (dns_names[i] == cert->subject().common_name) | 
| +            break; | 
| +        } | 
| +        if (i == dns_names.size()) | 
| +          i = 0; | 
| } | 
| -      if (i == dns_names.size()) | 
| -        i = 0; | 
| + | 
| details = l10n_util::GetStringFUTF16( | 
| IDS_CERT_ERROR_COMMON_NAME_INVALID_DETAILS, | 
| UTF8ToUTF16(request_url.host()), | 
|  |