blob: 58b6aeeff8e46eed99e9adef487dd2adcb1ecb56 [file] [log] [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/web_test/common/web_test_switches.h"
#include "base/command_line.h"
#include "base/strings/string_split.h"
#include "build/build_config.h"
namespace switches {
// Allow access to external pages during web tests.
const char kAllowExternalPages[] = "allow-external-pages";
// When specified to "enable-leak-detection" command-line option,
// causes the leak detector to cause immediate crash when found leak.
const char kCrashOnFailure[] = "crash-on-failure";
// Run devtools tests in debug mode (not bundled and minified)
const char kDebugDevTools[] = "debug-devtools";
// Enable accelerated 2D canvas.
const char kEnableAccelerated2DCanvas[] = "enable-accelerated-2d-canvas";
// Enable font antialiasing for pixel tests.
const char kEnableFontAntialiasing[] = "enable-font-antialiasing";
// Always use the complex text path for web tests.
const char kAlwaysUseComplexText[] = "always-use-complex-text";
// Enables the leak detection of loading webpages. This allows us to check
// whether or not reloading a webpage releases web-related objects correctly.
const char kEnableLeakDetection[] = "enable-leak-detection";
// Encode binary web test results (images, audio) using base64.
const char kEncodeBinary[] = "encode-binary";
// Disables the automatic origin isolation of web platform test domains.
// We normally origin-isolate them for better test coverage, but tests of opt-in
// origin isolation need to disable this.
const char kDisableAutoWPTOriginIsolation[] =
"disable-auto-wpt-origin-isolation";
// Forces each web test to be run in a new BrowsingInstance. Required for origin
// isolation web tests where the BrowsingInstance retains state from origin
// isolation requests, but this flag may benefit other web tests.
const char kResetBrowsingInstanceBetweenTests[] =
"reset-browsing-instance-between-tests";
// This makes us disable some web-platform runtime features so that we test
// content_shell as if it was a stable release. It is only followed when
// kRunWebTest is set. For the features' level, see
// third_party/blink/renderer/platform/RuntimeEnabledFeatures.md
const char kStableReleaseMode[] = "stable-release-mode";
// Disables the shell from beginning in headless mode. Tests will then attempt
// to use the hardware GPU for rendering. This is only followed when
// kRunWebTests is set.
const char kDisableHeadlessMode[] = "disable-headless-mode";
#if BUILDFLAG(IS_WIN)
// Registers additional font files on Windows (for fonts outside the usual
// %WINDIR%\Fonts location). Multiple files can be used by separating them
// with a semicolon (;).
const char kRegisterFontFiles[] = "register-font-files";
std::vector<std::string> GetSideloadFontFiles() {
std::vector<std::string> files;
const base::CommandLine& command_line =
*base::CommandLine::ForCurrentProcess();
if (command_line.HasSwitch(switches::kRegisterFontFiles)) {
files = base::SplitString(
command_line.GetSwitchValueASCII(switches::kRegisterFontFiles), ";",
base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
}
return files;
}
#endif
} // namespace switches