docs: define read-only CDP target viewing
This commit is contained in:
+18
-1
@@ -8,6 +8,23 @@ MVP 首先提供本地 Go application service 和 CLI;是否增加 loopback HT
|
||||
|
||||
`LaunchSpec` 使用已分配的 `RemoteDebugPort`;端口分配不属于 UI,也不允许由 `ExtraArgs` 覆盖。`InstanceView` 返回实际关联端口、PID、占用来源和归属。外部关联只公开经 `DevToolsActivePort` 与 `/json/version` 验证的端口,不公开 CDP WebSocket URL。
|
||||
|
||||
只读 CDP 目标查看使用 platform `RemoteDebugTargetInspector`:
|
||||
|
||||
```go
|
||||
type RemoteDebugTarget struct {
|
||||
ID string
|
||||
Type string
|
||||
Title string
|
||||
URL string // 已移除 userinfo、query 与 fragment
|
||||
}
|
||||
|
||||
type RemoteDebugTargetInspector interface {
|
||||
ListRemoteDebugTargets(ctx context.Context, kind BrowserKind, port int) ([]RemoteDebugTarget, error)
|
||||
}
|
||||
```
|
||||
|
||||
调用者必须提供当前实例已经验证的实际端口;实现仍会复核 `/json/version` 的浏览器类型。该接口只请求 loopback HTTP `/json/list`,不公开或使用 `webSocketDebuggerUrl`,也不提供导航、关闭、创建 target 或执行脚本的接口。
|
||||
|
||||
UI 编辑使用独立的 `EditableInstance` DTO(`ID`、名称、浏览器类型、User Data Dir、启动 URL、`ProxyID`),不将运行时 PID、状态、来源或实际远程调试端口写回配置。`ProxyProfile` DTO 只包含 `ID`、名称和已校验的无认证端点;不提供认证字段。状态刷新使用 `RefreshInstanceStatus(ctx, []InstanceSnapshot) ([]InstanceStatusResult, error)` 形状:每个结果以 `ID` 和快照版本对应,错误可按行返回;实现只能检查调用方提供的实例范围。
|
||||
|
||||
## Application service
|
||||
@@ -30,7 +47,7 @@ GUI 将优雅停止封装为异步 `InstanceStopper(ctx, InstanceRow) error` ada
|
||||
|
||||
参数数组由 `internal/platform/browser.BuildArgs` 生成;Chrome/Edge executable 由同包 `Discoverer.Resolve` 解析。二者都不接收 shell 命令行字符串。CDP 端点检测和端口分配均通过 platform port 执行,UI 只消费 DTO 结果。
|
||||
|
||||
状态刷新、受管进程退出和目录选择必须通过后台 adapter 回到 UI 结果通道;UI frame 不直接做进程、文件或 CDP I/O。受管退出结果至少包含实例 ID、启动代次、受管 PID、退出码和是否为 Chub 请求停止;UI 以实例 ID、代次和 PID 丢弃过期结果。刷新不构成外部实例接管授权。
|
||||
状态刷新、受管进程退出、目录选择和 CDP 页面目标读取必须通过后台 adapter 回到 UI 结果通道;UI frame 不直接做进程、文件或 CDP I/O。受管退出结果至少包含实例 ID、启动代次、受管 PID、退出码和是否为 Chub 请求停止;UI 以实例 ID、代次和 PID 丢弃过期结果。刷新和页面目标读取都不构成外部实例接管授权。
|
||||
|
||||
## CLI 当前合约
|
||||
|
||||
|
||||
Reference in New Issue
Block a user