Index: chrome/browser/ssl/ssl_blocking_page.cc |
diff --git a/chrome/browser/ssl/ssl_blocking_page.cc b/chrome/browser/ssl/ssl_blocking_page.cc |
index d0d95b8f5e744a3b3f0981549be09553bfe39b42..596a3193b8b2b0b112e0bb71bf14e5c2f26348b3 100644 |
--- a/chrome/browser/ssl/ssl_blocking_page.cc |
+++ b/chrome/browser/ssl/ssl_blocking_page.cc |
@@ -542,7 +542,6 @@ std::string SSLBlockingPage::GetHTMLContentsV2() { |
load_time_data.SetString( |
"closeDetails", |
l10n_util::GetStringUTF16(IDS_SSL_V2_CLOSE_DETAILS_BUTTON)); |
- |
if (overridable_ && !strict_enforcement_) { // Overridable. |
SSLErrorInfo error_info = |
SSLErrorInfo::CreateError( |
@@ -559,17 +558,24 @@ std::string SSLBlockingPage::GetHTMLContentsV2() { |
l10n_util::GetStringFUTF16(IDS_SSL_OVERRIDABLE_PROCEED_PARAGRAPH, url)); |
} else { // Non-overridable. |
load_time_data.SetBoolean("overridable", false); |
- load_time_data.SetString( |
- "explanationParagraph", |
- l10n_util::GetStringFUTF16(IDS_SSL_NONOVERRIDABLE_MORE, url)); |
+ SSLErrorInfo::ErrorType type = SSLErrorInfo::CERT_INVALID; |
+ // SSLErrorInfo::NetErrorToErrorType(cert_error_); |
+ if (type == SSLErrorInfo::CERT_INVALID && WindowsVersionSP3Lower()) { |
+ load_time_data.SetString( |
+ "explanationParagraph", |
+ l10n_util::GetStringFUTF16( |
+ IDS_SSL_NONOVERRIDABLE_MORE_INVALID_SP3, url)); |
+ } else { |
+ load_time_data.SetString("explanationParagraph", |
+ l10n_util::GetStringFUTF16( |
+ IDS_SSL_NONOVERRIDABLE_MORE, url)); |
+ } |
load_time_data.SetString( |
"primaryButtonText", |
l10n_util::GetStringUTF16(IDS_SSL_NONOVERRIDABLE_RELOAD_BUTTON)); |
// Customize the help link depending on the specific error type. |
// Only mark as HSTS if none of the more specific error types apply, and use |
// INVALID as a fallback if no other string is appropriate. |
- SSLErrorInfo::ErrorType type = |
- SSLErrorInfo::NetErrorToErrorType(cert_error_); |
load_time_data.SetInteger("errorType", type); |
int help_string = IDS_SSL_NONOVERRIDABLE_INVALID; |
switch (type) { |
@@ -760,3 +766,14 @@ void SSLBlockingPage::Observe( |
} |
#endif |
} |
+ |
+bool SSLBlockingPage::WindowsVersionSP3Lower() { |
+#if defined(OS_WIN) |
+ const base::win::OSInfo* os_info = base::win::OSInfo::GetInstance(); |
+ base::win::OSInfo::ServicePack service_pack = os_info->service_pack(); |
+ if (os_info->version() == base::win::VERSION_XP && service_pack.major < 3) { |
+ return true; |
+ } |
+#endif |
+ return false; |
+} |