Repository navigation
fix(input): preserve activation and navigation lifecycle semantics - #757
lanyue-llk wants to merge 1 commit into
Conversation
02ceb0b to
faf55d0
Compare
7bc4a0a to
ef06d30
Compare
Sequential Navigation Soak A/B✅ HEAD completed the 200-navigation resilience and memory observation. One browser process, one target, and one CDP session navigate CSDN → SegmentFault → Huaban → example.com repeatedly. This run issued 200 Common ancestor Session resilience
A public-page failure is reported separately from an unrecoverable session. The soak requires all navigation attempts, zero failed recovery, zero lifecycle/network ordering violations, and complete resource evidence. Process-tree memory
HEAD memory by 50-navigation quarter
Raw reports and per-navigation boundary samples: workflow run and full Public-site timing and memory are observational. Use the A/B deltas and trend shape as evidence, not as a deterministic performance threshold. |
CI Regression ReportSource CI run · source state at render:
Release regression — ✅ HEAD/base failures 0/0; raw binary +0.014275%Package and image size
Startup latency and PSS
Concurrency matrix
Frontend differential — ✅ 1,020/1,020 cases matched; 0 issues
Agent episodes · Moli vs Chromium — ✅ 8/8 Moli episodes passed; 0 failures
Runtime and CDP session contracts — ✅ 26 contract cases; 0 failures
CDP smoke — ✅ 48/48 groups passed; 535 scenariosWorkers: 4 · cumulative group time: 152.71 s · failed groups: 0
All artifact fields are parsed by the trusted default-branch renderer; missing or invalid inputs remain visible as unavailable. |
Spider Bench A/B✅ All benchmark browser service runs completed; results are informational. Public HEAD: 184 / 240 rows; 38 / 48 sites produced rows; 10 unexpected empty sites. ✅ Deterministic fixture contract is clean. Common ancestor Public 48-site run · informational
Public-site content, timing, and memory are noisy. This single A/B run reports evidence only; site outcome counts explain missing rows without treating them as a deterministic regression. CPU and memory timelinesThese are bounded 40-point views of the same complete process-tree samples used by the HTML report. CPU uses 100% per occupied logical core; memory lines are RSS first and PSS second when complete PSS samples are available. Basexychart-beta
title "Base CPU"
x-axis "Elapsed seconds" [1.536, 3.037, 4.541, 6.043, 7.543, 9.043, 10.544, 12.045, 13.548, 15.05, 16.552, 18.053, 19.555, 21.058, 22.559, 24.061, 25.562, 27.062, 28.065, 28.565, 30.067, 30.568, 31.569, 33.072, 34.575, 36.078, 37.581, 39.083, 40.583, 42.085, 43.587, 44.088, 45.089, 46.591, 48.094, 49.596, 51.096, 52.598]
y-axis "CPU percent" 0 --> 500
line [127.62, 141.84, 119.76, 179.71, 161.98, 56.01, 175.9, 111.96, 85.82, 125.98, 2, 6, 115.73, 5.99, 44, 113.92, 127.94, 131.99, 109.82, 131.76, 101.87, 193.73, 123.74, 103.85, 143.64, 39.92, 99.77, 7.98, 86.11, 97.89, 15.98, 0, 11.99, 93.98, 145.77, 15.96, 99.97, 115.97]
xychart-beta
title "Base memory: RSS then PSS"
x-axis "Elapsed seconds" [0.034, 1.536, 3.037, 4.541, 6.043, 7.543, 9.043, 10.544, 12.045, 13.548, 15.05, 16.552, 18.053, 19.555, 21.058, 22.559, 24.061, 25.562, 27.062, 28.065, 28.565, 30.067, 30.568, 31.569, 33.072, 34.575, 36.078, 37.581, 39.083, 40.583, 42.085, 43.587, 44.088, 45.089, 46.591, 48.094, 49.596, 51.096, 52.598, 53.93]
y-axis "Memory MiB" 0 --> 500
line [12.34, 100.06, 130.36, 149.89, 146.3, 155.17, 150.66, 155.23, 153.66, 177.94, 178.99, 164.46, 143.17, 162.26, 153.59, 146.02, 180.95, 156.99, 190.27, 275.03, 187.97, 203.74, 173.61, 164.99, 175.79, 165.87, 139.66, 141.65, 143.23, 161.72, 183.03, 161.6, 161.46, 153.93, 181.57, 155.28, 154.54, 155.84, 166.63, 0]
line [9.25, 96.8, 126.98, 146.38, 142.9, 151.73, 147.31, 151.78, 150.2, 174.45, 174.69, 161, 139.72, 158.8, 150.1, 142.54, 177.46, 153.5, 186.8, 273.5, 184.38, 200.25, 168.83, 161.5, 172.33, 162.38, 136.17, 138.16, 139.75, 158.33, 179.54, 158.11, 157.97, 150.43, 178.09, 151.39, 151.05, 152.35, 163.18, 0]
HEADxychart-beta
title "HEAD CPU"
x-axis "Elapsed seconds" [1.536, 3.038, 4.54, 6.041, 7.542, 9.545, 11.046, 12.548, 14.049, 15.552, 17.054, 18.056, 18.556, 20.058, 21.56, 23.06, 24.562, 26.062, 28.065, 29.567, 30.567, 31.068, 32.57, 34.072, 35.573, 37.075, 38.576, 40.078, 41.579, 43.082, 44.583, 46.585, 48.086, 49.588, 51.089, 52.592, 54.093, 54.594]
y-axis "CPU percent" 0 --> 500
line [117.68, 137.76, 125.76, 135.88, 153.88, 175.59, 63.93, 125.91, 97.97, 4, 5.98, 0, 3.99, 0, 3.99, 6, 39.97, 53.99, 87.98, 131.93, 99.93, 109.95, 103.97, 139.74, 151.78, 133.81, 21.99, 71.96, 49.96, 85.76, 103.88, 2, 117.84, 135.84, 69.95, 105.89, 117.87, 197.8]
xychart-beta
title "HEAD memory: RSS then PSS"
x-axis "Elapsed seconds" [0.034, 1.536, 3.038, 4.54, 6.041, 7.542, 9.545, 11.046, 12.548, 14.049, 15.552, 17.054, 18.056, 18.556, 20.058, 21.56, 23.06, 24.562, 26.062, 28.065, 29.567, 30.567, 31.068, 32.57, 34.072, 35.573, 37.075, 38.576, 40.078, 41.579, 43.082, 44.583, 46.585, 48.086, 49.588, 51.089, 52.592, 54.093, 54.594, 55.198]
y-axis "Memory MiB" 0 --> 500
line [12.38, 108.25, 124.93, 150.07, 192.19, 169.43, 167.67, 163.16, 171.92, 171.77, 142.26, 145.71, 145.36, 144.23, 144.47, 145.2, 147.23, 151.86, 154.86, 153.2, 161.91, 260.52, 240.21, 208.15, 165.67, 162.98, 167.7, 144.37, 144.96, 147.68, 159.76, 181.86, 152.53, 167.34, 164.19, 155.73, 147.59, 172.71, 192.88, 0]
line [9.23, 104.85, 121.5, 146.61, 188.75, 165.93, 164.16, 159.75, 168.43, 168.25, 138.75, 142.2, 141.85, 140.72, 140.96, 141.69, 143.75, 148.35, 152.23, 150.01, 158.38, 257, 236.17, 204.65, 162.15, 159.47, 164.18, 140.85, 141.49, 144.15, 156.33, 177.61, 149, 163.81, 160.69, 152.21, 144.07, 169.21, 189.45, 0]
Deterministic fixture · required contractThe fixture exercises 15 routes: 8 are expected to emit rows and 7 intentionally exercise empty, loading, or timeout behavior.
Full HTML, JSON, CSV, logs, and page snapshots: workflow run and full The public-web A/B is informational. The exact HEAD fixture contract runs as a separate required CI check; timing and public-site content deltas remain non-blocking. |
|
This PR was rebased on |
Enter 已送达输入框却没有触发表单默认提交;点击或按键触发导航后,旧页面收尾事件又可能被当作失败。WebDriver 适配还需与原生输入共享焦点、命中和默认激活语义。本 PR 将协议转换留在适配层,将真实输入与默认动作保留在核心输入层。
一图看懂
图示说明问题、修复机制与行为边界;点击可查看原图。验收归属不等于当前提交通过结果,版本和测试证据见下文。
行为与实现
ClassicClickPreparation用Dom/Pointer { point, viewport }表达两条路径,让指针所需数据随状态携带。点击预检核对遮挡与 frame 祖先;Enter、换行、取消默认动作有各自语义。导航后的收尾按旧事件所属生命周期处理,不能吞掉无关输入错误。类型设计依据 Rust API Guidelines:用类型表达参数语义。代码阅读路线
moli-protocol-webdriver-classic/src/commands/elements.rs、actions/types,server 的 classic helpers/state:协议校验、点击准备与类型转换。moli-protocol/src/domains/input.rs、DOM resolve:焦点、命中与事件分派。script_vm/input_dispatch.rs、element activation/default_action、forms/submission:核心默认动作及导航切换后的收尾。Case 与回归契约
负责
274,386,465,731;原第 6 类键盘/导航对应 274、465,第 8 类 Enter 搜索对应 731,386 是额外保留的 1.1.8 失败 case。覆盖 Enter/换行、焦点、preventDefault、遮挡和跨 frame、Mock/真实布局、导航前后的输入失败。历史两项遮挡点击测试在旧输入 HEAD 失败,依赖布局后保持测试不变通过;精确 CI 红绿对照。这说明布局是点击功能的真实前提,不能以 iframe 特例或跳过断言修复。
历史
fa1c36ef558cde8751883bff174dac7417395220四题按冻结动作和评分单轮 4/4、零重试;验收说明、逐题结果。任务执行前的启动超时与任务重试需区分,失败启动记录仍保留。此 PR 当前状态为 CLOSED,最后 head
faf55d0966aba39622e99253007733618bc60484,basecodex/pr640-reopen-layout;上述历史任务结果不应改标为该 head 的新验收。最终提交检查见 Checks,实现来源 #736。历史堆叠依赖与现在剩余三个 PR 的 main base 不相同。Reviewer 重点
默认动作是否仍可被事件取消?指针路径是否按真实遮挡/frame 关系判断?导航切换后的合法收尾和真实错误是否正确区分?
整组验收与证据入口
这组修复来自 #640,对应 1.1.9 的 34 个失败 case,加上 1.1.8 已失败的 386,共 35 个唯一 case。按最终职责分配为:#756 布局 27、#757 输入 4、#758 网络 3、#761 文本 1;#755、#759、#760 以各自独立功能契约验收,不重复认领这 35 个 case。