a code notepad

Chrome/Chromium startup flags

Recently I discovered the chrome://flags page, and there was much rejoicing, of course, there's even more things you can do at startup than there are on the chrome://flags. I decide to compile a complete list from and You can browse the full source at - and you can find lots of info at

Update: I've just found Peter Beverloo's list here which has even more. However I know for sure all functioning switches aren't listed in because I use --disable-web-security every day.

Chrome/Chromium switches.


Enables or disables the "action box" UI in the toolbar.


Allows third-party content included on a page to prompt for a HTTP basic auth username/password pair.


On ChromeOS, file:access is disabled except for certain whitelisted directories. This switch re-enables file:for testing.


Allows non-https URL for background_page for hosted apps.


Allows the browser to load extensions that lack a modern manifest when that would otherwise be forbidden.


Don't block outdated plugins.


By default, an https page cannot run JavaScript, CSS or plug-ins from http URLs. This provides an override to get the old insecure behavior.


Allows injecting extensions and user scripts on the extensions gallery site. Normally prevented for security reasons, but can be useful for automation testing of the gallery.


Prevents Chrome from requiring authorization to run certain widely installed but less commonly used plug-ins.


Specifies that the extension-app with the specified id should be launched according to its configuration.


Specifies that the associated value should be launched in "application" mode.


Flag to enable apps_devtool app.


Specifies the initial size for application windows launched with --app. --app-window-size=w,h


A URL for the server which assigns channel ids for server pushed app notifications.


Overrides the apps checkout URL, which is used to determine when to expose some private APIs.


The URL that the webstore APIs download extensions from. Note: the URL must contain one %s (ie. for a replacable string) for the extension ID.


A setting to cause extension/app installs from the webstore skip the normal confirmation dialog. A value of 'accept' means to always act as if the dialog was accepted, and 'cancel' means to always act as if the dialog was cancelled.


The update url used by gallery/webstore extensions.


Value of OAuth2 refresh token for --force-app-mode.


Whether to always use the new app install bubble when installing an app.


Disable throbber for extension apps.


Whitelist of servers that Negotiate will generate delegated Kerberos tickets for.


Whitelist of servers which NTLM and Negotiate can automatically authenticate with using the default credentials of the currently logged in user.


A flag that is used to tell Chrome that it was launched automatically at computer startup and not by some user action.


Flag used to tell Chrome the base url of the Autofill service.


The value of this switch tells the app to listen for and broadcast automation-related messages on IPC channel with the given ID.


Causes the automation provider to reinitialize its IPC channel instead of shutting down when a client disconnects.


Checks the cloud print connector policy, informing the service process if the policy is set to disallow the connector, then quits.


Tells chrome to load the specified version of chrome.dll on Windows. If this version cannot be loaded, Chrome will exit.


Comma-separated list of SSL cipher suites to disable.


Clears the token service before using it. This allows simulating the expiration of credentials during testing.


Used with kCloudPrintFile. Tells Chrome to delete the file when finished displaying the print dialog.


Tells chrome to display the cloud print dialog and upload the specified file for printing.


Specifies the mime type to be used when uploading data from the file referenced by cloud-print-file. Defaults to "application/pdf" if unspecified.


Used with kCloudPrintFile to specify a JSON print ticket for the resulting print job. Defaults to null if unspecified.


Used with kCloudPrintFile to specify a title for the resulting print job.


The unique id to be used for this cloud print proxy instance.


The URL of the cloud print service to use, overrides any value stored in preferences, and the default. Only used if the cloud print service has been enabled (see enable-cloud-print).


Comma-separated options to troubleshoot the component updater. Only valid for the browser process.


Causes the browser process to inspect loaded and registered DLLs for known conflicts and warn the user.


Toggles a new version of the content settings dialog in options.


The Country we should use. This is normally obtained from the operating system during first run and cached in the preferences afterwards. This is a string value, the 2 letter code from ISO 3166-1.


Comma-separated list of BrowserThreads that cause browser process to crash if the given browser thread is not responsive. UI,IO,DB,FILE,CACHE are the list of BrowserThreads that are supported.

For example:

--crash-on-hang-threads=UI:3:18,IO:3:18 --> Crash the browser if UI or IO is not responsive for 18 seconds and the number of browser threads that are responding is less than or equal to 3.


Some platforms like ChromeOS default to empty desktop. Browser tests may need to add this switch so that at least one browser instance is created on startup.


Adds debugging entries such as Inspect Element to context menus of packed apps.


Enables support to debug printing subsystem.


Specifies the URL at which to fetch configuration policy from the device management backend. Specifying this switch turns on managed policy from the device management backend.


Triggers a plethora of diagnostic modes.


Disables the experimental asynchronous DNS client.


Disables CNAME lookup of the host when generating the Kerberos SPN for a Negotiate challenge. See HttpAuthHandlerNegotiate::CreateSPN for more background.


Disable several subsystems which run network requests in the background. This is for use when doing network performance testing to avoid noise in the measurements.


Disables the bundled PPAPI version of Flash.


Disables the bookmark autocomplete provider (BookmarkProvider).


Disables establishing certificate revocation information by downloading a set of CRLs rather than performing on-line checks.


Disables the custom JumpList on Windows 7.


Disables installation of default apps on first run. This is used during automated testing.


Disables retrieval of PAC URLs from DHCP as per the WPAD standard.


Disable extensions.


Disable checking for user opt-in for extensions that want to inject script into file URLs (ie, always allow it). This is used during automated testing.


Disables improved SafeBrowsing download protection.


Disables IP Pooling within the networks stack (SPDY only). When a connection is needed for a domain which shares an IP with an existing connection, attempt to use the existing connection.


Disables the menu on the NTP for accessing sessions from other devices.


Disable pop-up blocking.


Disable speculative TCP/IP preconnection.


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.


Prevents the URLs of BackgroundContents from being remembered and re-launched when the browser restarts.


Disables throttling prints initiated by scripts.


Disables syncing of app settings.


Disables syncing of apps.


Disable syncing app notifications.


Disables syncing of autofill.


Disables syncing of autofill Profile.


Disables syncing of bookmarks.


Disables syncing of dictionary.


Disables syncing extension settings.


Disables syncing of extensions.


Disables syncing of history delete directives.


Disables syncing of preferences.


Disable syncing custom search engines.


Disables syncing browser sessions. Will override kEnableSyncTabs.


Disables syncing of themes.


Disables syncing browser typed urls.


Allows disabling of translate from the command line to assist with automated browser testing (e.g. Selenium/WebDriver). Normal browser users should disable translate with the preference.


Disables TLS Channel ID extension.


Disables the backend service for web resources.


Don't enforce the same-origin policy. (Used by people testing their sites.)


Disable Web Sockets support.


Disable web audio API


Disable WebGL support.


Some tests seem to require the application to close when the last browser window is closed. Thus, we need a switch to force this behavior for ChromeOS Aura, disable "zero window mode".


Forces the maximum disk space to be used by the disk cache, in bytes.


Undocumented, but self explanatory. Log DNS details.


Disables prefetching of DNS information.


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.


Enables the experimental asynchronous DNS client.


Enables the inclusion of non-standard ports when generating the Kerberos SPN in response to a Negotiate challenge. See HttpAuthHandlerNegotiate::CreateSPN for more background.


Enables the pre- and auto-login features. When a user signs in to sync, the browser's cookie jar is pre-filled with GAIA cookies. When the user visits a GAIA login page, an info bar can help the user login.


Enables the benchmarking extensions.


This applies only when the process type is "service". Enables the Cloud Print Proxy component within the service process.


Enables fetching the user's contacts from Google and showing them in the Chrome OS apps list.


Enables web developers to create apps for Chrome without using crx packages.


Enables desktop guest mode.


If true devtools experimental settings are enabled.


Enables an interactive autocomplete UI and a way to invoke this UI from WebKit by enabling HTMLFormElement#requestAutocomplete (and associated autocomplete events and logic).


Enables extensions to be easily installed from sites other than the web store. Without this flag, they can still be installed, but must be manually dragged onto chrome://extensions/.


Enables extension APIs that are in development.


Enables or disables showing extensions in the action box.


By default, cookies are not allowed on file://. They are needed for testing, for example page cycler and layout tests.


Enables Google Now integration.


Enable Instant extended API.


Enables IPv6 support, even if probes suggest that it may not be fully supported. Some probes may require internet connections, and this flag will allow support independent of application testing. This flag overrides --disable-ipv6 which appears elswhere in this file.


Enables the IPC fuzzer for reliability testing


Enables IP Pooling within the networks stack (SPDY only). When a connection is needed for a domain which shares an IP with an existing connection, attempt to use the existing connection.


Enables support for user profiles that are managed by another user and can have restrictions applied.


Allows reporting memory info (JS heap size) to page.


Enables metrics recording and reporting in the browser startup sequence, as if this was an official Chrome build where the user allowed metrics reporting. This is used for testing only.


Runs the Native Client inside the renderer process and enables GPU plugin (internally adds lEnableGpuPlugin to the command line).


Enables debugging via RSP over a socket.


Uses NaCl manifest URL to choose whether NaCl program will be debugged by debug stub. // Switch value format: [!]pattern1,pattern2,...,patternN. Each pattern uses the same syntax as patterns in Chrome extension manifest. The only difference is that * scheme matches all schemes instead of matching only http and https. If the value doesn't start with !, a program will be debugged if manifest URL matches any pattern. If the value starts with !, a program will be debugged if manifest URL does not match any pattern.


Enables hardware exception handling via debugger process.


Enables the native messaging extensions API.


Enables the network-related benchmarking extensions.


Enables the new Autofill UI, which is part of the browser process rather than part of the renderer process.


Enables NPN and SPDY. In case server supports SPDY, browser will use SPDY.


Enables NPN with HTTP. It means NPN is enabled but SPDY won't be used. HTTP is still used for all requests.


Enables panels (always on-top docked pop-up windows).


Enables panel stacking support.


Enables password generation when we detect that the user is going through account creation.


Enables the installation and usage of Portable Native Client.


Enables tracking of tasks in profiler for viewing via about:profiler. To predominantly disable tracking (profiling), use the command line switch: --enable-profiling=0 Some tracking will still take place at startup, but it will be turned off during chrome_browser_main.


Enables query extraction in the omnibox.


Enables support for the QUIC protocol. This is a temporary testing flag.


Enables content settings based on host and plug-in in the user preferences.


Enable SPDY/3. This is a temporary testing flag.


Enable SPDY CREDENTIAL frame support. This is a temporary testing flag.


Enables auto correction for misspelled words.


Enables the stacked tabstrip.


Enables experimental suggestions pane in New Tab page.


Enables synced notifications.


Enables Alternate-Protocol when the port is user controlled (> 1024).


Uses WebSocket over SPDY.


Explicitly allows additional ports using a comma-separated list of port numbers.


The time in seconds that an extension event page can be idle before it is shut down.


The time in seconds that an extension event page has between being notified of its impending unload and that unload happening.


Marks a renderer as extension process.


Frequency in seconds for Extensions auto-update.


Fakes 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". Note that this only applies if the browser's reported channel is UNKNOWN.

--flag-switches-begin / --flag-switches-end

These two flags are added around the switches chrome:flags adds to the command line. This is useful to see which switches were added by chrome:flags on chrome:version. They don't have any effect.


Alternative feedback server to use when submitting user feedback


The file descriptor limit is set to the value of this switch, subject to the OS hard limits. Useful for testing that file descriptor exhaustion is handled gracefully.


Forces application mode. This hides certain system UI elements and forces the app to be installed if it hasn't been already.


Displays the First Run experience when the browser is started, regardless of whether or not it's actually the First Run (this overrides kNoFirstRun).


Tries to load cloud policy for every signed in user, regardless of whether they are a dasher user or not. Used to allow any GAIA account to be used for testing the cloud policy framework.


Enables using GAIA information to populate profile name and icon.


Specifies an alternate URL to use for retrieving the search domain for Google. Useful for testing.


Specifies a custom name for the GSSAPI library to load.

--help / --h

These flags show the man page on Linux. They are equivalent to each other.


Makes 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.


Disables full history sync.


Enables full history sync (not just typed URLs) for signed-in users.


Enables grouping websites by domain and filtering them by period.


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


Comma-separated list of rules that control how hostnames are mapped.

For example:

  • MAP * → Forces all hostnames to be mapped to
  • MAP * proxy → Forces all subdomains to be resolved to proxy.
  • MAP [::1]:77 → Forces to resolve to IPv6 loopback. Will also force the port of the resulting socket address to be 77.
  • MAP * baz, EXCLUDE → Remaps everything to baz, except for

These mappings apply to the endpoint host in a net::URLRequest (the TCP connect and host resolver in a direct connection, and the CONNECT in an http proxy connection, and the endpoint host in a SOCKS proxy connection).


The maximum number of concurrent host resolve requests (i.e. DNS) to allow (not counting backup attempts which would also consume threads). --host-resolver-retry-attempts must be set to zero for this to be exact.


The maximum number of retry attempts to resolve the host. Set this to zero to disable host resolver retry attempts.


Takes the JSON-formatted HSTS specification and loads it as if it were a preloaded HSTS entry. Takes precedence over both website-specified rules and built-in rules. The JSON format is the same as that persisted in <profile_dir>/Default/TransportSecurity


Causes net::URLFetchers to ignore requests for SSL client certificates, causing them to attempt an unauthenticated SSL/TLS session. This is intended for use when testing various service URLs (eg: kPromoServerURL, kInstantURL, kSbURLPrefix,kSyncServiceURL, kWalletServiceUrl, etc.)


Performs bookmark importing from an HTML file. The value associated with this setting encodes the file path. It may be used jointly with kImport.


Causes the browser to launch directly in incognito mode.


Causes Chrome to attempt to get metadata from the webstore for the app/extension ID given, and then prompt the user to download and install it.


Marks a renderer as an Instant process.


URL to use for instant. If specified this overrides the url from the TemplateURL.


Used for testing - keeps browser alive after last browser window closes.


Enable Kiosk mode.


Print automatically in kiosk mode. 'kKioskMode' must be set as well.


Causes Chrome to attempt to get metadata from the webstore for the given item, and then prompt the user to download and install it.


Loads an app from the specified directory and launches it.


Comma-separated list of directories with component extensions to load.


If present, disables the loading and application of cloud policy for signed-in users.


Loads an extension from the specified directory.


Loads the opencryptoki library into NSS at startup. This is only needed temporarily for developers who need to work on WiFi/VPN certificate code.


Enables displaying net log events on the command line, or writing the events to a separate file if a file name is given.


Uninstalls an extension with the specified extension id.


Starts the browser in managed mode.


Makes Chrome default browser


Forces the maximum disk space to be used by the media cache, in bytes.


Enables dynamic loading of the Memory Profiler DLL, which will trace all memory allocations during the run.


Enables 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.


Enables the recording of metrics reports but disables reporting. 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.


Enables multiprofile Chrome.


Native Client GDB debugger for loader. It needs switches calculated at run time in order to work correctly. That's why NaClLoadCmdPrefix flag can't be used.


GDB script to pass to the nacl-gdb debugger at startup.


On POSIX only: the contents of this flag are prepended to the nacl-loader command line. Useful values might be valgrind or xterm -e gdb --args.


List of native messaging hosts outside of the default location. Used for tests. The value must be comma-separate lists of key-value pairs separated equal sign. E.g. host1=/path/to/host1/manifest.json,host2=/path/host2.json.


Sets the base logging level for the net log. Log 0 logs the most data. Intended primarily for use with --log-net-log.


Disables the default browser check. Useful for UI/browser tests where we want to avoid having the default browser info-bar displayed.


By default, an https page can load images, fonts or frames from an http page. This switch overrides this to block this lesser mixed-content problem.


Don't record/playback events when using record & playback.


Disables all experiments set on chrome:flags. Does not disable chrome:flags itself. Useful if an experiment makes chrome crash at startup: One can start chrome with --no-experiments, disable the problematic lab at chrome:flags and then restart chrome without this switch again.


Skip First Run tasks, whether or not it's actually the First Run. Overridden by kForceFirstRun.

Also drops the First Run beacon so that First Run will not occur in subsequent runs as well.


Support a separate switch that enables the v8 playback extension. The extension causes javascript calls to and Math.random() to return consistent values, such that subsequent loads of the same page will result in consistent js-generated data and XHR requests. Pages may still be able to generate inconsistent data from plugins.


Starts the browser outside of managed mode.


Whether or not the browser should warn if the profile is on a network share. This flag is only relevant for Windows currently.


Don't send hyperlink auditing pings


Don't use a proxy server, always make direct connections. Overrides any other proxy server flags that are passed.


Disables the service process from adding itself as an autorun process. This does not delete existing autorun registrations, it just prevents the service from registering a new one.


Does not automatically open a browser window on startup (used when launching Chrome for the purpose of hosting background apps).


Specifies the maximum number of threads to use for running the Proxy Autoconfig (PAC) script.


When the option to block third-party cookies is enabled, only block third-party cookies from being set.


Simulates an organic Chrome install.


Force use of QUIC for requests over the specified port.


Packages an extension to a .crx installable file from a given directory.


Optional PEM private key to use in signing packaged .crx.


Specifies the path to the user data folder for the parent profile.


Launches PerformanceMonitor at startup, which will gather statistics about Chrome's CPU and memory usage, page load times, startup times, and network usage, and will also store information about events which may be of interest, such as extension-related occurrences and crashes. Optionally, this may be run with an integer value representing the interval between the timed metric gatherings, measured in seconds (if invalid or not provided, the default interval is used).


Enable the post crash analyzer which uploads detailed crash information in situations where a crash is determined to be particularly interesting.


Read previously recorded data from the cache. Only cached data is read. See kRecordMode.


Overrides the path to the location that PNaCl is installed.


Forces the PPAPI version of Flash (if it's being used) to run in the renderer process rather than in a separate plugin process.


Use the PPAPI (Pepper) Flash found at the given path.


Report the given version for the PPAPI (Pepper) Flash. The version should be numbers separated by .s (e.g., 12.3.456.78). If not specified, it defaults to 10.2.999.999.


Triggers prerendering of pages from suggestions in the omnibox. Only has an effect when Instant is either disabled or restricted to search, and when prerender is enabled.


These are the values the kPrerenderFromOmnibox switch may have, as in --prerender-from-omnibox=auto.

  • auto Allow field trial selection.
  • disabled No prerendering.
  • enabled Guaranteed prerendering.

Controls speculative prerendering of pages, and content prefetching. Both are dispatched from elements.


These are the values the kPrerenderMode switch may have, as in --prerender=auto.

  • auto Allow field trial selection in both prerender and prefetch.
  • disabled No prerendering or prefetching.
  • enabled Both prerendering and prefetching.
  • prefetch_only No prerendering, but enables prefetching.

Enable conversion from vector to raster for any page.


Outputs the product version information and quit. Used as an internal api to detect the installed version of Chrome on Linux.


Selects directory of profile to associate with the first browser launched.


Starts the sampling based profiler for the browser process at startup. This will only work if chrome has been built with the gyp variable profiling=1. The output will go to the value of kProfilingFile.


Specifies a location for profiling output. This will only work if chrome has been built with the gyp variable profiling=1. {pid} if present will be replaced by the pid of the process. {count} if present will be incremented each time a profile is generated for this process. The default is chrome-profile-{pid}.


Specifies a path for the output of task-level profiling which can be loaded and viewed in about:profiler.


Controls whether profile data is periodically flushed to a file. Normally the data gets written on exit but cases exist where chrome doesn't exit cleanly (especially when using single-process). A time in seconds can be specified.


Specifies a custom URL for fetching NTP promo data.


Should we prompt the user before allowing external extensions to install? Default is yes.


Forces proxy auto-detection.


Specifies a list of hosts for whom we bypass proxy settings and use direct connections. Ignored if --proxy-auto-detect or --no-proxy-server are also specified. This is a comma-separated list of bypass rules. See: net/proxy/proxy_bypass_rules.h for the format of these rules.


Uses the pac script at the given URL


Uses a specified proxy server, overrides system settings. This switch only affects HTTP and HTTPS requests.


Adds a Purge memory"button to the Task Manager, which tries to dump as much memory as possible. This is mostly useful for testing how well the MemoryPurger functionality works.

NOTE: This is only implemented for Views.


Capture resource consumption information through page cycling and output the data to the specified file.


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. See also kPlaybackMode.


Uses custom front-end URL for the remote debugging.


Does not show an infobar when an extension attaches to a page using chrome.debugger page. Required to attach to extension background pages.


Enables print preview in the renderer. This flag is generated internally by Chrome and does nothing when directly passed to the browser.


Forces a reset of the local passphrase of the managed user account, and the managed user settings dialog is shown where a new passphrase can be set.


Forces a reset of the one-time-randomized FieldTrials on this client, also known as the Chrome Variations state.


Indicates the last session should be restored on startup. This overrides the preferences value and is primarily intended for testing. The value of this switch is the number of tabs to wait until loaded before 'load completed' is sent to the ui_test.


Disable saving pages as HTML-only, disable saving pages as HTML Complete (with a directory of sub-resources). Enable only saving pages as MHTML.


URL prefix used by safebrowsing to fetch hash, download data and report malware.


If present, safebrowsing only performs update when SafeBrowsingProtocolManager::ForceScheduleNextUpdate() is explicitly called. This is used for testing only.


Disables safebrowsing feature that checks download url and downloads content's hash to make sure the content are not malicious.


Enable or diable the script bubble icon in the URL bar that tells you how many extensions are running scripts on a page.


Enables the showing of an info-bar instructing user they can search directly from the omnibox.


Sets a token in the token service, for testing.


If true the app list will be shown.


Annotates forms with Autofill field type predictions.


Makes component extensions appear in chrome://settings/extensions.


If true the alignment of the launcher can be changed.


Enables or disables sideload wipeout extension effort.


Changes the DCHECKS to dump memory and continue instead of displaying error dialog. This is valid only in Release mode when --enable-dcheck is specified.


Causes Chrome to launch without opening any windows by default. Useful if one wishes to use Chrome as an ash server.


Simulates an update being available.


Simulates a critical update being available.


Simulates that current version is outdated.


Socket reuse policy. The value should be of type enum ClientSocketReusePolicy.


Origin for which SpdyProxy authentication is supported.


Speculative resource prefetching.


Speculative resource prefetching will only learn about resources that need to be prefetched but will not prefetch them.


Speculative resource prefetching is enabled.


Specifies the maximum SSL/TLS version (ssl3, tls1, tls1.1, or tls1.2).


Specifies the minimum SSL/TLS version (ssl3, tls1, tls1.1, or tls1.2).


Starts the browser maximized, regardless of any previous settings.


Controls the width of time-of-day filters on the 'suggested' ntp page, in minutes.


Enables a normal distribution dropoff to the relevancy of visits with respect to the time of day.


Enables a linear dropoff to the relevancy of visits with respect to the time of day.


Allows insecure XMPP connections for sync (for testing).


Enable support for keystore key based encryption.


Defines the sync notification method, not documented, but I assume either ntp or xmpp - you'll have to look this one up though.


Overrides the default host:port used for sync notifications.


Overrides the default server used for profile sync.


Enables syncing of favicons as part of tab sync.


Makes the sync code to throw an unrecoverable error after initialization. Useful for testing unrecoverable error scenarios.


Tries to connect to XMPP using SSLTCP first (for testing).


Enables tab dragging to create a real browser.


Enables tab capture.


Passes the name of the current running automated test to Chrome.


Runs the security test for the NaCl loader sandbox.


Type of the current test harness ("browser" or "ui").


Tells the app to listen for and broadcast testing-related messages on IPC channel with the given ID.


Enables tracking the amount of non-idle time spent viewing pages.


Disables same-origin check on HTTP resources pushed via a SPDY proxy. The value is the host:port of the trusted proxy.


Experimental. Shows a dialog asking the user to try chrome. This flag is to be used only by the upgrade process.


Runs un-installation steps that were done by chrome first-run.


Uses Spdy for the transport protocol instead of HTTP. This is a temporary testing flag.


Disables use of the spelling web service and only provides suggestions. This will only work if asynchronous spell checking is not disabled.


Sets the maximum SPDY sessions per domain.


Sets the maximum concurrent streams over a SPDY session.


Specifies the user data directory, which is where the browser will look for all of its state.


Uses the ClientLogin signin flow instead of the web-based signin flow.


Specifies a custom URL for the server which reports variation data to the client. Specifying this switch enables the Variations service on unofficial builds. See


Prints version information and quits.


Requests that Chrome connect to a remote viewer process using an IPC channel of the given name.


Cycle through a series of URLs listed in the specified file.


Secure service URL for Online Wallet service. Used as the base url to escrow credit card numbers.


Service URL for Online Wallet service. Used as the base url for Online Wallet API calls.


Enable the "native services" feature of web-intents.


Specify the initial window position: --window-position=x,y


Specify the initial window size: --window-size=w,h


Uses WinHTTP to fetch and evaluate PAC scripts. Otherwise the default is to use Chromium's network stack to fetch, and V8 to evaluate.

When plugin installation is enabled


Specifies a custom URL for fetching plug-ins metadata. Used for testing.

Android specific switches


Enable SPDY proxy.


Pops the translate infobar if possible.


Uses the tablet specific UI components when available.

Chrome OS switches

For use when running Chrome/Chromium on ChromeOS.


When wallpaper boot animation is not disabled this switch is used to override OOBE/sign in WebUI init type. Possible values: parallel|postpone. Default: parallel.


Enables switching between different cellular carriers from the UI.


Disables wallpaper boot animation (except of OOBE case).


Disables Chrome Captive Portal detector, which initiates Captive Portal detection for new active networks.


Enables file prefetching in Google Drive Client for Chrome OS.


Avoid doing expensive animations upon login.


Avoid doing animations upon oobe.


Enable Kiosk app mode for ChromeOS.


Enables component extension that initializes background pages of certain hosted applications.


Enables Chrome Captive Portal detector, which initiates Captive Portal detection for new active networks.


Enables touchpad three-finger-click as middle button.


Enables touchpad three-finger swipe.


Enable Kiosk mode for ChromeOS.


Disable policy-configured local accounts.


Enables request of tablet site (via user agent override).


Enables static ip configuration. This flag should be removed when it's on by default.


Passed to Chrome on first boot. Not passed on restart after sign out.


Usually in browser tests the usual login manager bringup is skipped so that tests can change how it's brought up. This flag disables that.


If true, the Chromebook has a Chrome OS keyboard. Don't use the flag for Chromeboxes.


If true, the Chromebook has a keyboard with a diamond key.


Path for the screensaver used in Kiosk mode


Enables Chrome-as-a-login-manager behavior.


Allows to override the first login screen. The value should be the name of the first login screen to show


Controls the initial login screen size. Pass width,height.


Specifies the profile to use once a chromeos user is logged in.


Specifies the user which is already logged in.


Specifies a password to be used to login (along with login-user).


Enables natural scroll by default.


Disables tab discard in low memory conditions, a feature which silently closes inactive tabs to free memory and to attempt to avoid the kernel's out-of-memory process killer.


Indicates that the browser is in "browse without sign-in" (Guest session) mode. Should completely disable extensions, sync and bookmarks.


Enables overriding the path for the default echo component extension. Useful for testing.


Indicates that a stub implementation of CrosSettings that stores settings in memory without signing should be used, treating current user as the owner. This option is for testing the chromeos build of chrome on the desktop only.


Enables overriding the path for the default authentication extension.


Power of the power-of-2 initial modulus that will be used by the auto-enrollment client. E.g. "4" means the modulus will be 2^4 = 16.


Skips all other OOBE pages after user login. In NDebug mode

Posix specific switches

For running on any *nix, ie. Linux, Solaris, OS X, etc.


A flag, generated internally by Chrome for renderer and other helper process command lines on Linux and Mac. It tells the helper process to enable crash dumping and reporting, because helpers cannot access the profile or other files needed to make this decision.


Used for turning on Breakpad crash reporting in a debug environment where crash reporting is typically compiled but disabled.

OS X specific switches

Mac only stuff...


Enables the tabs expose feature


Performs Keychain reauthorization from the command line on behalf of a special Keychain reauthorization stub executable. Used during auto-update.


A process type (switches::kProcessType) that relaunches the browser. See chrome/browser/mac/relauncher.h.


Uses mock keychain for testing purposes, which prevents blocking dialogs from causing timeouts.

Windows specific switches


Enables media transfer protocol device media support for mediaGalleries extension API.


For the DelegateExecute verb handler to launch Chrome in desktop mode on Windows 8 and higher. Used when relaunching metro Chrome.


Allows for disabling the overlapped I/O for TCP reads. Possible values are "on" or "off". The default is "on" which matches the existing behavior. "off" switches to use non-blocking reads and WSAEventSelect.


Relaunches metro Chrome on Windows 8 and higher using a given shortcut.


Waits for the given handle to be signaled before relaunching metro Chrome on Windows 8 and higher.

NDebug switches

I don't know what NDebug is, so you'll have to look that up.


Enables overriding the path of file manager extension.


Enables overriding the path of image loader extension.


Dumps dependency information about our profile services into a dot file in the profile directory.

Print preview in the browser process.

Google Chrome builds only.


Disables print preview (For testing, and for users who don't like us. :[ )


Enables print preview (Force enable on Chromium, which normally does not have the PDF viewer required for print preview.)

Base switches

Although it's likely you'll never need these, I've added them for completeness, and Emacs just made short work of extracting them from the source code, so there you go...


If the program includes base/debug/debug_on_start_win.h, the process will (on Windows only) start the JIT system-registered debugger on itself and will wait for 60 seconds for the debugger to attach to itself. Then a break point will be hit.


Disables the crash reporting.


Enable DCHECKs in release mode.


Generates full memory crash dump.


Suppresses all error dialogs when present.


When running certain tests that spawn child processes, this switch indicates to the test framework that the current process is a child process.


Gives the default maximal active V-logging level; 0 is the default. Normally positive values are used for V-logging levels.


Gives the per-module maximal V-logging levels to override the value given by --v. E.g. my_module=2,foo*=3 would change the logging level for all code in source files my_module.* and foo*.* (-inl suffixes are also disregarded for this matching).

Any pattern containing a forward or backward slash will be tested against the whole pathname and not just the module. E.g., */foo/bar/*=2 would change the logging level for all code in source files under a foo/bar directory.


Will wait for 60 seconds for a debugger to come to attach to the process.

blog comments powered by Disqus