| Index: chrome/browser/ssl/ssl_blocking_page.cc
|
| ===================================================================
|
| --- chrome/browser/ssl/ssl_blocking_page.cc (revision 120576)
|
| +++ chrome/browser/ssl/ssl_blocking_page.cc (working copy)
|
| @@ -9,12 +9,15 @@
|
| #include "base/string_piece.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "base/values.h"
|
| +#include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/renderer_preferences_util.h"
|
| #include "chrome/browser/ssl/ssl_error_info.h"
|
| #include "chrome/browser/tab_contents/tab_util.h"
|
| #include "chrome/common/jstemplate_builder.h"
|
| #include "content/browser/cert_store.h"
|
| #include "content/browser/renderer_host/render_view_host.h"
|
| #include "content/browser/ssl/ssl_cert_error_handler.h"
|
| +#include "content/browser/tab_contents/interstitial_page.h"
|
| #include "content/public/browser/navigation_controller.h"
|
| #include "content/public/browser/navigation_entry.h"
|
| #include "content/public/browser/notification_service.h"
|
| @@ -51,15 +54,15 @@
|
| SSLCertErrorHandler* handler,
|
| bool overridable,
|
| const base::Callback<void(SSLCertErrorHandler*, bool)>& callback)
|
| - : ChromeInterstitialPage(
|
| - tab_util::GetWebContentsByID(
|
| - handler->render_process_host_id(), handler->tab_contents_id()),
|
| - true,
|
| - handler->request_url()),
|
| - handler_(handler),
|
| + : handler_(handler),
|
| callback_(callback),
|
| overridable_(overridable) {
|
| RecordSSLBlockingPageStats(SHOW);
|
| + web_contents_ = tab_util::GetWebContentsByID(
|
| + handler->render_process_host_id(), handler->tab_contents_id());
|
| + interstitial_page_ = InterstitialPage::Create(
|
| + web_contents_, true, handler->request_url(), this);
|
| + interstitial_page_->Show();
|
| }
|
|
|
| SSLBlockingPage::~SSLBlockingPage() {
|
| @@ -115,10 +118,10 @@
|
| return jstemplate_builder::GetI18nTemplateHtml(html, &strings);
|
| }
|
|
|
| -void SSLBlockingPage::UpdateEntry(NavigationEntry* entry) {
|
| +void SSLBlockingPage::OverrideEntry(NavigationEntry* entry) {
|
| const net::SSLInfo& ssl_info = handler_->ssl_info();
|
| int cert_id = CertStore::GetInstance()->StoreCert(
|
| - ssl_info.cert, tab()->GetRenderProcessHost()->GetID());
|
| + ssl_info.cert, web_contents_->GetRenderProcessHost()->GetID());
|
|
|
| entry->GetSSL().security_style =
|
| content::SECURITY_STYLE_AUTHENTICATION_BROKEN;
|
| @@ -127,33 +130,36 @@
|
| entry->GetSSL().security_bits = ssl_info.security_bits;
|
| content::NotificationService::current()->Notify(
|
| content::NOTIFICATION_SSL_VISIBLE_STATE_CHANGED,
|
| - content::Source<NavigationController>(&tab()->GetController()),
|
| + content::Source<NavigationController>(&web_contents_->GetController()),
|
| content::NotificationService::NoDetails());
|
| }
|
|
|
| void SSLBlockingPage::CommandReceived(const std::string& command) {
|
| if (command == "1") {
|
| - Proceed();
|
| + interstitial_page_->Proceed();
|
| } else {
|
| - DontProceed();
|
| + interstitial_page_->DontProceed();
|
| }
|
| }
|
|
|
| -void SSLBlockingPage::Proceed() {
|
| +void SSLBlockingPage::OverrideRendererPrefs(
|
| + content::RendererPreferences* prefs) {
|
| + Profile* profile = Profile::FromBrowserContext(
|
| + web_contents_->GetBrowserContext());
|
| + renderer_preferences_util::UpdateFromSystemSettings(prefs, profile);
|
| + }
|
| +
|
| +void SSLBlockingPage::OnProceed() {
|
| RecordSSLBlockingPageStats(PROCEED);
|
|
|
| // Accepting the certificate resumes the loading of the page.
|
| NotifyAllowCertificate();
|
| -
|
| - // This call hides and deletes the interstitial.
|
| - InterstitialPage::Proceed();
|
| }
|
|
|
| -void SSLBlockingPage::DontProceed() {
|
| +void SSLBlockingPage::OnDontProceed() {
|
| RecordSSLBlockingPageStats(DONT_PROCEED);
|
|
|
| NotifyDenyCertificate();
|
| - InterstitialPage::DontProceed();
|
| }
|
|
|
| void SSLBlockingPage::NotifyDenyCertificate() {
|
|
|