| Index: chrome/browser/safe_browsing/ping_manager.cc
|
| diff --git a/chrome/browser/safe_browsing/ping_manager.cc b/chrome/browser/safe_browsing/ping_manager.cc
|
| index 04783410fcef1f848ef6e6dd4a0d51160d14c223..947d8910e31387bed7172221af23cc62b08ef941 100644
|
| --- a/chrome/browser/safe_browsing/ping_manager.cc
|
| +++ b/chrome/browser/safe_browsing/ping_manager.cc
|
| @@ -8,17 +8,27 @@
|
| #include "base/stl_util.h"
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/stringprintf.h"
|
| +#include "chrome/browser/net/certificate_error_reporter.h"
|
| #include "chrome/common/env_vars.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "google_apis/google_api_keys.h"
|
| #include "net/base/escape.h"
|
| #include "net/base/load_flags.h"
|
| +#include "net/ssl/ssl_info.h"
|
| #include "net/url_request/url_fetcher.h"
|
| #include "net/url_request/url_request_context_getter.h"
|
| #include "net/url_request/url_request_status.h"
|
| +#include "url/gurl.h"
|
|
|
| +using chrome_browser_net::CertificateErrorReporter;
|
| using content::BrowserThread;
|
|
|
| +namespace {
|
| +// URL to upload invalid certificate chain reports
|
| +// TODO(estark): Fill this in with the real URL when live.
|
| +const char kExtendedReportingUploadUrl[] = "";
|
| +} // namespace
|
| +
|
| // SafeBrowsingPingManager implementation ----------------------------------
|
|
|
| // static
|
| @@ -34,7 +44,14 @@ SafeBrowsingPingManager::SafeBrowsingPingManager(
|
| const SafeBrowsingProtocolConfig& config)
|
| : client_name_(config.client_name),
|
| request_context_getter_(request_context_getter),
|
| - url_prefix_(config.url_prefix) {
|
| + url_prefix_(config.url_prefix),
|
| + certificate_error_reporter_(
|
| + request_context_getter
|
| + ? new CertificateErrorReporter(
|
| + request_context_getter->GetURLRequestContext(),
|
| + GURL(kExtendedReportingUploadUrl),
|
| + CertificateErrorReporter::SEND_COOKIES)
|
| + : nullptr) {
|
| DCHECK(!url_prefix_.empty());
|
|
|
| version_ = SafeBrowsingProtocolManagerHelper::Version();
|
| @@ -95,6 +112,20 @@ void SafeBrowsingPingManager::ReportMalwareDetails(
|
| safebrowsing_reports_.insert(fetcher);
|
| }
|
|
|
| +void SafeBrowsingPingManager::ReportInvalidCertificateChain(
|
| + const std::string& hostname,
|
| + const net::SSLInfo& ssl_info) {
|
| + DCHECK(certificate_error_reporter_);
|
| + certificate_error_reporter_->SendReport(
|
| + CertificateErrorReporter::REPORT_TYPE_EXTENDED_REPORTING, hostname,
|
| + ssl_info);
|
| +}
|
| +
|
| +void SafeBrowsingPingManager::SetCertificateErrorReporterForTesting(
|
| + scoped_ptr<CertificateErrorReporter> certificate_error_reporter) {
|
| + certificate_error_reporter_ = certificate_error_reporter.Pass();
|
| +}
|
| +
|
| GURL SafeBrowsingPingManager::SafeBrowsingHitUrl(
|
| const GURL& malicious_url, const GURL& page_url,
|
| const GURL& referrer_url, bool is_subresource,
|
|
|