# This file may be modified to make local changes to the environment and command
# line that session_manager uses to run Chrome. It contains one directive per
# line, with the following forms available:
#
# --some-argument=/tmp/some file
#   Adds "--some-argument=/tmp/some file" to Chrome's command line. The entire
#   line will be passed as a single argument; do not include quotation marks
#   unless you want them to be passed verbatim to Chrome.
#
# !--a-prefix
#   Removes all arguments beginning with "--a-prefix" from the command line.
#
# vmodule=foo=1
#   Adds a "foo=1" pattern to the --vmodule argument. Multiple patterns may be
#   listed on separate "vmodule=" lines. A --vmodule argument containing all of
#   the requested patterns will be automatically constructed and passed to
#   Chrome; do not explicitly add a "--vmodule=" line.
#
# NAME=some value
#   Sets the environment variable "NAME" to the value "some value". As above, do
#   not quote the value unless you want the quotes to appear verbatim in the
#   variable's value.
#
# Directives are applied in the order they appear (i.e. to change a flag, first
# delete it and then re-add it with the desired value).
#
# To wrap Chrome within another command (e.g. strace), see CHROME_COMMAND_FLAG
# in /etc/init/ui.conf.
#
# Note: Permanent changes to Chrome's configuration should be made in
# session_manager (see chrome_setup.h).

