Index: chrome/browser/chrome_content_browser_client.cc |
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc |
index 7bfe7f132a103cd7f7d1ae8e2c075f57265ef5a0..365f80caf02360491c4c9320b205db06e2900af9 100644 |
--- a/chrome/browser/chrome_content_browser_client.cc |
+++ b/chrome/browser/chrome_content_browser_client.cc |
@@ -73,8 +73,8 @@ |
#include "chrome/browser/renderer_host/chrome_navigation_ui_data.h" |
#include "chrome/browser/renderer_host/chrome_render_message_filter.h" |
#include "chrome/browser/renderer_host/pepper/chrome_browser_pepper_host_factory.h" |
-#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
-#include "chrome/browser/safe_browsing/ui_manager.h" |
+#include "chrome/browser/safe_browsing/certificate_reporting_service.h" |
+#include "chrome/browser/safe_browsing/certificate_reporting_service_factory.h" |
#include "chrome/browser/search/instant_service.h" |
#include "chrome/browser/search/instant_service_factory.h" |
#include "chrome/browser/search/search.h" |
@@ -144,6 +144,7 @@ |
#include "components/rappor/public/rappor_utils.h" |
#include "components/rappor/rappor_recorder_impl.h" |
#include "components/rappor/rappor_service_impl.h" |
+#include "components/safe_browsing_db/safe_browsing_prefs.h" |
#include "components/security_interstitials/core/ssl_error_ui.h" |
#include "components/signin/core/common/profile_management_switches.h" |
#include "components/spellcheck/spellcheck_build_features.h" |
@@ -671,28 +672,26 @@ void HandleFlashDownloadActionOnUIThread(int render_process_id, |
#endif // BUILDFLAG(ENABLE_PLUGINS) |
// An implementation of the SSLCertReporter interface used by |
-// SSLErrorHandler. Uses the SafeBrowsing UI manager to send invalid |
-// certificate reports. |
-class SafeBrowsingSSLCertReporter : public SSLCertReporter { |
+// SSLErrorHandler. Uses CertificateReportingService to send reports. The |
+// service handles queueing and re-sending of failed reports. Each certificate |
+// error creates a new instance of this class. |
+class CertificateReportingServiceCertReporter : public SSLCertReporter { |
public: |
- explicit SafeBrowsingSSLCertReporter( |
- const scoped_refptr<safe_browsing::SafeBrowsingUIManager>& |
- safe_browsing_ui_manager) |
- : safe_browsing_ui_manager_(safe_browsing_ui_manager) {} |
- ~SafeBrowsingSSLCertReporter() override {} |
+ explicit CertificateReportingServiceCertReporter( |
+ CertificateReportingService* service) |
+ : service_(service) {} |
+ ~CertificateReportingServiceCertReporter() override {} |
// SSLCertReporter implementation |
void ReportInvalidCertificateChain( |
const std::string& serialized_report) override { |
- if (safe_browsing_ui_manager_) { |
- safe_browsing_ui_manager_->ReportInvalidCertificateChain( |
- serialized_report, base::Bind(&base::DoNothing)); |
- } |
+ service_->Send(serialized_report); |
} |
private: |
- const scoped_refptr<safe_browsing::SafeBrowsingUIManager> |
- safe_browsing_ui_manager_; |
+ CertificateReportingService* service_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(CertificateReportingServiceCertReporter); |
}; |
#if BUILDFLAG(ANDROID_JAVA_UI) |
@@ -2201,12 +2200,12 @@ void ChromeContentBrowserClient::AllowCertificateError( |
if (expired_previous_decision) |
options_mask |= SSLErrorUI::EXPIRED_BUT_PREVIOUSLY_ALLOWED; |
- safe_browsing::SafeBrowsingService* safe_browsing_service = |
- g_browser_process->safe_browsing_service(); |
- std::unique_ptr<SafeBrowsingSSLCertReporter> cert_reporter( |
- new SafeBrowsingSSLCertReporter(safe_browsing_service |
- ? safe_browsing_service->ui_manager() |
- : nullptr)); |
+ CertificateReportingService* cert_reporting_service = |
+ CertificateReportingServiceFactory::GetForBrowserContext( |
+ web_contents->GetBrowserContext()); |
+ std::unique_ptr<CertificateReportingServiceCertReporter> cert_reporter( |
+ new CertificateReportingServiceCertReporter(cert_reporting_service)); |
+ |
SSLErrorHandler::HandleSSLError(web_contents, cert_error, ssl_info, |
request_url, options_mask, |
std::move(cert_reporter), callback); |