Allow browser tests to use a MockCertVerifier

Introduces a ProfileIOData::SetCertVerifierForTesting() hook, called by
the CertVerifierBrowserTest class. CertVerifierBrowserTest tests can use
mock_cert_verifier() to set mock cert verify results.

BUG=

Review URL: https://codereview.chromium.org/1227943002

Cr-Commit-Position: refs/heads/master@{#342038}
diff --git a/chrome/browser/ssl/cert_verifier_browser_test.h b/chrome/browser/ssl/cert_verifier_browser_test.h
new file mode 100644
index 0000000..d5d977cc
--- /dev/null
+++ b/chrome/browser/ssl/cert_verifier_browser_test.h
@@ -0,0 +1,37 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_SSL_CERT_VERIFIER_BROWSER_TEST_H_
+#define CHROME_BROWSER_SSL_CERT_VERIFIER_BROWSER_TEST_H_
+
+#include "base/memory/scoped_ptr.h"
+#include "chrome/test/base/in_process_browser_test.h"
+
+namespace net {
+class MockCertVerifier;
+}  // namespace net
+
+// CertVerifierBrowserTest allows tests to force certificate
+// verification results for requests made with any profile's main
+// request context (such as navigations). To do so, tests can use the
+// MockCertVerifier exposed via
+// CertVerifierBrowserTest::mock_cert_verifier().
+class CertVerifierBrowserTest : public InProcessBrowserTest {
+ public:
+  CertVerifierBrowserTest();
+  ~CertVerifierBrowserTest() override;
+
+  // InProcessBrowserTest:
+  void SetUpInProcessBrowserTestFixture() override;
+  void TearDownInProcessBrowserTestFixture() override;
+
+  // Returns a pointer to the MockCertVerifier used by all profiles in
+  // this test.
+  net::MockCertVerifier* mock_cert_verifier();
+
+ private:
+  scoped_ptr<net::MockCertVerifier> mock_cert_verifier_;
+};
+
+#endif  // CHROME_BROWSER_SSL_CERT_VERIFIER_BROWSER_TEST_H_