Skip to content

fix(layout): keep on-demand geometry consistent with document changes - #726

Closed
lanyue-llk wants to merge 1 commit into
codex/browser-engineering-reliabilityfrom
codex/layout-geometry-visibility
Closed

lanyue-llk wants to merge 1 commit into
codex/browser-engineering-reliabilityfrom
codex/layout-geometry-visibility

Conversation

@lanyue-llk

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

Copy link
Copy Markdown
Contributor

页面中的元素已经存在,却返回零面积或旧位置,导致可见元素选择和点击无法继续。该修改修复 inline 片段几何与按需布局失效,让几何消费者读取与当前 DOM、样式和布局环境一致的冻结快照。

修复机制

保留 native DOM + Stylo 作为状态来源;输入变化在所属模块标记几何失效,几何请求按需重算并发布冻结结果。片段生成保留空白、block-in-inline 和相对定位的正确包含块语义。默认 Mock 模式不升级为持续布局。

几何失败与底层机制

滚动条与可用布局宽度

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

对应验收

历史 1.1.9 失败 case:29、66、108、156、163、196、314、349、374、389、399、404、415、418、441、448、506、547、576、585、590、595、620、640、645、658、666、714

这些编号描述验收责任,不代表已证明本 PR 独立修复。原大 PR 的历史 90/90 不作为本 PR 的测试结果。

五个原有几何测试改名并更新了过时的行为预期:从“必须等待绘制才能读取新几何”改为“首次精确读取刷新、后续干净读取复用”。测试仍验证实际尺寸、文本和缓存复用,未删除对应场景。

功能回归覆盖:几何数值、inline 边界、样式收养/撤销、资源变化、多次读取缓存行为及默认 Mock 策略。

3 个功能见证在未修复的 main 上真实失败:内联碎片、动态 offsetParent/尺寸、rem/rlh;新 HEAD 的完整测试由 CI 执行。

验证项 范围与状态
当前 HEAD 63242ebd
直接基线 #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

由 #735 替代:基于 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