Files
cdp_hub/docs/tasks/T-103.md
T

38 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: T-103
title: 实现优雅关闭、强制关闭和 Job Object 进程树
phase: 1
deps: [T-102]
status: DONE
created: 2026-07-22
owner: codex
---
## 需求与背景
浏览器是多进程架构,Chub 必须提供实例级关闭能力,同时避免通过进程名称影响用户的其他 Chrome/Edge。
## 方案与边界
- `Launcher.StopProfile` 只定位本 registry 中的规范化 user data dir。
- Windows 优雅关闭向对应 PID 的窗口发送 `WM_CLOSE`。
- Windows 启动进程加入 Job Object;强制关闭调用 `TerminateJobObject`,覆盖该实例的子进程树。
- 非 Windows 保留显式降级:仅 force 使用进程 Kill,graceful 返回 unsupported。
- 外部未注册进程不提供 Stop 接口。
## 验收要点
- 优雅关闭与强制关闭传递正确模式。
- 未注册 profile 返回 `ErrInstanceNotFound`。
- 取消 Stop 不执行关闭动作。
- Windows Job Object 和窗口消息代码可编译,现有测试通过。
- `go test ./...`、`go vet ./...` 通过。
## 执行记录
- 状态:DONE
- 变更:新增实例 StopProfile、RunnerProcessController、Windows Job Object、WM_CLOSE 和非 Windows 降级实现。
- 验证:`gofmt`、`go test ./...`、`go vet ./...` 均通过。
- 阻塞:无。
- 残余风险:真实 Chrome/Edge 窗口优雅关闭、子进程回收和强制关闭需 T-104 Windows smoke 验证。