1,修复flash退出时候crash的问题。原因不是很清楚,只知道在异步回调里调用destroywindow的时候,窗口函数的地址变成一个莫名其妙的0015ec74,
ChildEBP RetAddr WARNING: Frame IP not in any known module. Following 0020f040 76d662fa 0x15ec74 0020f06c 76d66d3a USER32!InternalCallWinProc+0x23 0020f0e4 76d66ded USER32!UserCallWinProcCheckWow+0x1 0020f144 76d66e4c USER32!DispatchClientMessage+0xec 0020f180 7727011a USER32!__fnDWORD+0x2b 0020f194 01885160 ntdll!KiUserCallbackDispatcher+0x2 0020f1c8 0fa387ac 0x1885160 0020f1dc 0fa387f9 node!WTF::FunctionWrapper<void (__ 0020f1ec 10224e75 node!WTF::PartBoundFunctionImpl<1, 0020f200 0fa56bd4 node!blink::Task::run+0x35 [e:\myc 0020f210 0fa4f081 node!content::WebTimerBase::fired+ 0020f284 0fa4f14e node!content::WebThreadImpl::sched 0020f290 0f890903 node!content::WebThreadImpl::fire+ 0020f2a8 0f890b88 node!CefContext::FireHeartBeat+0x5
windows调用这个地址就挂了。
貌似和ansi window有关:https://blogs.msdn.microsoft.com/oldnewthing/20031201-00/?p=41673/
也貌似和我设置窗口函数指针为空有关:::SetWindowLongPtrA(widget, GWLP_WNDPROC, (LONG_PTR)0);
也许是因为UNICODE window不能用SetWindowLongPtrA设置为空?
现在绕过办法是把地址设置为一个真实空响应函数。
2,继续跟进flash在windowleass模式下不显示bug。原因是windowless模式下,canvas没有hdc了。flash拿不到hdc,就不调用刷新, 也不画了。