Chromium has over 1600 command-line switches
peter.sh
peter.sh
https://github.com/torvalds/linux/commit/b6a2fea39318e43fee8...
The real fun story about Google and flags is from the days when their flags library supported flags being passed in gzipped base64 form ... via a flag. I think the reason was there was a server that could take the whole configuration in the form of a flag, but it had got too large for Linux at some point and they didn't want to load the config from a file because there was better support for canaried/partial rollouts of flag changes than data file changes. Or something like that.
I don't know if the syntax for all of this is actually documented anywhere, but anything in chrome://flags seems to be plumbed through via --enable-features. You can see the syntax in chrome://versions?show-cmd-variations.
It would be cool if someone updated the autogen table to also include the list of available features and field trials.
> sets the birch ranker to assume it is evening for birch chip ranking purposes.
i begin to suspect there might be a better way of organizing all this functionality
Apparently there is something called a "Birch Bar" which I've never heard of, it seems to be related to calendar events... which, is weird as I have never seen a native calendar in chrome.
https://sourcegraph.com/github.com/chromium/chromium/-/blob/...
> Ash is the “Aura Shell”, the window manager and system UI for Chrome OS.
https://chromium.googlesource.com/chromium/src.git/+/refs/he...
I'd guess someone at Google decided to use tree-related codenames for ash components :)
“Shelf party” was an Easter-egg feature that made shelf icons fly around the screen. It did not launch and was removed in June 2023.
Now I want to see if I can find a May 2023 build of chromium with a --enable-shelf-party flag.--disable-web-security
Lots of subtle GPU rendering stuff that can easily give away a headless browser, or that differs between OS's in ways that can be used to detect when a browser doesn't match the expected behavior for the OS it reports to be running on.
Some of my favorite lesser-known ones:
'--install-autogenerated-theme=169,32,85', '--allow-legacy-extension-manifests', '--no-pings', '--no-first-run', '--no-default-browser-check', '--suppress-message-center-popups', '--ash-no-nudges', '--disable-infobars', '--use-mock-keychain', '--disable-cookie-encryption', '--js-flags=--random-seed=1157259159',
So I can have fun with --false=true --true=false?
Getting rid of anything that's already out there. Someone, somewhere, is using it.
Google's apparently mastered that art, at least.
It worked for our purposes, but we feared an update might break it. I went to some effort to prevent updates outside our control.
(The command line arguments can be removed over time. Also, the behavior/correctness can change over time. I wouldn't expect all combinations of arguments to be tested in all future releases.)
While testing, I noticed that some flags do nothing or contradict each other, but I wasn't sure if I was correctly using/understanding the flags.
In the code they have
const char kANGLEImplementationMetalName[] = "metal";
const char kANGLEImplementationNoneName[] = "";
So either they intentionally made -- be the none one, or they unintentionally ended up having it be that because the argument names are extracted from the strings and someone put an empty string for the none one.It seems weird that it would be intentional though so my guess it was by accident. (For example separate people made the arg parsing thing from the person that put an empty string there.) I say it seems weird because conventionally many cli utilities use -- to mean end of arguments. For example so that an argument that is the name of a file can start with dash dash followed by something without being interpreted as a flag. And also so that a command that executes another can separate its own arts from the args of the command it is executing. Things like that.