Google Chrome Command Line Switches
From the
source file chrome_switches.cc
I wasn't able to find a list of all the current command line
flags for chrome.exe, so here they are (this may be outdated now, see the above source file for the latest version):
Suppresses hang monitor dialogs in renderer processes.
--disable-hang-monitor
Completely disables UMA metrics system.
--disable-metrics
Disables only the sending of metrics reports. In contrast to
kDisableMetrics, this executes all the code that a normal client
would use
for reporting, except the report is dropped rather than sent to the
server.
This is useful for finding issues in the metrics code during UI and
performance tests.
--disable-metrics-reporting
Causes the browser process to throw an assertion on startup.
--assert-test
Causes the renderer process to throw an assertion on launch.
--renderer-assert-test
Causes the browser process to crash on startup.
--crash-test
Causes the renderer process to crash on launch.
--renderer-crash-test
Causes the renderer process to display a dialog on launch.
--renderer-startup-dialog
Causes the plugin process to display a dialog on launch.
--plugin-startup-dialog
Causes the test shell process to display a dialog on launch.
--testshell-startup-dialog
Specifies a command that should be used to launch the plugin
process. Useful
for running the plugin process through purify or quantify. Ex:
--plugin-launcher="path\to\purify
/Run=yes"
--plugin-launcher
The value of this switch tells the child process which
IPC channel the browser expects to use to communicate with it.
--channel
The value of this switch tells the app to listen for and broadcast
testing-related messages on IPC channel with the given ID.
--testing-channel
The value of this switch specifies which page will be displayed
in newly-opened tabs. We need this for testing purposes so
that the UI tests don't depend on what comes up for
http://google.com.
--homepage
When this switch is present, the browser will throw up a dialog box
asking the user to start a renderer process independently rather
than launching the renderer itself. (This is useful for debugging.)
--start-renderers-manually
Causes the process to run as renderer instead of as browser.
--renderer
Path to the exe to run for the renderer subprocess
--renderer-path
Causes the process to run as plugin host
--plugin
Runs the renderer and plugins in the same process as the browser
--single-process
Runs 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).
--process-per-tab
Runs a single process for each site (i.e., group of pages from the
same
registered domain) the user visits. 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).
--process-per-site
Runs plugins inside the renderer process
--in-process-plugins
Runs the renderer outside the sandbox.
--no-sandbox
Runs the plugin processes inside the sandbox.
--safe-plugins
Excludes these plugins from the plugin sandbox.
This is a comma separated list of plugin dlls name and activex clsid.
--trusted-plugins
Runs the security test for the sandbox.
--test-sandbox
Specifies the user data directory, which is where the browser will
look
for all of its state.
--user-data-dir
Specifies that the associated value should be launched in
"application" mode.
--app
Specifies the file that should be uploaded to the provided
application. This
switch is expected to be used with --app option.
--upload-file
Specifies if the dom_automation_controller_ 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.
--dom-automation
Tells the plugin process the path of the plugin to load
--plugin-path
Specifies the flags passed to JS engine
--js-flags
The GeoID we should use. This is normally obtained from the
operating system
during first run and cached in the preferences afterwards. This is a
numeric
value; see http://msdn.microsoft.com/en-us/library/ms776390.aspx .
--geoid
The language file that we want to try to open. Of the form
language[-country] where language is the 2 letter code from ISO-639.
--lang
Will add kDebugOnStart 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
kDebugOnStart flag passed on or not.
--debug-children
Will 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-children
Will filter log messages to show only the messages that are prefixed
with the specified value
--log-filter-prefix
Force logging to be enabled. Logging is disabled by default in
release
builds.
--enable-logging
Force logging to be disabled. Logging is enabled by default in debug
builds.
--disable-logging
Sets the minimum log level. Valid values are from 0 to 3:
INFO = 0, WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3.
--log-level
Dump any accumualted histograms to the log when browser terminates
(requires
logging to be enabled to really do anything). Used by developers and
test
scripts.
--dump-histograms-on-exit
enable remote debug / automation shell on the specified port
--remote-shell-port
Runs un-installation steps that were done by chrome first-run.
--uninstall
Number of entries to show in the omnibox popup.
--omnibox-popup-count
The value of this switch tells the app to listen for and broadcast
automation-related messages on IPC channel with the given ID.
--automation-channel
Indicates the last session should be restored on startup. This
overrides
the preferences value and is primarily intended for testing.
--restore-last-session
Chrome supports a playback and record mode. Record mode saves
*everything*
to the cache. Playback mode reads data exclusively from the cache.
This
allows us to record a session into the cache and then replay it at
will.
--record-mode
--playback-mode
Don't record/playback events when using record & playback.
--no-events
Make Windows happy by allowing it to show "Enable access to this
program"
checkbox in Add/Remove Programs->Set Program Access and Defaults.
This
only shows an error box because the only way to hide Chrome is by
uninstalling it.
--hide-icons
--show-icons
Make Chrome default browser
--make-default-browser
Use a specified proxy server, overrides system settings. This switch
only
affects HTTP and HTTPS requests.
--proxy-server
Chrome will support prefetching of DNS information. Until this
becomes
the default, we'll provide a command line switch.
--dns-log-details
--dns-prefetch-disable
Enables support to debug printing subsystem.
--debug-print
Allow initialization of all activex controls. This is only to help
website
developers test their controls to see if they are compatible in
Chrome.
Note there's a duplicate value in activex_shared.cc (to avoid
dependency on chrome module). Please change both locations at the
same time.
--allow-all-activex
Browser flag to disable the web inspector for all renderers.
--disable-dev-tools
Enable web inspector for all windows, even if they're part of the
browser.
Allows us to use our dev tools to debug browser windows itself.
--always-enable-dev-tools
Used to set the value of SessionRestore::num_tabs_to_load_. See
session_restore.h for details.
const wchar_t kTabCountToLoadOnSessionRestore[] =
--tab-count-to-load-on-session-restore
Enable dynamic loading of the Memory Profiler DLL, which will trace
all memory allocations during the run.
--memory-profile
Configure Chrome's memory model.
Does chrome really need multiple memory models? No. But we get a lot
of concerns from individuals about how the changes work on *their*
system, and we need to be able to experiment with a few choices.
--memory-model
By default, cookies are not allowed on file://. They are needed in
for
testing, for example page cycler and layout tests. See bug 1157243.
--enable-file-cookies
Start the browser maximized, regardless of any previous settings.
TODO(pjohnson): Remove this once bug 1137420 is fixed. We are using
this
as a workaround for not being able to use moveTo and resizeTo on a
top-level window.
--start-maximized
Spawn threads to watch for excessive delays in specified message
loops.
User should set breakpoints on Alarm() to examine problematic thread.
Usage: -enable-watchdog=[ui][io]
Order of the listed sub-arguments does not matter.
--enable-watchdog
Display the First Run experience when the browser is started,
regardless of
whether or not it's actually the first run.
--first-run
Enable histograming of tasks served by MessageLoop. See
about:histograms/Loop
for results, which show frequency of messages on each thread,
including APC
count, object signalling count, etc.
--message-loop-histogrammer
Perform importing from another browser. The value associated with
this
setting encodes the target browser and what items to import.
--import
Change the DCHECKS to dump memory and continue instead of crashing.
This is valid only in Release mode when --enable-dcheck is specified.
--silent-dump-on-dcheck
Normally when the user attempts to navigate to a page that was the
result of
a post we prompt to make sure they want to. This switch may be used
to
disable that check. This switch is used during automated testing.
--disable-prompt-on-repost
Disable pop-up blocking.
--disable-popup-blocking
Don't execute JavaScript (browser JS like the new tab page still
runs).
--disable-javascript
Prevent Java from running.
--disable-java
Prevent plugins from running.
--disable-plugins
Prevent images from loading.
--disable-images
Use the low fragmentation heap for the CRT.
--use-lf-heap
Debug only switch to specify which gears plugin dll to load.
--gears-plugin-path
Switch to load Gears in the renderer process.
--gears-in-renderer
Enable new HTTP stack.
--new-http
Allow loading of the javascript debugger UI from the filesystem.
--javascript-debugger-path
--enable-p13n