xref: /aosp_15_r20/external/cronet/base/base_switches.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2012 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #include "base/base_switches.h"
6*6777b538SAndroid Build Coastguard Worker #include "build/build_config.h"
7*6777b538SAndroid Build Coastguard Worker #include "build/chromeos_buildflags.h"
8*6777b538SAndroid Build Coastguard Worker 
9*6777b538SAndroid Build Coastguard Worker namespace switches {
10*6777b538SAndroid Build Coastguard Worker 
11*6777b538SAndroid Build Coastguard Worker // Delays execution of TaskPriority::BEST_EFFORT tasks until shutdown.
12*6777b538SAndroid Build Coastguard Worker const char kDisableBestEffortTasks[] = "disable-best-effort-tasks";
13*6777b538SAndroid Build Coastguard Worker 
14*6777b538SAndroid Build Coastguard Worker // Disables the crash reporting.
15*6777b538SAndroid Build Coastguard Worker const char kDisableBreakpad[]               = "disable-breakpad";
16*6777b538SAndroid Build Coastguard Worker 
17*6777b538SAndroid Build Coastguard Worker // Comma-separated list of feature names to disable. See also kEnableFeatures.
18*6777b538SAndroid Build Coastguard Worker const char kDisableFeatures[] = "disable-features";
19*6777b538SAndroid Build Coastguard Worker 
20*6777b538SAndroid Build Coastguard Worker // Force disabling of low-end device mode when set.
21*6777b538SAndroid Build Coastguard Worker const char kDisableLowEndDeviceMode[] = "disable-low-end-device-mode";
22*6777b538SAndroid Build Coastguard Worker 
23*6777b538SAndroid Build Coastguard Worker // Indicates that crash reporting should be enabled. On platforms where helper
24*6777b538SAndroid Build Coastguard Worker // processes cannot access to files needed to make this decision, this flag is
25*6777b538SAndroid Build Coastguard Worker // generated internally.
26*6777b538SAndroid Build Coastguard Worker const char kEnableCrashReporter[]           = "enable-crash-reporter";
27*6777b538SAndroid Build Coastguard Worker 
28*6777b538SAndroid Build Coastguard Worker // Comma-separated list of feature names to enable. See also kDisableFeatures.
29*6777b538SAndroid Build Coastguard Worker const char kEnableFeatures[] = "enable-features";
30*6777b538SAndroid Build Coastguard Worker 
31*6777b538SAndroid Build Coastguard Worker // Force low-end device mode when set.
32*6777b538SAndroid Build Coastguard Worker const char kEnableLowEndDeviceMode[]        = "enable-low-end-device-mode";
33*6777b538SAndroid Build Coastguard Worker 
34*6777b538SAndroid Build Coastguard Worker // Enable the use of background thread priorities for background tasks in the
35*6777b538SAndroid Build Coastguard Worker // ThreadPool even on systems where it is disabled by default, e.g. due to
36*6777b538SAndroid Build Coastguard Worker // concerns about priority inversions.
37*6777b538SAndroid Build Coastguard Worker const char kEnableBackgroundThreadPool[] = "enable-background-thread-pool";
38*6777b538SAndroid Build Coastguard Worker 
39*6777b538SAndroid Build Coastguard Worker // Handle to the shared memory segment containing field trial state that is to
40*6777b538SAndroid Build Coastguard Worker // be shared between processes. The argument to this switch is made of 4
41*6777b538SAndroid Build Coastguard Worker // segments, separated by commas:
42*6777b538SAndroid Build Coastguard Worker // 1. The platform-specific handle id for the shared memory as a string.
43*6777b538SAndroid Build Coastguard Worker // 2. The high 64 bits of the shared memory block GUID.
44*6777b538SAndroid Build Coastguard Worker // 3. The low 64 bits of the shared memory block GUID.
45*6777b538SAndroid Build Coastguard Worker // 4. The size of the shared memory segment as a string.
46*6777b538SAndroid Build Coastguard Worker const char kFieldTrialHandle[] = "field-trial-handle";
47*6777b538SAndroid Build Coastguard Worker 
48*6777b538SAndroid Build Coastguard Worker // This option can be used to force field trials when testing changes locally.
49*6777b538SAndroid Build Coastguard Worker // The argument is a list of name and value pairs, separated by slashes. If a
50*6777b538SAndroid Build Coastguard Worker // trial name is prefixed with an asterisk, that trial will start activated.
51*6777b538SAndroid Build Coastguard Worker // For example, the following argument defines two trials, with the second one
52*6777b538SAndroid Build Coastguard Worker // activated: "GoogleNow/Enable/*MaterialDesignNTP/Default/" This option can
53*6777b538SAndroid Build Coastguard Worker // also be used by the browser process to send the list of trials to a
54*6777b538SAndroid Build Coastguard Worker // non-browser process, using the same format. See
55*6777b538SAndroid Build Coastguard Worker // FieldTrialList::CreateTrialsFromString() in field_trial.h for details.
56*6777b538SAndroid Build Coastguard Worker const char kForceFieldTrials[]              = "force-fieldtrials";
57*6777b538SAndroid Build Coastguard Worker 
58*6777b538SAndroid Build Coastguard Worker // Generates full memory crash dump.
59*6777b538SAndroid Build Coastguard Worker const char kFullMemoryCrashReport[] = "full-memory-crash-report";
60*6777b538SAndroid Build Coastguard Worker 
61*6777b538SAndroid Build Coastguard Worker // Logs information about all tasks posted with TaskPriority::BEST_EFFORT. Use
62*6777b538SAndroid Build Coastguard Worker // this to diagnose issues that are thought to be caused by
63*6777b538SAndroid Build Coastguard Worker // TaskPriority::BEST_EFFORT execution fences. Note: Tasks posted to a
64*6777b538SAndroid Build Coastguard Worker // non-BEST_EFFORT UpdateableSequencedTaskRunner whose priority is later lowered
65*6777b538SAndroid Build Coastguard Worker // to BEST_EFFORT are not logged.
66*6777b538SAndroid Build Coastguard Worker const char kLogBestEffortTasks[] = "log-best-effort-tasks";
67*6777b538SAndroid Build Coastguard Worker 
68*6777b538SAndroid Build Coastguard Worker // Handle to the shared memory segment a child process should use to transmit
69*6777b538SAndroid Build Coastguard Worker // histograms back to the browser process.
70*6777b538SAndroid Build Coastguard Worker const char kMetricsSharedMemoryHandle[] = "metrics-shmem-handle";
71*6777b538SAndroid Build Coastguard Worker 
72*6777b538SAndroid Build Coastguard Worker // Suppresses all error dialogs when present.
73*6777b538SAndroid Build Coastguard Worker const char kNoErrorDialogs[]                = "noerrdialogs";
74*6777b538SAndroid Build Coastguard Worker 
75*6777b538SAndroid Build Coastguard Worker // Starts the sampling based profiler for the browser process at startup. This
76*6777b538SAndroid Build Coastguard Worker // will only work if chrome has been built with the gn arg enable_profiling =
77*6777b538SAndroid Build Coastguard Worker // true. The output will go to the value of kProfilingFile.
78*6777b538SAndroid Build Coastguard Worker const char kProfilingAtStart[] = "profiling-at-start";
79*6777b538SAndroid Build Coastguard Worker 
80*6777b538SAndroid Build Coastguard Worker // Specifies a location for profiling output. This will only work if chrome has
81*6777b538SAndroid Build Coastguard Worker // been built with the gyp variable profiling=1 or gn arg enable_profiling=true.
82*6777b538SAndroid Build Coastguard Worker //
83*6777b538SAndroid Build Coastguard Worker //   {pid} if present will be replaced by the pid of the process.
84*6777b538SAndroid Build Coastguard Worker //   {count} if present will be incremented each time a profile is generated
85*6777b538SAndroid Build Coastguard Worker //           for this process.
86*6777b538SAndroid Build Coastguard Worker // The default is chrome-profile-{pid} for the browser and test-profile-{pid}
87*6777b538SAndroid Build Coastguard Worker // for tests.
88*6777b538SAndroid Build Coastguard Worker const char kProfilingFile[] = "profiling-file";
89*6777b538SAndroid Build Coastguard Worker 
90*6777b538SAndroid Build Coastguard Worker // Controls whether profile data is periodically flushed to a file. Normally
91*6777b538SAndroid Build Coastguard Worker // the data gets written on exit but cases exist where chromium doesn't exit
92*6777b538SAndroid Build Coastguard Worker // cleanly (especially when using single-process). A time in seconds can be
93*6777b538SAndroid Build Coastguard Worker // specified.
94*6777b538SAndroid Build Coastguard Worker const char kProfilingFlush[] = "profiling-flush";
95*6777b538SAndroid Build Coastguard Worker 
96*6777b538SAndroid Build Coastguard Worker // When running certain tests that spawn child processes, this switch indicates
97*6777b538SAndroid Build Coastguard Worker // to the test framework that the current process is a child process.
98*6777b538SAndroid Build Coastguard Worker const char kTestChildProcess[] = "test-child-process";
99*6777b538SAndroid Build Coastguard Worker 
100*6777b538SAndroid Build Coastguard Worker // Sends trace events from these categories to a file.
101*6777b538SAndroid Build Coastguard Worker // --trace-to-file on its own sends to default categories.
102*6777b538SAndroid Build Coastguard Worker const char kTraceToFile[] = "trace-to-file";
103*6777b538SAndroid Build Coastguard Worker 
104*6777b538SAndroid Build Coastguard Worker // Specifies the file name for --trace-to-file. If unspecified, it will
105*6777b538SAndroid Build Coastguard Worker // go to a default file name.
106*6777b538SAndroid Build Coastguard Worker const char kTraceToFileName[] = "trace-to-file-name";
107*6777b538SAndroid Build Coastguard Worker 
108*6777b538SAndroid Build Coastguard Worker // Gives the default maximal active V-logging level; 0 is the default.
109*6777b538SAndroid Build Coastguard Worker // Normally positive values are used for V-logging levels.
110*6777b538SAndroid Build Coastguard Worker const char kV[] = "v";
111*6777b538SAndroid Build Coastguard Worker 
112*6777b538SAndroid Build Coastguard Worker // Gives the per-module maximal V-logging levels to override the value
113*6777b538SAndroid Build Coastguard Worker // given by --v.  E.g. "my_module=2,foo*=3" would change the logging
114*6777b538SAndroid Build Coastguard Worker // level for all code in source files "my_module.*" and "foo*.*"
115*6777b538SAndroid Build Coastguard Worker // ("-inl" suffixes are also disregarded for this matching).
116*6777b538SAndroid Build Coastguard Worker //
117*6777b538SAndroid Build Coastguard Worker // Any pattern containing a forward or backward slash will be tested
118*6777b538SAndroid Build Coastguard Worker // against the whole pathname and not just the module.  E.g.,
119*6777b538SAndroid Build Coastguard Worker // "*/foo/bar/*=2" would change the logging level for all code in
120*6777b538SAndroid Build Coastguard Worker // source files under a "foo/bar" directory.
121*6777b538SAndroid Build Coastguard Worker const char kVModule[] = "vmodule";
122*6777b538SAndroid Build Coastguard Worker 
123*6777b538SAndroid Build Coastguard Worker // Will wait for 60 seconds for a debugger to come to attach to the process.
124*6777b538SAndroid Build Coastguard Worker const char kWaitForDebugger[] = "wait-for-debugger";
125*6777b538SAndroid Build Coastguard Worker 
126*6777b538SAndroid Build Coastguard Worker #if BUILDFLAG(IS_WIN)
127*6777b538SAndroid Build Coastguard Worker // Disable high-resolution timer on Windows.
128*6777b538SAndroid Build Coastguard Worker const char kDisableHighResTimer[] = "disable-highres-timer";
129*6777b538SAndroid Build Coastguard Worker 
130*6777b538SAndroid Build Coastguard Worker // Disables the USB keyboard detection for blocking the OSK on Windows.
131*6777b538SAndroid Build Coastguard Worker const char kDisableUsbKeyboardDetect[]      = "disable-usb-keyboard-detect";
132*6777b538SAndroid Build Coastguard Worker #endif
133*6777b538SAndroid Build Coastguard Worker 
134*6777b538SAndroid Build Coastguard Worker #if BUILDFLAG(IS_LINUX)
135*6777b538SAndroid Build Coastguard Worker // The /dev/shm partition is too small in certain VM environments, causing
136*6777b538SAndroid Build Coastguard Worker // Chrome to fail or crash (see http://crbug.com/715363). Use this flag to
137*6777b538SAndroid Build Coastguard Worker // work-around this issue (a temporary directory will always be used to create
138*6777b538SAndroid Build Coastguard Worker // anonymous shared memory files).
139*6777b538SAndroid Build Coastguard Worker const char kDisableDevShmUsage[] = "disable-dev-shm-usage";
140*6777b538SAndroid Build Coastguard Worker #endif
141*6777b538SAndroid Build Coastguard Worker 
142*6777b538SAndroid Build Coastguard Worker #if BUILDFLAG(IS_POSIX)
143*6777b538SAndroid Build Coastguard Worker // Used for turning on Breakpad crash reporting in a debug environment where
144*6777b538SAndroid Build Coastguard Worker // crash reporting is typically compiled but disabled.
145*6777b538SAndroid Build Coastguard Worker const char kEnableCrashReporterForTesting[] =
146*6777b538SAndroid Build Coastguard Worker     "enable-crash-reporter-for-testing";
147*6777b538SAndroid Build Coastguard Worker #endif
148*6777b538SAndroid Build Coastguard Worker 
149*6777b538SAndroid Build Coastguard Worker #if BUILDFLAG(IS_ANDROID)
150*6777b538SAndroid Build Coastguard Worker // Default country code to be used for search engine localization.
151*6777b538SAndroid Build Coastguard Worker const char kDefaultCountryCodeAtInstall[] = "default-country-code";
152*6777b538SAndroid Build Coastguard Worker 
153*6777b538SAndroid Build Coastguard Worker // Adds additional thread idle time information into the trace event output.
154*6777b538SAndroid Build Coastguard Worker const char kEnableIdleTracing[] = "enable-idle-tracing";
155*6777b538SAndroid Build Coastguard Worker 
156*6777b538SAndroid Build Coastguard Worker // The field trial parameters and their values when testing changes locally.
157*6777b538SAndroid Build Coastguard Worker const char kForceFieldTrialParams[] = "force-fieldtrial-params";
158*6777b538SAndroid Build Coastguard Worker 
159*6777b538SAndroid Build Coastguard Worker // When we retrieve the package name within the SDK Runtime, we need to use
160*6777b538SAndroid Build Coastguard Worker // a bit of a hack to do this by taking advantage of the fact that the pid
161*6777b538SAndroid Build Coastguard Worker // is the same pid as the application's pid + 10000.
162*6777b538SAndroid Build Coastguard Worker // see:
163*6777b538SAndroid Build Coastguard Worker // https://cs.android.com/android/platform/superproject/main/+/main:frameworks/base/core/java/android/os/Process.java;l=292;drc=47fffdd53115a9af1820e3f89d8108745be4b55d
164*6777b538SAndroid Build Coastguard Worker // When the render process is created however, it is just a regular isolated
165*6777b538SAndroid Build Coastguard Worker // process with no particular association so we can't perform the same hack.
166*6777b538SAndroid Build Coastguard Worker // When creating minidumps, the package name is retrieved from the process
167*6777b538SAndroid Build Coastguard Worker // meaning the render process minidumps would end up reporting a generic
168*6777b538SAndroid Build Coastguard Worker // process name not associated with the app.
169*6777b538SAndroid Build Coastguard Worker // We work around this by feeding through the host package information to the
170*6777b538SAndroid Build Coastguard Worker // render process when launching it.
171*6777b538SAndroid Build Coastguard Worker const char kHostPackageName[] = "host-package-name";
172*6777b538SAndroid Build Coastguard Worker const char kHostPackageLabel[] = "host-package-label";
173*6777b538SAndroid Build Coastguard Worker const char kHostVersionCode[] = "host-version-code";
174*6777b538SAndroid Build Coastguard Worker const char kPackageName[] = "package-name";
175*6777b538SAndroid Build Coastguard Worker const char kPackageVersionName[] = "package-version-name";
176*6777b538SAndroid Build Coastguard Worker #endif
177*6777b538SAndroid Build Coastguard Worker 
178*6777b538SAndroid Build Coastguard Worker #if BUILDFLAG(IS_CHROMEOS)
179*6777b538SAndroid Build Coastguard Worker // Override the default scheduling boosting value for urgent tasks.
180*6777b538SAndroid Build Coastguard Worker // This can be adjusted if a specific chromeos device shows better perf/power
181*6777b538SAndroid Build Coastguard Worker // ratio (e.g. by running video conference tests).
182*6777b538SAndroid Build Coastguard Worker // Currently, this values directs to linux scheduler's utilization min clamp.
183*6777b538SAndroid Build Coastguard Worker // Range is 0(no biased load) ~ 100(mamximum load value).
184*6777b538SAndroid Build Coastguard Worker const char kSchedulerBoostUrgent[] = "scheduler-boost-urgent";
185*6777b538SAndroid Build Coastguard Worker #endif
186*6777b538SAndroid Build Coastguard Worker 
187*6777b538SAndroid Build Coastguard Worker }  // namespace switches
188