| 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 4b9b7f184cbf776ee0ef5ea25089b162a256d90f..1ce1ad8239087b91dea30737755672f3e16a1dd7 100644
|
| --- a/chrome/browser/ssl/ssl_blocking_page.h
|
| +++ b/chrome/browser/ssl/ssl_blocking_page.h
|
| @@ -12,7 +12,6 @@
|
| #include "base/strings/string16.h"
|
| #include "base/task/cancelable_task_tracker.h"
|
| #include "base/time/time.h"
|
| -#include "chrome/browser/interstitials/security_interstitial_metrics_helper.h"
|
| #include "chrome/browser/interstitials/security_interstitial_page.h"
|
| #include "net/ssl/ssl_info.h"
|
| #include "url/gurl.h"
|
| @@ -23,6 +22,7 @@ class ExperienceSamplingEvent;
|
| }
|
| #endif
|
|
|
| +class SafeBrowsingUIManager;
|
| class SSLErrorClassification;
|
|
|
| // This class is responsible for showing/hiding the interstitial page that is
|
| @@ -59,6 +59,7 @@ class SSLBlockingPage : public SecurityInterstitialPage {
|
| const GURL& request_url,
|
| int options_mask,
|
| const base::Time& time_triggered,
|
| + SafeBrowsingUIManager* safe_browsing_ui_manager,
|
| const base::Callback<void(bool)>& callback);
|
|
|
| // InterstitialPageDelegate method:
|
| @@ -67,6 +68,10 @@ class SSLBlockingPage : public SecurityInterstitialPage {
|
| // Returns true if |options_mask| refers to an overridable SSL error.
|
| static bool IsOptionsOverridable(int options_mask);
|
|
|
| + // Allows tests to be notified when an invalid cert chain report has
|
| + // been sent (or not sent).
|
| + void SetCertificateReportCallbackForTesting(const base::Closure& callback);
|
| +
|
| protected:
|
| // InterstitialPageDelegate implementation.
|
| void CommandReceived(const std::string& command) override;
|
| @@ -80,6 +85,8 @@ class SSLBlockingPage : public SecurityInterstitialPage {
|
| void PopulateInterstitialStrings(
|
| base::DictionaryValue* load_time_data) override;
|
|
|
| + void PopulateExtendedReportingOption(base::DictionaryValue* load_time_data);
|
| +
|
| private:
|
| void NotifyDenyCertificate();
|
| void NotifyAllowCertificate();
|
| @@ -87,6 +94,10 @@ class SSLBlockingPage : public SecurityInterstitialPage {
|
| std::string GetUmaHistogramPrefix() const;
|
| std::string GetSamplingEventName() const;
|
|
|
| + // Send a report about an invalid certificate to the server. Takes
|
| + // care of calling certificate_report_callback_for_testing_.
|
| + void FinishCertCollection();
|
| +
|
| base::Callback<void(bool)> callback_;
|
|
|
| const int cert_error_;
|
| @@ -106,11 +117,20 @@ class SSLBlockingPage : public SecurityInterstitialPage {
|
| // expired?
|
| const bool expired_but_previously_allowed_;
|
| scoped_ptr<SSLErrorClassification> ssl_error_classification_;
|
| - scoped_ptr<SecurityInterstitialMetricsHelper> metrics_helper_;
|
| +
|
| // The time at which the interstitial was triggered. The interstitial
|
| // calculates all times relative to this.
|
| const base::Time time_triggered_;
|
|
|
| + // For reporting invalid SSL certificates as part of Safe Browsing
|
| + // Extended Reporting.
|
| + SafeBrowsingUIManager* safe_browsing_ui_manager_;
|
| +
|
| + // This callback is run when an extended reporting certificate chain
|
| + // report has been sent, or when it is decided that it should not be
|
| + // sent (for example, when in incognito mode).
|
| + base::Closure certificate_report_callback_for_testing_;
|
| +
|
| // Which type of interstitial this is.
|
| enum SSLInterstitialReason {
|
| SSL_REASON_SSL,
|
|
|