Skip to content

fix: 浏览器登录优先默认浏览器并规避夸克 CDP 目标 - #11

Open
Gotya-OFFCIAL wants to merge 1 commit into
MYCF711:mainfrom
Gotya-OFFCIAL:fix/browser-login-cdp
Open

Gotya-OFFCIAL wants to merge 1 commit into
MYCF711:mainfrom
Gotya-OFFCIAL:fix/browser-login-cdp

Conversation

@Gotya-OFFCIAL

Copy link
Copy Markdown

问题

#7 指出 Windows 候选顺序会先选中注册了 App Paths 的夸克,而不是系统默认 Edge;夸克的内部页又会扰动 /json/list 并回收登录 page target,最终把“目标消失”误报成“用户关了窗口”。

改动

  • 读取 Windows UserChoice 与默认浏览器 open command,仅让 CDP 稳定白名单浏览器优先;夸克降为所有候选的最后兜底。
  • 新增 MAGPIE_BROWSER 与 MAGPIE_BROWSER_PREFER_DEFAULT=0 两个显式控制入口。
  • 两条浏览器登录路都按登录 URL origin 选择 page target,不再直接取 /json/list 第一项。
  • WS 断开时按 target id / 同源 target / 调试端口可达性区分“目标消失”“连接断开”“浏览器关闭”,不再一律误报窗口被关。
  • 两条登录路的 cdpSend 与 WS 握手均有 close/error/timeout/构造器异常清理;覆盖 WS OPEN 但 target 已消失的形态。
  • reg query 丢弃正常探测产生的 stderr。
  • 扩充离线语义回归(含 close-only 的 kill + profile 删除断言);不启动真实浏览器、不读真实账号缓存。独立静态复审 GO(无 blocker/high)。

验证

维护者本地:补丁直接相关的 tests/browser-login.test.mjs + tests/session-login.test.mjs 19/19 通过;node scripts/check.mjs、npm pack --dry-run、git diff --check 通过。全量 npm test 中 tests/today-spend.test.mjs 有 2 项失败,已在干净 main 基线 worktree 复现同样 2 项(既有时区/日期问题,与本补丁无关),未夹带修改;以 PR CI(UTC)结果为准。

未验证

真实 Windows + 夸克/Edge 的端到端登录仍需真机复验;本 PR 不把“断开原因分类”写成“自动重连”。既有 chromiumLogin 默认 cookieNames=[] 的必然超时问题单列,未夹带在本 PR。

Fixes #7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] 百智云「浏览器登录」在装了夸克浏览器的机器上必挂:候选顺序选中夸克,而夸克的 CDP 目标会在 ~10s 内消失

2 participants