command_line_args.cc 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437
  1. // Copyright (c) 2018 GitHub, Inc.
  2. // Use of this source code is governed by the MIT license that can be
  3. // found in the LICENSE file.
  4. #include "atom/app/command_line_args.h"
  5. #include <algorithm>
  6. #include <string>
  7. #include "base/strings/string_util.h"
  8. #include "base/strings/utf_string_conversions.h"
  9. #include "content/public/common/content_switches.h"
  10. namespace {
  11. bool IsUrlArg(const base::CommandLine::CharType* arg) {
  12. // the first character must be a letter for this to be a URL
  13. auto c = *arg;
  14. if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')) {
  15. for (auto p = arg + 1; *p; ++p) {
  16. c = *p;
  17. // colon indicates that the argument starts with a URI scheme
  18. if (c == ':') {
  19. // it could also be a Windows filesystem path
  20. if (p == arg + 1)
  21. break;
  22. return true;
  23. }
  24. // white-space before a colon means it's not a URL
  25. if (c == ' ' || (0x9 <= c && c <= 0xD))
  26. break;
  27. }
  28. }
  29. return false;
  30. }
  31. /*
  32. * The blacklist of command line switches, must be sorted.
  33. * Update the list by pasting the following command into bash
  34. * in libchromiumcontent/src/:
  35. (find ./ \( -name "*switches.cc" -o -name "*switch_list.h" \) | \
  36. xargs grep -P --no-filename '"\S+"[);]$' | \
  37. perl -pe 's|^.*?"(\S+)"[);]$| "$1",|'; \
  38. echo ' "inspect",'; \
  39. echo ' "inspect-brk",') | \
  40. LANG="C" sort | \
  41. uniq > blacklist-switches.txt
  42. */
  43. const char* kBlacklist[] = {
  44. "/prefetch:1",
  45. "/prefetch:2",
  46. "/prefetch:3",
  47. "/prefetch:4",
  48. "/prefetch:5",
  49. "/prefetch:6",
  50. "/prefetch:8",
  51. "0",
  52. "?",
  53. "BlacklistOnly",
  54. "ChromeOSMemoryPressureHandling",
  55. "Disabled",
  56. "OnlineCheckOnly",
  57. "SafeSites",
  58. "accept-resource-provider",
  59. "account-consistency",
  60. "adaboost",
  61. "aec-refined-adaptive-filter",
  62. "agc-startup-min-volume",
  63. "aggressive",
  64. "aggressive-cache-discard",
  65. "aggressive-tab-discard",
  66. "all-toolchains",
  67. "allarticles",
  68. "allow-cross-origin-auth-prompt",
  69. "allow-external-pages",
  70. "allow-failed-policy-fetch-for-test",
  71. "allow-file-access-from-files",
  72. "allow-hidden-media-playback",
  73. "allow-http-background-page",
  74. "allow-http-screen-capture",
  75. "allow-insecure-localhost",
  76. "allow-legacy-extension-manifests",
  77. "allow-loopback-in-peer-connection",
  78. "allow-nacl-crxfs-api",
  79. "allow-nacl-file-handle-api",
  80. "allow-nacl-socket-api",
  81. "allow-no-sandbox-job",
  82. "allow-outdated-plugins",
  83. "allow-ra-in-dev-mode",
  84. "allow-running-insecure-content",
  85. "allow-sandbox-debugging",
  86. "allow-silent-push",
  87. "alsa-check-close-timeout",
  88. "alsa-enable-upsampling",
  89. "alsa-fixed-output-sample-rate",
  90. "alsa-input-device",
  91. "alsa-mute-device-name",
  92. "alsa-mute-element-name",
  93. "alsa-output-avail-min",
  94. "alsa-output-buffer-size",
  95. "alsa-output-device",
  96. "alsa-output-period-size",
  97. "alsa-output-start-threshold",
  98. "alsa-volume-device-name",
  99. "alsa-volume-element-name",
  100. "also-emit-success-logs",
  101. "alternative",
  102. "always-authorize-plugins",
  103. "always-on",
  104. "always-use-complex-text",
  105. "alwaystrue",
  106. "android-fonts-path",
  107. "android-stderr-port",
  108. "android-stdin-port",
  109. "android-stdout-port",
  110. "angle",
  111. "app",
  112. "app-auto-launched",
  113. "app-id",
  114. "app-mode-auth-code",
  115. "app-mode-oauth-token",
  116. "app-mode-oem-manifest",
  117. "app-shell-allow-roaming",
  118. "app-shell-host-window-size",
  119. "app-shell-preferred-network",
  120. "app-shell-refresh-token",
  121. "app-shell-user",
  122. "apple",
  123. "apps-gallery-download-url",
  124. "apps-gallery-update-url",
  125. "apps-gallery-url",
  126. "apps-keep-chrome-alive-in-tests",
  127. "arc-availability",
  128. "arc-available",
  129. "arc-start-mode",
  130. "arc-transition-migration-required",
  131. "args",
  132. "artifacts-dir",
  133. "ash-animate-from-boot-splash-screen",
  134. "ash-constrain-pointer-to-root",
  135. "ash-copy-host-background-at-boot",
  136. "ash-debug-shortcuts",
  137. "ash-dev-shortcuts",
  138. "ash-disable-smooth-screen-rotation",
  139. "ash-disable-touch-exploration-mode",
  140. "ash-enable-magnifier-key-scroller",
  141. "ash-enable-mirrored-screen",
  142. "ash-enable-night-light",
  143. "ash-enable-palette-on-all-displays",
  144. "ash-enable-scale-settings-tray",
  145. "ash-enable-software-mirroring",
  146. "ash-enable-unified-desktop",
  147. "ash-estimated-presentation-delay",
  148. "ash-hide-notifications-for-factory",
  149. "ash-host-window-bounds",
  150. "ash-shelf-color",
  151. "ash-shelf-color-scheme",
  152. "ash-touch-hud",
  153. "ash-webui-init",
  154. "attestation-server",
  155. "audio-buffer-size",
  156. "audio-output-channels",
  157. "aura-legacy-power-button",
  158. "auth-ext-path",
  159. "auth-server-whitelist",
  160. "auth-spnego-account-type",
  161. "auto",
  162. "auto-open-devtools-for-tabs",
  163. "auto-select-desktop-capture-source",
  164. "autoplay-policy",
  165. "blink-settings",
  166. "bootstrap",
  167. "browser-subprocess-path",
  168. "browser-test",
  169. "bwsi",
  170. "bypass-app-banner-engagement-checks",
  171. "canvas-msaa-sample-count",
  172. "cast-initial-screen-height",
  173. "cast-initial-screen-width",
  174. "cc-layer-tree-test-long-timeout",
  175. "cc-layer-tree-test-no-timeout",
  176. "cc-rebaseline-pixeltests",
  177. "cellular-first",
  178. "cellular-only",
  179. "check-for-update-interval",
  180. "check-layout-test-sys-deps",
  181. "child-wallpaper-large",
  182. "child-wallpaper-small",
  183. "chrome-home-swipe-logic",
  184. "cipher-suite-blacklist",
  185. "clamshell",
  186. "class",
  187. "clear-token-service",
  188. "cloud-print-file",
  189. "cloud-print-file-type",
  190. "cloud-print-job-title",
  191. "cloud-print-print-ticket",
  192. "cloud-print-setup-proxy",
  193. "cloud-print-url",
  194. "cloud-print-xmpp-endpoint",
  195. "color",
  196. "compensate-for-unstable-pinch-zoom",
  197. "compile-shader-always-succeeds",
  198. "component-updater",
  199. "connectivity-check-url",
  200. "conservative",
  201. "content-image-texture-target",
  202. "content-shell-host-window-size",
  203. "controller",
  204. "crash-dumps-dir",
  205. "crash-on-failure",
  206. "crash-on-hang-threads",
  207. "crash-server-url",
  208. "crash-test",
  209. "crashpad-handler",
  210. "create-browser-on-startup-for-tests",
  211. "create-default-gl-context",
  212. "cros-gaia-api-v1",
  213. "cros-region",
  214. "cros-regions-mode",
  215. "crosh-command",
  216. "cryptauth-http-host",
  217. "custom-devtools-frontend",
  218. "custom-launcher-page",
  219. "custom_summary",
  220. "d3d11",
  221. "d3d9",
  222. "daemon",
  223. "dark_muted",
  224. "dark_vibrant",
  225. "data-path",
  226. "data-reduction-proxy-config-url",
  227. "data-reduction-proxy-experiment",
  228. "data-reduction-proxy-http-proxies",
  229. "data-reduction-proxy-lo-fi",
  230. "data-reduction-proxy-pingback-url",
  231. "data-reduction-proxy-secure-proxy-check-url",
  232. "data-reduction-proxy-server-experiments-disabled",
  233. "dbus-stub",
  234. "debug-devtools",
  235. "debug-enable-frame-toggle",
  236. "debug-packed-apps",
  237. "debug-print",
  238. "default",
  239. "default-background-color",
  240. "default-tile-height",
  241. "default-tile-width",
  242. "default-wallpaper-is-oem",
  243. "default-wallpaper-large",
  244. "default-wallpaper-small",
  245. "delay-reload-stop-button-change",
  246. "demo",
  247. "derelict-detection-timeout",
  248. "derelict-idle-timeout",
  249. "desktop",
  250. "desktop-window-1080p",
  251. "deterministic-fetch",
  252. "device-management-url",
  253. "device-scale-factor",
  254. "devtools-flags",
  255. "diagnostics",
  256. "diagnostics-format",
  257. "diagnostics-recovery",
  258. "dice",
  259. "disable",
  260. "disable-2d-canvas-clip-aa",
  261. "disable-2d-canvas-image-chromium",
  262. "disable-3d-apis",
  263. "disable-accelerated-2d-canvas",
  264. "disable-accelerated-jpeg-decoding",
  265. "disable-accelerated-mjpeg-decode",
  266. "disable-accelerated-video-decode",
  267. "disable-app-info-dialog-mac",
  268. "disable-app-list-dismiss-on-blur",
  269. "disable-app-window-cycling",
  270. "disable-appcontainer",
  271. "disable-arc-data-wipe",
  272. "disable-arc-opt-in-verification",
  273. "disable-audio-support-for-desktop-share",
  274. "disable-avfoundation-overlays",
  275. "disable-background-networking",
  276. "disable-background-timer-throttling",
  277. "disable-backgrounding-occluded-windows",
  278. "disable-backing-store-limit",
  279. "disable-blink-features",
  280. "disable-bookmark-reordering",
  281. "disable-boot-animation",
  282. "disable-breakpad",
  283. "disable-browser-task-scheduler",
  284. "disable-bundled-ppapi-flash",
  285. "disable-canvas-aa",
  286. "disable-captive-portal-bypass-proxy",
  287. "disable-cast-streaming-hw-encoding",
  288. "disable-checker-imaging",
  289. "disable-clear-browsing-data-counters",
  290. "disable-client-side-phishing-detection",
  291. "disable-cloud-import",
  292. "disable-component-cloud-policy",
  293. "disable-component-extensions-with-background-pages",
  294. "disable-component-update",
  295. "disable-composited-antialiasing",
  296. "disable-contextual-search",
  297. "disable-d3d11",
  298. "disable-databases",
  299. "disable-datasaver-prompt",
  300. "disable-default-apps",
  301. "disable-demo-mode",
  302. "disable-device-disabling",
  303. "disable-device-discovery-notifications",
  304. "disable-dinosaur-easter-egg",
  305. "disable-direct-composition",
  306. "disable-direct-composition-layers",
  307. "disable-directwrite-for-ui",
  308. "disable-display-color-calibration",
  309. "disable-display-list-2d-canvas",
  310. "disable-distance-field-text",
  311. "disable-domain-blocking-for-3d-apis",
  312. "disable-domain-reliability",
  313. "disable-drive-search-in-app-launcher",
  314. "disable-dwm-composition",
  315. "disable-encryption-migration",
  316. "disable-eol-notification",
  317. "disable-es3-apis",
  318. "disable-es3-gl-context",
  319. "disable-extensions",
  320. "disable-extensions-except",
  321. "disable-extensions-file-access-check",
  322. "disable-extensions-http-throttling",
  323. "disable-fast-web-scroll-view-insets",
  324. "disable-features",
  325. "disable-field-trial-config",
  326. "disable-file-manager-touch-mode",
  327. "disable-file-system",
  328. "disable-flash-3d",
  329. "disable-flash-stage3d",
  330. "disable-fullscreen-low-power-mode",
  331. "disable-fullscreen-tab-detaching",
  332. "disable-gaia-services",
  333. "disable-gesture-editing",
  334. "disable-gesture-requirement-for-presentation",
  335. "disable-gesture-typing",
  336. "disable-gl-drawing-for-tests",
  337. "disable-gl-error-limit",
  338. "disable-gl-extensions",
  339. "disable-glsl-translator",
  340. "disable-gpu",
  341. "disable-gpu-compositing",
  342. "disable-gpu-driver-bug-workarounds",
  343. "disable-gpu-early-init",
  344. "disable-gpu-memory-buffer-compositor-resources",
  345. "disable-gpu-memory-buffer-video-frames",
  346. "disable-gpu-process-crash-limit",
  347. "disable-gpu-program-cache",
  348. "disable-gpu-rasterization",
  349. "disable-gpu-sandbox",
  350. "disable-gpu-shader-disk-cache",
  351. "disable-gpu-vsync",
  352. "disable-gpu-watchdog",
  353. "disable-hang-monitor",
  354. "disable-hid-detection-on-oobe",
  355. "disable-histogram-customizer",
  356. "disable-hosted-app-shim-creation",
  357. "disable-hosted-apps-in-windows",
  358. "disable-http2",
  359. "disable-in-process-stack-traces",
  360. "disable-infobars",
  361. "disable-input-ime-api",
  362. "disable-input-view",
  363. "disable-ios-password-generation",
  364. "disable-ios-password-suggestions",
  365. "disable-ios-physical-web",
  366. "disable-javascript-harmony-shipping",
  367. "disable-kill-after-bad-ipc",
  368. "disable-lcd-text",
  369. "disable-legacy-window",
  370. "disable-local-storage",
  371. "disable-lock-screen-apps",
  372. "disable-logging",
  373. "disable-logging-redirect",
  374. "disable-login-animations",
  375. "disable-login-screen-apps",
  376. "disable-low-end-device-mode",
  377. "disable-low-latency-dxva",
  378. "disable-low-res-tiling",
  379. "disable-lru-snapshot-cache",
  380. "disable-mac-overlays",
  381. "disable-mac-views-native-app-windows",
  382. "disable-machine-cert-request",
  383. "disable-main-frame-before-activation",
  384. "disable-md-error-screen",
  385. "disable-md-oobe",
  386. "disable-media-session-api",
  387. "disable-media-suspend",
  388. "disable-merge-key-char-events",
  389. "disable-mojo-local-storage",
  390. "disable-mojo-renderer",
  391. "disable-mtp-write-support",
  392. "disable-multi-display-layout",
  393. "disable-namespace-sandbox",
  394. "disable-native-gpu-memory-buffers",
  395. "disable-network-portal-notification",
  396. "disable-new-channel-switcher-ui",
  397. "disable-new-korean-ime",
  398. "disable-new-virtual-keyboard-behavior",
  399. "disable-new-zip-unpacker",
  400. "disable-notifications",
  401. "disable-ntp-most-likely-favicons-from-server",
  402. "disable-ntp-popular-sites",
  403. "disable-nv12-dxgi-video",
  404. "disable-offer-store-unmasked-wallet-cards",
  405. "disable-offer-upload-credit-cards",
  406. "disable-office-editing-component-extension",
  407. "disable-offline-auto-reload",
  408. "disable-offline-auto-reload-visible-only",
  409. "disable-origin-trial-controlled-blink-features",
  410. "disable-overscroll-edge-effect",
  411. "disable-panel-fitting",
  412. "disable-partial-raster",
  413. "disable-password-generation",
  414. "disable-pepper-3d",
  415. "disable-pepper-3d-image-chromium",
  416. "disable-permission-action-reporting",
  417. "disable-permissions-api",
  418. "disable-physical-keyboard-autocorrect",
  419. "disable-pinch",
  420. "disable-pnacl-crash-throttling",
  421. "disable-popup-blocking",
  422. "disable-prefer-compositing-to-lcd-text",
  423. "disable-presentation-api",
  424. "disable-print-preview",
  425. "disable-prompt-on-repost",
  426. "disable-proximity-auth-bluetooth-low-energy-discovery",
  427. "disable-pull-to-refresh-effect",
  428. "disable-push-api-background-mode",
  429. "disable-quic",
  430. "disable-reading-from-canvas",
  431. "disable-remote-core-animation",
  432. "disable-remote-fonts",
  433. "disable-remote-playback-api",
  434. "disable-renderer-accessibility",
  435. "disable-renderer-backgrounding",
  436. "disable-renderer-priority-management",
  437. "disable-request-mobile-site",
  438. "disable-resize-lock",
  439. "disable-rgba-4444-textures",
  440. "disable-rollback-option",
  441. "disable-rtc-smoothness-algorithm",
  442. "disable-screen-orientation-lock",
  443. "disable-search-geolocation-disclosure",
  444. "disable-seccomp-filter-sandbox",
  445. "disable-settings-window",
  446. "disable-setuid-sandbox",
  447. "disable-shader-name-hashing",
  448. "disable-shared-workers",
  449. "disable-signin-promo",
  450. "disable-signin-scoped-device-id",
  451. "disable-single-click-autofill",
  452. "disable-skia-runtime-opts",
  453. "disable-slim-navigation-manager",
  454. "disable-slimming-paint-invalidation",
  455. "disable-smooth-scrolling",
  456. "disable-software-rasterizer",
  457. "disable-speech-api",
  458. "disable-suggestions-ui",
  459. "disable-sync",
  460. "disable-sync-app-list",
  461. "disable-sync-types",
  462. "disable-system-timezone-automatic-detection",
  463. "disable-tab-for-desktop-share",
  464. "disable-tab-strip-autoscroll-new-tabs",
  465. "disable-third-party-keyboard-workaround",
  466. "disable-threaded-animation",
  467. "disable-threaded-compositing",
  468. "disable-threaded-scrolling",
  469. "disable-touch-adjustment",
  470. "disable-touch-drag-drop",
  471. "disable-translate-new-ux",
  472. "disable-usb-keyboard-detect",
  473. "disable-v8-idle-tasks",
  474. "disable-vaapi-accelerated-video-encode",
  475. "disable-virtual-keyboard-overscroll",
  476. "disable-voice-input",
  477. "disable-volume-adjust-sound",
  478. "disable-wake-on-wifi",
  479. "disable-web-notification-custom-layouts",
  480. "disable-web-security",
  481. "disable-webgl",
  482. "disable-webgl-image-chromium",
  483. "disable-webrtc-encryption",
  484. "disable-webrtc-hw-decoding",
  485. "disable-webrtc-hw-encoding",
  486. "disable-win32k-lockdown",
  487. "disable-xss-auditor",
  488. "disable-zero-browsers-open-for-tests",
  489. "disable-zero-copy",
  490. "disable-zero-copy-dxgi-video",
  491. "disabled",
  492. "disabled-new-style-notification",
  493. "disallow-non-exact-resource-reuse",
  494. "disk-cache-dir",
  495. "disk-cache-size",
  496. "display",
  497. "dmg-device",
  498. "dns-log-details",
  499. "document-user-activation-required",
  500. "dom-automation",
  501. "dotfile",
  502. "draft",
  503. "draw-view-bounds-rects",
  504. "duck-flash",
  505. "dump-blink-runtime-call-stats",
  506. "dump-browser-histograms",
  507. "dump-dom",
  508. "eafe-path",
  509. "eafe-url",
  510. "easy-unlock-app-path",
  511. "edge-touch-filtering",
  512. "egl",
  513. "elevate",
  514. "embedded-extension-options",
  515. "emphasize-titles-in-omnibox-dropdown",
  516. "emulate-shader-precision",
  517. "enable-accelerated-2d-canvas",
  518. "enable-accelerated-vpx-decode",
  519. "enable-accessibility-tab-switcher",
  520. "enable-adaptive-selection-handle-orientation",
  521. "enable-aggressive-domstorage-flushing",
  522. "enable-android-wallpapers-app",
  523. "enable-app-info-dialog-mac",
  524. "enable-app-list",
  525. "enable-app-window-cycling",
  526. "enable-appcontainer",
  527. "enable-arc",
  528. "enable-arc-oobe-optin",
  529. "enable-audio-debug-recordings-from-extension",
  530. "enable-audio-focus",
  531. "enable-automation",
  532. "enable-benchmarking",
  533. "enable-ble-advertising-in-apps",
  534. "enable-blink-features",
  535. "enable-bookmark-reordering",
  536. "enable-bookmark-undo",
  537. "enable-browser-side-navigation",
  538. "enable-browser-task-scheduler",
  539. "enable-checker-imaging",
  540. "enable-chromevox-arc-support",
  541. "enable-clear-browsing-data-counters",
  542. "enable-cloud-print-proxy",
  543. "enable-cloud-print-xps",
  544. "enable-consumer-kiosk",
  545. "enable-contextual-search",
  546. "enable-crash-reporter",
  547. "enable-crash-reporter-for-testing",
  548. "enable-crx-hash-check",
  549. "enable-data-reduction-proxy-bypass-warning",
  550. "enable-data-reduction-proxy-force-pingback",
  551. "enable-data-reduction-proxy-lite-page",
  552. "enable-data-reduction-proxy-savings-promo",
  553. "enable-datasaver-prompt",
  554. "enable-device-discovery-notifications",
  555. "enable-devtools-experiments",
  556. "enable-direct-composition-layers",
  557. "enable-display-list-2d-canvas",
  558. "enable-distance-field-text",
  559. "enable-distillability-service",
  560. "enable-dom-distiller",
  561. "enable-domain-reliability",
  562. "enable-drive-search-in-app-launcher",
  563. "enable-drm-atomic",
  564. "enable-embedded-extension-options",
  565. "enable-encryption-migration",
  566. "enable-encryption-selection",
  567. "enable-es3-apis",
  568. "enable-exclusive-audio",
  569. "enable-experimental-accessibility-features",
  570. "enable-experimental-canvas-features",
  571. "enable-experimental-extension-apis",
  572. "enable-experimental-fullscreen-exit-ui",
  573. "enable-experimental-input-view-features",
  574. "enable-experimental-web-platform-features",
  575. "enable-extension-activity-log-testing",
  576. "enable-extension-activity-logging",
  577. "enable-extension-assets-sharing",
  578. "enable-fast-unload",
  579. "enable-fast-web-scroll-view-insets",
  580. "enable-features",
  581. "enable-file-manager-touch-mode",
  582. "enable-first-run-ui-transitions",
  583. "enable-floating-virtual-keyboard",
  584. "enable-font-antialiasing",
  585. "enable-fullscreen-tab-detaching",
  586. "enable-fullscreen-toolbar-reveal",
  587. "enable-google-branded-context-menu",
  588. "enable-gpu-async-worker-context",
  589. "enable-gpu-benchmarking",
  590. "enable-gpu-client-logging",
  591. "enable-gpu-client-tracing",
  592. "enable-gpu-command-logging",
  593. "enable-gpu-debugging",
  594. "enable-gpu-driver-debug-logging",
  595. "enable-gpu-memory-buffer-compositor-resources",
  596. "enable-gpu-memory-buffer-video-frames",
  597. "enable-gpu-rasterization",
  598. "enable-gpu-service-logging",
  599. "enable-gpu-service-tracing",
  600. "enable-hardware-overlays",
  601. "enable-harfbuzz-rendertext",
  602. "enable-hdr",
  603. "enable-heap-profiling",
  604. "enable-hosted-app-quit-notification",
  605. "enable-hosted-apps-in-windows",
  606. "enable-hotword-hardware",
  607. "enable-hung-renderer-infobar",
  608. "enable-inband-text-tracks",
  609. "enable-input-ime-api",
  610. "enable-internal-media-session",
  611. "enable-ios-handoff-to-other-devices",
  612. "enable-ios-password-generation",
  613. "enable-ios-physical-web",
  614. "enable-layer-lists",
  615. "enable-lcd-text",
  616. "enable-leak-detection",
  617. "enable-local-file-accesses",
  618. "enable-local-sync-backend",
  619. "enable-logging",
  620. "enable-longpress-drag-selection",
  621. "enable-low-end-device-mode",
  622. "enable-low-res-tiling",
  623. "enable-lru-snapshot-cache",
  624. "enable-mac-views-native-app-windows",
  625. "enable-main-frame-before-activation",
  626. "enable-md-feedback",
  627. "enable-md-policy-page",
  628. "enable-media-suspend",
  629. "enable-merge-key-char-events",
  630. "enable-message-center-always-scroll-up-upon-notification-removal",
  631. "enable-nacl",
  632. "enable-nacl-debug",
  633. "enable-nacl-nonsfi-mode",
  634. "enable-native-gpu-memory-buffers",
  635. "enable-natural-scroll-default",
  636. "enable-navigation-tracing",
  637. "enable-net-benchmarking",
  638. "enable-network-information-downlink-max",
  639. "enable-network-portal-notification",
  640. "enable-new-app-menu-icon",
  641. "enable-ntp-most-likely-favicons-from-server",
  642. "enable-ntp-popular-sites",
  643. "enable-ntp-search-engine-country-detection",
  644. "enable-offer-store-unmasked-wallet-cards",
  645. "enable-offer-upload-credit-cards",
  646. "enable-offline-auto-reload",
  647. "enable-offline-auto-reload-visible-only",
  648. "enable-osk-overscroll",
  649. "enable-override-bookmarks-ui",
  650. "enable-partial-raster",
  651. "enable-password-generation",
  652. "enable-pepper-testing",
  653. "enable-permission-action-reporting",
  654. "enable-physical-keyboard-autocorrect",
  655. "enable-picture-in-picture",
  656. "enable-pinch",
  657. "enable-pixel-output-in-tests",
  658. "enable-plugin-placeholder-testing",
  659. "enable-potentially-annoying-security-features",
  660. "enable-power-overlay",
  661. "enable-precise-memory-info",
  662. "enable-prefer-compositing-to-lcd-text",
  663. "enable-print-browser",
  664. "enable-print-preview-register-promos",
  665. "enable-profile-shortcut-manager",
  666. "enable-profiling",
  667. "enable-push-api-background-mode",
  668. "enable-quic",
  669. "enable-reader-mode-toolbar-icon",
  670. "enable-refresh-token-annotation-request",
  671. "enable-request-tablet-site",
  672. "enable-rgba-4444-textures",
  673. "enable-sandbox",
  674. "enable-sandbox-logging",
  675. "enable-screenshot-testing-with-mode",
  676. "enable-scripts-require-action",
  677. "enable-scroll-prediction",
  678. "enable-service-manager-tracing",
  679. "enable-settings-window",
  680. "enable-sgi-video-sync",
  681. "enable-signin-promo",
  682. "enable-single-click-autofill",
  683. "enable-site-settings",
  684. "enable-skia-benchmarking",
  685. "enable-slim-navigation-manager",
  686. "enable-slimming-paint-invalidation",
  687. "enable-slimming-paint-v2",
  688. "enable-smooth-scrolling",
  689. "enable-spatial-navigation",
  690. "enable-spdy-proxy-auth",
  691. "enable-speech-dispatcher",
  692. "enable-spelling-feedback-field-trial",
  693. "enable-spotlight-actions",
  694. "enable-stats-collection-bindings",
  695. "enable-stats-table",
  696. "enable-strict-mixed-content-checking",
  697. "enable-strict-powerful-feature-restrictions",
  698. "enable-suggestions-ui",
  699. "enable-suggestions-with-substring-match",
  700. "enable-supervised-user-managed-bookmarks-folder",
  701. "enable-surface-synchronization",
  702. "enable-swap-buffers-with-bounds",
  703. "enable-sync-app-list",
  704. "enable-sync-articles",
  705. "enable-tab-audio-muting",
  706. "enable-tablet-splitview",
  707. "enable-tcp-fastopen",
  708. "enable-third-party-keyboard-workaround",
  709. "enable-threaded-compositing",
  710. "enable-threaded-texture-mailboxes",
  711. "enable-tile-compression",
  712. "enable-touch-calibration-setting",
  713. "enable-touch-drag-drop",
  714. "enable-touchpad-three-finger-click",
  715. "enable-touchview",
  716. "enable-trace-app-source",
  717. "enable-tracing",
  718. "enable-tracing-output",
  719. "enable-translate-new-ux",
  720. "enable-ui-devtools",
  721. "enable-use-zoom-for-dsf",
  722. "enable-user-controlled-alternate-protocol-ports",
  723. "enable-user-metrics",
  724. "enable-usermedia-screen-capturing",
  725. "enable-video-player-chromecast-support",
  726. "enable-viewport",
  727. "enable-virtual-keyboard",
  728. "enable-voice-interaction",
  729. "enable-vtune-support",
  730. "enable-vulkan",
  731. "enable-wayland-server",
  732. "enable-web-notification-custom-layouts",
  733. "enable-webfonts-intervention-trigger",
  734. "enable-webfonts-intervention-v2",
  735. "enable-webgl-draft-extensions",
  736. "enable-webgl-image-chromium",
  737. "enable-webrtc-event-logging-from-extension",
  738. "enable-webrtc-srtp-aes-gcm",
  739. "enable-webrtc-stun-origin",
  740. "enable-webview-finch",
  741. "enable-webvr",
  742. "enable-wifi-credential-sync",
  743. "enable-win7-webrtc-hw-h264-decoding",
  744. "enable-zero-copy",
  745. "enable-zip-archiver-on-file-manager",
  746. "enabled",
  747. "enabled-2g",
  748. "enabled-3g",
  749. "enabled-new-style-notification",
  750. "enabled-slow2g",
  751. "encode-binary",
  752. "enforce",
  753. "enforce-gl-minimums",
  754. "enforce-webrtc-ip-permission-check",
  755. "enforce_strict",
  756. "enterprise-disable-arc",
  757. "enterprise-enable-forced-re-enrollment",
  758. "enterprise-enable-license-type-selection",
  759. "enterprise-enable-zero-touch-enrollment",
  760. "enterprise-enrollment-initial-modulus",
  761. "enterprise-enrollment-modulus-limit",
  762. "error-console",
  763. "experiment",
  764. "explicitly-allowed-ports",
  765. "expose-internals-for-testing",
  766. "extension-content-verification",
  767. "extension-process",
  768. "extensions-install-verification",
  769. "extensions-multi-account",
  770. "extensions-not-webstore",
  771. "extensions-on-chrome-urls",
  772. "extensions-update-frequency",
  773. "extra-search-query-params",
  774. "fail-on-unused-args",
  775. "fake-variations-channel",
  776. "false",
  777. "fast",
  778. "fast-start",
  779. "feedback-server",
  780. "field-trial-handle",
  781. "first-exec-after-boot",
  782. "flag-switches-begin",
  783. "flag-switches-end",
  784. "font-cache-shared-handle",
  785. "force-android-app-mode",
  786. "force-app-mode",
  787. "force-clamshell-power-button",
  788. "force-color-profile",
  789. "force-desktop-ios-promotion",
  790. "force-dev-mode-highlighting",
  791. "force-device-scale-factor",
  792. "force-display-list-2d-canvas",
  793. "force-effective-connection-type",
  794. "force-enable-metrics-reporting",
  795. "force-enable-stylus-tools",
  796. "force-fieldtrial-params",
  797. "force-fieldtrials",
  798. "force-first-run",
  799. "force-first-run-ui",
  800. "force-gpu-mem-available-mb",
  801. "force-gpu-rasterization",
  802. "force-happiness-tracking-system",
  803. "force-load-easy-unlock-app-in-tests",
  804. "force-local-ntp",
  805. "force-login-manager-in-tests",
  806. "force-mediafoundation",
  807. "force-overlay-fullscreen-video",
  808. "force-password-reauth",
  809. "force-pnacl-subzero",
  810. "force-renderer-accessibility",
  811. "force-show-update-menu-badge",
  812. "force-show-update-menu-item",
  813. "force-system-compositor-mode",
  814. "force-tablet-mode",
  815. "force-text-direction",
  816. "force-ui-direction",
  817. "force-variation-ids",
  818. "force-video-overlays",
  819. "force-wave-audio",
  820. "force-webrtc-ip-handling-policy",
  821. "full-memory-crash-report",
  822. "gaia-url",
  823. "gcm-checkin-url",
  824. "gcm-mcs-endpoint",
  825. "gcm-registration-url",
  826. "generate-accessibility-test-expectations",
  827. "gl",
  828. "gl-composited-overlay-candidate-quad-border",
  829. "gl-shader-interm-output",
  830. "gles",
  831. "golden-screenshots-dir",
  832. "google-apis-url",
  833. "google-base-url",
  834. "google-doodle-url",
  835. "google-url",
  836. "gpu-active-device-id",
  837. "gpu-active-vendor-id",
  838. "gpu-device-id",
  839. "gpu-driver-bug-workarounds",
  840. "gpu-driver-date",
  841. "gpu-driver-vendor",
  842. "gpu-driver-version",
  843. "gpu-launcher",
  844. "gpu-no-complete-info-collection",
  845. "gpu-no-context-lost",
  846. "gpu-process",
  847. "gpu-program-cache-size-kb",
  848. "gpu-rasterization-msaa-sample-count",
  849. "gpu-sandbox-allow-sysv-shm",
  850. "gpu-sandbox-failures-fatal",
  851. "gpu-sandbox-start-early",
  852. "gpu-secondary-device-ids",
  853. "gpu-secondary-vendor-ids",
  854. "gpu-startup-dialog",
  855. "gpu-testing-device-id",
  856. "gpu-testing-driver-date",
  857. "gpu-testing-gl-renderer",
  858. "gpu-testing-gl-vendor",
  859. "gpu-testing-gl-version",
  860. "gpu-testing-os-version",
  861. "gpu-testing-secondary-device-ids",
  862. "gpu-testing-secondary-vendor-ids",
  863. "gpu-testing-vendor-id",
  864. "gpu-vendor-id",
  865. "guest-wallpaper-large",
  866. "guest-wallpaper-small",
  867. "h",
  868. "has-chromeos-diamond-key",
  869. "has-chromeos-keyboard",
  870. "has-internal-stylus",
  871. "headless",
  872. "help",
  873. "hide",
  874. "hide-icons",
  875. "hide-scrollbars",
  876. "history-entry-requires-user-gesture",
  877. "homedir",
  878. "homepage",
  879. "host",
  880. "host-pairing-oobe",
  881. "host-resolver-rules",
  882. "host-rules",
  883. "icu-data-dir",
  884. "ignore-autocomplete-off-autofill",
  885. "ignore-autoplay-restrictions",
  886. "ignore-certificate-errors",
  887. "ignore-certificate-errors-spki-list",
  888. "ignore-gpu-blacklist",
  889. "ignore-urlfetcher-cert-requests",
  890. "ignore-user-profile-mapping-for-tests",
  891. "in-process-gpu",
  892. "incognito",
  893. "input",
  894. "inspect",
  895. "inspect-brk",
  896. "install-chrome-app",
  897. "install-supervised-user-whitelists",
  898. "instant-process",
  899. "invalidation-use-gcm-channel",
  900. "ipc-connection-timeout",
  901. "ipc-dump-directory",
  902. "ipc-fuzzer-testcase",
  903. "is-running-in-mash",
  904. "isolate-origins",
  905. "isolate-sites-for-testing",
  906. "javascript-harmony",
  907. "js-flags",
  908. "keep-alive-for-test",
  909. "kiosk",
  910. "kiosk-printing",
  911. "lang",
  912. "last-launched-app",
  913. "layer",
  914. "light_muted",
  915. "light_vibrant",
  916. "limit-fps",
  917. "load-and-launch-app",
  918. "load-apps",
  919. "load-extension",
  920. "load-media-router-component-extension",
  921. "local-heuristics-only-for-password-generation",
  922. "local-ntp-reload",
  923. "local-sync-backend-dir",
  924. "log-gpu-control-list-decisions",
  925. "log-level",
  926. "log-net-log",
  927. "login-manager",
  928. "login-profile",
  929. "login-user",
  930. "lso-url",
  931. "ltr",
  932. "main-frame-resizes-are-orientation-changes",
  933. "make-chrome-default",
  934. "make-default-browser",
  935. "managed-user-id",
  936. "managed-user-sync-token",
  937. "mark-non-secure-as",
  938. "markdown",
  939. "market-url-for-testing",
  940. "mash",
  941. "material",
  942. "material-design-ink-drop-animation-speed",
  943. "material-hybrid",
  944. "max-gum-fps",
  945. "max-output-volume-dba1m",
  946. "max-untiled-layer-height",
  947. "max-untiled-layer-width",
  948. "media-cache-size",
  949. "mem-pressure-system-reserved-kb",
  950. "memlog",
  951. "memlog-pipe",
  952. "memory-pressure-off",
  953. "memory-pressure-thresholds",
  954. "memory-pressure-thresholds-mb",
  955. "message-center-changes-while-open",
  956. "metrics-client-id",
  957. "metrics-recording-only",
  958. "mhtml-generator-option",
  959. "mirror",
  960. "mock",
  961. "mojo-local-storage",
  962. "mojo-pipe-token",
  963. "monitoring-destination-id",
  964. "mse-audio-buffer-size-limit",
  965. "mse-video-buffer-size-limit",
  966. "mus",
  967. "mus-config",
  968. "mute-audio",
  969. "nacl-broker",
  970. "nacl-dangerous-no-sandbox-nonsfi",
  971. "nacl-debug-mask",
  972. "nacl-gdb",
  973. "nacl-gdb-script",
  974. "nacl-loader",
  975. "nacl-loader-nonsfi",
  976. "native",
  977. "native-crx-bindings",
  978. "need-arc-migration-policy-check",
  979. "net-log-capture-mode",
  980. "netifs-to-ignore",
  981. "network-country-iso",
  982. "network-settings-config",
  983. "new-window",
  984. "no-default-browser-check",
  985. "no-experiments",
  986. "no-first-run",
  987. "no-managed-user-acknowledgment-check",
  988. "no-network-profile-warning",
  989. "no-pings",
  990. "no-proxy-server",
  991. "no-referrers",
  992. "no-sandbox",
  993. "no-service-autorun",
  994. "no-session-id",
  995. "no-startup-window",
  996. "no-user-gesture-required",
  997. "no-wifi",
  998. "no-zygote",
  999. "nocolor",
  1000. "noerrdialogs",
  1001. "non-material",
  1002. "non-secure",
  1003. "non-secure-after-editing",
  1004. "non-secure-while-incognito",
  1005. "non-secure-while-incognito-or-editing",
  1006. "none",
  1007. "normal_muted",
  1008. "normal_vibrant",
  1009. "note-taking-app-ids",
  1010. "ntp-snippets-add-incomplete",
  1011. "ntp-switch-to-existing-tab",
  1012. "null",
  1013. "num-raster-threads",
  1014. "oauth2-client-id",
  1015. "oauth2-client-secret",
  1016. "off",
  1017. "on",
  1018. "oobe-bootstrapping-master",
  1019. "oobe-force-show-screen",
  1020. "oobe-guest-session",
  1021. "oobe-skip-postlogin",
  1022. "oobe-timer-interval",
  1023. "open-ash",
  1024. "opengraph",
  1025. "origin-to-force-quic-on",
  1026. "origin-trial-disabled-features",
  1027. "origin-trial-disabled-tokens",
  1028. "origin-trial-public-key",
  1029. "original-process-start-time",
  1030. "osmesa",
  1031. "output",
  1032. "override",
  1033. "override-metrics-upload-url",
  1034. "override-plugin-power-saver-for-testing",
  1035. "override-use-software-gl-for-tests",
  1036. "overscroll-history-navigation",
  1037. "overscroll-start-threshold",
  1038. "ozone-dump-file",
  1039. "ozone-platform",
  1040. "pack-extension",
  1041. "pack-extension-key",
  1042. "parent-profile",
  1043. "parent-window",
  1044. "passive-listeners-default",
  1045. "password-store",
  1046. "permission-request-api-scope",
  1047. "permission-request-api-url",
  1048. "ppapi",
  1049. "ppapi-antialiased-text-enabled",
  1050. "ppapi-broker",
  1051. "ppapi-flash-args",
  1052. "ppapi-flash-path",
  1053. "ppapi-flash-version",
  1054. "ppapi-in-process",
  1055. "ppapi-plugin-launcher",
  1056. "ppapi-startup-dialog",
  1057. "ppapi-subpixel-rendering-setting",
  1058. "prerender-from-omnibox",
  1059. "previous-app",
  1060. "primary",
  1061. "print-to-pdf",
  1062. "privet-ipv6-only",
  1063. "process-per-site",
  1064. "process-per-tab",
  1065. "product-version",
  1066. "profile-directory",
  1067. "profiler-timing",
  1068. "profiling",
  1069. "profiling-at-start",
  1070. "profiling-file",
  1071. "profiling-flush",
  1072. "progress-bar-animation",
  1073. "progress-bar-completion",
  1074. "prompt-for-external-extensions",
  1075. "proxy-auto-detect",
  1076. "proxy-bypass-list",
  1077. "proxy-pac-url",
  1078. "proxy-server",
  1079. "q",
  1080. "quic-connection-options",
  1081. "quic-max-packet-length",
  1082. "quic-version",
  1083. "rdp_desktop_session",
  1084. "reader-mode-feedback",
  1085. "reader-mode-heuristics",
  1086. "rebaseline-pixel-tests",
  1087. "record-type",
  1088. "reduce-security-for-testing",
  1089. "reduced-referrer-granularity",
  1090. "register-font-files",
  1091. "register-pepper-plugins",
  1092. "relauncher",
  1093. "remote-debugging-address",
  1094. "remote-debugging-port",
  1095. "remote-debugging-socket-fd",
  1096. "remote-debugging-socket-name",
  1097. "remote-debugging-targets",
  1098. "renderer",
  1099. "renderer-client-id",
  1100. "renderer-cmd-prefix",
  1101. "renderer-process-limit",
  1102. "renderer-startup-dialog",
  1103. "renderer-wait-for-java-debugger",
  1104. "renderpass",
  1105. "repl",
  1106. "report-vp9-as-an-unsupported-mime-type",
  1107. "require-audio-hardware-for-testing",
  1108. "reset-app-list-install-state",
  1109. "reset-variation-state",
  1110. "restore-last-session",
  1111. "root",
  1112. "root-layer-scrolls",
  1113. "rtl",
  1114. "run-layout-test",
  1115. "runtime-deps-list-file",
  1116. "safebrowsing-disable-auto-update",
  1117. "safebrowsing-disable-download-protection",
  1118. "safebrowsing-disable-extension-blacklist",
  1119. "safebrowsing-manual-download-blacklist",
  1120. "sandbox-ipc",
  1121. "save-page-as-mhtml",
  1122. "screen-config",
  1123. "screenshot",
  1124. "script-executable",
  1125. "scripts-require-action",
  1126. "scroll-end-effect",
  1127. "search-provider-logo-url",
  1128. "secondary",
  1129. "secondary-display-layout",
  1130. "secondary-ui-md",
  1131. "service",
  1132. "service-manager",
  1133. "service-name",
  1134. "service-pipe-token",
  1135. "service-request-channel-token",
  1136. "service-runner",
  1137. "shared-files",
  1138. "shill-stub",
  1139. "show-app-list",
  1140. "show-autofill-signatures",
  1141. "show-autofill-type-predictions",
  1142. "show-cert-link",
  1143. "show-component-extension-options",
  1144. "show-composited-layer-borders",
  1145. "show-fps-counter",
  1146. "show-icons",
  1147. "show-layer-animation-bounds",
  1148. "show-login-dev-overlay",
  1149. "show-mac-overlay-borders",
  1150. "show-md-login",
  1151. "show-non-md-login",
  1152. "show-overdraw-feedback",
  1153. "show-paint-rects",
  1154. "show-property-changed-rects",
  1155. "show-saved-copy",
  1156. "show-screenspace-rects",
  1157. "show-surface-damage-rects",
  1158. "silent-debugger-extension-api",
  1159. "silent-launch",
  1160. "simulate-critical-update",
  1161. "simulate-elevated-recovery",
  1162. "simulate-outdated",
  1163. "simulate-outdated-no-au",
  1164. "simulate-upgrade",
  1165. "single-process",
  1166. "site-per-process",
  1167. "skip-gpu-data-loading",
  1168. "skip-nostore-all",
  1169. "skip-nostore-main",
  1170. "skip-reencoding-on-skp-capture",
  1171. "slow",
  1172. "slow-connections-only",
  1173. "slow-down-raster-scale-factor",
  1174. "sms-test-messages",
  1175. "spdy-proxy-auth-fallback",
  1176. "spdy-proxy-auth-origin",
  1177. "spdy-proxy-auth-value",
  1178. "spelling-service-feedback-interval-seconds",
  1179. "spelling-service-feedback-url",
  1180. "spurious-power-button-accel-count",
  1181. "spurious-power-button-keyboard-accel",
  1182. "spurious-power-button-lid-angle-change",
  1183. "spurious-power-button-screen-accel",
  1184. "spurious-power-button-window",
  1185. "ssl-key-log-file",
  1186. "ssl-version-max",
  1187. "ssl-version-min",
  1188. "stable-release-mode",
  1189. "start-fullscreen",
  1190. "start-maximized",
  1191. "start-stack-profiler",
  1192. "started",
  1193. "stub",
  1194. "stub-cros-settings",
  1195. "supports-dual-gpus",
  1196. "surface",
  1197. "swiftshader",
  1198. "swiftshader-webgl",
  1199. "sync-allow-insecure-xmpp-connection",
  1200. "sync-deferred-startup-timeout-seconds",
  1201. "sync-disable-deferred-startup",
  1202. "sync-enable-get-update-avoidance",
  1203. "sync-notification-host-port",
  1204. "sync-on-draw-hardware",
  1205. "sync-short-initial-retry-override",
  1206. "sync-short-nudge-delay-for-test",
  1207. "sync-url",
  1208. "system-developer-mode",
  1209. "system-log-upload-frequency",
  1210. "tab-management-experiment-type-disabled",
  1211. "tab-management-experiment-type-elderberry",
  1212. "task-profiler",
  1213. "team-drives",
  1214. "test-auto-update-ui",
  1215. "test-child-process",
  1216. "test-cros-gaia-id-migration",
  1217. "test-do-not-initialize-icu",
  1218. "test-encryption-migration-ui",
  1219. "test-gl-lib",
  1220. "test-launcher-batch-limit",
  1221. "test-launcher-bot-mode",
  1222. "test-launcher-debug-launcher",
  1223. "test-launcher-filter-file",
  1224. "test-launcher-force-run-broken-tests",
  1225. "test-launcher-jobs",
  1226. "test-launcher-list-tests",
  1227. "test-launcher-output",
  1228. "test-launcher-print-test-stdio",
  1229. "test-launcher-print-writable-path",
  1230. "test-launcher-retry-limit",
  1231. "test-launcher-shard-index",
  1232. "test-launcher-summary-output",
  1233. "test-launcher-test-part-results-limit",
  1234. "test-launcher-timeout",
  1235. "test-launcher-total-shards",
  1236. "test-launcher-trace",
  1237. "test-name",
  1238. "test-tiny-timeout",
  1239. "test-type",
  1240. "testing-fixed-http-port",
  1241. "testing-fixed-https-port",
  1242. "tether-stub",
  1243. "threads",
  1244. "time",
  1245. "timeout",
  1246. "tls1",
  1247. "tls1.1",
  1248. "tls1.2",
  1249. "tls1.3",
  1250. "tls13-variant",
  1251. "top-chrome-md",
  1252. "top-controls-hide-threshold",
  1253. "top-controls-show-threshold",
  1254. "touch-calibration",
  1255. "touch-devices",
  1256. "touch-events",
  1257. "touch-noise-filtering",
  1258. "touch-selection-strategy",
  1259. "touch_view",
  1260. "trace-config-file",
  1261. "trace-export-events-to-etw",
  1262. "trace-shutdown",
  1263. "trace-shutdown-file",
  1264. "trace-startup",
  1265. "trace-startup-duration",
  1266. "trace-startup-file",
  1267. "trace-to-console",
  1268. "trace-to-file",
  1269. "trace-to-file-name",
  1270. "trace-upload-url",
  1271. "tracelog",
  1272. "translate-ranker-model-url",
  1273. "translate-script-url",
  1274. "translate-security-origin",
  1275. "true",
  1276. "trusted-download-sources",
  1277. "try-chrome-again",
  1278. "try-supported-channel-layouts",
  1279. "type",
  1280. "ui-disable-partial-swap",
  1281. "ui-enable-layer-lists",
  1282. "ui-enable-rgba-4444-textures",
  1283. "ui-enable-zero-copy",
  1284. "ui-prioritize-in-gpu-process",
  1285. "ui-show-composited-layer-borders",
  1286. "ui-show-fps-counter",
  1287. "ui-show-layer-animation-bounds",
  1288. "ui-show-paint-rects",
  1289. "ui-show-property-changed-rects",
  1290. "ui-show-screenspace-rects",
  1291. "ui-show-surface-damage-rects",
  1292. "ui-slow-animations",
  1293. "ui-test-action-max-timeout",
  1294. "ui-test-action-timeout",
  1295. "uninstall",
  1296. "unlimited-storage",
  1297. "unsafe-pac-url",
  1298. "unsafely-allow-protected-media-identifier-for-domain",
  1299. "unsafely-treat-insecure-origin-as-secure",
  1300. "use-angle",
  1301. "use-cras",
  1302. "use-double-buffering",
  1303. "use-fake-device-for-media-stream",
  1304. "use-fake-jpeg-decode-accelerator",
  1305. "use-fake-ui-for-media-stream",
  1306. "use-file-for-fake-audio-capture",
  1307. "use-file-for-fake-video-capture",
  1308. "use-first-display-as-internal",
  1309. "use-gl",
  1310. "use-gpu-in-tests",
  1311. "use-ime-service",
  1312. "use-mobile-user-agent",
  1313. "use-mock-keychain",
  1314. "use-passthrough-cmd-decoder",
  1315. "use-simple-cache-backend",
  1316. "use-system-default-printer",
  1317. "use-test-config",
  1318. "user-agent",
  1319. "user-always-affiliated",
  1320. "user-data-dir",
  1321. "user-gesture-required",
  1322. "user-gesture-required-for-cross-origin",
  1323. "utility",
  1324. "utility-allowed-dir",
  1325. "utility-cmd-prefix",
  1326. "utility-run-elevated",
  1327. "v",
  1328. "v2-sandbox",
  1329. "v2-sandbox-enabled",
  1330. "v8-cache-options",
  1331. "v8-cache-strategies-for-cache-storage",
  1332. "validate-crx",
  1333. "validate-input-event-stream",
  1334. "variations-override-country",
  1335. "variations-server-url",
  1336. "version",
  1337. "video-image-texture-target",
  1338. "video-threads",
  1339. "video-underflow-threshold-ms",
  1340. "virtual-time-budget",
  1341. "vmodule",
  1342. "voice-interaction-supported-locales",
  1343. "wait-for-debugger",
  1344. "wait-for-debugger-children",
  1345. "wake-on-wifi-packet",
  1346. "wallet-service-use-sandbox",
  1347. "watcher",
  1348. "waveout-buffers",
  1349. "webapk-server-url",
  1350. "webrtc-max-cpu-consumption-percentage",
  1351. "webrtc-stun-probe-trial",
  1352. "webview-enable-safebrowsing-support",
  1353. "webview-sandboxed-renderer",
  1354. "whitelisted-extension-id",
  1355. "win-jumplist-action",
  1356. "window-position",
  1357. "window-size",
  1358. "window-workspace",
  1359. "windows10-custom-titlebar",
  1360. "winhttp-proxy-resolver",
  1361. "wm-window-animations-disabled",
  1362. "yield-between-content-script-runs",
  1363. "zygote",
  1364. "zygote-cmd-prefix",
  1365. };
  1366. bool IsBlacklistedArg(const base::CommandLine::CharType* arg) {
  1367. #if defined(OS_WIN)
  1368. const auto converted = base::WideToUTF8(arg);
  1369. const char* a = converted.c_str();
  1370. #else
  1371. const char* a = arg;
  1372. #endif
  1373. static const char* prefixes[] = {"--", "-", "/"};
  1374. int prefix_length = 0;
  1375. for (auto& prefix : prefixes) {
  1376. if (base::StartsWith(a, prefix, base::CompareCase::SENSITIVE)) {
  1377. prefix_length = strlen(prefix);
  1378. break;
  1379. }
  1380. }
  1381. if (prefix_length > 0) {
  1382. a += prefix_length;
  1383. std::string switch_name =
  1384. base::ToLowerASCII(base::StringPiece(a, strcspn(a, "=")));
  1385. return std::binary_search(std::begin(kBlacklist), std::end(kBlacklist),
  1386. switch_name);
  1387. }
  1388. return false;
  1389. }
  1390. } // namespace
  1391. namespace atom {
  1392. bool CheckCommandLineArguments(int argc, base::CommandLine::CharType** argv) {
  1393. DCHECK(std::is_sorted(std::begin(kBlacklist), std::end(kBlacklist),
  1394. [](const char* a, const char* b) {
  1395. return base::StringPiece(a) < base::StringPiece(b);
  1396. }))
  1397. << "The kBlacklist must be in sorted order";
  1398. DCHECK(std::binary_search(std::begin(kBlacklist), std::end(kBlacklist),
  1399. base::StringPiece("inspect")))
  1400. << "Remember to add Node command line flags to kBlacklist";
  1401. const base::CommandLine::StringType dashdash(2, '-');
  1402. bool block_blacklisted_args = false;
  1403. for (int i = 0; i < argc; ++i) {
  1404. if (argv[i] == dashdash)
  1405. break;
  1406. if (block_blacklisted_args) {
  1407. if (IsBlacklistedArg(argv[i]))
  1408. return false;
  1409. } else if (IsUrlArg(argv[i])) {
  1410. block_blacklisted_args = true;
  1411. }
  1412. }
  1413. return true;
  1414. }
  1415. } // namespace atom