Move IgnoreErrorsCertVerifier to content

This allows for using it in content_shell for layout tests. Also include
the wptserve's public key fingerprint in the whitelist when running
layout tests

[email protected],[email protected],[email protected]

Change-Id: I70af3553efcd3e9b1fe747b883ceaceebb1265d6
Reviewed-on: https://chromium-review.googlesource.com/571720
Commit-Queue: Jochen Eisinger <[email protected]>
Reviewed-by: Mike West <[email protected]>
Reviewed-by: Ryan Sleevi <[email protected]>
Cr-Commit-Position: refs/heads/master@{#486903}
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
index 9dcd7f0..be6e9b6 100644
--- a/chrome/browser/io_thread.cc
+++ b/chrome/browser/io_thread.cc
@@ -41,7 +41,6 @@
 #include "chrome/browser/net/dns_probe_service.h"
 #include "chrome/browser/net/proxy_service_factory.h"
 #include "chrome/browser/net/sth_distributor_provider.h"
-#include "chrome/browser/ssl/ignore_errors_cert_verifier.h"
 #include "chrome/common/channel_info.h"
 #include "chrome/common/chrome_content_client.h"
 #include "chrome/common/chrome_switches.h"
@@ -63,6 +62,7 @@
 #include "components/variations/variations_associated_data.h"
 #include "components/version_info/version_info.h"
 #include "content/public/browser/browser_thread.h"
+#include "content/public/browser/ignore_errors_cert_verifier.h"
 #include "content/public/browser/network_quality_observer_factory.h"
 #include "content/public/common/content_features.h"
 #include "content/public/common/content_switches.h"
@@ -819,18 +819,21 @@
 
   builder->set_host_resolver(std::move(host_resolver));
 
+  std::unique_ptr<net::CertVerifier> cert_verifier;
 #if defined(OS_CHROMEOS)
   // Creates a CertVerifyProc that doesn't allow any profile-provided certs.
-  builder->SetCertVerifier(base::MakeUnique<net::CachingCertVerifier>(
+  cert_verifier = base::MakeUnique<net::CachingCertVerifier>(
       base::MakeUnique<net::MultiThreadedCertVerifier>(
-          new chromeos::CertVerifyProcChromeOS())));
+          new chromeos::CertVerifyProcChromeOS()));
 #else
-  builder->SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
-      command_line, net::CertVerifier::CreateDefault()));
+  cert_verifier = net::CertVerifier::CreateDefault();
+#endif
+  builder->SetCertVerifier(
+      content::IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
+          command_line, switches::kUserDataDir, std::move(cert_verifier)));
   UMA_HISTOGRAM_BOOLEAN(
       "Net.Certificate.IgnoreCertificateErrorsSPKIListPresent",
       command_line.HasSwitch(switches::kIgnoreCertificateErrorsSPKIList));
-#endif
 
   std::unique_ptr<net::MultiLogCTVerifier> ct_verifier =
       base::MakeUnique<net::MultiLogCTVerifier>();