Many tools maintain a list of runtime flags for Chrome to configure the environment. This file is an attempt to document all chrome flags that are relevant to tools, automation, benchmarking, etc.
All use cases are different, so you’ll have to choose which flags are most appropriate.
--disable-extensions
Disable all chrome extensions.
--disable-component-extensions-with-background-pages
Disable some built-in extensions that aren’t affected by --disable-extensions
--disable-background-networking
Disable various background network services, including extension updating, safe browsing service, upgrade detector, translate, UMA
--disable-sync
Disable syncing to a Google account
--metrics-recording-only
Disable reporting to UMA, but allows for collection
--disable-default-apps
Disable installation of default apps on first run
--mute-audio
Mute any audio
--no-default-browser-check
Disable the default browser check, do not prompt to set it as such
--no-first-run
Skip first run wizards
--disable-background-timer-throttling
Disable timers being throttled in background pages/tabs
--disable-client-side-phishing-detection
Disables client-side phishing detection.
--disable-popup-blocking
Disable popup blocking. --block-new-web-contents
is the strict version of this.
--disable-prompt-on-repost
Reloading a page that came from a POST normally prompts the user.
--enable-automation
Disable a few things considered not appropriate for automation. (Original design doc) codesearch
--disable-save-password-bubble
flag)--password-store=basic
Avoid potential instability of using Gnome Keyring or KDE wallet. crbug.com/571003
--use-mock-keychain
Use mock keychain on Mac to prevent blocking permissions dialogs
--test-type
Basically the 2014 version of --enable-automation
. codesearch
--disable-browser-side-navigation
Disable PlzNavigate.
These flags are being used in various tools. They also just need to be documented with their effects and confirmed as still present in Chrome.
--process-per-tab
--new-window
--allow-running-insecure-content
--silent-debugger-extension-api
--disable-notifications
--disable-desktop-notifications
--disable-component-update
--disable-background-downloads
--disable-add-to-shelf
--disable-datasaver-prompt
--disable-domain-reliability
--disable-breakpad # Disable crashdump collection (reporting is already disabled in Chromium)
--disable-features=site-per-process # Disables OOPIF. https://www.chromium.org/Home/chromium-security/site-isolation
--disable-hang-monitor
--disable-backgrounding-occluded-windows
--disable-ipc-flooding-protection # https://crrev.com/604305
--disable-renderer-backgrounding # This disables non-foreground tabs from getting a lower process priority
# This doesn't (on its own) affect timers or painting behavior.
# https://github.com/karma-runner/karma-chrome-launcher/issues/123
--remote-debugging-pipe # more secure than using protocol over a websocket
--enable-logging=stderr # Logging behavior slightly more appropriate for a server-type process.
--log-level=0 # 0 means INFO and higher.
--block-new-web-contents # All pop-ups and calls to window.open will fail.
--js-flags=--random-seed=1157259157 --no-script-streaming
--autoplay-policy=user-gesture-required # Don't render video
--disable-dev-shm-usage # https://github.com/GoogleChrome/puppeteer/issues/1834
--no-sandbox # often used with headless, though ideally you don't need to.
# Headless rendering stuff I definitely don't understand
--run-all-compositor-stages-before-draw
--disable-new-content-rendering-timeout
--enable-features=SurfaceSynchronization
--disable-threaded-animation
--disable-threaded-scrolling
--disable-checker-imaging
--disable-image-animation-resync
--use-gl="" # use angle/swiftshader?
--disable-translate
~Removed April 2017 Used to disable built-in Google Translate service.
--ignore-autoplay-restrictions
~Removed December 2017 Can use --autoplay-policy=no-user-gesture-required
instead.