Chromium Code Reviews| 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 ca97c2b60a0a90009235bd3716fc0b3b657f2126..e185cc16b59b3226a98c73b340ca442a52a81b32 100644 |
| --- a/chrome/browser/ssl/ssl_blocking_page.cc |
| +++ b/chrome/browser/ssl/ssl_blocking_page.cc |
| @@ -222,6 +222,7 @@ void RecordSSLBlockingPageDetailedStats( |
| // No error happening loading a sub-resource triggers an interstitial so far. |
| SSLBlockingPage::SSLBlockingPage( |
| content::WebContents* web_contents, |
| + bool create_interstitial, |
| int cert_error, |
| const net::SSLInfo& ssl_info, |
| const GURL& request_url, |
| @@ -278,9 +279,15 @@ SSLBlockingPage::SSLBlockingPage( |
| content::Source<Profile>(profile)); |
| #endif |
| - interstitial_page_ = InterstitialPage::Create( |
| - web_contents_, true, request_url, this); |
| - interstitial_page_->Show(); |
| + // chrome://interstitials page uses this class without actually creating an |
| + // interstitial so that it can be debugged. Set |create_interstitial| to true |
| + // if the page is going to be used as an actual interstitial and not just part |
| + // of the chrome://interstitials webui. |
| + if (create_interstitial) { |
| + interstitial_page_ = InterstitialPage::Create( |
| + web_contents_, true, request_url, this); |
| + interstitial_page_->Show(); |
| + } |
| } |
| SSLBlockingPage::~SSLBlockingPage() { |
| @@ -300,6 +307,44 @@ SSLBlockingPage::~SSLBlockingPage() { |
| } |
| } |
| +// static |
| +void SSLBlockingPage::Show(content::WebContents* web_contents, |
| + int cert_error, |
| + const net::SSLInfo& ssl_info, |
| + const GURL& request_url, |
| + bool overridable, |
| + bool strict_enforcement, |
| + const base::Callback<void(bool)>& callback) { |
| + // The interstitial created by the blocking page owns the blocking page. |
| + new SSLBlockingPage(web_contents, |
| + true, |
|
Bernhard Bauer
2014/07/16 21:49:59
What I meant was that you could show it from here,
meacer
2014/07/17 21:24:09
Done.
|
| + cert_error, |
| + ssl_info, |
| + request_url, |
| + overridable, |
| + strict_enforcement, |
| + callback); |
| +} |
| + |
| +// static |
| +SSLBlockingPage* SSLBlockingPage::CreateForWebUI( |
| + content::WebContents* web_contents, |
| + int cert_error, |
| + const net::SSLInfo& ssl_info, |
| + const GURL& request_url, |
| + bool overridable, |
| + bool strict_enforcement) { |
| + // The callee owns the blocking page. |
|
Bernhard Bauer
2014/07/16 21:49:59
This comment would be better off in the header. Bu
meacer
2014/07/17 21:24:09
Returning scoped_ptr makes the code slightly more
|
| + return new SSLBlockingPage(web_contents, |
| + false, |
| + cert_error, |
| + ssl_info, |
| + request_url, |
| + overridable, |
| + strict_enforcement, |
| + base::Callback<void(bool)>()); |
| +} |
| + |
| std::string SSLBlockingPage::GetHTMLContents() { |
| if (trial_condition_ == kCondV1 || trial_condition_ == kCondV1LayoutV2Text) |
| return GetHTMLContentsV1(); |