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 c0514fd911592811111c5b25096f254d6b31bb20..46248f5f28b2f56ca5cd464893fd25c1fa5696aa 100644 |
--- a/chrome/browser/ssl/ssl_blocking_page.cc |
+++ b/chrome/browser/ssl/ssl_blocking_page.cc |
@@ -237,7 +237,8 @@ SSLBlockingPage::SSLBlockingPage(content::WebContents* web_contents, |
int options_mask, |
const base::Time& time_triggered, |
scoped_ptr<SSLCertReporter> ssl_cert_reporter, |
- const base::Callback<void(bool)>& callback) |
+ const base::Callback<void(bool)>& callback, |
+ const GURL& suggested_url) |
: SecurityInterstitialPage(web_contents, request_url), |
callback_(callback), |
cert_error_(cert_error), |
@@ -250,7 +251,8 @@ SSLBlockingPage::SSLBlockingPage(content::WebContents* web_contents, |
strict_enforcement_((options_mask & STRICT_ENFORCEMENT) != 0), |
expired_but_previously_allowed_( |
(options_mask & EXPIRED_BUT_PREVIOUSLY_ALLOWED) != 0), |
- time_triggered_(time_triggered) { |
+ time_triggered_(time_triggered), |
+ suggested_url_(suggested_url) { |
interstitial_reason_ = |
IsErrorDueToBadClock(time_triggered_, cert_error_) ? |
SSL_REASON_BAD_CLOCK : SSL_REASON_SSL; |
@@ -390,6 +392,19 @@ void SSLBlockingPage::PopulateInterstitialStrings( |
SSLErrorInfo::NetErrorToErrorType(cert_error_), |
ssl_info_.cert.get(), |
request_url()); |
+ |
+ // If suggested url is not empty, display a modified message |
+ // with a link to suggested_url. |
+ if (!suggested_url_.is_empty()) { |
+ load_time_data->SetString( |
+ "primaryParagraph", |
+ l10n_util::GetStringFUTF16( |
+ IDS_SSL_COMMON_NAME_MISMATCH_PRIMARY_PARAGRAPH, |
+ base::UTF8ToUTF16(request_url().host()), |
+ base::UTF8ToUTF16(suggested_url_.host()), |
+ base::UTF8ToUTF16(suggested_url_.spec()))); |
+ } |
+ |
load_time_data->SetString("explanationParagraph", error_info.details()); |
load_time_data->SetString( |
"primaryButtonText", |