| Index: chrome/browser/net/certificate_error_reporter.h
|
| diff --git a/chrome/browser/net/certificate_error_reporter.h b/chrome/browser/net/certificate_error_reporter.h
|
| index 5463d5a74bd69d6286bbb8cbe1115fc78e8bcd41..4c46556e7a0fad1bffe6762dd17ad33806dd74ce 100644
|
| --- a/chrome/browser/net/certificate_error_reporter.h
|
| +++ b/chrome/browser/net/certificate_error_reporter.h
|
| @@ -9,6 +9,7 @@
|
| #include <string>
|
|
|
| #include "base/macros.h"
|
| +#include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "net/url_request/url_request.h"
|
| #include "url/gurl.h"
|
| @@ -22,9 +23,13 @@ namespace chrome_browser_net {
|
|
|
| class CertLoggerRequest;
|
|
|
| +extern const char kExtendedReportingUploadUrl[];
|
| +
|
| // Provides functionality for sending reports about invalid SSL
|
| // certificate chains to a report collection server.
|
| -class CertificateErrorReporter : public net::URLRequest::Delegate {
|
| +class CertificateErrorReporter
|
| + : public net::URLRequest::Delegate,
|
| + public base::RefCountedThreadSafe<CertificateErrorReporter> {
|
| public:
|
| // These represent the types of reports that can be sent.
|
| enum ReportType {
|
| @@ -42,7 +47,11 @@ class CertificateErrorReporter : public net::URLRequest::Delegate {
|
| CertificateErrorReporter(net::URLRequestContext* request_context,
|
| const GURL& upload_url);
|
|
|
| - ~CertificateErrorReporter() override;
|
| + // Create a certificate error reporter that will send certificate
|
| + // error reports to |upload_url|. A request context will have to be
|
| + // specified when calling |SendReport|. Useful for constructing
|
| + // reporters when not on the IO thread.
|
| + explicit CertificateErrorReporter(const GURL& upload_url);
|
|
|
| // Construct, serialize, and send a certificate reporter to the report
|
| // collection server containing the |ssl_info| associated with a
|
| @@ -50,12 +59,25 @@ class CertificateErrorReporter : public net::URLRequest::Delegate {
|
| virtual void SendReport(ReportType type,
|
| const std::string& hostname,
|
| const net::SSLInfo& ssl_info);
|
| + // Construct, serialize, and send a certificate reporter to the report
|
| + // collection server containing the |ssl_info| associated with a
|
| + // connection to |hostname|. Uses |request_context| as the context for
|
| + // the request sent to the server.
|
| + virtual void SendReport(ReportType type,
|
| + net::URLRequestContext* request_context,
|
| + const std::string& hostname,
|
| + const net::SSLInfo& ssl_info);
|
|
|
| // net::URLRequest::Delegate
|
| void OnResponseStarted(net::URLRequest* request) override;
|
| void OnReadCompleted(net::URLRequest* request, int bytes_read) override;
|
|
|
| + protected:
|
| + ~CertificateErrorReporter() override;
|
| +
|
| private:
|
| + friend class base::RefCountedThreadSafe<CertificateErrorReporter>;
|
| +
|
| // Create a URLRequest with which to send a certificate report to the
|
| // server.
|
| virtual scoped_ptr<net::URLRequest> CreateURLRequest(
|
|
|