Chromium Code Reviews| Index: chrome/browser/ssl/ssl_error_classification.cc |
| diff --git a/chrome/browser/ssl/ssl_error_classification.cc b/chrome/browser/ssl/ssl_error_classification.cc |
| index eea89250afa724677523c9a09e001a80b2e5b6ae..26229b47f02146230b51c77ce121f20786fcd3de 100644 |
| --- a/chrome/browser/ssl/ssl_error_classification.cc |
| +++ b/chrome/browser/ssl/ssl_error_classification.cc |
| @@ -270,6 +270,7 @@ bool SSLErrorClassification::MaybeWindowsLacksSHA256Support() { |
| } |
| bool SSLErrorClassification::IsHostNameKnownTLD(const std::string& host_name) { |
| + return 1; |
|
Bhanu Dev
2015/07/23 20:11:06
I wrote this while I was testing. Will remove it i
meacer
2015/07/23 20:12:55
Can you remove it, do a |git cl format|, reupload
Bhanu Dev
2015/07/23 20:17:53
Done.
|
| size_t tld_length = |
| net::registry_controlled_domains::GetRegistryLength( |
| host_name, |
| @@ -322,33 +323,43 @@ Tokenize(const std::string& name) { |
| } |
| // We accept the inverse case for www for historical reasons. |
| -bool SSLErrorClassification::IsWWWSubDomainMatch() const { |
| - std::string host_name = request_url_.host(); |
| +bool SSLErrorClassification::GetWWWSubDomainMatch( |
| + const std::string& host_name, |
| + const std::vector<std::string>& dns_names, |
| + std::string* www_match_host_name) { |
| if (IsHostNameKnownTLD(host_name)) { |
| - std::vector<std::string> dns_names; |
| - cert_.GetDNSNames(&dns_names); |
| - bool result = false; |
| // Need to account for all possible domains given in the SSL certificate. |
| for (size_t i = 0; i < dns_names.size(); ++i) { |
| if (dns_names[i].empty() || dns_names[i].find('\0') != std::string::npos |
| || dns_names[i].length() == host_name.length() |
| || !(IsHostNameKnownTLD(dns_names[i]))) { |
| - result = result || false; |
| + continue; |
| } else if (dns_names[i].length() > host_name.length()) { |
| - result = result || |
| - net::StripWWW(base::ASCIIToUTF16(dns_names[i])) == |
| - base::ASCIIToUTF16(host_name); |
| + if (net::StripWWW(base::ASCIIToUTF16(dns_names[i])) == |
| + base::ASCIIToUTF16(host_name)) { |
| + www_match_host_name->assign(dns_names[i].data(), dns_names[i].size()); |
| + return true; |
| + } |
| } else { |
| - result = result || |
| - net::StripWWW(base::ASCIIToUTF16(host_name)) == |
| - base::ASCIIToUTF16(dns_names[i]); |
| + if (net::StripWWW(base::ASCIIToUTF16(host_name)) == |
| + base::ASCIIToUTF16(dns_names[i])) { |
| + www_match_host_name->assign(dns_names[i].data(), dns_names[i].size()); |
| + return true; |
| + } |
| } |
| } |
| - return result; |
| } |
| return false; |
| } |
| +bool SSLErrorClassification::IsWWWSubDomainMatch() const { |
| + const std::string& host_name = request_url_.host(); |
| + std::vector<std::string> dns_names; |
| + cert_.GetDNSNames(&dns_names); |
| + std::string www_host; |
| + return GetWWWSubDomainMatch(host_name, dns_names, &www_host); |
| +} |
| + |
| bool SSLErrorClassification::NameUnderAnyNames( |
| const Tokens& child, |
| const std::vector<Tokens>& potential_parents) const { |