diff options
Diffstat (limited to 'chrome/browser/safe_browsing/ping_manager.cc')
-rw-r--r-- | chrome/browser/safe_browsing/ping_manager.cc | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/chrome/browser/safe_browsing/ping_manager.cc b/chrome/browser/safe_browsing/ping_manager.cc index d23c67a..86b29d3 100644 --- a/chrome/browser/safe_browsing/ping_manager.cc +++ b/chrome/browser/safe_browsing/ping_manager.cc @@ -24,8 +24,12 @@ using chrome_browser_net::CertificateErrorReporter; using content::BrowserThread; namespace { -// URL to upload invalid certificate chain reports -const char kExtendedReportingUploadUrl[] = +// URLs to upload invalid certificate chain reports. The HTTP URL is +// preferred since a client seeing an invalid cert might not be able to +// make an HTTPS connection to report it. +// TODO(estark): insert the production HTTP URL when it's ready +const char kExtendedReportingUploadUrlInsecure[] = ""; +const char kExtendedReportingUploadUrlSecure[] = "https://sb-ssl.google.com/safebrowsing/clientreport/chrome-certs"; } // namespace @@ -44,16 +48,22 @@ SafeBrowsingPingManager::SafeBrowsingPingManager( const SafeBrowsingProtocolConfig& config) : client_name_(config.client_name), request_context_getter_(request_context_getter), - url_prefix_(config.url_prefix), - certificate_error_reporter_( - request_context_getter - ? new CertificateErrorReporter( - request_context_getter->GetURLRequestContext(), - GURL(kExtendedReportingUploadUrl), - CertificateErrorReporter::SEND_COOKIES) - : nullptr) { + url_prefix_(config.url_prefix) { DCHECK(!url_prefix_.empty()); + if (request_context_getter) { + bool use_insecure_certificate_upload_url = + CertificateErrorReporter::IsHttpUploadUrlSupported() && + strlen(kExtendedReportingUploadUrlInsecure) > 0; + GURL certificate_upload_url(use_insecure_certificate_upload_url + ? kExtendedReportingUploadUrlInsecure + : kExtendedReportingUploadUrlSecure); + + certificate_error_reporter_.reset(new CertificateErrorReporter( + request_context_getter->GetURLRequestContext(), certificate_upload_url, + CertificateErrorReporter::SEND_COOKIES)); + } + version_ = SafeBrowsingProtocolManagerHelper::Version(); } |