#include "headless/lib/browser/headless_browser_main_parts.h"
#include <errno.h>
#include <signal.h>
#include <unistd.h>
#include "base/files/file_descriptor_watcher_posix.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/logging.h"
#include "base/memory/scoped_refptr.h"
#include "base/no_destructor.h"
#include "base/posix/eintr_wrapper.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "headless/lib/browser/headless_browser_impl.h"
#if BUILDFLAG(IS_LINUX)
#include "base/command_line.h"
#include "components/os_crypt/sync/key_storage_config_linux.h"
#include "components/os_crypt/sync/os_crypt.h"
#include "headless/public/switches.h"
#if defined(USE_DBUS)
#include "device/bluetooth/dbus/bluez_dbus_manager.h"
#endif
#endif
namespace headless {
namespace {
int g_read_fd = …;
int g_write_fd = …;
bool CreatePipe() { … }
class BrowserShutdownHandler { … };
}
#if BUILDFLAG(IS_LINUX)
constexpr char kProductName[] = …;
#endif
void HeadlessBrowserMainParts::PostCreateMainMessageLoop() { … }
}