Select Page

Google Chrome exhaustive command line switches

Google Chrome exhaustive command line switches

Google Chrome Command Line Switches

While a lot of them are not interesting for the casual user, some are really interesting for us developers. I put at the top the most interesting one in bold, aka the one I use always.

From the source file at The list of switches is evolving so consider looking at source code to check for changes. Right click on Google Chrome desktop icon and use properties





Enable syncing bookmarks to a Google Account.


Causes the browser to launch directly in incognito mode.

–disable-hang-monitorSuppresses hang monitor dialogs in renderer processes.
–disable-metricsCompletely disables UMA metrics system.
–disable-metrics-reportingDisables 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.
–assert-testCauses the browser process to throw an assertion on startup.
–renderer-assert-testCauses the renderer process to throw an assertion on launch.
–crash-testCauses the browser process to crash on startup.
–renderer-crash-testCauses the renderer process to crash on launch.
–renderer-startup-dialogCauses the renderer process to display a dialog on launch.
–plugin-startup-dialogCauses the plugin process to display a dialog on launch.
–testshell-startup-dialogCauses the test shell process to display a dialog on launch.
–plugin-launcher="path\to\purify /Run=yes"
Specifies a command that should be used to launch the plugin process. Useful
for running the plugin process through purify or quantify.
–channelThe value of this switch tells the child process which
IPC channel the browser expects to use to communicate with it.
–testing-channelThe value of this switch tells the app to listen for and broadcast
testing-related messages on IPC channel with the given ID.
–homepageThe 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
–start-renderers-manuallyWhen 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.)
–rendererCauses the process to run as renderer instead of as browser.
–renderer-pathPath to the exe to run for the renderer subprocess
–pluginCauses the process to run as plugin host
–single-processRuns the renderer and plugins in the same process as the browser
–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).
–process-per-siteRuns 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).
–in-process-pluginsRuns plugins inside the renderer process
–no-sandboxRuns the renderer outside the sandbox.
–safe-pluginsRuns the plugin processes inside the sandbox.
–trusted-pluginsExcludes these plugins from the plugin sandbox.
This is a comma separated list of plugin dlls name and activex clsid.
–test-sandboxRuns the security test for the sandbox.
–user-data-dirSpecifies the user data directory, which is where the browser will look
for all of its state.
–appSpecifies that the associated value should be launched in "application" mode.
–upload-fileSpecifies the file that should be uploaded to the provided application. This
switch is expected to be used with –app option.
–dom-automationSpecifies 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.
–plugin-pathTells the plugin process the path of the plugin to load
–js-flagsSpecifies the flags passed to JS engine
–geoidThe 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 .
–langThe language file that we want to try to open. Of the form
language[-country] where language is the 2 letter code from ISO-639.
–debug-childrenWill 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.
–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.
–log-filter-prefixWill filter log messages to show only the messages that are prefixed
with the specified value
–enable-loggingForce logging to be enabled. Logging is disabled by default in release
–disable-loggingForce logging to be disabled. Logging is enabled by default in debug
–log-levelSets the minimum log level. Valid values are from 0 to 3:
–dump-histograms-on-exitDump any accumualted histograms to the log when browser terminates (requires
logging to be enabled to really do anything). Used by developers and test
–remote-shell-portenable remote debug / automation shell on the specified port
–uninstallRuns un-installation steps that were done by chrome first-run.
–omnibox-popup-countNumber of entries to show in the omnibox popup.
–automation-channelThe value of this switch tells the app to listen for and broadcast
automation-related messages on IPC channel with the given ID.
–restore-last-sessionIndicates the last session should be restored on startup. This overrides
the preferences value and is primarily intended for testing.
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.
–no-eventsDon’t record/playback events when using record & playback.
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.
–make-default-browserMake Chrome default browser
–proxy-serverUse a specified proxy server, overrides system settings. This switch only
affects HTTP and HTTPS requests.
Chrome will support prefetching of DNS information. Until this becomes
the default, we’ll provide a command line switch.
–debug-printEnables support to debug printing subsystem.
–allow-all-activexAllow 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 (to avoid
dependency on chrome module). Please change both locations at the same time.
–disable-dev-toolsBrowser flag to disable the web inspector for all renderers.
–always-enable-dev-toolsEnable 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.
–tab-count-to-load-on-session-restoreUsed to set the value of SessionRestore::num_tabs_to_load_. See
session_restore.h for details.
const wchar_t kTabCountToLoadOnSessionRestore[] =
–memory-profileEnable dynamic loading of the Memory Profiler DLL, which will trace
all memory allocations during the run.
–memory-modelConfigure 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.
–enable-file-cookiesBy default, cookies are not allowed on file://. They are needed in for
testing, for example page cycler and layout tests. See bug 1157243.
–start-maximizedStart 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.
–enable-watchdogSpawn 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.
–first-runDisplay the First Run experience when the browser is started, regardless of
whether or not it’s actually the first run.
–message-loop-histogrammerEnable 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.
–importPerform importing from another browser. The value associated with this
setting encodes the target browser and what items to import.
–silent-dump-on-dcheckChange the DCHECKS to dump memory and continue instead of crashing.
This is valid only in Release mode when –enable-dcheck is specified.
–disable-prompt-on-repostNormally 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-popup-blockingDisable pop-up blocking.
–disable-javascriptDon’t execute JavaScript (browser JS like the new tab page still runs).
–disable-javaPrevent Java from running.
–disable-pluginsPrevent plugins from running.
–disable-imagesPrevent images from loading.
–use-lf-heapUse the low fragmentation heap for the CRT.
–gears-plugin-pathDebug only switch to specify which gears plugin dll to load.
–gears-in-rendererSwitch to load Gears in the renderer process.
–new-httpEnable new HTTP stack.
–javascript-debugger-pathAllow loading of the javascript debugger UI from the filesystem.


0 0 votes
Article Rating
Notify of
Inline Feedbacks
View all comments


Would love your thoughts, please comment.x