FORGE KUI / docs

DevTools 协议与方法

连接、消息格式、主要域、事件与安全边界。按当前 KUI 实现解释,不把兼容别名当作完整 CDP。

版本 3.61.7

HTTP 发现,WebSocket 发命令

应用启动 DevTools 后,服务默认绑定本机回环地址。/json 或 /json/list 给出 target 列表,/json/version 给出版本元信息;target 的 webSocketDebuggerUrl 指向 WebSocket。每个实例有独立认证 token,连接 URL 应只在受信调试进程内保存。生产产品不要无条件启动服务。

请求与响应长什么样

命令包含整数 id、method 和 params。成功时用相同 id 返回 result;默认协议版本把错误放在顶层 error,包含 code 与 message。下面只展示请求,不展示含 token 的连接地址。

json
{"id":7,"method":"DOM.querySelector","params":{"selector":"#save"}}

默认 v3.2 与旧客户端

默认外层响应使用 v3.2 形状:未知方法返回顶层 error,如 -32601。旧客户端可在 WebSocket URL 追加 proto=v3.1,使错误继续包在 result 内。这个版本号属于 KUI DevTools 的响应包络,不是 Chromium 的 CDP 版本,也不是引擎或 SDK 版本。

json
{"id":7,"error":{"code":-32601,"message":"Unknown method: Unknown.method"}}

主要方法按用途找

这张表列出代表性入口,而非固定方法总数。实际可用范围以随包文档和当前服务路由表为准。部分方法属于 KUI 扩展域。

KUI DevTools 代表性方法
要做什么方法示例结果用途
查改 DOM 与事件DOM.getDocument · DOM.querySelector · DOM.getEventListeners · DOM.setTextContent定位节点、监听器与运行时文本修改
查或改 CSSCSS.getComputedStyle · CSS.getMatchedRules · CSS.setProperty计算值、命中规则与运行时修改
看窗口Page.getInfo · Page.screenshot · Page.getLayoutMetrics目标信息、截图与视口几何
操作界面Input.dispatchMouseEvent · Input.dispatchKeyEvent鼠标、键盘和实际交互
调 LuaDebugger.setBreakpoint · Debugger.getScope · Runtime.evaluate断点、变量、表达式
读日志Console.getMessages · Console.evaluate控制台消息与 Lua 求值
量性能Performance.startRecording · Performance.getFrameDetails · Performance.getHotNodes录制、慢帧和节点归因
看渲染开关Rendering.getOptions · Rendering.setOption开发期运行时 A/B
看其他状态Network.getResources · Accessibility.getFullAXTree · Page.startScreencast资源、无障碍树与录屏
调试存储Storage.getDOMStorageItems · Storage.setDOMStorageItem本服务内存中的键值状态

事件是推送,不是轮询响应

启用 DOM 变更推送后,服务可发送 DOM.childNodeInserted、DOM.attributeModified 等事件;还可推送 Console.messageAdded、Debugger.paused、Page.screencastFrame 和录制结束状态。客户端按 method 处理无 id 的事件,按 id 匹配命令响应。DOM.disable 会停止 DOM 变更推送,避免只读观察产生多余遍历。

兼容入口有明确边界

Page.captureScreenshot 和 Runtime.evaluate 是 CDP 风格别名;后者执行 Lua。部分 *.enable、Target 和 ServiceWorker 方法只返回兼容响应,不会启动相应浏览器功能。Page.reload 未注册;HTML/CSS 文件监看属于另一个 HotReload 辅助类。Storage 方法操作此 DevTools 服务的内存键值表,不代表浏览器持久化存储。未知方法会报错。服务端单帧入站 WebSocket payload 上限为 2 MiB,MCP 客户端的较大响应接收上限不等于请求上限。

把调试连接当作高权限入口

DevTools 可读取 DOM、日志、脚本状态并修改界面。默认公开的 /json 发现信息可能包含认证 URL;共享日志和截图不得带 token。仅在本机可信开发环境启用,跨机器调试优先使用 SSH 隧道,交付前按安全指南关闭或收紧。

文档有误或遗漏?

反馈此页问题 →