Index: chrome/browser/ssl/ssl_blocking_page.h |
diff --git a/chrome/browser/ssl/ssl_blocking_page.h b/chrome/browser/ssl/ssl_blocking_page.h |
index feb7966f001337a57569c74e394185f9cde8f871..084343c78484728d74b499c0a8a77a1179cf222f 100644 |
--- a/chrome/browser/ssl/ssl_blocking_page.h |
+++ b/chrome/browser/ssl/ssl_blocking_page.h |
@@ -37,6 +37,7 @@ class SSLErrorUI; |
class CertReportHelper; |
class SSLUITest; |
+class ChromeMetricsHelper; |
// This class is responsible for showing/hiding the interstitial page that is |
// shown when a certificate error happens. |
@@ -52,15 +53,18 @@ class SSLBlockingPage : public SecurityInterstitialPage { |
// is responsible for cleaning up the blocking page, otherwise the |
// interstitial takes ownership when shown. |options_mask| must be a bitwise |
// mask of SSLErrorUI::SSLErrorOptionsMask values. |
- SSLBlockingPage(content::WebContents* web_contents, |
- int cert_error, |
- const net::SSLInfo& ssl_info, |
- const GURL& request_url, |
- int options_mask, |
- const base::Time& time_triggered, |
- std::unique_ptr<SSLCertReporter> ssl_cert_reporter, |
- const base::Callback< |
- void(content::CertificateRequestResultType)>& callback); |
+ // This is static because the constructor uses expensive to compute parameters |
+ // more than once (e.g. overrideable). |
+ static SSLBlockingPage* Create( |
+ content::WebContents* web_contents, |
+ int cert_error, |
+ const net::SSLInfo& ssl_info, |
+ const GURL& request_url, |
+ int options_mask, |
+ const base::Time& time_triggered, |
+ std::unique_ptr<SSLCertReporter> ssl_cert_reporter, |
+ const base::Callback<void(content::CertificateRequestResultType)>& |
+ callback); |
// InterstitialPageDelegate method: |
InterstitialPageDelegate::TypeID GetTypeForTesting() const override; |
@@ -89,6 +93,19 @@ class SSLBlockingPage : public SecurityInterstitialPage { |
base::DictionaryValue* load_time_data) override; |
private: |
+ SSLBlockingPage( |
+ content::WebContents* web_contents, |
+ int cert_error, |
+ const net::SSLInfo& ssl_info, |
+ const GURL& request_url, |
+ int options_mask, |
+ const base::Time& time_triggered, |
+ std::unique_ptr<SSLCertReporter> ssl_cert_reporter, |
+ bool overrideable, |
+ std::unique_ptr<ChromeMetricsHelper> metrics_helper, |
+ const base::Callback<void(content::CertificateRequestResultType)>& |
+ callback); |
+ |
void NotifyDenyCertificate(); |
base::Callback<void(content::CertificateRequestResultType)> callback_; |