Chrome Command Line Flags & Switches
The complete reference for 438 Chrome and Chromium command line flags. Essential for browser automation with Puppeteer, Playwright, Selenium, and Cypress.
Configure headless mode, disable GPU acceleration, manage sandboxing, and more. Updated daily from the Chromium source code.
Last updated: September 25, 2026
--add-xr-appcontainer-capsAdd additional capabilities to the AppContainer sandbox used for XR compositing.
--allow-command-line-pluginsAllows plugins to be loaded in the command line for testing.
--allow-file-access-from-filesBy default, file:// URIs cannot read other file:// URIs. This is an override for developers who need the old behavior for testing.
--allow-insecure-localhostEnables TLS/SSL errors on localhost to be ignored (no interstitial, no blocking of requests).
--allow-ra-in-dev-modeAllows remote attestation (RA) in dev mode for testing purpose. Usually RA is disabled in dev mode because it will always fail. However, there are cases in testing where we do want to go through the permission flow even in dev mode. This can be enabled by this flag.
--allow-sandbox-debuggingAllows debugging of sandboxed processes (see zygote_main_linux.cc).
--allow-third-party-modulesAllows third party modules to inject by disabling the BINARY_SIGNATURE mitigation policy on Win10+. Also has other effects in ELF.
--alsa-input-deviceThe Alsa device to use when opening an audio input stream.
--alsa-output-deviceThe Alsa device to use when opening an audio stream.
--angle--animation-duration-scaleScale factor to apply to every animation duration. Must be >= 0.0. This will only apply to LinearAnimation and its subclasses.
--app-shim--arcoreThe following are the runtimes that WebXr supports.
--as-browserFlag to launch tests in the browser process.
--audio-buffer-sizeAllow users to specify a custom buffer size for debugging purpose.
--audio-codecs-from-edidAudio codecs supported by the HDMI sink is retrieved from the audio service process. EDID contains the Short Audio Descriptors, which list the audio decoders supported, and the information is presented as a bitmask of supported audio codecs.
--audio-process-high-priorityUse high priority for the audio process.
--autoThe values the kTouchEventFeatureDetection switch may have, as in --touch-events=disabled. auto: enabled at startup when an attached touchscreen is present.
--autofill-api-keySets the API key that will be used when calling Autofill API instead of using Chrome's baked key by default. You can use this to test new versions of the API that are not linked to the Chrome baked key yet.
--autofill-server-urlOverride the default autofill server URL with "scheme://host[:port]/prefix/".
--autoplay-policyCommand line flag name to set the autoplay policy.
--bgra--browser-startup-dialogCauses the browser process to display a dialog on launch.
--browser-subprocess-pathPath to the exe to run for the renderer and plugin subprocesses.
--browser-testTells whether the code is running browser tests (this changes the startup URL used by the content shell and also disables features that can make tests flaky [like monitoring of memory pressure]).
--browser-ui-tests-verify-pixelsCauses tests to attempt to verify pixel output.
--canvas-2d-layersEnable in-progress canvas 2d API methods BeginLayer and EndLayer.
--cardboard--cc-layer-tree-test-long-timeoutIncreases timeout for memory checkers.
--cc-layer-tree-test-no-timeoutPrevents the layer tree unit tests from timing out.
--change-stack-guard-on-forkAfter a zygote forks a new process, change the stack canary. This switch is useful so not all forked processes use the same canary (a secret value), which can be vulnerable to information leaks and brute force attacks. See https://crbug.com/1206626. This requires that all functions on the stack at the time content::RunZygote() is called be compiled without stack canaries. Valid values are "enable" or "disable".
--check-damage-earlyChecks damage early and aborts the frame if no damage, so that clients like Android WebView don't invalidate unnecessarily.
--clear-key-cdm-path-for-testingSpecifies the path to the Clear Key CDM for testing, which is necessary to support External Clear Key key system when library CDM is enabled. Note that External Clear Key key system support is also controlled by feature kExternalClearKeyForTesting.
--code-sign-clone-cleanup--collect-dawn-info-eagerlyStart the GPU process for Dawn info collection immediately after the browser starts. The default is to delay for 120 seconds.
--compile-shader-always-succeedsAlways return success when compiling a shader. Linking will still fail.
--crash-testCauses the browser process to crash on startup.
--d3d11--d3d11-nullSpecial switches for "NULL"/stub driver implementations.
--d3d11-warp--d3d11-warp-webgl--d3d11on12--d3d12--default--device-management-urlSpecifies the URL at which to communicate with the device management backend to fetch configuration policies and perform other device tasks.
--device-scale-factorDevice scale factor passed to certain processes like renderers, etc.
--disable--disable-2d-canvas-clip-aaDisable antialiasing on 2d canvas clips
--disable-3d-apisDisables client-visible 3D APIs, in particular WebGL. This is controlled by policy and is kept separate from the other enable/disable switches to avoid accidentally regressing the policy support for controlling access to these APIs.
--disable-accelerated-2d-canvasDisable gpu-accelerated 2d canvas.
--disable-angle-featuresDisables specified comma separated ANGLE features if found.
--disable-audio-inputForces input and output stream creation to use fake audio streams.
--disable-audio-output--disable-back-forward-cacheDisables the BackForwardCache feature.
--disable-backing-store-limitDisable limits on the number of backing stores. Can prevent blinking for users with many windows/tabs and lots of memory.
--disable-best-effort-tasksDelays execution of TaskPriority::BEST_EFFORT tasks until shutdown.
--disable-blink-featuresDisable one or more Blink runtime-enabled features. Use names from runtime_enabled_features.json5, separated by commas. Applied after kEnableBlinkFeatures, and after other flags that change these features.
--disable-cancel-all-touchesDisable CancelAllTouches() function for the implementation on cancel single touches.
--disable-canvas-aaDisable antialiasing on 2d canvas.
--disable-checker-imagingDisabled defering all image decodes to the image decode service, ignoring DecodingMode preferences specified on PaintImage.
--disable-d3d11-warpExplicitly disable D3D11 WARP fallback. Some test suites prefer falling back to swiftshader.
--disable-dawn-featuresSet the Dawn features(toggles) disabled on the creation of Dawn devices.
--disable-direct-compositionDisable DirectComposition.
--disable-explicit-dma-fencesDisable explicit DMA-fences
--disable-field-trial-configDisable field trial tests configured in fieldtrial_testing_config.json.
--disable-file-systemDisable FileSystem API.
--disable-gl-drawing-for-testsDisables GL drawing operations which produce pixel output. With this the GL output will not be correct but tests will run faster.
--disable-gl-error-limitDisable the GL error log limit.
--disable-gl-extensionsDisables specified comma separated GL Extensions if found.
--disable-glsl-translatorDisable the GLSL translator.
--disable-gpuDisables GPU hardware acceleration. If software renderer is not in place, then the GPU process won't launch.
--disable-gpu-compositingPrevent the compositor from using its GPU implementation.
--disable-gpu-early-initDisable proactive early init of GPU process.
--disable-gpu-process-crash-limitFor tests, to disable the limit on the number of times the GPU process may be restarted.
--disable-gpu-program-cacheTurn off gpu program caching
--disable-gpu-rasterizationDisable GPU rasterization, i.e. rasterize on the CPU only. Overrides the kEnableGpuRasterization flag.
--disable-gpu-sandboxDisables the GPU process sandbox.
--disable-gpu-shader-disk-cacheDisables the GPU shader on disk cache.
--disable-gpu-vsyncStop the GPU from synchronizing presentation with vblank.
--disable-gpu-watchdogDisable the thread that crashes the GPU process if it stops responding to messages.
--disable-histogram-customizerDisable the RenderThread's HistogramCustomizer.
--disable-http2-grease-settings--disable-in-process-stack-tracesDisables the in-process stack traces.
--disable-ipc-flooding-protectionDisables the IPC flooding protection. It is activated by default. Some javascript functions can be used to flood the browser process with IPC. This protection limits the rate at which they can be used.
--disable-kill-after-bad-ipcDon't kill a child process when it sends a bad IPC message. Apart from testing, it is a bad idea from a security perspective to enable this switch.
--disable-landlock-sandboxDisables the Landlock sandbox (Android only).
--disable-lcd-textDisables LCD text.
--disable-legacy-windowDisable the Legacy Window which corresponds to the size of the WebContents.
--disable-local-storageDisable LocalStorage.
--disable-loggingForce logging to be disabled. Logging is enabled by default in debug builds.
--disable-low-latency-dxvaDisables using CODECAPI_AVLowLatencyMode when creating DXVA decoders.
--disable-media-session-apiDisable Media Session API
--disable-metal-shader-cacheDisables Metal's shader cache, using the GPU sandbox to prevent access to it.
--disable-mipmap-generationDisables mipmap generation in Skia. Used a workaround for select low memory devices, see https://crbug.com/1138979 for details.
--disable-mojo-brokerDisables Mojo broker capabilities in the browser during Mojo initialization.
--disable-namespace-sandboxDisables usage of the namespace sandbox.
--disable-notificationsDisables the Web Notification and the Push APIs.
--disable-nv12-dxgi-videoDisables the video decoder from drawing to an NV12 textures instead of ARGB.
--disable-oopr-debug-crash-dumpDisables debug crash dumps for OOPR.
--disable-policy-key-verificationDisables the verification of policy signing keys. It just works on Chrome OS test images and crashes otherwise. better solution to enable policy tast test for Family Link account.
--disable-presentation-apiDisables the Presentation API.
--disable-pushstate-throttleDisables throttling of history.pushState/replaceState calls.
--disable-reading-from-canvasTaints all <canvas> elements, regardless of origin.
--disable-remote-fontsDisables remote web font support. SVG font should always work whether this option is specified or not.
--disable-remote-playback-apiDisables the RemotePlayback API.
--disable-renderer-backgroundingPrevent renderer process backgrounding when set.
--disable-resource-schedulerWhether the ResourceScheduler is disabled. Note this is only useful for C++ Headless embedders who need to implement their own resource scheduling.
--disable-screen-orientation-lockDisable the locking feature of the screen orientation API.
--disable-scroll-to-text-fragmentThis switch disables the ScrollToTextFragment feature.
--disable-seccomp-filter-sandboxDisable the seccomp filter sandbox (seccomp-bpf) (Linux only).
--disable-setuid-sandboxDisable the setuid sandbox (Linux only).
--disable-shader-name-hashingTurn off user-defined name hashing in shaders.
--disable-shared-workersDisable shared workers.
--disable-site-isolation-trialsDisables site isolation. Note that the opt-in (to site-per-process, isolate-origins, etc.) via enterprise policy and/or cmdline takes precedence over the kDisableSiteIsolation switch (i.e. the opt-in takes effect despite potential presence of kDisableSiteIsolation switch). Note that for historic reasons the name of the switch misleadingly mentions "trials", but the switch also disables the default site isolation that ships on desktop since M67. The name of the switch is preserved for backcompatibility of chrome://flags.
--disable-skia-graphiteForce disabling/enabling Skia Graphite. Disabling will take precedence over enabling if both are specified.
--disable-skia-runtime-optsDo not use runtime-detected high-end CPU optimizations in Skia. This is useful for forcing a baseline code path for e.g. web tests.
--disable-smooth-scrollingDisable smooth scrolling for testing.
--disable-software-rasterizerDisables the use of a 3D software rasterizer.
--disable-speech-apiDisables the Web Speech API (both speech recognition and synthesis).
--disable-speech-synthesis-apiDisables the speech synthesis part of Web Speech API.
--disable-threaded-animation--disable-threaded-compositingDisable multithreaded GPU compositing of web content.
--disable-timeouts-for-profilingDisable timeouts that may cause the browser to die when running slowly. This is useful if running with profiling (such as debug malloc).
--disable-translate-triggerDisables translation triggering for pages, including translate page pop up and auto translate feature. Manual translation unaffected.
--disable-v8-idle-tasksDisable V8 idle tasks.
--disable-variations-safe-modeDisable variations safe mode.
--disable-variations-seed-fetchDisable fetching of variations seed from the server for testing.
--disable-vulkan-surfaceDisables VK_KHR_surface extension. Instead of using swapchain, bitblt will be used for present render result on screen.
--disable-wayland-imeDisable wayland input method editor.
--disable-web-securityDon't enforce the same-origin policy; meant for website testing only. This switch has no effect unless --user-data-dir (as defined by the content embedder) is also present.
--disable-webglDisable all versions of WebGL.
--disable-webgl2Disable WebGL2.
--disable-webnn-compiler-sandboxDisables the WebNN compiler process sandbox.
--disable-webrtc-encryptionDisables encryption of RTP Media for WebRTC. When Chrome embeds Content, it ignores this switch on its stable and beta channels.
--disable-yuv-image-decodingDisable YUV image decoding for those formats and cases where it's supported. Has no effect unless GPU rasterization is enabled.
--disable-zero-copy-dxgi-videoDisable the video decoder from drawing directly to a texture.
--disableddisabled: touch events are disabled.
--displayWhich X11 display to connect to. Emulates the GTK+ "--display=" command line argument. In use only with Ozone/X11.
--dom-automationSpecifies if the |DOMAutomationController| needs to be bound in the renderer. This binding happens on per-frame basis and hence can potentially be a performance bottleneck. One should only enable it when automating dom based tests.
--dump-compositor-frameSave CompositorFrame data in both renderer and gpu process for TreesInViz and TreeAnimationsInViz. This doesn't work without --no-sandbox. If no parameters are specified, by default, it records frame 1 - 10. If --dump-compositor-frame=begin,end is specified, it records frame [begin, end] inclusive.
--edge-touch-filteringTells Chrome to do edge touch filtering. Useful for convertible tablet.
--egl--enable--enable-angle-featuresANGLE features are defined per-backend in third_party/angle/include/platform Enables specified comma separated ANGLE features if found.
--enable-automationEnable indication that browser is controlled by automation.
--enable-benchmarking-apiEnables the benchmarking JavaScript API.
--enable-blink-featuresEnable one or more Blink runtime-enabled features. Use names from runtime_enabled_features.json5, separated by commas. Applied before kDisableBlinkFeatures, and after other flags that change these features.
--enable-blink-test-featuresEnables blink runtime enabled features with status:"test" or status:"experimental", which are enabled when running web tests.
--enable-caret-browsingEnable native caret browsing, in which a moveable cursor is placed on a web page, allowing a user to select and navigate through non-editable text using just a keyboard. See https://crbug.com/977390 for links to i2i.
--enable-dawn-backend-validationEnable validation layers in Dawn backends.
--enable-dawn-featuresSet the Dawn features(toggles) enabled on the creation of Dawn devices.
--enable-exclusive-audioBUILDFLAG(IS_FREEBSD) || BUILDFLAG(IS_SOLARIS) Use exclusive mode audio streaming for Windows Vista and higher. Leads to lower latencies for audio streams which uses the AudioParameters::AUDIO_PCM_LOW_LATENCY audio path. See http://msdn.microsoft.com/en-us/library/windows/desktop/dd370844.aspx for details.
--enable-field-trial-configEnable field trial tests configured in fieldtrial_testing_config.json. If the "disable_fieldtrial_testing_config" GN flag is set to true, then this switch is a no-op. Otherwise, for non-Chrome branded builds, the testing config is already applied by default, unless the "--disable-field-trial-config", "--force-fieldtrials", and/or "--variations-server-url" switches are passed. It is however possible to apply the testing config as well as specify additional field trials (using "--force-fieldtrials") by using this switch. For Chrome-branded builds, the testing config is not enabled by default, so this switch is required to enable it. If this switch is set to "benchmarking", it enables variations benchmarking mode, which skips experiments that are disabled for benchmarking.
--enable-gpu-benchmarkingEnables the GPU benchmarking extension
--enable-gpu-blocked-timeEnables measures of how long GPU Main Thread was blocked between SwapBuffers
--enable-gpu-command-loggingTurn on Logging GPU commands.
--enable-gpu-debuggingTurn on Calling GL Error after every command.
--enable-gpu-driver-debug-loggingEnable logging of GPU driver debug messages.
--enable-gpu-rasterizationAllow heuristics to determine when a layer tile should be drawn with the Skia GPU backend. Only valid with GPU accelerated compositing.
--enable-gpu-service-loggingEnable GPU service logging. Note: This is the same switch as the one in gl_switches.cc. It's defined here again to avoid dependencies between dlls.
--enable-gpu-service-tracingTurns on calling TRACE for every GL call.
--enable-lcd-textEnables LCD text.
--enable-loggingForce logging to be enabled. Logging is disabled by default in release builds.
--enable-longpress-drag-selectionEnable drag manipulation of longpress-triggered text selections.
--enable-native-gpu-memory-buffersEnable native CPU-mappable GPU memory buffer support on Linux.
--enable-precise-memory-infoMake the values returned to window.performance.memory more granular and more up to date in shared worker. Without this flag, the memory information is still available, but it is bucketized and updated less frequently. This flag also applys to workers.
--enable-privacy-sandbox-ads-apisEnables Privacy Sandbox APIs: Attribution Reporting, Fledge, Topics, Fenced Frames, Shared Storage, Private Aggregation, and their associated features.
--enable-protected-video-buffersEnables protected buffers for encrypted video streams.
--enable-sandbox-loggingCause the OS X sandbox write to syslog every time an access to a resource is denied by the sandbox.
--enable-scaling-clipped-imagesAllows scaling clipped images in GpuImageDecodeCache. Note that this may cause color-bleeding. cache problems are solved.
--enable-service-binary-launcherIf true the ServiceProcessLauncher is used to launch services. This allows for service binaries to be loaded rather than using the utility process. This is only useful for tests.
--enable-sgi-video-syncEnable use of the SGI_video_sync extension, which can have driver/sandbox/window manager compatibility issues.
--enable-skia-benchmarkingEnables the Skia benchmarking extension.
--enable-skia-graphite--enable-smooth-scrollingOn platforms that support it, enables smooth scroll animation.
--enable-spatial-navigationEnable spatial navigation
--enable-speech-dispatcherAllows sending text-to-speech requests to speech-dispatcher, a common Linux speech service. Because it's buggy, the user must explicitly enable it so that visiting a random webpage can't cause instability.
--enable-tracing-fractionWhen specified along with a value in the range (0,1] will --enable-tracing for (roughly) that percentage of tests being run. This is done in a stable manner such that the same tests are chosen each run, and under the assumption that tests hash equally across the range of possible values. The flag will enable all tracing categories for those tests, and none for the rest. This flag could be used with other tracing switches like --enable-tracing-format, but any other switches that will enable tracing will turn tracing on for all tests.
--enable-unsafe-swiftshaderAllow usage of SwiftShader for WebGL
--enable-unsafe-webgpu--enable-viewportEnables the use of the @viewport CSS rule, which allows pages to control aspects of their own layout. This also turns on touch-screen pinch gestures.
--enable-vtune-supportEnable the Vtune profiler support.
--enable-vulkan-protected-memoryEnables using protected memory for vulkan resources.
--enable-wayland-imeTry to enable wayland input method editor.
--enable-webgl-draft-extensionsEnables WebGL draft extensions (not yet approved by the community). This has side-effects in the GPU process, so the flag is here so that code in both gpu/ and content/ can access it.
--enabledenabled: touch events always enabled.
--encrypted-reporting-urlSpecifies the URL at which to upload encrypted reports.
--enforce-gl-minimumsEnforce GL minimums.
--expose-internals-for-testingExposes the window.internals object in JavaScript for testing.
--fail-audio-stream-creationCauses the AudioManager to fail creating audio streams. Used when testing various failure cases.
--fake-variations-channelFakes the channel of the browser for purposes of Variations filtering. This is to be used for testing only. Possible values are "stable", "beta", "dev" and "canary". This works for official builds as well.
--fake-variations-platformFakes the platform of the browser for variations seed fetching and field trial filtering. Possible values are as follows: "android", "android_webview", "chromeos", "fuchsia", "ios", "linux", "mac", and "win". Intended only for testing.
--fake-vsync-rate--file-storage-server-upload-urlSpecifies the URL at which to communicate with File Storage Server (go/crosman-file-storage-server) to upload log and support packet files.
--file-url-path-aliasDefine an alias root directory which is replaced with the replacement string in file URLs. The format is "/alias=/replacement", which would turn file:///alias/some/path.html into file:///replacement/some/path.html.
--font-cache-shared-handleDirectWrite FontCache is shared by browser to renderers using shared memory. This switch allows us to pass the shared memory handle to the renderer.
--force-browser-crash-on-gpu-crashCrash Chrome if GPU process crashes. This is to force a test to fail when GPU process crashes unexpectedly.
--force-device-ownership--force-disable-variation-idsForces to remove Chrome Variation Ids from being sent in X-Client-Data header, specified as a 64-bit encoded list of numeric experiment ids. Ids prefixed with the character "t" will be treated as Trigger Variation Ids.
--force-effective-connection-typeForces Network Quality Estimator (NQE) to return a specific effective connection type.
--force-fieldtrial-paramsThis option can be used to force parameters of field trials when testing changes locally. The argument is a param list of (key, value) pairs prefixed by an associated (trial, group) pair. You specify the param list for multiple (trial, group) pairs with a comma separator. Example: "Trial1.Group1:k1/v1/k2/v2,Trial2.Group2:k3/v3/k4/v4" Trial names, groups names, parameter names, and value should all be URL escaped for all non-alphanumeric characters.
--force-high-performance-gpu--force-max-texture-sizeSets the maximum texture size in pixels.
--force-prefers-no-reduced-motionForces whether the user desires no reduced motion, regardless of system settings.
--force-prefers-reduced-motionForces whether the user desires reduced motion, regardless of system settings.
--force-variation-idsForces additional Chrome Variation Ids that will be sent in X-Client-Data header, specified as a 64-bit encoded list of numeric experiment ids. Ids prefixed with the character "t" will be treated as Trigger Variation Ids. IMPORTANT: You can use this switch for test purposes (e.g. a manual command line run or from a unit test), but NOT for production code in the browser, as the latter is not allowed for privacy reasons (except for the current use by about:flags code).
--force-video-overlaysForce media player using SurfaceView instead of SurfaceTexture on Android. Note: This is used by the Cast playback pipeline and must be kept.
--force-wave-audioUse Windows WaveOut/In audio API even if Core Audio is supported.
--force-webgpu-compatForce all WebGPU content to run in WebGPU Compatibility mode.
--force-webrtc-ip-handling-policyOverride WebRTC IP handling policy to mimic the behavior when WebRTC IP handling policy is specified in Preferences.
--force-webxr-runtimeForcibly enable and select the specified runtime for webxr. Note that this provides an alternative means of enabling a runtime, and will also functionally disable all other runtimes.
--forced-translate-languageOverrides the target language for translation and forces translation of all pages to the new target language.
--gl-egl--gl-null--gl-shader-interm-outputInclude ANGLE's intermediate representation (AST) output in shader compilation info logs.
--gles--gles-egl--gles-null--gpu-blocklist-test-groupSelect a different set of GPU blocklist entries with the specified test_group ID.
--gpu-client-id--gpu-device-idPasses the active graphics device id from browser process to info collection GPU process.
--gpu-disk-cache-size-kbAllows explicitly specifying the shader disk cache size for embedded devices. Default value is 6MB. On Android, 2MB is default and 128KB for low-end devices.
--gpu-driver-bug-list-test-groupEnable an extra set of GPU driver bug list entries with the specified test_group ID. Note the default test group (group 0) is still active.
--gpu-driver-versionPasses the active graphics driver version from browser process to info collection GPU process.
--gpu-launcherExtra command line options for launching the GPU process (normally used for debugging). Use like renderer-cmd-prefix.
--gpu-no-context-lostInform Chrome that a GPU context will not be lost in power saving mode, screen saving mode, etc. Note that this flag does not ensure that a GPU context will never be lost in any situations, say, a GPU reset.
--gpu-preferencesPasses encoded GpuPreferences to GPU process.
--gpu-processMakes this process a GPU sub-process.
--gpu-program-cache-size-kbSets the maximum size of the in-memory gpu program cache, in kb
--gpu-recent-crash-countPasses the number of recent GPU crashes to the GPU process.
--gpu-revisionPasses the active graphics revision info from browser process to info collection GPU process.
--gpu-sandbox-allow-sysv-shmAllows shmat() system call in the GPU sandbox.
--gpu-sandbox-failures-fatalMakes GPU sandbox failures fatal.
--gpu-sandbox-start-earlyStarts the GPU sandbox before creating a GL context.
--gpu-startup-dialogCauses the GPU process to display a dialog on launch.
--gpu-sub-system-idPasses the active graphics sub system id from browser process to info collection GPU process.
--gpu-vendor-idPasses the active graphics vendor id from browser process to info collection GPU process.
--gpu-watchdog-timeout-secondsOverride value for the GPU watchdog timeout in seconds.
--gpu2-startup-dialogCauses the second GPU process used for gpu info collection to display a dialog on launch.
--hardware-video-decode-framerateSome (Qualcomm only at the moment) V4L2 video decoders require setting the framerate so that the hardware decoder can scale the clocks efficiently. This provides a mechanism during testing to lock the decoder framerate to a specific value.
--hardware-video-device-pathAllows explicitly picking a device path to find the device for VA-API video decoding and encoding.
--headlessRun in headless mode, i.e., without a UI or display server dependencies.
--hide-scrollbarsPrevents creating scrollbars for web content. Useful for taking consistent screenshots.
--host-resolver-rulesThese mappings only apply to the host resolver.
--host-rulesDeprecated alias for backwards compatibility, now does the same thing as --host-resolver-rules which should be used instead.
--ignore-bad-message-for-testingThe switch to ignore bad mojo message reports. Only for testing.
--ignore-gpu-blocklistIgnores GPU blocklist.
--in-process-gpuRun the GPU process as a thread in the browser process.
--ip-address-space-overridesSpecifies manual overrides to the IP endpoint -> IP address space mapping. This allows running local tests against "public" and "local" IP addresses. This switch is specified as a comma-separated list of overrides. Each override is an equals-separated "<endpoint|ip-range>=<address space>" pair. Grammar, in pseudo-BNF format: switch := override-list override-list := override “,” override-list | <nil> override := (ip-endpoint | ip_range) “=” address-space address-space := “public” | “private” | “local” | "loopback" ip-endpoint := ip-address ":" port ip-address := see `net::ParseURLHostnameToAddress()` for details port := integer in the [0-65535] range ip-range := ip-address "/" bitmask bitmask := integer in the [0-128] range Any invalid entries in the comma-separated list are ignored. If the port specified is 0, all ports for the given ip-address will be overridden. See also the design doc: https://docs.google.com/document/d/1-umCGylIOuSG02k9KGDwKayt3bzBXtGwVlCQHHkIcnQ/edit# And the Web Platform Test RFC #72 behind it: https://github.com/web-platform-tests/rfcs/blob/master/rfcs/address_space_overrides.md Note that since the doc and the RFC were written, the address space names have changed slightly due to Local Network Access (LNA) replacing Private Network Access (PNA).
--ipc-connection-timeoutOverrides the timeout, in seconds, that a child process waits for a connection from the browser before killing itself.
--ipc-dump-directoryDumps IPC messages sent from renderer processes to the browser process to the given directory. Used primarily to gather samples for IPC fuzzing.
--ipc-fuzzer-testcaseSpecifies the testcase used by the IPC fuzzer.
--isolate-originsRequire dedicated processes for a set of origins, specified as a comma-separated list. For example: --isolate-origins=https://www.foo.com,https://www.bar.com
--javaless-renderersEnables/disables javaless renderers based on value given. "enabled" or "disabled" are valid values.
--javascript-harmonyEnables experimental Harmony (ECMAScript 6) features.
--launch-time-ticksTime the browser launched the renderer process (in TimeTicks).
--layer--load-webui-from-diskFlag used to load WebUI files directly from disk instead of pak files. Meant to be used during local development only (requires a local checkout and build), and only works if used along with the GN load_webui_from_disk=true GN flag.
--log-fileOverrides the default file name to use for general-purpose logging (does not affect which events are logged).
--log-gpu-control-list-decisionsLogs GPU control list decisions when enforcing blocklist rules.
--log-levelSets the minimum log level. Valid values are from 0 to 3: INFO = 0, WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3.
--log-missing-unload-ackLog an error whenever the unload timeout for a render frame is exceeded.
--log-on-ui-double-background-blurChecks and logs double background blur as an error if any.
--max-active-webgl-contextsAllows user to override maximum number of active WebGL contexts per renderer process.
--max-decoded-image-size-mbSets the maximium decoded image size limitation.
--max-gum-fpsOverride the maximum framerate as can be specified in calls to getUserMedia. This flag expects a value. Example: --max-gum-fps=17.5
--max-web-media-player-countSets the maximum number of WebMediaPlayers allowed per frame.
--message-loop-type-uiIndicates the utility process should run with a message loop type of UI.
--metal--metal-null--mock--mojo-local-storageUse a Mojo-based LocalStorage implementation.
--mse-audio-buffer-size-limit-mbAllows explicitly specifying MSE audio/video buffer sizes as megabytes. Default values are 150M for video and 12M for audio.
--mse-video-buffer-size-limit-mb--mute-audioMutes audio sent to the audio device so it is not audible during automated testing.
--native--net-log-capture-modeSets the granularity of events to capture in the network log. The mode can be set to one of the following values: "Default" "IncludeSensitive" "Everything" See the enums of the corresponding name in net_log_capture_mode.h for a description of their meanings.
--net-log-durationSpecifies the duration (in seconds) for network logging. When this flag is provided with a positive integer value X, Chrome will automatically stop collecting NetLog events after X seconds and flush the log to disk.
--net-log-file-formatSets the format used for the network log file. Supported values are: "json" "ndjson"
--net-log-max-size-mbSets the maximum size, in megabytes. The log file can grow to before older data is overwritten. Do not use this flag if you want an unlimited file size.
--no-op-for-testing--no-sandboxDisables the sandbox for all process types that are normally sandboxed. Meant to be used as a browser-level switch for testing purposes only.
--no-unsandboxed-zygoteDisables the unsandboxed zygote. Note: this flag should not be used on most platforms. It is introduced because some platforms (e.g. Cast) have very limited memory and binaries won't be updated when the browser process is running.
--no-user-gesture-requiredAutoplay policy that does not require any user gesture.
--no-xr-runtimeTell WebXr to assume that it does not support any runtimes.
--no-xshmDisables MIT-SHM extension. In use only with Ozone/X11.
--no-zygoteDisables the use of a zygote process for forking child processes. Instead, child processes will be forked and exec'd directly. Note that --no-sandbox should also be used together with this flag because the sandbox needs the zygote to work.
--no-zygote-sandboxInstructs the zygote to launch without a sandbox. Processes forked from this type of zygote will apply their own custom sandboxes later.
--null--num-raster-threadsControls the number of threads to use for raster tasks.
--nv12Swap chain formats for direct composition SDR video overlays.
--opengles--openxr--orientation-sensors--override-language-detectionOverrides the language detection result determined based on the page contents.
--ozone-dump-fileSpecify location for image dumps.
--ozone-override-screen-sizeSpecifies ozone screen size.
--ozone-platformSpecify ozone platform implementation to use.
--p010--passthrough--pdf-rendererRenderer process that runs the non-PPAPI PDF plugin.
--pen-devicesTells chrome to interpret events from these devices as pen events. Only available with XInput 2 (i.e. X server 1.8 or above). The id's of the devices can be retrieved from 'xinput list'.
--policySet policy value by command line.
--policy-verification-keyReplace the original verification_key with the one provided by the command line flag. Can be used only for unit tests or browser tests.
--process-per-siteEnable the "Process Per Site" process model for all domains. This mode consolidates same-site pages so that they share a single process. More details here: - https://www.chromium.org/developers/design-documents/process-models - The class comment in site_instance.h, listing the supported process models. IMPORTANT: This isn't to be confused with --site-per-process (which is about isolation, not consolidation). You probably want the other one.
--process-per-tabRuns each set of script-connected tabs (i.e., a BrowsingInstance) in its own renderer process. We default to using a renderer process for each site instance (i.e., group of pages from the same registered domain with script connections to each other). "unnecessary" process swaps for cross-site navigations but still swap when needed for security (e.g., isolated origins).
--pseudonymization-salt-handleHandle to shared memory containing the pseudonymization salt, passed to child processes at launch. See https://crbug.com/40850085.
--pull-to-refreshEnables or disables pull-to-refresh gesture in response to vertical overscroll. Set the value to '0' to disable the feature, set to '1' to enable it for both touchpad and touchscreen, and set to '2' to enable it only for touchscreen. Defaults to disabled.
--raise-timer-frequencyRaise the timer interrupt frequency in all Chrome processes, for experimental purposes. This feature is needed because as of Windows 10 2004 the scheduling effects of changing the timer interrupt frequency are not global, and this lets us prove/disprove whether this matters. See https://crbug.com/1128917
--realtime-reporting-urlSpecifies the URL at which to upload real-time reports.
--reduce-accept-languageReduce the accept-language for HTTP header and JS navigator.languages, and only most preferred language: https://github.com/Tanych/accept-language.
--reduce-accept-language-httpReduce the accept-language for HTTP header, and only send most preferred language in the request header: https://github.com/Tanych/accept-language.
--reduce-user-agent-minor-versionReduce the minor version number in the User-Agent string. This flag implements phase 4 of User-Agent reduction: https://blog.chromium.org/2021/09/user-agent-reduction-origin-trial-and-dates.html.
--relauncher--remote-allow-originsEnables web socket connections from the specified origins only. '*' allows any origin.
--remote-debugging-io-pipesSpecifies pipe names for the incoming and outbound messages on the Windows platform. This is a comma separated list of two pipe handles serialized as unsigned integers, e.g. "--remote-debugging-io-pipes=3,4".
--remote-debugging-pipeEnables remote debug over stdio pipes [in=3, out=4] or over the remote pipes specified in the 'remote-debugging-io-pipes' switch. Optionally, specifies the format for the protocol messages, can be either "JSON" (the default) or "CBOR".
--remote-debugging-portEnables remote debug over HTTP on the specified port.
--remote-debugging-socket-nameEnables remote debug over HTTP on the specified socket name.
--render-node-overrideAllows explicitly picking a DRM render node to create gbm_device for rendering.
--rendererCauses the process to run as renderer instead of as browser.
--renderer-client-id--renderer-cmd-prefixThe contents of this flag are prepended to the renderer command line. Useful values might be "valgrind" or "xterm -e gdb --args".
--renderer-process-limitOverrides the default/calculated limit to the number of renderer processes. Very high values for this setting can lead to high memory/resource usage or instability.
--renderer-startup-dialogCauses the renderer process to display a dialog on launch. Passing this flag also adds sandbox::policy::kNoSandbox on Windows non-official builds, since that's needed to show a dialog.
--renderer-wait-for-java-debuggerBlock ChildProcessMain thread of the renderer's ChildProcessService until a Java debugger is attached.
--renderpassParameters for kUIShowCompositedLayerBorders.
--run-manualManual tests only run when --run-manual is specified. This allows writing tests that don't run automatically but are still in the same test binary. This is useful so that a team that wants to run a few tests doesn't have to add a new binary that must be compiled on all builds.
--sandbox-ipcCauses the process to run as a sandbox IPC subprocess.
--screen-infoHeadless screen info in the format: {0,0 800x600}{800,0 600x800}. See //components/headless/screen_info/README.md for more details.
--secure-connect-api-urlSpecifies the base URL to contact the secure connect Api.
--service-sandbox-typeType of sandbox to apply to the process running the service, one of the values in the next block.
--shared-filesDescribes the file descriptors passed to a child process in the following list format: <file_id>:<descriptor_id>,<file_id>:<descriptor_id>,... where <file_id> is an ID string from the manifest of the service being launched and <descriptor_id> is the numeric identifier of the descriptor for the child process can use to retrieve the file descriptor from the global descriptor table.
--show-autofill-signaturesAnnotates forms and fields with Autofill signatures.
--show-autofill-type-predictionsAnnotates forms with Autofill field type predictions.
--show-composited-layer-bordersRenders a border around compositor layers to help debug and study layer compositing.
--show-fps-counterDraws a heads-up-display showing Frames Per Second as well as GPU memory usage. If you also use --enable-logging=stderr --vmodule="head*=1" then FPS will also be output to the console log.
--show-layer-animation-boundsRenders a border that represents the bounding box for the layer's animation.
--show-property-changed-rectsShow rects in the HUD around layers whose properties have changed.
--show-screenspace-rectsShow rects in the HUD around the screen-space transformed bounds of every layer.
--show-surface-damage-rectsShow rects in the HUD around damage as it is recorded into each render surface.
--single-processRuns the renderer and plugins in the same process as the browser
--site-per-processEnforces a one-site-per-process security policy: * Each renderer process, for its whole lifetime, is dedicated to rendering pages for just one site. * Thus, pages from different sites are never in the same process. * A renderer process's access rights are restricted based on its site. * All cross-site navigations force process swaps. * <iframe>s are rendered out-of-process whenever the src= is cross-site. More details here: - https://www.chromium.org/developers/design-documents/site-isolation - https://www.chromium.org/developers/design-documents/process-models - The class comment in site_instance.h, listing the supported process models. IMPORTANT: this isn't to be confused with --process-per-site (which is about process consolidation, not isolation). You probably want this one.
--skia-font-cache-limit-mbSpecifies the max number of bytes that should be used by the skia font cache. If the cache needs to allocate more, skia will purge previous entries.
--skia-graphite-dawn-backendSpecify which Dawn backend to use for Skia Graphite.
--skia-graphite-vulkan-backendSpecify using Skia Graphite with native Vulkan backend.
--skia-resource-cache-limit-mbSpecifies the max number of bytes that should be used by the skia resource cache. The previous entries are purged from the cache when the memory useage exceeds this limit.
--slow-down-raster-scale-factorRe-rasters everything multiple times to simulate a much slower machine. Give a scale factor to cause raster to take that many times longer to complete, such as --slow-down-raster-scale-factor=25.
--ssl-key-log-fileCauses SSL key material to be logged to the specified file for debugging purposes. See https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format for the format.
--start-fullscreenSpecifies if the browser should start in fullscreen mode, like if the user had pressed F11 right after startup.
--stub--suppress-performance-logsSuppresses GL_DEBUG_TYPE_PERFORMANCE log messages for web tests that can get sent to the JS console and cause unnecessary test failures due test output log expectation comparisons.
--surface--swiftshader--swiftshader-webgl--system-aec-enabledEnforce system audio echo cancellation.
--target-device-scale-for-testingAllows web tests to specify the target device scale for the test cases.
--test-gl-libFlag used for Linux tests: for desktop GL bindings, try to load this GL library first, but fall back to regular library if loading fails.
--test-third-party-cookie-phaseout--test-typeType of the current test harness ("browser" or "ui" or "gpu").
--tint-dc-layerTint `SwapChainPresenter` with the following colors: - Decode swap chain: blue - VP blit: magenta - VP blit w/ staging texture: orange - MF proxy surface: green This is similar to `HKLM\Software\Microsoft\Windows\DWM` `OverlayTestMode=1` in DWM, but to help understand `SwapChainPresenter` state.
--top-chrome-webuiIndicates that this RenderProcess is hosting a Top Chrome WebUI.
--top-controls-hide-thresholdPercentage of the browser controls need to be hidden before they will auto hide.
--top-controls-show-thresholdPercentage of the browser controls need to be shown before they will auto show.
--touch-devicesTells chrome to interpret events from these devices as touch events. Only available with XInput 2 (i.e. X server 1.8 or above). The id's of the devices can be retrieved from 'xinput list'.
--touch-eventsEnable support for touch event feature detection.
--touch-slop-distanceOverrides touch slop distance for gesture detection. The touch slop distance is the maximum distance from the starting point of a touch sequence that a gesture can travel before it can no longer be considered a tap. Scroll gestures can only begin after this distance has been travelled. The switch value is a floating point number that is interpreted as a distance in pixels.
--translate-ranker-model-urlOverrides the URL from which the translate ranker model is downloaded.
--translate-script-urlOverrides the default server used for Google Translate.
--translate-security-originOverrides security-origin with which Translate runs in an isolated world.
--try-supported-channel-layoutsInstead of always using the hardware channel layout, check if a driver supports the source channel layout. Avoids outputting empty channels and permits drivers to enable stereo to multichannel expansion. Kept behind a flag since some drivers lie about supported layouts and hang when used. See http://crbug.com/259165 for more details.
--typeThe value of this switch determines whether the process is started as a renderer or plugin host. If it's empty, it's the browser.
--ui-show-composited-layer-borders--ui-show-fps-counter--ui-show-layer-animation-bounds--ui-show-property-changed-rects--ui-show-screenspace-rects--ui-show-surface-damage-rects--unbounded-window-debugEnables debug mode for unbounded windows (draws a red border).
--use-adapter-luidInitialize the GPU process using the adapter with the specified LUID. This is only used on Windows, as LUID is a Windows specific structure.
--use-angleSelect which ANGLE backend to use. Options are: default: Attempts several ANGLE renderers until one successfully initializes, varying ES support by platform. d3d9: Legacy D3D9 renderer, ES2 only. d3d11: D3D11 renderer, ES2 and ES3. warp: D3D11 renderer using software rasterization, ES2 and ES3. gl: Desktop GL renderer, ES2 and ES3. gles: GLES renderer, ES2 and ES3.
--use-cmd-decoderUse the Pass-through command decoder, skipping all validation and state tracking. Switch lives in ui/gl because it affects the GL binding initialization on platforms that would otherwise not default to using EGL bindings.
--use-context-snapshotSwitch supplied to the renderer if the feature `kUseContextSnapshot` is enabled. A switch is used as at the time the renderer needs this information features have not yet been loaded.
--use-crasUse CRAS, the ChromeOS audio server.
--use-dynamic-angleUse ANGLE shared libraries even if ANGLE is built as a static library.
--use-fake-device-for-media-streamUse fake device for Media Stream to replace actual camera and microphone. For the list of allowed parameters, see FakeVideoCaptureDeviceFactory::ParseFakeDevicesConfigFromOptionsString().
--use-fake-ui-for-digital-identityBypass the digital-identity-credential OS call. Simulate the user accepting the OS-presented dialog.
--use-fake-ui-for-fedcmBypass the FedCM account selection dialog. If a value is provided for this switch, that account ID is selected, otherwise the first account is chosen.
--use-fake-ui-for-media-streamBypass the media stream infobar by selecting the default device for media streams (e.g. WebRTC). Works with --use-fake-device-for-media-stream. Prefer --auto-accept-camera-and-microphone-capture which does not interact with screen/tab capture.
--use-file-for-fake-audio-capturePlay a .wav file as the microphone. Note that for WebRTC calls we'll treat the bits as if they came from the microphone, which means you should disable audio processing (lest your audio file will play back distorted). The input file is converted to suit Chrome's audio buses if necessary, so most sane .wav files should work. You can pass either <path> to play the file looping or <path>%noloop to stop after playing the file to completion. Must also be used with kDisableAudioInput or kUseFakeDeviceForMediaStream.
--use-file-for-fake-video-captureUse an .y4m file to play as the webcam. See the comments in media/capture/video/file_video_capture_device.h for more details.
--use-glSelect which implementation of GL the GPU process should use. Options are: desktop: whatever desktop OpenGL the user has installed (Linux and Mac default). egl: whatever EGL / GLES2 the user has installed (Windows default - actually ANGLE). swiftshader: The SwiftShader software renderer.
--use-gpu-in-testsUse hardware gpu, if available, for tests.
--use-vulkanEnable Vulkan support and select Vulkan implementation, must also have ENABLE_VULKAN defined. This only initializes Vulkan, the flag --enable-features=Vulkan must also be used to select Vulkan for compositing and rasterization.
--use-wayland-explicit-grabUse explicit grab when opening popup windows. See https://crbug.com/1220274
--use-webgpu-adapterThe adapter to use for WebGPU content.
--use-webgpu-power-preferenceThe adapter selecting strategy related to GPUPowerPreference.
--user-gesture-requiredAutoplay policy to require a user gesture in order to play.
--utilityCauses the process to run as a utility subprocess.
--utility-cmd-prefixThe contents of this flag are prepended to the utility process command line. Useful values might be "valgrind" or "xterm -e gdb --args".
--utility-startup-dialogCauses the utility process to display a dialog on launch.
--utility-sub-typeThis switch indicates the type of a utility process. It does not affect the services offered by the process, but is added to the command line to make it easier to identify the purpose of the utility process.
--v8-cache-optionsSet options to cache V8 data. (none, code, or default)
--validatingThe command decoder names that can be passed to --use-cmd-decoder.
--variations-insecure-server-urlSpecifies a custom URL for the server to use as an insecure fallback when requests to |kVariationsServerURL| fail. Requests to this URL will be encrypted.
--variations-override-countryAllows overriding the country used for evaluating variations. This is similar to the "Override Variations Country" entry on chrome://translate-internals, but is exposed as a command-line flag to allow testing First Run scenarios. Additionally, unlike chrome://translate-internals, the value isn't persisted across sessions.
--variations-override-geo-level-1Allows overriding the administrative area code used for evaluating variations and regional eligibility features.
--variations-seed-corpusSpecifies the value of the variations seed corpus to use. When unspecified or unrecognized, the default corpus will be used.
--variations-seed-fetch-intervalOverride the time interval between each variation seed fetches. Unit is in minutes. The minimum is 1 minute. The default is 30 minutes.
--variations-seed-versionUsed to share variations seed version with child processes.
--variations-server-urlSpecifies a custom URL for the server which reports variation data to the client. Specifying this switch enables the Variations service on unofficial builds. See variations_service.cc.
--variations-state-fileUse features defined in the value. Use this flag to reproduce experiments related issues. Copy 'Command-line Variations' value from chrome://version page. Save it to a file and pass it via this flag. The value is a base64 encoded JSON format produced by `variations::VariationsCommandLine::WriteToString`.
--variations-test-seed-pathSpecifies the location of a seed file for Local State's seed to be populated from. The seed file must be in json format with the keys |kVariationsCompressedSeed| and |kVariationsSeedSignature|.
--video-image-texture-targetTexture target for CHROMIUM_image backed video frame textures.
--video-threadsSet number of threads to use for video decoding.
--vulkan--vulkan-heap-memory-limit-mbSpecifies the heap limit for Vulkan memory.
--vulkan-null--vulkan-sync-cpu-memory-limit-mbSpecifies the sync CPU limit for total Vulkan memory.
--wait-for-debugger-childrenWill add kWaitForDebugger to every child processes. If a value is passed, it will be used as a filter to determine if the child process should have the kWaitForDebugger flag passed on or not.
--wait-for-debugger-on-navigationOn every navigation a message with the renderer's URL will be logged and the renderer will wait for a debugger to be attached or SIGUSR1 to be sent to continue execution.
--wait-for-debugger-webuiFlag used by WebUI test runners to wait for debugger to be attached.
--wallet-service-use-sandboxUse the sandbox Online Wallet service URL (for developer testing).
--waveout-buffersNumber of buffers to use for WaveOut.
--wayland-text-input-versionSpecify wayland text-input protocol version. Defaults to "1" for text-input-v1. Can specify value "3" for experimental text-input-v3 support.
--web-otp-backendEnables specified backend for the Web OTP API.
--web-otp-backend-autoEnables auto backend selection for Web OTP API.
--web-otp-backend-sms-verificationEnables Sms Verification backend for Web OTP API which requires app hash in SMS body.
--web-otp-backend-user-consentEnables User Consent backend for Web OTP API.
--web-settings-for-testingAllows web tests to specify additional web settings for the test cases.
--webauthn-remote-desktop-supportAllows trusted remote desktop clients to make WebAuthn requests on behalf of other origins. This switch only controls availability of the `remoteDesktopClientOverride` extension but doesn't by itself enable any origin to use it.
--webgl-antialiasing-modeSet the antialiasing method used for webgl. (none, explicit, implicit)
--webgl-msaa-sample-countSet a default sample count for webgl if msaa is enabled.
--webrtc-event-loggingEnable capture and local storage of WebRTC event logs without visiting chrome://webrtc-internals. This is useful for automated testing. It accepts the path to which the local logs would be stored. Disabling is not possible without restarting the browser and relaunching without this flag.
--webview-draw-functor-uses-vulkanIndicate that the this is being used by Android WebView and its draw functor is using vulkan.
--yuy2--zygoteCauses the process to run as a zygote.
--zygote-cmd-prefixThe prefix used when starting the zygote process. (i.e. 'gdb --args')