| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(devtools): 修复 JSH/JSVM inspector CDP 管道,Sources 面板可显示 JS 源码 三个叠加问题全部修复并实机验证: 1. JSVM 消息不派发:inspector 消息经 V8 RequestInterrupt 投递,仅 JS 代码执行时 触发(jsengine 源码确认)。新增 pump 循环:20ms 周期在 JS 线程调用空 JS 函数 (pump_fn_) 驱动派发;仅在收到前端消息(活跃 CDP 会话)后运行,避免空转。 2. scriptParsed 前端收不到:根因是 WaitForDebugger 阻塞 + 时序依赖。去掉 WaitForDebugger,OpenInspector 在 bundle 编译前开启,V8 原生在 Debugger.enable 时重放已编译脚本的 scriptParsed(实测验证:后连接收到 flexui_jsfwk.js 等)。 3. scriptParsed url 为空:设备 JSVM (v8 11.4) 只认 //# sourceURL= 注释, OH_JSVM_CompileScriptWithOrigin 的 resourceName 不生效。JSHCtx::RunScript 在 调试模式注入 sourceURL 前缀(SetInspectorEnabled 门控,不影响生产)。 附带:JSHDebugConnection 移除 -101/Resume 握手,Send 加锁串行化; debug_conn_ 跨线程访问加 mutex;jsh_debug_connection/jsh_get_url_connection/ web_socket_channel/js_driver_utils 补诊断日志;bugfix 文档更新为最终方案。 | 2 个月前 | |
fix(engine): JSVM inspector 动态端口探测 + OpenInspector 失败显性化 真机问题:DevTools 连上后看不到 JS 内容。根因是 OH_JSVM_OpenInspector 写死 9225,而同设备常驻进程(实测 com.huawei.hmsapp.intelligent)占用 127.0.0.1:9225 导致 bind 失败,返回 JSVM_GENERIC_FAILURE(9)(JSVM 打印 "Please check the internet permisson." 为误导性通用提示,与 INTERNET 权限 无关——app 已声明并授予该权限)。 修复: 1. 动态端口探测:CreateInspector 顺序尝试 9225..9234(10 个),取第一个 OH_JSVM_OpenInspector 成功的端口;ConnInspector 的 /json 请求与 ws 中转 url 使用同一实际端口(JSHGetUrlConnection 参数化 port)。释放仍走 OH_JSVM_CloseInspector(env),与端口号无关,动态端口随 env 一并释放。 2. OpenInspector 失败不再静默:CreateInspector 返回 JSVM_Status; EnableScopeDebug(enableDebugFwk=false 延迟路径)失败回调 RUN_SCRIPT_ERROR 带原因(此前无条件回 ok);InitializeScope(enableDebugFwk=true)补 status 日志;SendMessageToJSH 在 debug_conn_ 为 NULL 时丢弃日志带上 inspector_open_status 便于定位。TS 主链路不受影响(调试降级不阻断运行)。 真机验证:9225 被占 → 自动落到 9226 status=0,/json 解析成功, JSHDebugConnection 建立,DevTools 可见 JS 内容。 | 27 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 27 天前 |