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 19f27d563c1b39e6858d91c9805f8215bf3a56a7..3ac2db4201de6da830159bf1d43f4309860c2dd7 100644 |
--- a/chrome/browser/ssl/ssl_blocking_page.cc |
+++ b/chrome/browser/ssl/ssl_blocking_page.cc |
@@ -240,6 +240,8 @@ void LaunchDateAndTimeSettings() { |
const char* argument; |
}; |
static const ClockCommand kClockCommands[] = { |
+ // Unity |
+ { "/usr/bin/unity-control-center", "datetime" }, |
// GNOME |
// |
// NOTE: On old Ubuntu, naming control panels doesn't work, so it |
@@ -418,98 +420,120 @@ std::string SSLBlockingPage::GetHTMLContents() { |
base::i18n::WrapStringWithLTRFormatting(&url); |
webui::SetFontAndTextDirection(&load_time_data); |
- // Shared values for both the overridable and non-overridable versions. |
load_time_data.SetString("type", "SSL"); |
- load_time_data.SetBoolean("overridable", overridable_); |
- load_time_data.SetString( |
- "tabTitle", l10n_util::GetStringUTF16(IDS_SSL_V2_TITLE)); |
- load_time_data.SetString( |
- "heading", l10n_util::GetStringUTF16(IDS_SSL_V2_HEADING)); |
base::Time now = base::Time::NowFromSystemTime(); |
bool bad_clock = IsErrorDueToBadClock(now, cert_error_); |
+ |
+ load_time_data.SetString("errorCode", net::ErrorToString(cert_error_)); |
+ |
if (bad_clock) { |
+ load_time_data.SetBoolean("bad_clock", true); |
+ load_time_data.SetBoolean("overridable", false); |
+ |
+ base::string16 headingString; |
+ if (SSLErrorClassification::IsUserClockInTheFuture(now)) { |
+ headingString = l10n_util::GetStringUTF16( |
+ IDS_SSL_V2_CLOCK_AHEAD_HEADING); |
+ } else { |
+ headingString = l10n_util::GetStringUTF16( |
+ IDS_SSL_V2_CLOCK_BEHIND_HEADING); |
+ } |
+ |
+ load_time_data.SetString("tabTitle", |
+ l10n_util::GetStringUTF16(IDS_SSL_V2_CLOCK_TITLE)); |
+ load_time_data.SetString("heading", headingString); |
load_time_data.SetString("primaryParagraph", |
l10n_util::GetStringFUTF16( |
- IDS_SSL_CLOCK_ERROR, |
+ IDS_SSL_V2_CLOCK_PRIMARY_PARAGRAPH , |
url, |
- base::TimeFormatShortDate(now))); |
+ base::TimeFormatFriendlyDateAndTime(now))); |
+ |
+ load_time_data.SetString( |
+ "primaryButtonText", |
+ l10n_util::GetStringUTF16(IDS_SSL_V2_CLOCK_UPDATE_DATE_AND_TIME)); |
+ load_time_data.SetString( |
+ "openDetails", |
+ l10n_util::GetStringUTF16(IDS_SSL_V2_CLOCK_RELOAD)); |
+ |
+ // The interstitial template expects these strings, |
+ // but we're not using them. So we send blank strings for now. |
+ load_time_data.SetString("explanationParagraph", ""); |
+ load_time_data.SetString("finalParagraph", ""); |
} else { |
+ load_time_data.SetBoolean("bad_clock", false); |
+ |
+ load_time_data.SetString( |
+ "tabTitle", l10n_util::GetStringUTF16(IDS_SSL_V2_TITLE)); |
+ load_time_data.SetString( |
+ "heading", l10n_util::GetStringUTF16(IDS_SSL_V2_HEADING)); |
load_time_data.SetString( |
"primaryParagraph", |
l10n_util::GetStringFUTF16(IDS_SSL_V2_PRIMARY_PARAGRAPH, url)); |
- } |
+ load_time_data.SetString( |
+ "openDetails", |
+ l10n_util::GetStringUTF16(IDS_SSL_V2_OPEN_DETAILS_BUTTON)); |
+ load_time_data.SetString( |
+ "closeDetails", |
+ l10n_util::GetStringUTF16(IDS_SSL_V2_CLOSE_DETAILS_BUTTON)); |
- load_time_data.SetString( |
- "openDetails", |
- l10n_util::GetStringUTF16(IDS_SSL_V2_OPEN_DETAILS_BUTTON)); |
- load_time_data.SetString( |
- "closeDetails", |
- l10n_util::GetStringUTF16(IDS_SSL_V2_CLOSE_DETAILS_BUTTON)); |
- load_time_data.SetString("errorCode", net::ErrorToString(cert_error_)); |
+ if (overridable_) { |
+ load_time_data.SetBoolean("overridable", true); |
- if (overridable_) { |
- SSLErrorInfo error_info = |
- SSLErrorInfo::CreateError( |
- SSLErrorInfo::NetErrorToErrorType(cert_error_), |
- ssl_info_.cert.get(), |
- request_url_); |
- if (bad_clock) { |
- load_time_data.SetString("explanationParagraph", |
- l10n_util::GetStringFUTF16( |
- IDS_SSL_CLOCK_ERROR_EXPLANATION, url)); |
- } else { |
+ SSLErrorInfo error_info = |
+ SSLErrorInfo::CreateError( |
+ SSLErrorInfo::NetErrorToErrorType(cert_error_), |
+ ssl_info_.cert.get(), |
+ request_url_); |
load_time_data.SetString("explanationParagraph", error_info.details()); |
- } |
- load_time_data.SetString( |
- "primaryButtonText", |
- l10n_util::GetStringUTF16(IDS_SSL_OVERRIDABLE_SAFETY_BUTTON)); |
- load_time_data.SetString( |
- "finalParagraph", |
- l10n_util::GetStringFUTF16(IDS_SSL_OVERRIDABLE_PROCEED_PARAGRAPH, |
- url)); |
- } else { |
- SSLErrorInfo::ErrorType type = |
- SSLErrorInfo::NetErrorToErrorType(cert_error_); |
- if (type == SSLErrorInfo::CERT_INVALID && SSLErrorClassification:: |
- MaybeWindowsLacksSHA256Support()) { |
load_time_data.SetString( |
- "explanationParagraph", |
- l10n_util::GetStringFUTF16( |
- IDS_SSL_NONOVERRIDABLE_MORE_INVALID_SP3, url)); |
- } else if (bad_clock) { |
- load_time_data.SetString("explanationParagraph", |
- l10n_util::GetStringFUTF16( |
- IDS_SSL_CLOCK_ERROR_EXPLANATION, url)); |
+ "primaryButtonText", |
+ l10n_util::GetStringUTF16(IDS_SSL_OVERRIDABLE_SAFETY_BUTTON)); |
+ load_time_data.SetString( |
+ "finalParagraph", |
+ l10n_util::GetStringFUTF16(IDS_SSL_OVERRIDABLE_PROCEED_PARAGRAPH, |
+ 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. |
- load_time_data.SetInteger("errorType", type); |
- int help_string = IDS_SSL_NONOVERRIDABLE_INVALID; |
- switch (type) { |
- case SSLErrorInfo::CERT_REVOKED: |
- help_string = IDS_SSL_NONOVERRIDABLE_REVOKED; |
- break; |
- case SSLErrorInfo::CERT_PINNED_KEY_MISSING: |
- help_string = IDS_SSL_NONOVERRIDABLE_PINNED; |
- break; |
- case SSLErrorInfo::CERT_INVALID: |
- help_string = IDS_SSL_NONOVERRIDABLE_INVALID; |
- break; |
- default: |
- if (strict_enforcement_) |
- help_string = IDS_SSL_NONOVERRIDABLE_HSTS; |
+ load_time_data.SetBoolean("overridable", false); |
+ |
+ SSLErrorInfo::ErrorType type = |
+ SSLErrorInfo::NetErrorToErrorType(cert_error_); |
+ if (type == SSLErrorInfo::CERT_INVALID && SSLErrorClassification:: |
+ MaybeWindowsLacksSHA256Support()) { |
+ 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. |
+ load_time_data.SetInteger("errorType", type); |
+ int help_string = IDS_SSL_NONOVERRIDABLE_INVALID; |
+ switch (type) { |
+ case SSLErrorInfo::CERT_REVOKED: |
+ help_string = IDS_SSL_NONOVERRIDABLE_REVOKED; |
+ break; |
+ case SSLErrorInfo::CERT_PINNED_KEY_MISSING: |
+ help_string = IDS_SSL_NONOVERRIDABLE_PINNED; |
+ break; |
+ case SSLErrorInfo::CERT_INVALID: |
+ help_string = IDS_SSL_NONOVERRIDABLE_INVALID; |
+ break; |
+ default: |
+ if (strict_enforcement_) |
+ help_string = IDS_SSL_NONOVERRIDABLE_HSTS; |
+ } |
+ load_time_data.SetString( |
+ "finalParagraph", l10n_util::GetStringFUTF16(help_string, url)); |
} |
- load_time_data.SetString( |
- "finalParagraph", l10n_util::GetStringFUTF16(help_string, url)); |
} |
// Set debugging information at the bottom of the warning. |