OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 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 "content/common/content_switches.h" | |
6 | |
7 namespace switches { | |
8 | |
9 // By default, file:// URIs cannot read other file:// URIs. This is an | |
10 // override for developers who need the old behavior for testing. | |
11 const char kAllowFileAccessFromFiles[] = "allow-file-access-from-files"; | |
12 | |
13 // Allows debugging of sandboxed processes (see zygote_main_linux.cc). | |
14 const char kAllowSandboxDebugging[] = "allow-sandbox-debugging"; | |
15 | |
16 // Enumerates and prints a child process' most dangerous handles when it | |
17 // is terminated. | |
18 const char kAuditHandles[] = "enable-handle-auditing"; | |
19 | |
20 // The same as kAuditHandles except all handles are enumerated. | |
21 const char kAuditAllHandles[] = "enable-handle-auditing-all"; | |
22 | |
23 // Causes the browser process to throw an assertion on startup. | |
24 const char kBrowserAssertTest[] = "assert-test"; | |
25 | |
26 // Causes the browser process to crash on startup. | |
27 const char kBrowserCrashTest[] = "crash-test"; | |
28 | |
29 // Path to the exe to run for the renderer and plugin subprocesses. | |
30 const char kBrowserSubprocessPath[] = "browser-subprocess-path"; | |
31 | |
32 // Run Chrome in Chrome Frame mode. This means that Chrome expects to be run | |
33 // as a dependent process of the Chrome Frame plugin. | |
34 const char kChromeFrame[] = "chrome-frame"; | |
35 | |
36 // Disables client-visible 3D APIs, in particular WebGL and Pepper 3D. | |
37 // This is controlled by policy and is kept separate from the other | |
38 // enable/disable switches to avoid accidentally regressing the policy | |
39 // support for controlling access to these APIs. | |
40 const char kDisable3DAPIs[] = "disable-3d-apis"; | |
41 | |
42 // Disable gpu-accelerated 2d canvas. | |
43 const char kDisableAccelerated2dCanvas[] = "disable-accelerated-2d-canvas"; | |
44 | |
45 // Disables accelerated compositing. | |
46 const char kDisableAcceleratedCompositing[] = "disable-accelerated-compositing"; | |
47 | |
48 // Disables the hardware acceleration of 3D CSS and animation. | |
49 const char kDisableAcceleratedLayers[] = "disable-accelerated-layers"; | |
50 | |
51 // Disables the hardware acceleration of plugins. | |
52 const char kDisableAcceleratedPlugins[] = "disable-accelerated-plugins"; | |
53 | |
54 // Disables GPU accelerated video display. | |
55 const char kDisableAcceleratedVideo[] = "disable-accelerated-video"; | |
56 | |
57 // Disables the alternate window station for the renderer. | |
58 const char kDisableAltWinstation[] = "disable-winsta"; | |
59 | |
60 // Disable the ApplicationCache. | |
61 const char kDisableApplicationCache[] = "disable-application-cache"; | |
62 // | |
63 // TODO(scherkus): remove --disable-audio when we have a proper fallback | |
64 // mechanism. | |
65 const char kDisableAudio[] = "disable-audio"; | |
66 | |
67 // Disable limits on the number of backing stores. Can prevent blinking for | |
68 // users with many windows/tabs and lots of memory. | |
69 const char kDisableBackingStoreLimit[] = "disable-backing-store-limit"; | |
70 | |
71 // Disables HTML5 DB support. | |
72 const char kDisableDatabases[] = "disable-databases"; | |
73 | |
74 // Disables data transfer items. | |
75 const char kDisableDataTransferItems[] = "disable-data-transfer-items"; | |
76 | |
77 // Disables desktop notifications (default enabled on windows). | |
78 const char kDisableDesktopNotifications[] = "disable-desktop-notifications"; | |
79 | |
80 // Disables device orientation events. | |
81 const char kDisableDeviceOrientation[] = "disable-device-orientation"; | |
82 | |
83 // Disable experimental WebGL support. | |
84 const char kDisableExperimentalWebGL[] = "disable-webgl"; | |
85 | |
86 // Disable FileSystem API. | |
87 const char kDisableFileSystem[] = "disable-file-system"; | |
88 | |
89 // Suppresses support for the Geolocation javascript API. | |
90 const char kDisableGeolocation[] = "disable-geolocation"; | |
91 | |
92 // Disable GL multisampling. | |
93 const char kDisableGLMultisampling[] = "disable-gl-multisampling"; | |
94 | |
95 // Disable the GLSL translator. | |
96 const char kDisableGLSLTranslator[] = "disable-glsl-translator"; | |
97 | |
98 // Disable workarounds for various GPU driver bugs. | |
99 const char kDisableGpuDriverBugWorkarounds[] = | |
100 "disable-gpu-driver-bug-workarounds"; | |
101 | |
102 // Disable the GPU process sandbox. | |
103 const char kDisableGpuSandbox[] = "disable-gpu-sandbox"; | |
104 | |
105 // Suppresses hang monitor dialogs in renderer processes. This may allow slow | |
106 // unload handlers on a page to prevent the tab from closing, but the Task | |
107 // Manager can be used to terminate the offending process in this case. | |
108 const char kDisableHangMonitor[] = "disable-hang-monitor"; | |
109 | |
110 // Disable the thread that crashes the GPU process if it stops responding to | |
111 // messages. | |
112 const char kDisableGpuWatchdog[] = "disable-gpu-watchdog"; | |
113 | |
114 // Disable the Indexed Database API. | |
115 const char kDisableIndexedDatabase[] = "disable-indexed-database"; | |
116 | |
117 // Prevent Java from running. | |
118 const char kDisableJava[] = "disable-java"; | |
119 | |
120 // Don't execute JavaScript (browser JS like the new tab page still runs). | |
121 const char kDisableJavaScript[] = "disable-javascript"; | |
122 | |
123 // Disable JavaScript I18N API. | |
124 const char kDisableJavaScriptI18NAPI[] = "disable-javascript-i18n-api"; | |
125 | |
126 // Disable LocalStorage. | |
127 const char kDisableLocalStorage[] = "disable-local-storage"; | |
128 | |
129 // Force logging to be disabled. Logging is enabled by default in debug | |
130 // builds. | |
131 const char kDisableLogging[] = "disable-logging"; | |
132 | |
133 // Prevent plugins from running. | |
134 const char kDisablePlugins[] = "disable-plugins"; | |
135 | |
136 // Disable pop-up blocking. | |
137 const char kDisablePopupBlocking[] = "disable-popup-blocking"; | |
138 | |
139 // Turns off the accessibility in the renderer. | |
140 const char kDisableRendererAccessibility[] = "disable-renderer-accessibility"; | |
141 | |
142 // Disable False Start in SSL and TLS connections. | |
143 const char kDisableSSLFalseStart[] = "disable-ssl-false-start"; | |
144 | |
145 // Disable smooth scrolling for testing. | |
146 const char kDisableSmoothScrolling[] = "disable-smooth-scrolling"; | |
147 | |
148 // Disable the seccomp sandbox (Linux only) | |
149 const char kDisableSeccompSandbox[] = "disable-seccomp-sandbox"; | |
150 | |
151 // Disable session storage. | |
152 const char kDisableSessionStorage[] = "disable-session-storage"; | |
153 | |
154 // Enable shared workers. Functionality not yet complete. | |
155 const char kDisableSharedWorkers[] = "disable-shared-workers"; | |
156 | |
157 // Disables speech input. | |
158 const char kDisableSpeechInput[] = "disable-speech-input"; | |
159 | |
160 // Disable Spellcheck API. | |
161 const char kDisableSpellcheckAPI[] = "disable-spellcheck-api"; | |
162 | |
163 // Disable web audio API. | |
164 const char kDisableWebAudio[] = "disable-webaudio"; | |
165 | |
166 // Disable Web Sockets support. | |
167 const char kDisableWebSockets[] = "disable-web-sockets"; | |
168 | |
169 // Enable gpu-accelerated 2d canvas. | |
170 const char kEnableAccelerated2dCanvas[] = "enable-accelerated-2d-canvas"; | |
171 | |
172 // Enable hardware accelerated page drawing. | |
173 // Please note that this flag is honored only if chromium is compiled with | |
174 // SKIA_GPU flag, which can be enabled by setting use_skia_gpu variable to 1 | |
175 // in build/features_override.gypi. | |
176 const char kEnableAcceleratedDrawing[] = "enable-accelerated-drawing"; | |
177 | |
178 // Enables WebKit accessibility within the renderer process. | |
179 const char kEnableAccessibility[] = "enable-accessibility"; | |
180 | |
181 // Turns on extremely verbose logging of accessibility events. | |
182 const char kEnableAccessibilityLogging[] = "enable-accessibility-logging"; | |
183 | |
184 // Enable DNS side checking of certificates. Still experimental, should only | |
185 // be used by developers at the current time. | |
186 const char kEnableDNSCertProvenanceChecking[] = | |
187 "enable-dns-cert-provenance-checking"; | |
188 | |
189 // Enables device motion events. | |
190 const char kEnableDeviceMotion[] = "enable-device-motion"; | |
191 | |
192 // Enable the JavaScript Full Screen API. | |
193 const char kDisableFullScreen[] = "disable-fullscreen"; | |
194 | |
195 // Enable the GPU plugin and Pepper 3D rendering. | |
196 const char kEnableGPUPlugin[] = "enable-gpu-plugin"; | |
197 | |
198 // Force logging to be enabled. Logging is disabled by default in release | |
199 // builds. | |
200 const char kEnableLogging[] = "enable-logging"; | |
201 | |
202 // Enable media stream in WebKit. | |
203 // http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#mediastr
eam | |
204 const char kEnableMediaStream[] = "enable-media-stream"; | |
205 | |
206 // On Windows, converts the page to the currently-installed monitor profile. | |
207 // This does NOT enable color management for images. The source is still | |
208 // assumed to be sRGB. | |
209 const char kEnableMonitorProfile[] = "enable-monitor-profile"; | |
210 | |
211 // Enables TLS origin bound certificate extension. | |
212 const char kEnableOriginBoundCerts[] = "enable-origin-bound-certs"; | |
213 | |
214 // Enable caching of pre-parsed JS script data. See http://crbug.com/32407. | |
215 const char kEnablePreparsedJsCaching[] = "enable-preparsed-js-caching"; | |
216 | |
217 // Enables TLS cached info extension. | |
218 const char kEnableSSLCachedInfo[] = "enable-ssl-cached-info"; | |
219 | |
220 // Cause the OS X sandbox write to syslog every time an access to a resource | |
221 // is denied by the sandbox. | |
222 const char kEnableSandboxLogging[] = "enable-sandbox-logging"; | |
223 | |
224 // Enable the seccomp sandbox (Linux only) | |
225 const char kEnableSeccompSandbox[] = "enable-seccomp-sandbox"; | |
226 | |
227 // Enables StatsTable, logging statistics to a global named shared memory table. | |
228 const char kEnableStatsTable[] = "enable-stats-table"; | |
229 | |
230 // Enable multithreaded GPU compositing of web content. | |
231 const char kEnableThreadedCompositing[] = "enable-threaded-compositing"; | |
232 | |
233 // Enable use of experimental TCP sockets API for sending data in the | |
234 // SYN packet. | |
235 const char kEnableTcpFastOpen[] = "enable-tcp-fastopen"; | |
236 | |
237 // Enables support for fullscreen video. Current implementation is | |
238 // incomplete and this flag is used for development and testing. | |
239 const char kEnableVideoFullscreen[] = "enable-video-fullscreen"; | |
240 | |
241 // Enables video logging where video elements log playback performance data to | |
242 // the debug log. | |
243 const char kEnableVideoLogging[] = "enable-video-logging"; | |
244 | |
245 // Enables support for video tracks. Current implementation is | |
246 // incomplete and this flag is used for development and testing. | |
247 const char kEnableVideoTrack[] = "enable-video-track"; | |
248 | |
249 // Enable Web Intents. | |
250 const char kEnableWebIntents[] = "enable-web-intents"; | |
251 | |
252 // Enables experimental features for the geolocation API. | |
253 // Current features: | |
254 // - CoreLocation support for Mac OS X 10.6 | |
255 // - Gateway location for Linux and Windows | |
256 // - Location platform support for Windows 7 | |
257 const char kExperimentalLocationFeatures[] = "experimental-location-features"; | |
258 | |
259 // Load NPAPI plugins from the specified directory. | |
260 const char kExtraPluginDir[] = "extra-plugin-dir"; | |
261 | |
262 // Some field tests may rendomized in the browser, and the randomly selected | |
263 // outcome needs to be propagated to the renderer. For instance, this is used | |
264 // to modify histograms recorded in the renderer, or to get the renderer to | |
265 // also set of its state (initialize, or not initialize components) to match the | |
266 // experiment(s). | |
267 // The argument is a string-ized list of experiment names, and the associated | |
268 // value that was randomly selected. In the recent implementetaion, the | |
269 // persistent representation generated by field_trial.cc and later decoded, is a | |
270 // list of name and value pairs, separated by slashes. See field trial.cc for | |
271 // current details. | |
272 const char kForceFieldTestNameAndValue[] = "force-fieldtest"; | |
273 | |
274 // Force renderer accessibility to be on instead of enabling it on demand when | |
275 // a screen reader is detected. The disable-renderer-accessibility switch | |
276 // overrides this if present. | |
277 const char kForceRendererAccessibility[] = "force-renderer-accessibility"; | |
278 | |
279 // Extra command line options for launching the GPU process (normally used | |
280 // for debugging). Use like renderer-cmd-prefix. | |
281 const char kGpuLauncher[] = "gpu-launcher"; | |
282 | |
283 // Makes this process a GPU sub-process. | |
284 const char kGpuProcess[] = "gpu-process"; | |
285 | |
286 // Causes the GPU process to display a dialog on launch. | |
287 const char kGpuStartupDialog[] = "gpu-startup-dialog"; | |
288 | |
289 // Ignores GPU blacklist. | |
290 const char kIgnoreGpuBlacklist[] = "ignore-gpu-blacklist"; | |
291 | |
292 // Run the GPU process as a thread in the browser process. | |
293 const char kInProcessGPU[] = "in-process-gpu"; | |
294 | |
295 // Runs plugins inside the renderer process | |
296 const char kInProcessPlugins[] = "in-process-plugins"; | |
297 | |
298 // Runs WebGL inside the renderer process. | |
299 const char kInProcessWebGL[] = "in-process-webgl"; | |
300 | |
301 // Specifies the flags passed to JS engine | |
302 const char kJavaScriptFlags[] = "js-flags"; | |
303 | |
304 // Load an NPAPI plugin from the specified path. | |
305 const char kLoadPlugin[] = "load-plugin"; | |
306 | |
307 // Sets the minimum log level. Valid values are from 0 to 3: | |
308 // INFO = 0, WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3. | |
309 const char kLoggingLevel[] = "log-level"; | |
310 | |
311 // Make plugin processes log their sent and received messages to VLOG(1). | |
312 const char kLogPluginMessages[] = "log-plugin-messages"; | |
313 | |
314 // Uses high-latency IPC for audio. | |
315 // That is temporary until we are sure low latency works and remove old code. | |
316 const char kHighLatencyAudio[] = "disable-low-latency-audio"; | |
317 | |
318 // Causes the process to run as a NativeClient broker | |
319 // (used for launching NaCl loader processes on 64-bit Windows). | |
320 const char kNaClBrokerProcess[] = "nacl-broker"; | |
321 | |
322 // Causes the process to run as a NativeClient loader. | |
323 const char kNaClLoaderProcess[] = "nacl-loader"; | |
324 | |
325 // Support a separate switch that enables the v8 playback extension. | |
326 // The extension causes javascript calls to Date.now() and Math.random() | |
327 // to return consistent values, such that subsequent loads of the same | |
328 // page will result in consistent js-generated data and XHR requests. | |
329 // Pages may still be able to generate inconsistent data from plugins. | |
330 const char kNoJsRandomness[] = "no-js-randomness"; | |
331 | |
332 // Don't send HTTP-Referer headers. | |
333 const char kNoReferrers[] = "no-referrers"; | |
334 | |
335 // Disables the sandbox for all process types that are normally sandboxed. | |
336 const char kNoSandbox[] = "no-sandbox"; | |
337 | |
338 // Read previously recorded data from the cache. Only cached data is read. | |
339 // See kRecordMode. | |
340 const char kPlaybackMode[] = "playback-mode"; | |
341 | |
342 // Specifies a command that should be used to launch the plugin process. Useful | |
343 // for running the plugin process through purify or quantify. Ex: | |
344 // --plugin-launcher="path\to\purify /Run=yes" | |
345 const char kPluginLauncher[] = "plugin-launcher"; | |
346 | |
347 // Tells the plugin process the path of the plugin to load | |
348 const char kPluginPath[] = "plugin-path"; | |
349 | |
350 // Causes the process to run as a plugin subprocess. | |
351 const char kPluginProcess[] = "plugin"; | |
352 | |
353 // Causes the plugin process to display a dialog on launch. | |
354 const char kPluginStartupDialog[] = "plugin-startup-dialog"; | |
355 | |
356 // Argument to the process type that indicates a PPAPI broker process type. | |
357 const char kPpapiBrokerProcess[] = "ppapi-broker"; | |
358 | |
359 // "Command-line" arguments for the PPAPI Flash; used for debugging options. | |
360 const char kPpapiFlashArgs[] = "ppapi-flash-args"; | |
361 | |
362 // Use the PPAPI (Pepper) Flash found at the given path. | |
363 const char kPpapiFlashPath[] = "ppapi-flash-path"; | |
364 | |
365 // Report the given version for the PPAPI (Pepper) Flash. The version should be | |
366 // numbers separated by '.'s (e.g., "12.3.456.78"). If not specified, it | |
367 // defaults to "10.2.999.999". | |
368 const char kPpapiFlashVersion[] = "ppapi-flash-version"; | |
369 | |
370 // Runs PPAPI (Pepper) plugins out-of-process. | |
371 const char kPpapiOutOfProcess[] = "ppapi-out-of-process"; | |
372 | |
373 // Like kPluginLauncher for PPAPI plugins. | |
374 const char kPpapiPluginLauncher[] = "ppapi-plugin-launcher"; | |
375 | |
376 // Argument to the process type that indicates a PPAPI plugin process type. | |
377 const char kPpapiPluginProcess[] = "ppapi"; | |
378 | |
379 // Causes the PPAPI sub process to display a dialog on launch. | |
380 const char kPpapiStartupDialog[] = "ppapi-startup-dialog"; | |
381 | |
382 // Runs a single process for each site (i.e., group of pages from the same | |
383 // registered domain) the user visits. We default to using a renderer process | |
384 // for each site instance (i.e., group of pages from the same registered | |
385 // domain with script connections to each other). | |
386 const char kProcessPerSite[] = "process-per-site"; | |
387 | |
388 // Runs each set of script-connected tabs (i.e., a BrowsingInstance) in its own | |
389 // renderer process. We default to using a renderer process for each | |
390 // site instance (i.e., group of pages from the same registered domain with | |
391 // script connections to each other). | |
392 const char kProcessPerTab[] = "process-per-tab"; | |
393 | |
394 // Chrome supports a playback and record mode. Record mode saves *everything* | |
395 // to the cache. Playback mode reads data exclusively from the cache. This | |
396 // allows us to record a session into the cache and then replay it at will. | |
397 // See also kPlaybackMode. | |
398 const char kRecordMode[] = "record-mode"; | |
399 | |
400 // The value of this switch determines whether the process is started as a | |
401 // renderer or plugin host. If it's empty, it's the browser. | |
402 const char kProcessType[] = "type"; | |
403 | |
404 // Register Pepper plugins (see pepper_plugin_registry.cc for its format). | |
405 const char kRegisterPepperPlugins[] = "register-pepper-plugins"; | |
406 | |
407 // Enable remote debug / automation shell on the specified port. | |
408 const char kRemoteShellPort[] = "remote-shell-port"; | |
409 | |
410 // Causes the renderer process to throw an assertion on launch. | |
411 const char kRendererAssertTest[] = "renderer-assert-test"; | |
412 | |
413 // On POSIX only: the contents of this flag are prepended to the renderer | |
414 // command line. Useful values might be "valgrind" or "xterm -e gdb --args". | |
415 const char kRendererCmdPrefix[] = "renderer-cmd-prefix"; | |
416 | |
417 // Causes the renderer process to crash on launch. | |
418 const char kRendererCrashTest[] = "renderer-crash-test"; | |
419 | |
420 // Causes the process to run as renderer instead of as browser. | |
421 const char kRendererProcess[] = "renderer"; | |
422 | |
423 // Causes the renderer process to display a dialog on launch. | |
424 const char kRendererStartupDialog[] = "renderer-startup-dialog"; | |
425 | |
426 // Causes the process to run as a service process. | |
427 const char kServiceProcess[] = "service"; | |
428 | |
429 // Visibly render a border around paint rects in the web page to help debug | |
430 // and study painting behavior. | |
431 const char kShowPaintRects[] = "show-paint-rects"; | |
432 // | |
433 // TODO(scherkus): remove --simple-data-source when our media resource loading | |
434 // is cleaned up and playback testing completed. | |
435 const char kSimpleDataSource[] = "simple-data-source"; | |
436 | |
437 // Runs the renderer and plugins in the same process as the browser | |
438 const char kSingleProcess[] = "single-process"; | |
439 | |
440 // Use SQLite as back-end for Indexed Database API. | |
441 // Used for debugging differences between the LevelDB and SQLite back-end. | |
442 const char kSQLiteIndexedDatabase[] = "indexeddb-use-sqlite"; | |
443 | |
444 // Runs the security test for the renderer sandbox. | |
445 const char kTestSandbox[] = "test-sandbox"; | |
446 | |
447 // A string used to override the default user agent with a custom one. | |
448 const char kUserAgent[] = "user-agent"; | |
449 | |
450 // On POSIX only: the contents of this flag are prepended to the utility | |
451 // process command line. Useful values might be "valgrind" or "xterm -e gdb | |
452 // --args". | |
453 const char kUtilityCmdPrefix[] = "utility-cmd-prefix"; | |
454 | |
455 // Causes the process to run as a utility subprocess. | |
456 const char kUtilityProcess[] = "utility"; | |
457 | |
458 // The utility process is sandboxed, with access to one directory. This flag | |
459 // specifies the directory that can be accessed. | |
460 const char kUtilityProcessAllowedDir[] = "utility-allowed-dir"; | |
461 | |
462 // Will add kWaitForDebugger to every child processes. If a value is passed, it | |
463 // will be used as a filter to determine if the child process should have the | |
464 // kWaitForDebugger flag passed on or not. | |
465 const char kWaitForDebuggerChildren[] = "wait-for-debugger-children"; | |
466 | |
467 // Choose which logging channels in WebCore to activate. See | |
468 // Logging.cpp in WebKit's WebCore for a list of available channels. | |
469 const char kWebCoreLogChannels[] = "webcore-log-channels"; | |
470 | |
471 // Causes the worker process allocation to use as many processes as cores. | |
472 const char kWebWorkerProcessPerCore[] = "web-worker-process-per-core"; | |
473 | |
474 // Causes workers to run together in one process, depending on their domains. | |
475 // Note this is duplicated in webworkerclient_impl.cc | |
476 const char kWebWorkerShareProcesses[] = "web-worker-share-processes"; | |
477 | |
478 // Causes the process to run as a worker subprocess. | |
479 const char kWorkerProcess[] = "worker"; | |
480 | |
481 // The prefix used when starting the zygote process. (i.e. 'gdb --args') | |
482 const char kZygoteCmdPrefix[] = "zygote-cmd-prefix"; | |
483 | |
484 // Causes the process to run as a renderer zygote. | |
485 const char kZygoteProcess[] = "zygote"; | |
486 | |
487 #if defined(OS_POSIX) && !defined(OS_MACOSX) | |
488 // Specify the amount the trackpad should scroll by. | |
489 const char kScrollPixels[] = "scroll-pixels"; | |
490 #endif | |
491 | |
492 #if defined(OS_MACOSX) || defined(OS_WIN) | |
493 // Use the system SSL library (Secure Transport on Mac, SChannel on Windows) | |
494 // instead of NSS for SSL. | |
495 const char kUseSystemSSL[] = "use-system-ssl"; | |
496 #endif | |
497 | |
498 #if !defined(OFFICIAL_BUILD) | |
499 // Causes the renderer process to throw an assertion on launch. | |
500 const char kRendererCheckFalseTest[] = "renderer-check-false-test"; | |
501 #endif | |
502 | |
503 } // namespace switches | |
OLD | NEW |