diff --git a/patch/patch.cfg b/patch/patch.cfg index 48cf4a0cb..bb8381063 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -390,5 +390,10 @@ patches = [ # Fix redraw of OSR PDF viewer. # https://bitbucket.org/chromiumembedded/cef/issues/2507 'name': 'browser_child_frame_2507', + }, + { + # macOS: Fix crash when showing a select popup with CefDoMessageLoopWork. + # https://bitbucket.org/chromiumembedded/cef/issues/2495 + 'name': 'message_pump_mac_2495', } ] diff --git a/patch/patches/message_pump_mac_2495.patch b/patch/patches/message_pump_mac_2495.patch new file mode 100644 index 000000000..3dab9ff47 --- /dev/null +++ b/patch/patches/message_pump_mac_2495.patch @@ -0,0 +1,24 @@ +diff --git base/message_loop/message_pump_mac.mm base/message_loop/message_pump_mac.mm +index fb2520179995..165a8d4b4b29 100644 +--- base/message_loop/message_pump_mac.mm ++++ base/message_loop/message_pump_mac.mm +@@ -761,7 +761,8 @@ explicit MessagePumpScopedAutoreleasePool(MessagePumpCFRunLoopBase* pump) : + #else + + ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { +- DCHECK(g_app_pump); ++ if (!g_app_pump) ++ return; + DCHECK_EQ(kNSApplicationModalSafeModeMask, g_app_pump->GetModeMask()); + // Pumping events in private runloop modes is known to interact badly with + // app modal windows like NSAlert. +@@ -770,7 +771,8 @@ explicit MessagePumpScopedAutoreleasePool(MessagePumpCFRunLoopBase* pump) : + } + + ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() { +- DCHECK(g_app_pump); ++ if (!g_app_pump) ++ return; + g_app_pump->SetModeMask(kNSApplicationModalSafeModeMask); + } +