Skip to content

fix(extension): verify fill results before reporting success - #189

Merged
iuyo5678 merged 3 commits into
mainfrom
fix/verify-fill-before-success
Sep 7, 2026
Merged

fix(extension): verify fill results before reporting success#189
iuyo5678 merged 3 commits into
mainfrom
fix/verify-fill-before-success

Conversation

@iuyo5678

@iuyo5678 iuyo5678 commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

问题表现

原实现仅根据 CDP 调用是否报错判断成功,并直接返回请求文本的长度。输入被截断、页面撤回输入或焦点转移时,可能未正确填入却报告成功;只读输入框还可能先被清空。

修复方案

  • 清空前检查可编辑性、输入类型、长度限制和数字格式。
  • 清空后独立确认目标状态与焦点,防止向其他控件输入。
  • 发送输入及事件后,独立回读同一目标,检查脚本异常和实际结果,覆盖事件及嵌套微任务导致的回退。
  • 仅校验通过后返回成功,value_length 使用规范化后的写入长度。
  • 成功、失败或取消后释放临时远程对象。

行为与范围

  • 追加模式校验“原值 + 新文本”;能检测选区的原生控件,光标或选区不在末尾时提前报错。
  • 兼容浏览器原生文本规范化及可编辑区域的末尾换行;无法验证时返回错误,提示先观察页面再重试。
  • 改动限定为 1 个实现文件和 2 个测试文件,无新增依赖或协议字段。

验证

  • 新增 45 个回归用例;扩展完整测试通过:78 个文件、929 个用例。
  • 34 个真实 Chrome 测试场景通过,覆盖原问题、正常输入、追加、多行文本、Shadow DOM、iframe 和脚本异常。
  • TypeScript、Biome、差异检查及生产构建通过。

@iuyo5678
iuyo5678 merged commit 5ebe609 into main Sep 7, 2026
4 checks passed
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.

2 participants