summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ssl/ssl_blocking_page.cc
diff options
context:
space:
mode:
authorwtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-20 19:17:58 +0000
committerwtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-20 19:17:58 +0000
commitfaf9cd6e0a9a3b8d6466c547cb9314c6af8dcdad (patch)
tree9a9ab40c4ddd6a08b717bd48b93342faf66dd92f /chrome/browser/ssl/ssl_blocking_page.cc
parent7ceeba70872aab6ac66a1043c9f1587b12fc6710 (diff)
downloadchromium_src-faf9cd6e0a9a3b8d6466c547cb9314c6af8dcdad.zip
chromium_src-faf9cd6e0a9a3b8d6466c547cb9314c6af8dcdad.tar.gz
chromium_src-faf9cd6e0a9a3b8d6466c547cb9314c6af8dcdad.tar.bz2
Use the same code to handle both overridable and fatal
certificate errors. The only difference is that the SSL interstial page for fatal certificate errors has only one button ("Back"). Copy ssl_roadpage.html to ssl_error.html, remove the "proceed" button, and rename the "exit" button to "back". The local variable |html| in SSLBlockingPage::GetHTMLContents should not be declared as static. Remove SSLPolicy::ShowErrorPage and RenderViewHost::LoadAlternateHTMLString. R=abarth,jcivelli BUG=41360 TEST=Type https://test-ssev.verisign.com:2443/test-SSEV-revoked-verisign.html in the location bar and hit Enter. The location bar should display that URL with a broken certificate error status, and the Back button on the SSL interstitial page should work. Review URL: http://codereview.chromium.org/1613016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45060 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ssl/ssl_blocking_page.cc')
-rw-r--r--chrome/browser/ssl/ssl_blocking_page.cc31
1 files changed, 20 insertions, 11 deletions
diff --git a/chrome/browser/ssl/ssl_blocking_page.cc b/chrome/browser/ssl/ssl_blocking_page.cc
index 904c083..aa3df31 100644
--- a/chrome/browser/ssl/ssl_blocking_page.cc
+++ b/chrome/browser/ssl/ssl_blocking_page.cc
@@ -45,11 +45,13 @@ void RecordSSLBlockingPageStats(SSLBlockingPageEvent event) {
// Note that we always create a navigation entry with SSL errors.
// No error happening loading a sub-resource triggers an interstitial so far.
SSLBlockingPage::SSLBlockingPage(SSLCertErrorHandler* handler,
- Delegate* delegate)
+ Delegate* delegate,
+ bool overridable)
: InterstitialPage(handler->GetTabContents(), true, handler->request_url()),
handler_(handler),
delegate_(delegate),
- delegate_has_been_notified_(false) {
+ delegate_has_been_notified_(false),
+ overridable_(overridable) {
RecordSSLBlockingPageStats(SHOW);
}
@@ -65,8 +67,6 @@ std::string SSLBlockingPage::GetHTMLContents() {
// Let's build the html error page.
DictionaryValue strings;
SSLErrorInfo error_info = delegate_->GetSSLErrorInfo(handler_);
- strings.SetString(L"title",
- l10n_util::GetString(IDS_SSL_BLOCKING_PAGE_TITLE));
strings.SetString(L"headLine", error_info.title());
strings.SetString(L"description", error_info.details());
@@ -74,16 +74,25 @@ std::string SSLBlockingPage::GetHTMLContents() {
l10n_util::GetString(IDS_CERT_ERROR_EXTRA_INFO_TITLE));
SetExtraInfo(&strings, error_info.extra_information());
- strings.SetString(L"proceed",
- l10n_util::GetString(IDS_SSL_BLOCKING_PAGE_PROCEED));
- strings.SetString(L"exit",
- l10n_util::GetString(IDS_SSL_BLOCKING_PAGE_EXIT));
+ int resource_id;
+ if (overridable_) {
+ resource_id = IDR_SSL_ROAD_BLOCK_HTML;
+ strings.SetString(L"title",
+ l10n_util::GetString(IDS_SSL_BLOCKING_PAGE_TITLE));
+ strings.SetString(L"proceed",
+ l10n_util::GetString(IDS_SSL_BLOCKING_PAGE_PROCEED));
+ strings.SetString(L"exit",
+ l10n_util::GetString(IDS_SSL_BLOCKING_PAGE_EXIT));
+ } else {
+ resource_id = IDR_SSL_ERROR_HTML;
+ strings.SetString(L"title", l10n_util::GetString(IDS_SSL_ERROR_PAGE_TITLE));
+ strings.SetString(L"back", l10n_util::GetString(IDS_SSL_ERROR_PAGE_BACK));
+ }
strings.SetString(L"textdirection", base::i18n::IsRTL() ? L"rtl" : L"ltr");
- static const base::StringPiece html(
- ResourceBundle::GetSharedInstance().GetRawDataResource(
- IDR_SSL_ROAD_BLOCK_HTML));
+ base::StringPiece html(
+ ResourceBundle::GetSharedInstance().GetRawDataResource(resource_id));
return jstemplate_builder::GetI18nTemplateHtml(html, &strings);
}