blob: c7caf2d68c9b44289b638a6a4520828fef88c9cc [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ssl/ssl_blocking_page_base.h"
#include "chrome/browser/interstitials/enterprise_util.h"
#include "chrome/browser/ssl/cert_report_helper.h"
#include "chrome/browser/ssl/ssl_cert_reporter.h"
#include "components/security_interstitials/content/security_interstitial_controller_client.h"
SSLBlockingPageBase::SSLBlockingPageBase(
content::WebContents* web_contents,
int cert_error,
CertificateErrorReport::InterstitialReason interstitial_reason,
const net::SSLInfo& ssl_info,
const GURL& request_url,
std::unique_ptr<SSLCertReporter> ssl_cert_reporter,
bool overridable,
const base::Time& time_triggered,
std::unique_ptr<
security_interstitials::SecurityInterstitialControllerClient>
controller_client)
: security_interstitials::SecurityInterstitialPage(
web_contents,
request_url,
std::move(controller_client)),
cert_report_helper_(
new CertReportHelper(std::move(ssl_cert_reporter),
web_contents,
request_url,
ssl_info,
interstitial_reason,
overridable,
time_triggered,
controller()->metrics_helper())) {
MaybeTriggerSecurityInterstitialShownEvent(web_contents, request_url,
"SSL_ERROR", cert_error);
}
SSLBlockingPageBase::~SSLBlockingPageBase() {}
void SSLBlockingPageBase::OnInterstitialClosing() {
UpdateMetricsAfterSecurityInterstitial();
cert_report_helper_->FinishCertCollection();
}
void SSLBlockingPageBase::SetSSLCertReporterForTesting(
std::unique_ptr<SSLCertReporter> ssl_cert_reporter) {
cert_report_helper_->SetSSLCertReporterForTesting(
std::move(ssl_cert_reporter));
}
CertReportHelper* SSLBlockingPageBase::cert_report_helper() {
return cert_report_helper_.get();
}