refactor: prefer Sorted variant of MakeFixedFlatSet() (#39537)

perf: prefer Sorted variant of MakeFixedFlatSet()

4660000
says that the sorted version is simpler at compile time because it
can skip MakeFixedFlatSet()'s compile-time dynamic sorting.
This commit is contained in:
Charles Kerr 2023-08-17 08:58:04 -05:00 committed by GitHub
parent 8374b9c2ad
commit 213388cd87
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 23 deletions

View file

@ -54,7 +54,8 @@ namespace {
// See https://nodejs.org/api/cli.html#cli_options
void ExitIfContainsDisallowedFlags(const std::vector<std::string>& argv) {
// Options that are unilaterally disallowed.
static constexpr auto disallowed = base::MakeFixedFlatSet<base::StringPiece>({
static constexpr auto disallowed =
base::MakeFixedFlatSetSorted<base::StringPiece>({
"--enable-fips",
"--force-fips",
"--openssl-config",

View file

@ -45,7 +45,7 @@ electron::UsbChooserContext* GetChooserContext(
// These extensions can claim the smart card USB class and automatically gain
// permissions for devices that have an interface with this class.
constexpr auto kSmartCardPrivilegedExtensionIds =
base::MakeFixedFlatSet<base::StringPiece>({
base::MakeFixedFlatSetSorted<base::StringPiece>({
// Smart Card Connector Extension and its Beta version, see
// crbug.com/1233881.
"khpfeaanjngmcnplbdlpegiifgpfgdco",

View file

@ -232,7 +232,7 @@ void ErrorMessageListener(v8::Local<v8::Message> message,
// If node CLI inspect support is disabled, allow no debug options.
bool IsAllowedOption(base::StringPiece option) {
static constexpr auto debug_options =
base::MakeFixedFlatSet<base::StringPiece>({
base::MakeFixedFlatSetSorted<base::StringPiece>({
"--debug",
"--debug-brk",
"--debug-port",
@ -244,12 +244,13 @@ bool IsAllowedOption(base::StringPiece option) {
});
// This should be aligned with what's possible to set via the process object.
static constexpr auto options = base::MakeFixedFlatSet<base::StringPiece>({
"--trace-warnings",
"--trace-deprecation",
"--throw-deprecation",
"--no-deprecation",
static constexpr auto options =
base::MakeFixedFlatSetSorted<base::StringPiece>({
"--dns-result-order",
"--no-deprecation",
"--throw-deprecation",
"--trace-deprecation",
"--trace-warnings",
});
if (debug_options.contains(option))
@ -262,11 +263,18 @@ bool IsAllowedOption(base::StringPiece option) {
// See https://nodejs.org/api/cli.html#cli_node_options_options
void SetNodeOptions(base::Environment* env) {
// Options that are unilaterally disallowed
static constexpr auto disallowed = base::MakeFixedFlatSet<base::StringPiece>(
{"--enable-fips", "--force-fips", "--openssl-config", "--use-bundled-ca",
"--use-openssl-ca", "--experimental-policy"});
static constexpr auto disallowed =
base::MakeFixedFlatSetSorted<base::StringPiece>({
"--enable-fips",
"--experimental-policy",
"--force-fips",
"--openssl-config",
"--use-bundled-ca",
"--use-openssl-ca",
});
static constexpr auto pkg_opts = base::MakeFixedFlatSet<base::StringPiece>({
static constexpr auto pkg_opts =
base::MakeFixedFlatSetSorted<base::StringPiece>({
"--http-parser",
"--max-http-header-size",
});