#include <fcntl.h>
#include <memory>
#include <string>
#include <tuple>
#include <vector>
#include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h"
#include "base/logging.h"
#include "base/posix/eintr_wrapper.h"
#include "base/strings/pattern.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_split.h"
#include "base/test/test_timeouts.h"
#include "base/threading/platform_thread.h"
#include "base/threading/thread_restrictions.h"
#include "build/build_config.h"
#include "components/headless/policy/headless_mode_policy.h"
#include "components/headless/test/capture_std_stream.h"
#include "components/policy/core/browser/browser_policy_connector_base.h"
#include "components/policy/core/common/mock_configuration_policy_provider.h"
#include "components/policy/core/common/policy_map.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/browser_test.h"
#include "headless/lib/browser/headless_browser_impl.h"
#include "headless/public/headless_browser.h"
#include "headless/public/switches.h"
#include "headless/test/headless_browser_test.h"
#include "headless/test/headless_browser_test_utils.h"
#include "net/base/host_port_pair.h"
#include "net/base/net_errors.h"
#include "net/test/embedded_test_server/embedded_test_server.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#if !BUILDFLAG(IS_WIN)
#include <unistd.h>
#endif
namespace headless {
enum { … };
class HeadlessBrowserTestWithPolicy : public HeadlessBrowserTest { … };
class HeadlessBrowserTestWithHeadlessModePolicy
: public HeadlessBrowserTestWithPolicy,
public testing::WithParamInterface<std::tuple<int, bool>> { … };
INSTANTIATE_TEST_SUITE_P(…);
IN_PROC_BROWSER_TEST_P(HeadlessBrowserTestWithHeadlessModePolicy,
HeadlessModePolicySettings) { … }
class HeadlessBrowserTestWithUrlBlockPolicy
: public HeadlessBrowserTestWithPolicy { … };
IN_PROC_BROWSER_TEST_F(HeadlessBrowserTestWithUrlBlockPolicy, BlockUrl) { … }
class HeadlessBrowserTestWithRemoteDebuggingAllowedPolicy
: public HeadlessBrowserTestWithPolicy,
public testing::WithParamInterface<bool> { … };
INSTANTIATE_TEST_SUITE_P(…);
#if BUILDFLAG(IS_FUCHSIA)
#define MAYBE_RemoteDebuggingDisallowed …
#else
#define MAYBE_RemoteDebuggingDisallowed …
#endif
IN_PROC_BROWSER_TEST_P(HeadlessBrowserTestWithRemoteDebuggingAllowedPolicy,
MAYBE_RemoteDebuggingDisallowed) { … }
}