Skip to content

Commit a2bf177

Browse files
committed
macOS: Fix crash when showing a select popup with CefDoMessageLoopWork (issue #2495)
1 parent dead08b commit a2bf177

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

patch/patch.cfg

+5
Original file line numberDiff line numberDiff line change
@@ -390,5 +390,10 @@ patches = [
390390
# Fix redraw of OSR PDF viewer.
391391
# https://bitbucket.org/chromiumembedded/cef/issues/2507
392392
'name': 'browser_child_frame_2507',
393+
},
394+
{
395+
# macOS: Fix crash when showing a select popup with CefDoMessageLoopWork.
396+
# https://bitbucket.org/chromiumembedded/cef/issues/2495
397+
'name': 'message_pump_mac_2495',
393398
}
394399
]
+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
diff --git base/message_loop/message_pump_mac.mm base/message_loop/message_pump_mac.mm
2+
index fb2520179995..165a8d4b4b29 100644
3+
--- base/message_loop/message_pump_mac.mm
4+
+++ base/message_loop/message_pump_mac.mm
5+
@@ -761,7 +761,8 @@ explicit MessagePumpScopedAutoreleasePool(MessagePumpCFRunLoopBase* pump) :
6+
#else
7+
8+
ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
9+
- DCHECK(g_app_pump);
10+
+ if (!g_app_pump)
11+
+ return;
12+
DCHECK_EQ(kNSApplicationModalSafeModeMask, g_app_pump->GetModeMask());
13+
// Pumping events in private runloop modes is known to interact badly with
14+
// app modal windows like NSAlert.
15+
@@ -770,7 +771,8 @@ explicit MessagePumpScopedAutoreleasePool(MessagePumpCFRunLoopBase* pump) :
16+
}
17+
18+
ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() {
19+
- DCHECK(g_app_pump);
20+
+ if (!g_app_pump)
21+
+ return;
22+
g_app_pump->SetModeMask(kNSApplicationModalSafeModeMask);
23+
}
24+

0 commit comments

Comments
 (0)