#include "chrome/browser/headless/headless_mode_util.h"
#include "build/build_config.h"
#include "ui/gfx/switches.h"
#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
#include "base/base_switches.h"
#include "base/files/file_path.h"
#include "base/files/scoped_temp_dir.h"
#include "chrome/browser/headless/headless_mode_switches.h"
#include "chrome/common/chrome_switches.h"
#include "content/public/common/content_switches.h"
#if BUILDFLAG(IS_LINUX)
#include "ui/gl/gl_switches.h"
#include "ui/ozone/public/ozone_switches.h"
#endif
namespace headless {
namespace {
const char kNewHeadlessModeSwitchValue[] = …;
const char kOldHeadlessModeSwitchValue[] = …;
enum HeadlessMode { … };
HeadlessMode GetHeadlessMode() { … }
class HeadlessModeHandleImpl : public HeadlessModeHandle { … };
}
bool IsHeadlessMode() { … }
bool IsOldHeadlessMode() { … }
bool IsChromeSchemeUrlAllowed() { … }
std::unique_ptr<HeadlessModeHandle> InitHeadlessMode() { … }
}
#else
namespace headless {
bool IsHeadlessMode() {
return false;
}
bool IsOldHeadlessMode() {
#if BUILDFLAG(IS_CHROMEOS)
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
return command_line->HasSwitch(switches::kHeadless);
#else
return false;
#endif
}
bool IsChromeSchemeUrlAllowed() {
return false;
}
void SetUpCommandLine(const base::CommandLine* command_line) {}
void DeleteTempUserDataDir() {}
std::unique_ptr<HeadlessModeHandle> InitHeadlessMode() {
return nullptr;
}
}
#endif