To enable accessibility support in CEF we tried using `force-renderer-accessibility` command line flag as well as by invoking `SetAccessibilityState(STATE_ENABLED)` but with either way CEF crashes as soon as `Enable Accessibility Keyboard` option is selected on Mac OS X 10.15 (Catalina), its working fine with 10.14 though.
We looked into other similar app (e.g., Spotify as thats also based directly on CEF) and observed the same behaviour there as well.
Have looked around for any open issues in CEF but could not find any reported bug around this. Following is a snippet of the crash dump with CEF symbols resolved:
- Code: Select all
Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 com.apple.HIServices 0x00007fff3a920d6b AXTextMarkerGetLength + 9
1 org.chromium.ContentShell.framework 0x00000001126edbe5 -[BrowserAccessibilityCocoa accessibilityAttributeValue:forParameter:] (in Chromium Embedded Framework) (browser_accessibility_cocoa.mm:207)
2 com.apple.AppKit 0x00007fff39ed59c9 ___NSAccessibilityEntryPointValueForAttributeWithParameter_block_invoke.821.llvm.7288867694539378565 + 557
3 com.apple.AppKit 0x00007fff39ed0c29 NSAccessibilityPerformEntryPointObject.llvm.7288867694539378565 + 16
4 com.apple.AppKit 0x00007fff39ed21a3 NSAccessibilityEntryPointValueForAttributeWithParameter + 172
5 com.apple.AppKit 0x00007fff39cc5e88 CopyParameterizedAttributeValue + 460
6 com.apple.HIServices 0x00007fff3a9076a5 _AXXMIGCopyParameterizedAttributeValue + 376
7 com.apple.HIServices 0x00007fff3a92a11f _XCopyParameterizedAttributeValue + 608
8 com.apple.HIServices 0x00007fff3a8e6553 mshMIGPerform + 205
9 com.apple.CoreFoundation 0x00007fff3c68fd9f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 41
10 com.apple.CoreFoundation 0x00007fff3c68fcef __CFRunLoopDoSource1 + 541
11 com.apple.CoreFoundation 0x00007fff3c677c9c __CFRunLoopRun + 2612
12 com.apple.CoreFoundation 0x00007fff3c676fe3 CFRunLoopRunSpecific + 499
13 com.apple.HIToolbox 0x00007fff3b1fe67d RunCurrentEventLoopInMode + 292
14 com.apple.HIToolbox 0x00007fff3b1fe3bd ReceiveNextEventCommon + 600
15 com.apple.HIToolbox 0x00007fff3b1fe147 _BlockUntilNextEventMatchingListInModeWithFilter + 64
16 com.apple.AppKit 0x00007fff39883864 _DPSNextEvent + 990
17 com.apple.AppKit 0x00007fff398825d4 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352
18 com.apple.AppKit 0x00007fff3987cd76 -[NSApplication run] + 658
19 org.chromium.ContentShell.framework 0x000000011392b3bc base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*) (in Chromium Embedded Framework) (message_pump_mac.mm:0)
20 org.chromium.ContentShell.framework 0x0000000113929ed8 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) (in Chromium Embedded Framework) (message_pump_mac.mm:189)
21 org.chromium.ContentShell.framework 0x0000000113979f08 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) (in Chromium Embedded Framework) (thread_controller_with_message_pump_impl.cc:0)
22 org.chromium.ContentShell.framework 0x000000011394d797 base::RunLoop::RunWithTimeout(base::TimeDelta) (in Chromium Embedded Framework) (run_loop.cc:159)
23 org.chromium.ContentShell.framework 0x0000000113672980 CefRunMessageLoop() (in Chromium Embedded Framework) (context.cc:308)
Has anyone faced any similar issue in CEF ? Or any other ideas around what might be going wrong ?
Thanks