Skip to content

fix(navigation): cancel loading without discarding committed content - #730

Closed
lanyue-llk wants to merge 1 commit into
codex/browser-engineering-reliabilityfrom
codex/navigation-stop-loading
Closed

lanyue-llk wants to merge 1 commit into
codex/browser-engineering-reliabilityfrom
codex/navigation-stop-loading

Conversation

@lanyue-llk

@lanyue-llk lanyue-llk commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

停止加载时,取消网络、解析与导航状态需要协调;清空已经提交的页面会丢失用户正在查看的内容,迟到回调则可能污染新导航。

修复机制

取消动作作用于明确的导航/传输所有者。区分 provisional 与已提交文档,保留已解析内容,收拢 load gate 和任务结束处理,让旧任务完成不能改变新文档。

停止加载与保留已提交内容

以上图片为原报告中的机制示意,非本 PR 的实测截图,也不代表本 PR 已通过验收。来源:五方法报告解读。图片链接固定到证据提交,避免报告更新改变 PR 内容。

对应验收

历史 1.1.9 失败 case:不归因于历史 34 个失败 case;通过下述独立功能契约验收。

原大 PR 的历史 90/90 不作为本 PR 的测试结果;本 PR 的独立验收契约是下述专项场景。

功能回归覆盖:提交前/后取消、慢响应分块、取消幂等性、页面内容保留、事件次数、迟到完成和立即发起的新导航。

4 个真实 HTTP 取消见证已在 main 上重现失败,包括提交前/后取消及 held socket 释放;新 HEAD 由 CI 验证。

验证项 范围与状态
当前 HEAD df82a86b
直接基线 #725 · f13e9f42;其 main 基线为 72413280
格式 / Clippy / 全量 Rust 测试 本 PR CI 验证当前 HEAD
历史真实任务对照 main@de109 完整基线:55/90;原 1.1.9 的 34 个失败均仍失败
本分区真实任务 尚未重复执行;上列 case 是明确验收责任,不宣称已经独立通过

后续真实任务仅针对历史失败集合,保留固定动作与评分规则。功能验收范围为原 1.1.9 的 34 题加 1.1.8 已失败的 386,共 35 题;历史 67 的传输超时另存证据,不归因本 PR 修复。原 11 类分组与原测试改名/替代对应可供审查。

范围与依赖

从 #640 拆出,原 PR 和原分支保留。本 PR 以工程前置 #725 的分支为目标,因此 diff 只显示本功能分区,其他五个功能分区不是当前代码依赖。已随前置 rebase 到 main@72413280。每个分区独立触发 CI;前置合入后可再将本 PR rebase/retarget 到 main。验收发现功能依赖时,先调整边界或明确依赖,再确认 case 归属。

完整对应关系:拆分 PR 索引、逐 case 历史失败及归属。

@lanyue-llk

Copy link
Copy Markdown
Contributor Author

由 #738 替代:基于 main@2793b2407,PR 作者和所有新增提交的 GitHub author/committer 已核验关联 lanyue-llk。原分支、提交和本 PR 的讨论保留;这里只关闭被替代的 PR,不删除分支。新的 CI 与逐 case 验收记录归属替代 PR,旧版本测试结果不冒认为新版本结果。

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.

1 participant