blob: 69613779130272741c6d4a89368eef7e234bdaf6 [file] [log] [blame]
Avi Drissman4e1b7bc32022-09-15 14:03:501// Copyright 2014 The Chromium Authors
dmazzoni0b5d2482014-09-10 19:45:572// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
nick44bacf32015-04-14 02:06:395#ifndef CONTENT_BROWSER_SITE_PER_PROCESS_BROWSERTEST_H_
6#define CONTENT_BROWSER_SITE_PER_PROCESS_BROWSERTEST_H_
7
nick59dcb162015-04-09 20:29:018#include <string>
9
chaopengd3ca34feb2017-04-20 17:11:2210#include "base/test/scoped_feature_list.h"
ekaramadfd1b5cfa2016-04-19 00:35:0011#include "content/browser/web_contents/web_contents_impl.h"
dmazzoni0b5d2482014-09-10 19:45:5712#include "content/public/test/content_browser_test.h"
Sharon Yang7345f872021-12-15 18:01:2413#include "content/public/test/content_mock_cert_verifier.h"
ekaramadfd1b5cfa2016-04-19 00:35:0014#include "content/shell/browser/shell.h"
nick44bacf32015-04-14 02:06:3915#include "content/test/content_browser_test_utils_internal.h"
dmazzoni0b5d2482014-09-10 19:45:5716
17namespace content {
18
nick59dcb162015-04-09 20:29:0119class FrameTreeNode;
dmazzoni0b5d2482014-09-10 19:45:5720
Fergal Daly2e7e1e12020-06-24 09:18:2821class SitePerProcessBrowserTestBase : public ContentBrowserTest {
dmazzoni0b5d2482014-09-10 19:45:5722 public:
Fergal Daly2e7e1e12020-06-24 09:18:2823 SitePerProcessBrowserTestBase();
dmazzoni0b5d2482014-09-10 19:45:5724
Sharon Yang36755952021-06-09 19:39:1025 SitePerProcessBrowserTestBase(const SitePerProcessBrowserTestBase&) = delete;
26 SitePerProcessBrowserTestBase& operator=(
27 const SitePerProcessBrowserTestBase&) = delete;
28
dmazzoni0b5d2482014-09-10 19:45:5729 protected:
nick44bacf32015-04-14 02:06:3930 std::string DepictFrameTree(FrameTreeNode* node);
31
Chris Fredrickson5b9810c2023-03-27 21:08:3032 std::string WaitForMessageScript(const std::string& result_expression);
33
dchengc2282aa2014-10-21 12:07:5834 void SetUpCommandLine(base::CommandLine* command_line) override;
35 void SetUpOnMainThread() override;
nick44bacf32015-04-14 02:06:3936
ekaramadfd1b5cfa2016-04-19 00:35:0037 WebContentsImpl* web_contents() const {
38 return static_cast<WebContentsImpl*>(shell()->web_contents());
39 }
40
Stefan Zager8544f8492021-01-16 00:16:5541 static void ForceUpdateViewportIntersection(
42 FrameTreeNode* frame_tree_node,
43 const blink::mojom::ViewportIntersectionState& intersection_state);
44
Peter Kastinga903c7f2021-04-30 15:44:3745 void RunPostedTasks();
46
nick44bacf32015-04-14 02:06:3947 private:
48 FrameTreeVisualizer visualizer_;
chaopengd3ca34feb2017-04-20 17:11:2249 base::test::ScopedFeatureList feature_list_;
Fergal Daly2e7e1e12020-06-24 09:18:2850};
51
52class SitePerProcessBrowserTest
53 : public SitePerProcessBrowserTestBase,
54 public ::testing::WithParamInterface<std::string> {
55 public:
56 SitePerProcessBrowserTest();
57
Sharon Yang36755952021-06-09 19:39:1058 SitePerProcessBrowserTest(const SitePerProcessBrowserTest&) = delete;
59 SitePerProcessBrowserTest& operator=(const SitePerProcessBrowserTest&) =
60 delete;
61
Lukasz Anforowicze9db2652021-01-27 00:24:1262 std::string GetExpectedOrigin(const std::string& host);
63
Fergal Daly2e7e1e12020-06-24 09:18:2864 private:
65 base::test::ScopedFeatureList feature_list_;
dmazzoni0b5d2482014-09-10 19:45:5766};
67
Sharon Yang7345f872021-12-15 18:01:2468class SitePerProcessIgnoreCertErrorsBrowserTest
69 : public SitePerProcessBrowserTest {
70 public:
71 SitePerProcessIgnoreCertErrorsBrowserTest() = default;
72
73 protected:
74 void SetUpOnMainThread() override;
75 void SetUpCommandLine(base::CommandLine* command_line) override;
76 void SetUpInProcessBrowserTestFixture() override;
77 void TearDownInProcessBrowserTestFixture() override;
78
79 private:
80 content::ContentMockCertVerifier mock_cert_verifier_;
81};
82
dmazzoni0b5d2482014-09-10 19:45:5783} // namespace content
nick44bacf32015-04-14 02:06:3984
85#endif // CONTENT_BROWSER_SITE_PER_PROCESS_BROWSERTEST_H_