1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/base_switches.h"
6 #include "build/build_config.h"
7 #include "build/chromeos_buildflags.h"
11 // Delays execution of TaskPriority::BEST_EFFORT tasks until shutdown.
12 const char kDisableBestEffortTasks[] = "disable-best-effort-tasks";
14 // Disables the crash reporting.
15 const char kDisableBreakpad[] = "disable-breakpad";
17 // Comma-separated list of feature names to disable. See also kEnableFeatures.
18 const char kDisableFeatures[] = "disable-features";
20 // Force disabling of low-end device mode when set.
21 const char kDisableLowEndDeviceMode[] = "disable-low-end-device-mode";
23 // Indicates that crash reporting should be enabled. On platforms where helper
24 // processes cannot access to files needed to make this decision, this flag is
25 // generated internally.
26 const char kEnableCrashReporter[] = "enable-crash-reporter";
28 // Comma-separated list of feature names to enable. See also kDisableFeatures.
29 const char kEnableFeatures[] = "enable-features";
31 // Force low-end device mode when set.
32 const char kEnableLowEndDeviceMode[] = "enable-low-end-device-mode";
34 // Enable the use of background thread priorities for background tasks in the
35 // ThreadPool even on systems where it is disabled by default, e.g. due to
36 // concerns about priority inversions.
37 const char kEnableBackgroundThreadPool[] = "enable-background-thread-pool";
39 // This option can be used to force field trials when testing changes locally.
40 // The argument is a list of name and value pairs, separated by slashes. If a
41 // trial name is prefixed with an asterisk, that trial will start activated.
42 // For example, the following argument defines two trials, with the second one
43 // activated: "GoogleNow/Enable/*MaterialDesignNTP/Default/" This option can
44 // also be used by the browser process to send the list of trials to a
45 // non-browser process, using the same format. See
46 // FieldTrialList::CreateTrialsFromString() in field_trial.h for details.
47 const char kForceFieldTrials[] = "force-fieldtrials";
49 // Generates full memory crash dump.
50 const char kFullMemoryCrashReport[] = "full-memory-crash-report";
52 // Logs information about all tasks posted with TaskPriority::BEST_EFFORT. Use
53 // this to diagnose issues that are thought to be caused by
54 // TaskPriority::BEST_EFFORT execution fences. Note: Tasks posted to a
55 // non-BEST_EFFORT UpdateableSequencedTaskRunner whose priority is later lowered
56 // to BEST_EFFORT are not logged.
57 const char kLogBestEffortTasks[] = "log-best-effort-tasks";
59 // Suppresses all error dialogs when present.
60 const char kNoErrorDialogs[] = "noerrdialogs";
62 // Starts the sampling based profiler for the browser process at startup. This
63 // will only work if chrome has been built with the gn arg enable_profiling =
64 // true. The output will go to the value of kProfilingFile.
65 const char kProfilingAtStart[] = "profiling-at-start";
67 // Specifies a location for profiling output. This will only work if chrome has
68 // been built with the gyp variable profiling=1 or gn arg enable_profiling=true.
70 // {pid} if present will be replaced by the pid of the process.
71 // {count} if present will be incremented each time a profile is generated
73 // The default is chrome-profile-{pid} for the browser and test-profile-{pid}
75 const char kProfilingFile[] = "profiling-file";
77 // Controls whether profile data is periodically flushed to a file. Normally
78 // the data gets written on exit but cases exist where chromium doesn't exit
79 // cleanly (especially when using single-process). A time in seconds can be
81 const char kProfilingFlush[] = "profiling-flush";
83 // When running certain tests that spawn child processes, this switch indicates
84 // to the test framework that the current process is a child process.
85 const char kTestChildProcess[] = "test-child-process";
87 // When running certain tests that spawn child processes, this switch indicates
88 // to the test framework that the current process should not initialize ICU to
89 // avoid creating any scoped handles too early in startup.
90 const char kTestDoNotInitializeIcu[] = "test-do-not-initialize-icu";
92 // Sends trace events from these categories to a file.
93 // --trace-to-file on its own sends to default categories.
94 const char kTraceToFile[] = "trace-to-file";
96 // Specifies the file name for --trace-to-file. If unspecified, it will
97 // go to a default file name.
98 const char kTraceToFileName[] = "trace-to-file-name";
100 // Gives the default maximal active V-logging level; 0 is the default.
101 // Normally positive values are used for V-logging levels.
102 const char kV[] = "v";
104 // Gives the per-module maximal V-logging levels to override the value
105 // given by --v. E.g. "my_module=2,foo*=3" would change the logging
106 // level for all code in source files "my_module.*" and "foo*.*"
107 // ("-inl" suffixes are also disregarded for this matching).
109 // Any pattern containing a forward or backward slash will be tested
110 // against the whole pathname and not just the module. E.g.,
111 // "*/foo/bar/*=2" would change the logging level for all code in
112 // source files under a "foo/bar" directory.
113 const char kVModule[] = "vmodule";
115 // Will wait for 60 seconds for a debugger to come to attach to the process.
116 const char kWaitForDebugger[] = "wait-for-debugger";
119 // Disable high-resolution timer on Windows.
120 const char kDisableHighResTimer[] = "disable-highres-timer";
122 // Disables the USB keyboard detection for blocking the OSK on Win8+.
123 const char kDisableUsbKeyboardDetect[] = "disable-usb-keyboard-detect";
126 // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
127 // of lacros-chrome is complete.
128 #if defined(OS_LINUX) && !BUILDFLAG(IS_CHROMEOS_ASH) && \
129 !BUILDFLAG(IS_CHROMEOS_LACROS)
130 // The /dev/shm partition is too small in certain VM environments, causing
131 // Chrome to fail or crash (see http://crbug.com/715363). Use this flag to
132 // work-around this issue (a temporary directory will always be used to create
133 // anonymous shared memory files).
134 const char kDisableDevShmUsage[] = "disable-dev-shm-usage";
137 #if defined(OS_POSIX)
138 // Used for turning on Breakpad crash reporting in a debug environment where
139 // crash reporting is typically compiled but disabled.
140 const char kEnableCrashReporterForTesting[] =
141 "enable-crash-reporter-for-testing";
144 #if defined(OS_ANDROID)
145 // Enables the reached code profiler that samples all threads in all processes
146 // to determine which functions are almost never executed.
147 const char kEnableReachedCodeProfiler[] = "enable-reached-code-profiler";
149 // Specifies the profiling interval in microseconds for reached code profiler.
150 const char kReachedCodeSamplingIntervalUs[] =
151 "reached-code-sampling-interval-us";
153 // Default country code to be used for search engine localization.
154 const char kDefaultCountryCodeAtInstall[] = "default-country-code";
156 // Adds additional thread idle time information into the trace event output.
157 const char kEnableIdleTracing[] = "enable-idle-tracing";
159 // The field trial parameters and their values when testing changes locally.
160 const char kForceFieldTrialParams[] = "force-fieldtrial-params";
164 #if defined(OS_LINUX) || defined(OS_CHROMEOS)
165 // Controls whether or not retired instruction counts are surfaced for threads
166 // in trace events on Linux.
168 // This flag requires the BPF sandbox to be disabled.
169 const char kEnableThreadInstructionCount[] = "enable-thread-instruction-count";
171 // TODO(crbug.com/1176772): Remove kEnableCrashpad and IsCrashpadEnabled() when
172 // Crashpad is fully enabled on Linux. Indicates that Crashpad should be
174 extern const char kEnableCrashpad[] = "enable-crashpad";
177 #if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
178 // Override the default scheduling boosting value for urgent tasks.
179 // This can be adjusted if a specific chromeos device shows better perf/power
180 // ratio (e.g. by running video conference tests).
181 // Currently, this values directs to linux scheduler's utilization min clamp.
182 // Range is 0(no biased load) ~ 100(mamximum load value).
183 const char kSchedulerBoostUrgent[] = "scheduler-boost-urgent";
186 } // namespace switches