☰
Brave browser-laptop 0.11.6 版本测试计划全解读:Autofill、Bookmarks、Ledger 与回归验证指南
2026/9/27 23:51:18 网站建设 项目流程
  • 桌面应用

【免费下载链接】browser-laptop

[DEPRECATED] Please see https://github.com/brave/brave-browser for the current version of Brave

项目地址:https://gitcode.com/gh_mirrors/br/browser-laptop
点击查看免费下载

本篇技术指南围绕开源仓库 browser-laptop 中的 TESTPLAN.md 展开,系统梳理 Brave 浏览器 0.11.6 版本发布前的手动测试计划:包括 Autofill、Bookmarks、History、Ledger(Brave Payments 账本)四大功能域的验证清单,以及一批跨模块的 Bug 修复回归项。读完本文,你将掌握该版本每个测试区的核心验证要点、与仓库源码(如 app/autofill.js、app/browser/api/ledger.js、各 Reducer 与单元测试)的对应关系,并理解如何借助 package.json 中的测试脚本与 test 目录下的自动化用例,把这份手工清单转化为可重复执行的回归流程。

测试计划的定位与运行前提

TESTPLAN.md 是 0.11.6 开发周期(对应 v0.11.6dev 版本线)的功能验收清单,全部条目采用「勾选清单」形式组织,每个测试项都关联一个具体的 GitHub issue 编号。这实际上是一份发布前的冒烟/回归验证矩阵,覆盖了该版本改动最集中的五个区域。

在执行这份测试计划前,需要先搭建可运行的测试环境。仓库在 package.json 中预置了完整的脚本体系:

脚本作用
npm test运行全部测试(test/**/*Test.js)
npm run unittest先执行 Python 测试工具,再运行单元测试,并注入chrome,DOMParser,XMLSerializer全局对象
npm run inttest运行集成测试(test/integration/**/*Test.js)
npm run unittest-cov基于 istanbul 生成单元测试覆盖率报告
npm run lint使用 standard 规范检查代码风格
npm start以开发模式启动浏览器(--user-data-dir-name=brave-development)

测试运行器配置集中在 test/mocha.opts:使用 TDD 风格的describe/it接口(--ui tdd)、超时 600 秒、spec 报告器、--check-leaks内存泄漏检查,并通过babel-register直接运行 ES2015+ 源码。因此,仓库中的单元测试(test/unit)、组件测试(test/about、test/navbar-components、test/tab-components等目录)、集成测试(test/integration)与 TESTPLAN.md 中的人工验证项互为补充:人工清单用于验证真实交互与视觉细节,自动化用例用于守护核心逻辑。

Autofill 表单自动填充验证

TESTPLAN.md 将 Autofill 列为第一测试区,验证重点集中在三个方向:弹出面板的样式与位置、表单填充行为本身、数据的增删改持久化。

弹出面板与布局对齐

  • 新增 Autofill 数据弹窗的标题对齐与内边距应与"Clear Browsing Data"弹窗一致(#3360、#3369)
  • Autofill 上下文菜单位置修正(#3389)
  • 表单自动填充弹窗应出现在当前聚焦输入框的下方(#3359)
  • Add Funds 弹窗的对齐问题同样在 Ledger 区被反复强调,说明 0.11.6 对弹窗体系做了统一的对齐与裁剪修正

表单填充行为

  • 表单自动填充基础支持(#3241、#860)
  • 关键交互约束:URL 栏不自动填充表单,只有点击自动补全列表项才触发(#3012、#3225)
  • 提交表单时 Brave 偶发 segmentation fault 崩溃(#3398)

数据持久化与编辑

  • 编辑 Autofill 条目后未保存、产生空白条目(#3368)
  • 新增条目按钮不可用(#3455)
  • 已保存的值被清空(#3491)

从源码看,表单数据的读写集中在 app/autofill.js,它直接代理 Electronsession.defaultSession.autofill能力:

// 新增/删除地址 session.defaultSession.autofill.addProfile({...}) session.defaultSession.autofill.removeProfile(guid) // 新增/删除信用卡 session.defaultSession.autofill.addCreditCard({...}) session.defaultSession.autofill.removeCreditCard(guid) // 登录表单的增删改查与清空 session.defaultSession.autofill.addLogin(form) session.defaultSession.autofill.updateLogin(form) session.defaultSession.autofill.removeLogin(form) session.defaultSession.autofill.clearLogins(form) session.defaultSession.autofill.clearAutofillData()

测试计划中的"编辑不保存""值被清空"等问题,恰好对应autofillDataChanged(profileGuids, creditCardGuids)通知链路与本地持久化的同步时机,验证时应重点检查修改后触发数据变更事件、刷新页面后数据仍在这两个闭环。

Bookmarks 书签验证

Bookmarks 测试区共有 14 个验证点,覆盖书签条、书签菜单、文件夹、标题回退逻辑四类问题。

书签条与工具栏显隐

  • 通过标签页托盘添加书签后应自动打开书签条(#3331)
  • 从上下文菜单添加第一个书签时书签工具栏应显示(#3355)
  • "自动为第一个书签打开书签工具栏"的既有测试需更新(#2941)
  • "仅显示收藏图标"模式下,书签条的 overflowIndicator 与文件夹也应包含在内(#3525、#3529)

标题与元数据

  • 取消收藏再重新收藏时书签标题未更新(#3284);添加书签时应正确更新标题并修复渲染(#3339)
  • 书签条上悬停提示的书签标题无法更新(#3080)
  • 站点无标题时书签应默认使用 URL 作为标题(#3344、#3442)

书签菜单与文件夹

  • 书签应像其他浏览器一样在 Bookmarks 菜单中列出(#1993、#3055)
  • 允许创建无名称的书签文件夹(#3188、#3190);文件夹名应包含可见文本(#3347、#3412)
  • 对话框中的书签文件夹无法删除(#3409)

源码层面,书签的状态管理集中在 app/browser/reducers/bookmarksReducer.js,其配套单元测试 test/unit/app/browser/reducers/bookmarksReducerTest.js 已覆盖"新增书签时前置关闭书签操作""书签数据缺失/键缺失的兜底""删除书签条目并清理缓存""调用bookmarkUtil.closeToolbarIfEmpty关闭空工具栏"等场景。手工验证时重点比对上下文菜单删除路径(#3332)与 reducer 中removeBookmark分支的行为一致性。

History 历史记录验证

History 测试区围绕about:history 页面、快捷键、上下文菜单、清除逻辑展开。

about:history 页面与导航

  • about:history中混入书签项且无法清除(#3330);书签收藏的 about 页面出现在历史中(#3366)
  • 书签文件夹出现在浏览历史中(#3453)
  • 书签历史条目应在 about:history 中显示上下文菜单(#3336)
  • about:history 上下文菜单中多余的分隔符修复(#3444)
  • 历史页面整体更新与后续跟进(#3320、#3253、#3459)
  • 新增 about:history、设置前进/后退导航上限、更高效的动态菜单(#3206)

快捷键

  • Ctrl + Y应打开历史记录(#444、#3312)

清除逻辑

  • 使用模态框清除历史时应同时清除书签时间戳(#3501)
  • 无论页面是否被收藏,清除浏览历史都应生效(#3346)
  • 清除历史时应同时清空"Recently Closed"列表(#3287)

历史相关状态由 app/browser/reducers/historyReducer.js 管理,配套 test/unit/app/browser/reducers/historyReducerTest.js 守护基本增删与去重逻辑。手工验证时可结合书签时间戳被一并清除这一细节,确认清除操作作用于统一的时间戳数据源而非仅浏览条目。

Ledger(Brave Payments)验证

Ledger 是 0.11.6 测试计划中条目最多的区域(28 项),这也与 app/browser/api/ledger.js 承担账本客户端初始化、钱包管理、发布者同步、媒体访问追踪等职责相符。测试点可归纳为四类。

钱包创建与 BTC 地址

  • Ledger beta 集成(#3195)
  • 打包构建中无法创建钱包(#3308)
  • 已有比特币钱包地址未显示(#3440)
  • Coinbase 注册流程导致浏览器崩溃(#3382)

偏好设置页面(Preferences → Payments)UI

  • Add Funds 模态框与钱包地址对齐偏差(#3378、#3267)
  • Add Funds 中 Transfer BTC 链接指向错误(#3380)
  • 月度预算下拉框缺少单位(#3266);月度预算显示错位(#3476)
  • 创建钱包控件的文本与状态在禁用/启用 Brave Payments 时闪烁(#3376)
  • 非英语环境下 Ledger 欢迎页出现重复文本(#3379)
  • 主账本界面元素应左对齐(#3395、#3396)
  • 本地化字符串在文本框中发生裁剪(#3539)
  • 合作伙伴 Logo 不应悬浮在 payments 文本下方(#3551)
  • Ledger 设置框对齐与样式修正(#3523)
  • 用户选择 10、15、20 美元月度值时,应在 Add Funds 对话框中隐藏 Coinbase 按钮(#3565)
  • Ledger 列按需右对齐(#3567)

账本同步与余额

  • 若已有历史状态,应在客户端被赋值前执行 updateLedgerInfo(#3470)
  • 未确认余额修复与展示延迟(#3495、#3480)
  • 支持 ledger 发布者规则集中的new Set(...)语法(#3553、#3545)
  • 从 ledger-client 错误中恢复时增大退避间隔(#3573)

日志与环境

  • Linux 终端上 Ledger 日志频繁且非请求输出(#3452)
  • 使用环境变量控制 ledger-* 包选项(#3462)
  • Windows 构建体积因 Ledger 增长约 26MB(#3475)
  • 杂项小问题(#3554)

对应自动化覆盖可见 test/unit/app/browser/api/ledgerTest.js,其中包含initialize(调用 notifications.init、Payments 关闭/开启时是否检查已验证发布者)、synopsisNormalizer(prune、pinned 项低于 100%)、checkVerifiedStatus、onMediaRequest/processMediaData(媒体访问计量)、onMediaPublisher等大量用例;test/unit/app/browser/reducers/ledgerReducerTest.js 与 app/browser/reducers/ledgerReducer.js 守护状态归约逻辑。手工验证时应优先覆盖钱包创建 → 预算设置 → 媒体访问 → 余额显示的端到端链路。

Fixes:跨模块回归验证区

Fixes 区是最大的一张回归清单,覆盖隐私防护、媒体、UI、构建等杂项,验证时可结合对应源码模块逐项确认。

隐私与广告屏蔽

  • 非脚本版 DuckDuckGo 在屏蔽脚本时无法从上下文菜单/地址栏加载(#3285、#3189、#3205);在过滤层拦截非脚本版 DDG(#3293)
  • 3rd party 存储未被完全屏蔽(#3214);Filesystem API cookie 未被拦截(#3286)
  • Adblock 数据文件应只下载一次(#3222)
  • 屏蔽项开启时 Shields 面板显示灰色块(#3307)
  • 默认移除占位广告(#3506)
  • HTTPS-E 改进:targets.host 应设为 UNIQUE 以自动建索引(#3215);更新到 HTTPS Everywhere 5.2.0(#2581)
  • 按 tabId 路由 safebrowsing 与 httpse 消息(#3411)
  • 从 URL 栏打开 excellentmovies.net 时未显示警告(#3367)

这些项目与 app/filtering.js、app/adBlock.js、app/httpsEverywhere.js、app/trackingProtection.js 直接相关。对协议/资源类型过滤逻辑的单元覆盖可参考 test/unit/app/browser/ads/adBlockUtilTest.js 对 app/browser/ads/adBlockUtil.js 中shouldDoAdBlockCheck的验证(http/https 允许检查、ftp 不允许、第三方/第一方 URL、YouTube 第一方 host、未知资源类型跳过、主框架第三方 URL 不检查等)。

全屏、标签页与窗口

  • 从全屏视频按 Esc 退出后浏览器停留在全屏而非窗口模式(#3338)
  • Esc 处理根据权限切换窗口/全屏模式(#3464)
  • 关闭标签页导致退出全屏(#3519)
  • 标签页专属通知在标签页关闭时应一并关闭(#3169)
  • 新增标签页按钮的悬停效果失效(#3297);位置偏高(#3208、#3213)
  • 前进/后退导航后标签页显示 URL 而非页面标题(#3200、#3202)
  • 标签页图标分辨率不佳(Linux)(#3229、#3230)

地址栏与输入

  • 无法处理含空格的 URL(#3167、#3168)
  • 未设置默认搜索引擎时地址栏输入被忽略(#3254、#3275)
  • "打开文件"操作不应触发默认搜索引擎搜索(#3296)
  • 删除文本时导致后退(#3497)

弹窗、认证与密码

  • 重定向到 basic auth 时无限挂起(#3354);用户名/密码输入框不显示(#3578)
  • 窄窗口下模态框未居中导致裁剪(#3575)
  • about:passwords 上无法删除已保存密码(#3481)
  • 升级后密码管理器上下文菜单不显示(#3549)
  • 默认设置下密码未保存(#3516)
  • 更新测试失败(#3337,多次出现)

性能、构建与数据迁移

  • Windows 构建需要繁琐变通方案(#3548);开发版本使用不同文件名(#3472);添加 cibuild 脚本(#3507)
  • 升级到 0.11.6 失败(#3550);升级前检查数据有效性并在清理后分配默认值(#3537)
  • 新配置文件的自动补全数据库初始化失败(#3577)
  • 减少不必要的 IPC 消息(#3393);从元数据请求的响应对象中获取状态码(#3407);为站点添加 themeColor 数据(#3406)
  • 修复偏好设置面板中按钮因 CSS 被裁剪/变窄(#3563)
  • 改进查找栏 UI/UX(#3315)
  • 菜单项在启动后应立即可用(#3022);无法从汉堡菜单退出(#3310);按 #1893 布局重排汉堡菜单(#3003)
  • 0.11.6-beta3 在 macOS 正常退出时总想上报崩溃(#3394)
  • 为 webpack file-loader 添加.jpg扩展名(#3309);location.reload()不刷新页面标题(#2798);书签与历史管理界面美化(#441);更新本地化文件(#3414)
  • 华尔街日报市场图问题(#2102)
  • 单元测试"带分区固定"用例失败但功能正常(#2942)
  • 临时移除插入(ad insertion,对应 #3211)

从手工清单到自动化回归体系

TESTPLAN.md 的价值不仅在于"逐项打勾",更在于它能指导自动化用例的补充方向。当前仓库已具备分层测试结构:

  • 单元测试(test/unit):覆盖 Reducer、API 与工具函数,如 bookmarksReducerTest.js、ledgerTest.js、adBlockUtilTest.js;
  • 组件/页面测试(test/about、test/navbar-components、test/tab-components):针对 about 页面与 UI 组件的交互测试;
  • 集成测试(test/integration):以npm run inttest驱动,验证跨进程的真实场景;
  • Vagrant 虚拟机测试(test/vms/vagrant):提供跨平台复现环境(如npm run vagrant-up-linux)。

实践建议:将 TESTPLAN.md 中可自动化的行为类条目(如 Autofill 数据持久化、书签标题回退、历史清除联动、Ledger 发布者同步)转化为单元/集成用例,将视觉与交互类条目(对齐、裁剪、悬停效果、模态框居中)保留为人工冒烟项,形成"自动化守逻辑、人工验体验"的双轨回归机制。

结语

TESTPLAN.md 是 browser-laptop 0.11.6 发布质量的门禁清单。通过本文的逐区拆解,你可以把这份清单当作功能域的验收地图:Autofill 关注弹窗与持久化、Bookmarks 关注标题与工具栏联动、History 关注清除与上下文菜单、Ledger 关注钱包与余额同步、Fixes 关注回归面覆盖。配合 package.json 的测试脚本与 test 目录的自动化用例,即可在开发或测试环境中高效完成该版本的验收工作。

  • 桌面应用

【免费下载链接】browser-laptop

[DEPRECATED] Please see https://github.com/brave/brave-browser for the current version of Brave

项目地址:https://gitcode.com/gh_mirrors/br/browser-laptop
点击查看免费下载

相关推荐

上一篇:OpCore-Simplify:三分钟搞定黑苹果EFI配置的开源神器
下一篇:深度解析:social-auto-upload如何通过JSON文件实现Cookie持久化与智能验证

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询