1,今天除夕。
2,搞定devtools的调试js问题。最大的问题是被调试页面在命中断点的时候,会卡在
blink_web.dll!blink::ClientMessageLoopAdapter::run webcore_shared.dll!blink::MainThreadDebugger::runMessageLoopOnPause webcore_shared.dll!blink::V8DebuggerImpl::handleProgramBreak webcore_shared.dll!blink::V8DebuggerImpl::handleV8DebugEvent
webcore_shared.dll!blink::V8DebuggerImpl::v8DebugEventCallback
然后在这里重建消息循环。
如果要响应devtools页面的消息,因为这个是重入的,所以麻烦比较多。首先是此处会把所有input消息都禁止掉,这是因为chromium是多进程的,原版的逻辑是禁掉当前进程的,所以调试页面默认是跑在别的进程的,所以这里我强制打开input消息,并且强行响应v8的microtask,并且关闭WebView::willEnterModalLoop(如果不关,会导致调试页面卡住,原因未明)。理论上这样做会有很多问题,不过考虑到devtools只是调试用用,所以不管了