Skip to content

Firefox-Reverse v0.27.0

Choose a tag to compare

@WhiteNightShadow WhiteNightShadow released this 02 Nov 11:40

Firefox-Reverse v0.27.0

v0.26.2之后的正式版,合入pr #28、#31、#32、#33、#34、#35。感谢@awaxiaoyu实现openai responses与gemini两个模型协议(#30,以#32合入)。

更新内容

页面交互走原生输入(#28)

  • page_click、page_type改走firefox原生输入通道(与webdriver同一条路):鼠标沿曲线移到元素上再按下抬起,页面收到isTrusted的pointer/mouse/click序列;逐字按键,大写和符号按住shift,中文走输入法提交,submit发原生回车。
  • 只点元素露在最上层的位置,被盖住时返回target_obscured并写明遮挡物。旧的selector/text写法照常可用。(说明)

离线回放与固定随机数(#31)

  • net_capture可录响应体(解码后);net_replay用录制回答之后的请求、不走网络,没录到的默认拦截,可存取har。
  • page_determinism固定页面的Math.random和crypto随机数,同输入得到同一个签名;replica把同一串随机数的node版写进工作目录给复刻用。都在引擎层实现,页面看到的仍是原生函数。(说明)

模型协议(#32)

  • 自定义模型端点新增openai responses api与gemini原生generatecontent:流式文本、function calling、图片输入、工具循环和思考摘要(模型或网关不认时自动去掉重发并记住)。
  • gemini的工具声明走标准json schema(parametersJsonSchema);并行同名调用、被输出上限截断的调用、服务端判定无效的调用都有专门处理,不会静默丢调用;responses只在开启思考时带include,非推理模型照常可用。

调试工具(#33)

  • debug_breakpoint按源码片段、行号或请求url下快照断点,命中不暂停页面,抓实参、作用域变量、指定变量的深序列化和调用栈。
  • page_console读页面的console消息和脚本错误;clear_site_data按站点清cookie、存储、缓存、权限和认证状态。(说明)
  • 内置逆向skill补了反混淆(webcrack)和弹窗、等待条件的处理。工具现为76个。

出包与构建(#28、#35)

  • release-build.sh为每个目标写build-record.<目标>.json(提交、基线、l10n、mozconfig哈希、configure参数、工具链版本、产物哈希);五个目标的mozconfig入库;mac包也能在mac本机出。本版五个目标都在维护者本机出包(mac目标在mac上编,linux和windows在lima虚拟机的x86_64容器里交叉编译),构建记录随验证摘要入库。
  • windows包随包带msvc运行库(vcruntime140、vcruntime140_1、msvcp140):v0.26.2及之前的windows包在没装vc++运行库的windows上启动即退(0xc0000135),本版修复,windows包验证会检查这三个dll。

验收结果

本版本为正式版,多平台原生ci全部通过。各平台均直接运行未修改的最终包,并与固定源码逐字节核对。

平台 指纹回归 页面/agent 环境生命周期 提示词场景/合成请求
macos arm64(本机macos 26.7.1) 213 78 12/9/6 8/11
macos intel(原生runner) 197 78 12/9/6 8/11
windows x86_64 212 78 12/9/6 8/11
linux x86_64 182 78 12/9/6 8/11
linux arm64 182 78 12/9/6 8/11

mac arm64另外通过:

  • 15个数据目录场景;
  • 从main上0498ec3的构建(版本号仍是0.26.2)原位升级:同一个profile,书签、模型配置、指纹环境都保留,临时环境经退出通道关闭。

intel包在本机经rosetta、linux arm64在本机虚拟机里也各跑了一遍同样的检查。

windows另外:

  • 在windows 11 x64(没装vc++运行库)和windows 11 arm64两台测试机上各通过一遍完整验收:包身份核对、页面交互、环境生命周期、原生指纹、全局提示词,以及verify-windows-package.py的6次冷启动截图和ledger回归;
  • 原生runner上同样通过6次截图/退出和ledger回归;
  • 安装程序的核心载荷与zip逐文件一致(54个文件),未额外执行安装向导。

已知限制:

  • 数据目录场景是故障注入,不等同于macos 27的tcc实机验收。
  • 访问不到mozilla服务的网络里,windows上环境浏览器退出可能要15–60秒以上,后端15秒后强制结束(v0.26.1起已知)。
  • intel mac和两种linux的无头ci没有验证gpu/msaa;windows上的trace输出没有在真机上实测。

完整范围见验证摘要。

安装

附件只提供五目标六个安装/便携包:macos apple silicon、macos intel、windows x86_64安装程序与zip、linux x86_64、linux arm64。报告和构建日志不作为release附件。

升级前完整退出旧浏览器,替换原位置的应用,保留原有profile与环境目录。不要直接从dmg里运行:profile映射和安装路径有关。macos使用ad-hoc签名,未作apple developer id公证。windows不再需要预装vc++运行库。

运行时代码:47629eebd8ad2c8b3f1d2fd41332c55a1e05920b;BuildID:20261102031948。