| Index: chrome/browser/safe_browsing/ping_manager.h | 
| diff --git a/chrome/browser/safe_browsing/ping_manager.h b/chrome/browser/safe_browsing/ping_manager.h | 
| index a33559b532b2fa0951bd966696acb628ff62256d..28c536ce0228c60046659cffec1a11b5ccb6a0ff 100644 | 
| --- a/chrome/browser/safe_browsing/ping_manager.h | 
| +++ b/chrome/browser/safe_browsing/ping_manager.h | 
| @@ -18,7 +18,12 @@ | 
| #include "net/url_request/url_fetcher_delegate.h" | 
| #include "url/gurl.h" | 
|  | 
| +namespace chrome_browser_net { | 
| +class CertificateErrorReporter; | 
| +} | 
| + | 
| namespace net { | 
| +class SSLInfo; | 
| class URLRequestContextGetter; | 
| }  // namespace net | 
|  | 
| @@ -49,6 +54,14 @@ class SafeBrowsingPingManager : public net::URLFetcherDelegate { | 
| // malware reports. |report| is the serialized report. | 
| void ReportMalwareDetails(const std::string& report); | 
|  | 
| +  // Users can opt-in on the SSL interstitial to send reports of invalid | 
| +  // certificate chains. | 
| +  void ReportInvalidCertificateChain(const std::string& hostname, | 
| +                                     const net::SSLInfo& ssl_info); | 
| + | 
| +  void SetCertificateErrorReporterForTesting(scoped_ptr< | 
| +      chrome_browser_net::CertificateErrorReporter> certificate_error_reporter); | 
| + | 
| private: | 
| FRIEND_TEST_ALL_PREFIXES(SafeBrowsingPingManagerTest, | 
| TestSafeBrowsingHitUrl); | 
| @@ -88,6 +101,10 @@ class SafeBrowsingPingManager : public net::URLFetcherDelegate { | 
| // We add both "hit" and "detail" fetchers in this set. | 
| Reports safebrowsing_reports_; | 
|  | 
| +  // Sends reports of invalid SSL certificate chains. | 
| +  scoped_ptr<chrome_browser_net::CertificateErrorReporter> | 
| +      certificate_error_reporter_; | 
| + | 
| DISALLOW_COPY_AND_ASSIGN(SafeBrowsingPingManager); | 
| }; | 
|  | 
|  |