From 4f44c23396d68c107c9c50fb21ce42408afe746c Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Tue, 11 Mar 2025 09:56:30 +0100 Subject: [PATCH] Add cromite flags support: fix crash when editing flags (#1890) --- build/patches/Add-cromite-flags-support.patch | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index cf0a3d33..28a08503 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -51,7 +51,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/components_strings.grd | 1 + .../content_settings/core/common/features.cc | 1 + .../placeholder.txt | 1 + - components/flags_ui/flags_state.cc | 54 ++++++ + components/flags_ui/flags_state.cc | 59 ++++++ components/flags_ui/resources/app.css | 24 +++ components/flags_ui/resources/app.html.ts | 28 +++ components/flags_ui/resources/app.ts | 23 +++ @@ -106,7 +106,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html third_party/blink/public/common/features.h | 1 + ui/base/ui_base_features.cc | 1 + ui/base/ui_base_features.h | 1 + - 93 files changed, 806 insertions(+), 30 deletions(-) + 93 files changed, 811 insertions(+), 30 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-cromite-flags-support.grdp @@ -1214,6 +1214,18 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat for (const auto& entry : feature_entries_) { DCHECK(entry.IsValid()); if (!(entry.supported_platforms & platform_mask)) +@@ -1098,6 +1152,11 @@ void FlagsState::SetFlags(FlagsStorage* flags_storage, + std::string feature_internal_name = flag.substr(0, at_index); + const flags_ui::FeatureEntry* entry = + FindFeatureEntryByName(feature_internal_name); ++ if (!entry) { ++ if (base::FeatureList::IsCromiteFlag(feature_internal_name)) { ++ continue; ++ } ++ } + CHECK(entry); + + if (entry->type == FeatureEntry::FEATURE_VALUE || diff --git a/components/flags_ui/resources/app.css b/components/flags_ui/resources/app.css --- a/components/flags_ui/resources/app.css +++ b/components/flags_ui/resources/app.css