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.
4
5#include "base/base_switches.h"
6#include "build/build_config.h"
7
8namespace switches {
9
10// Disables the crash reporting.
11const char kDisableBreakpad[]               = "disable-breakpad";
12
13// Indicates that crash reporting should be enabled. On platforms where helper
14// processes cannot access to files needed to make this decision, this flag is
15// generated internally.
16const char kEnableCrashReporter[]           = "enable-crash-reporter";
17
18// Makes memory allocators keep track of their allocations and context, so a
19// detailed breakdown of memory usage can be presented in chrome://tracing when
20// the memory-infra category is enabled.
21const char kEnableHeapProfiling[]           = "enable-heap-profiling";
22
23// Report native (walk the stack) allocation traces. By default pseudo stacks
24// derived from trace events are reported.
25const char kEnableHeapProfilingModeNative[] = "native";
26
27// Generates full memory crash dump.
28const char kFullMemoryCrashReport[]         = "full-memory-crash-report";
29
30// Force low-end device mode when set.
31const char kEnableLowEndDeviceMode[]        = "enable-low-end-device-mode";
32
33// Force disabling of low-end device mode when set.
34const char kDisableLowEndDeviceMode[]       = "disable-low-end-device-mode";
35
36// This option can be used to force field trials when testing changes locally.
37// The argument is a list of name and value pairs, separated by slashes. If a
38// trial name is prefixed with an asterisk, that trial will start activated.
39// For example, the following argument defines two trials, with the second one
40// activated: "GoogleNow/Enable/*MaterialDesignNTP/Default/" This option can
41// also be used by the browser process to send the list of trials to a
42// non-browser process, using the same format. See
43// FieldTrialList::CreateTrialsFromString() in field_trial.h for details.
44const char kForceFieldTrials[]              = "force-fieldtrials";
45
46// Suppresses all error dialogs when present.
47const char kNoErrorDialogs[]                = "noerrdialogs";
48
49// When running certain tests that spawn child processes, this switch indicates
50// to the test framework that the current process is a child process.
51const char kTestChildProcess[]              = "test-child-process";
52
53// When running certain tests that spawn child processes, this switch indicates
54// to the test framework that the current process should not initialize ICU to
55// avoid creating any scoped handles too early in startup.
56const char kTestDoNotInitializeIcu[]        = "test-do-not-initialize-icu";
57
58// Gives the default maximal active V-logging level; 0 is the default.
59// Normally positive values are used for V-logging levels.
60const char kV[]                             = "v";
61
62// Gives the per-module maximal V-logging levels to override the value
63// given by --v.  E.g. "my_module=2,foo*=3" would change the logging
64// level for all code in source files "my_module.*" and "foo*.*"
65// ("-inl" suffixes are also disregarded for this matching).
66//
67// Any pattern containing a forward or backward slash will be tested
68// against the whole pathname and not just the module.  E.g.,
69// "*/foo/bar/*=2" would change the logging level for all code in
70// source files under a "foo/bar" directory.
71const char kVModule[]                       = "vmodule";
72
73// Will wait for 60 seconds for a debugger to come to attach to the process.
74const char kWaitForDebugger[]               = "wait-for-debugger";
75
76// Sends trace events from these categories to a file.
77// --trace-to-file on its own sends to default categories.
78const char kTraceToFile[]                   = "trace-to-file";
79
80// Specifies the file name for --trace-to-file. If unspecified, it will
81// go to a default file name.
82const char kTraceToFileName[]               = "trace-to-file-name";
83
84// Configure whether chrome://profiler will contain timing information. This
85// option is enabled by default. A value of "0" will disable profiler timing,
86// while all other values will enable it.
87const char kProfilerTiming[]                = "profiler-timing";
88// Value of the --profiler-timing flag that will disable timing information for
89// chrome://profiler.
90const char kProfilerTimingDisabledValue[]   = "0";
91
92// Specifies a location for profiling output. This will only work if chrome has
93// been built with the gyp variable profiling=1 or gn arg enable_profiling=true.
94//
95//   {pid} if present will be replaced by the pid of the process.
96//   {count} if present will be incremented each time a profile is generated
97//           for this process.
98// The default is chrome-profile-{pid} for the browser and test-profile-{pid}
99// for tests.
100const char kProfilingFile[] = "profiling-file";
101
102#if defined(OS_WIN)
103// Disables the USB keyboard detection for blocking the OSK on Win8+.
104const char kDisableUsbKeyboardDetect[]      = "disable-usb-keyboard-detect";
105#endif
106
107#if defined(OS_POSIX)
108// Used for turning on Breakpad crash reporting in a debug environment where
109// crash reporting is typically compiled but disabled.
110const char kEnableCrashReporterForTesting[] =
111    "enable-crash-reporter-for-testing";
112#endif
113
114}  // namespace switches
115