在 Macbook PRO 中关闭 NSWindow 时 CEF 崩溃(仅在触摸板上不用于鼠标单击)

Posted

技术标签:

【中文标题】在 Macbook PRO 中关闭 NSWindow 时 CEF 崩溃(仅在触摸板上不用于鼠标单击)【英文标题】:CEF crashes on closing NSWindow in Macbook PRO(Only on Touchpad not for mouse click) 【发布时间】:2016-07-07 10:49:43 【问题描述】:

我已将 CEF 框架集成到我的项目中。

如果我在关闭浏览器弹出窗口时使用 mac book pro 的内置触摸板,它可以正常关闭基于鼠标的窗口关闭。

弹出窗口由 CEF 生成。

大多数时候我都能重现上面的崩溃。

这是崩溃日志

进程:cefclient [1271] 路径: /Users/USER/Documents/*/cefclient.app/Contents/MacOS/cefclient 标识符:com.genband.omni.mac 版本: 1.0.0.30 (1.0.0.30) 代码类型:X86-64 (Native) 父进程:??? [1]负责人:cefclient [1271]用户 编号:501

日期/时间:2016-07-07 14:54:14.865 +0530 操作系统版本: Mac OS X 10.10.2 (14C1514) 报告版本:11 匿名 UUID: 0F54FCED-4D82-FEB9-5CD2-3A541BF3C022

睡眠/唤醒 UUID:C774E441-04B7-4295-A913-3AD622E6B6F3

自启动以来的唤醒时间:4300 秒自唤醒以来的时间:710 秒

崩溃的线程:0 CrBrowserMain 调度队列: com.apple.main-thread

异常类型:EXC_BAD_ACCESS (SIGSEGV) 异常代码: KERN_INVALID_ADDRESS 在 0x0000443e46cfbec0

0x443e46cfbec0 附近的 VM 区域: 映射文件 0000000124936000-0000000124b36000 [ 2048K] rw-/rwx SM=ALI /private/var/folders//.3KjSNY --> MALLOC_NANO 0000600000000000-0000600000200000 [2048K] rw-/rwx SM=PRV

应用程序特定信息:objc_msgSend() 选择器名称: respondsToSelector:从发件人执行@selector(_close:) _NSThemeCloseWidget 0x608000186320

线程 0 崩溃:CrBrowserMain 调度队列: com.apple.main-thread 0 libobjc.A.dylib 0x00007fff9303f0dd objc_msgSend + 29 1 com.apple.AppKit 0x00007fff87802735 -[NSWindow 关闭] + 312 2 libsystem_trace.dylib 0x00007fff84178cd7 _os_activity_initiate + 75 3 com.apple.AppKit 0x00007fff877b9b71 -[NSApplication sendAction:to:from:] + 452 4 com.apple.AppKit 0x00007fff877b9970 -[NSControl sendAction:to:] + 86 5 com.apple.AppKit 0x00007fff8798f86c __26-[NSCell _sendActionFrom:]_block_invoke + 131 6 libsystem_trace.dylib 0x00007fff84178cd7 _os_activity_initiate + 75 7 com.apple.AppKit 0x00007fff87802509 -[NSCell _sendActionFrom:] + 144 8 libsystem_trace.dylib 0x00007fff84178cd7 _os_activity_initiate + 75 9 com.apple.AppKit 0x00007fff87801d66 -[NSButtonCell performClick:] + 1027 10 com.apple.Foundation 0x00007fff83eaecdc __NSThreadPerformPerform + 293 11 com.apple.CoreFoundation 0x00007fff90285681 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17 12 com.apple.CoreFoundation 0x00007fff902778dc __CFRunLoopDoSources0 + 476 13 com.apple.CoreFoundation 0x00007fff90276e3f __CFRunLoopRun + 927 14 com.apple.CoreFoundation 0x00007fff90276858 CFRunLoopRunSpecific + 296 15 com.apple.HIToolbox 0x00007fff8ab26aef RunCurrentEventLoopInMode + 235 16 com.apple.HIToolbox 0x00007fff8ab2686a ReceiveNextEventCommon + 431 17 com.apple.HIToolbox 0x00007fff8ab266ab _BlockUntilNextEventMatchingListInModeWithFilter + 71 18 com.apple.AppKit 0x00007fff875eaf81 _DPSNextEvent + 964 19 com.apple.AppKit 0x00007fff875ea730 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194 20 com.apple.AppKit 0x00007fff875de593 -[NSApplication 运行] + 594 21 org.chromium.ContentShell.framework 0x000000010d1b7c81 0x10d080000 + 1277057 22 org.chromium.ContentShell.framework 0x000000010d1b72e4 0x10d080000 + 1274596 23 org.chromium.ContentShell.framework 0x000000010d1ef893 0x10d080000 + 1505427 24 org.chromium.ContentShell.framework 0x000000010d1dd80d 0x10d080000 + 1431565 25 com.genband.omni.mac 0x000000010ceb9d69 客户端::MainMessageLoopStd::Run() + 9 (main_message_loop_std.cc:15) 26 com.genband.omni.mac 0x000000010cee6c12 主要 + 2354 (cefclient_mac.mm:1747) 27 libdyld.dylib 0x00007fff8433d5c9 开始 + 1

非常欢迎任何建议

【问题讨论】:

【参考方案1】:

root_window_mac.mmdealloc 方法中将window_ 委托更改为nil 为我清除了崩溃问题。

【讨论】:

以上是关于在 Macbook PRO 中关闭 NSWindow 时 CEF 崩溃(仅在触摸板上不用于鼠标单击)的主要内容,如果未能解决你的问题,请参考以下文章

急!苹果Macbook Pro连接不上无线网 显示连接超时

macbook pro的contents目录在哪

macbook pro 改名

macbook pro怎样使用串口

macos怎样改变mysql密码

在 UIViewController 中关闭键盘