Fix DCHECK adding menu separator with hidden items (fixes #3577)

This commit is contained in:
Marshall Greenblatt 2024-07-12 14:13:10 -04:00
parent 1e880c56ed
commit c23cfb8b01
2 changed files with 29 additions and 0 deletions

View File

@ -829,5 +829,11 @@ patches = [
# cef_sandbox with VS 17.9.2 version of MSVC STL. # cef_sandbox with VS 17.9.2 version of MSVC STL.
# https://github.com/chromiumembedded/cef/issues/3708 # https://github.com/chromiumembedded/cef/issues/3708
'name': 'win_sandbox_op3way_3708' 'name': 'win_sandbox_op3way_3708'
},
{
# Fix DCHECK in SimpleMenuModel::AddSeparator when adding a separator with
# hidden menu items.
# https://github.com/chromiumembedded/cef/issues/3577
'name': 'ui_menu_model_3577'
} }
] ]

View File

@ -0,0 +1,23 @@
diff --git ui/base/models/simple_menu_model.cc ui/base/models/simple_menu_model.cc
index 88e27362452e5..9c18ac5c77544 100644
--- ui/base/models/simple_menu_model.cc
+++ ui/base/models/simple_menu_model.cc
@@ -10,6 +10,7 @@
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/task/single_thread_task_runner.h"
+#include "cef/libcef/features/features.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/models/image_model.h"
#include "ui/gfx/image/image.h"
@@ -170,8 +171,10 @@ void SimpleMenuModel::AddSeparator(MenuSeparatorType separator_type) {
}
if (items_.at(last_visible_item).type == TYPE_SEPARATOR) {
+#if !BUILDFLAG(ENABLE_CEF)
DCHECK_EQ(NORMAL_SEPARATOR, separator_type);
DCHECK_EQ(NORMAL_SEPARATOR, items_.at(last_visible_item).separator_type);
+#endif
// The last item is already a separator. Don't add another.
return;
}