雨见浏览器PC浏览器1.3.4
本阶段(1.3.3 → 1.3.4)的主线是「**桌面化 + 设置 / 同步基础设施**」。其一是把原先偏轻量的 PWA 独立窗口升级为一个**真正的应用壳层**——自带应用栏与菜单、能在 PWA 模式下加载并激活扩展、跟随系统代理,并为开发版与正式版区分 AUMID(任务栏 / 开始菜单不再串味)。其二是新增**系统级桌面截图 + 富标注工具**(全屏覆盖层、图形 / 文字 / 画笔、颜色与粗细可调,截图后可直接以图搜图或喂给 AI)。其三是对**设置中心做了一次全面 UI 重构**(约 3000 行重写),并配套把一批设置项重新归类迁移(个性化 → 外观设置、自定义工具栏并入外观、密码填充 → 自动填充和密码、地址栏 → 搜索设置、内存节省移入「系统」)。同步侧把云能力铺得更宽:**手机端书签云同步**、**设置文件自定义目录 ↔ AppData 双向镜像**、账户管理面板与密码云端开关。承接 1.3.3 的 `window.open` 弹窗接管,本阶段继续加固其导航正确性,并新增**渲染进程崩溃后的延迟重建恢复**。此外还落地了沉浸模式的「页面指示器 + 全屏切换」、证书错误一次记住、打印预览、最近关闭标签子菜单、双击关闭标签、跨域 iframe 密码填充、翻译结果缓存与切换逻辑修正等多项细节。
## 主要更新
### 1. PWA 独立窗口重做为应用壳层:应用栏 + 菜单 + 扩展 + 系统代理
把「装到桌面后的 PWA 只是一个带地址的瘦窗口」升级为「一个有应用栏、有菜单、能装扩展、懂代理的完整应用壳」:
- **应用壳主体扩展**(`src/main/windows/app-mode.ts`,约 +470;新增 `src/preloads/app-mode-preload.ts` +146):PWA / 独立窗口模式下新增**应用栏(app bar)与应用菜单**,窗口行为与快捷方式命令行参数处理整体校正;开发版快捷方式此前指向错误路径的问题一并修复。
- **PWA 模式下的扩展管理**(`ff01a56`):独立窗口内**加载并激活已安装扩展**,应用菜单中列出已装扩展,扩展在 PWA 模式下不再「装了等于没装」。
- **系统代理模式在应用模式下生效**(`2dbb4f3`):代理设置新增**系统代理模式**,应用模式窗口同样走该配置;`ProfileNetwork` 设置面板与提示信息同步优化,配套 `test-profiles.js` 回归脚本。
- **AUMID 区分开发 / 生产构建**(`bda053e`):`bootstrap-paths` 与 `index.ts` 为本地开发与正式打包分配不同的 App User Model ID——开发版与正式版以**不同 App 身份**注册,任务栏固定、开始菜单、窗口分组互不干扰。
### 2. 系统级桌面截图 + 富标注工具
把截图从「截当前网页」升级为「**截整个桌面**」,并补上一套完整的标注与后续动作:
- **系统级截图覆盖层**(新增 `src/main/services/desktop-screenshot.ts`,+300):`DesktopScreenshotService` 负责系统级(跨屏、跨窗口)截图的覆盖层与生命周期管理,截图动作接入主菜单与 `view-manager`,可在任意场景唤起。
- **截图 App 大幅重构**(`screenshot/components/App`,+706 / −213):标注能力整体补齐——**绘制图形、文字、画笔**,新增标注工具栏与选项面板,支持**颜色选择与画笔粗细**调节,样式按可用性重做。
- **截图后动作**:截图结果可直接**以图搜索**或**交给 AI 问答**,截图 → 识别 → 检索 / 提问一条龙。
- **加载处理增强**(`a9c51f5`):截图渲染的加载态与异常路径加固,避免截取瞬间白屏 / 错位。
### 3. 设置中心全面 UI 重构 + 设置项迁移
本阶段体量最大的单次改动,目标是让设置「**好找、好懂、视觉统一**」:
- **25 个设置组件整体重写**(`bb66a6e`,约 +3067 / −1475):设置主框架(`App` +910)、外观(`Appearance` +461)、地址栏 / 搜索、下载、快捷键、隐私 / 广告规则、划词翻译、自定义工具栏、关于 等几乎全部设置页面重做;基础组件 `Dropdown` / `Switch` 与 `palette` 调色板同步重制,暗色模式下的层次与一致性整体提升。
- **设置项重新归类**(`2fba931`):把过去散落的条目按语义重新归位——**「个性化」改为「外观设置」**、**「自定义工具栏」并入「外观设置」**、**「密码填充」改为「自动填充和密码」**、**「地址栏」改为「搜索设置」**,导航链路与各页面的引用一并迁移。
- **内存节省移入「系统」分区**(`3ebef84`):原先放在「外观」的内存节省(Memory Saver)项归位到「系统」,与代理、数据位置等系统级设置并列。
### 4. 云同步扩展:手机端书签 + 设置镜像 + 账户管理
把 1.3.x 已有的账户 / 同步底盘向更多数据类型铺开:
- **手机端书签云同步**(`7f491f0`,`cloud-sync.ts` +511 / −194):新增手机端书签的云端同步,书签管理器打开时做一次同步校验,PC 与手机端书签保持一致;`account.ts` 补充同步入口与校验逻辑。
- **设置文件双向镜像**(`3b20307`,`bootstrap-paths` + `models/settings.ts` +116):当用户使用自定义数据目录时,**自定义目录与系统 `AppData` 的 `settings.json` 双向更新**——无论从哪一侧改动,另一侧都能感知,避免「设置存了两份、各读各的」;浏览数据相关设置的保存逻辑同步收紧,配套 `test-data-location.js` 校验。
- **账户管理面板**(`008dd6a`):设置页新增账户管理 IPC 与 `AccountCard`,登录态、同步开关可在设置内直接查看与操作。
- **密码云端状态**(`7354bf2`):`login-preload` 的 `sendMsg` 处理密码的云端状态与启用开关,密码同步的可用 / 启用语义更准确。
### 5. window.open 导航正确性 + 渲染进程崩溃恢复
承接 1.3.3 把 `window.open` 弹窗接管成标签的工作,本阶段继续打磨导航正确性,并补上「标签内容区进程崩了怎么办」:
- **渲染进程崩溃后的延迟重建**(`8bc3920`,`view.ts` +282 / `store/tabs.ts` +57):标签内容区渲染进程意外崩溃后,不再整窗白屏卡死,而是**延迟重建**该标签的 `WebContents` 并恢复导航状态;`view-manager` 与 `application` 配套接入崩溃恢复流程。
- **WebContentsView 统一收口**(`5cdbd79`):`View` / `ViewManager` 的 `WebContents` 处理统一到 `WebContentsView`,窗口管理路径更一致。
- **导航与权限处理**(`73ba4c9` / `8fb5d65`):`window.open` 导航及其关联的认证(`auth`)、权限(`permissions`)、会话(`sessions-service`)处理整体校正;`ViewManager` / `View` 的 `window.open` 处理进一步增强。
- **简化命名视图逻辑**(`a9a7f89`):移除上一版为 Google 登录临时引入的「命名视图复用」逻辑(`findNamedView` / `windowName`),`createWindowOpenTarget` 简化为不再做命名窗口检查——`window.open` 的归属与复用改走更通用的 opener 关系路径。
> 注:本主题在排查过程中产生了若干**本地调试用页面**(`popup-window-demo.html`、`renderer-crash-window-open-repro.html` 及配套探测脚本),用于复现 / 验证 `window.open` 与渲染崩溃行为,非 shipped 功能,不计入用户可感知特性。
### 6. 沉浸模式:页面指示器 + 全屏切换
沉浸浏览(鼠标移到顶部唤出悬浮栏)在本阶段补上「**当前是否处于沉浸态**」的可见反馈与全屏入口:
- **全屏切换 + 指示器同步**(`6e68007`):新增全屏切换功能,沉浸态的「页面指示器」(标识当前页面处于沉浸 / 全屏态)随状态同步;标题栏(`Titlebar`)相关逻辑收敛到主进程驱动。
- **沉浸头部集成 BrowserView**(`89c6bc0`):沉浸头部的可见性管理改由 `BrowserView` 集成驱动,显隐逻辑与 `dialogs-service` 协调,过渡更稳定。
- **指示器设置项**(`df44ae7`):新增「沉浸页面指示器」开关(`constants/settings` + `models/settings` + 外观设置页),可按需关闭指示器,状态在主窗口与设置间同步。
## 体验与细节打磨
- **双击关闭标签页**(`9100fbb`):新增「双击标签即关闭」交互,并在设置 / 引导页提供自定义开关。
- **最近关闭标签子菜单 + 标签切换器优化**(`90f9936`):右键 / 菜单中新增「最近关闭的标签」子菜单;标签切换器(`LayoutSwitcher` / `RecentlyClosedTabs`)整体精简重构(−94 / +53)。
- **证书错误「只需点一次」**(`abb5fa2`):此前访问证书有问题的站点需每次点「忽略错误才能打开」,关闭重开又要再点;现把「忽略此次」的决策**存入权限管理**,下次访问同一站点自动放行。
- **打印预览**(`c3fe055`):新增打印预览功能,支持生成并展示 PDF 打印预览,打印流程整体优化(`print-preview.ts` + `models/protocol.ts`)。
- **跨域 iframe 密码填充**(`eba893d`):密码自动填充重构以支持**跨域 iframe** 的自动填充,新增 `autofill-picker` 服务负责跨帧选取凭据;`url.ts` 的域匹配逻辑同步校正。
- **翻译结果缓存 + 切换逻辑**(`fcca015` / `115325a`):各翻译引擎新增 `cacheKey`,**页面翻译结果按缓存键复用**,减少重复请求;地址栏翻译图标的「翻译 / 显示原文」切换逻辑此前会出现「已翻译却不显示原文选项」的错乱,现**对齐 Chrome 的翻译实现**。
- **错误页重载**(`fc7daf1`):网络错误页(`network-error.html`)补上重载功能,重载按钮行为校正。
- **file:// 带参数打不开**(`0b26c6f`):修复本地文件 URL 携带查询参数(`?xxx`)时 `ERR_FILE_NOT_FOUND (-6)` 的问题。
- **下载两处修复**:① 开启弹窗拦截后下载 `.crx` 扩展不再自动安装(`b8cb099`);② 开启「下载前询问」后,下载记录里的文件名被加了 `(1)` 但实际文件没加,导致下载管理点击「打开文件夹」找不到文件——修正自动追加编号的逻辑(`8f8a1d2`)。
- **新标签页搜索重置**(`ad4eb08`):新标签页搜索补上重置逻辑,切换 / 重进时状态更干净。
- **侧边栏与标签容器样式**(`57960e1` / `6c72030`):侧边栏标签的阴影与边框、选项卡容器的背景色与阴影整体打磨,视觉一致性提升。
- **日志与崩溃诊断**(`7f0ce8a` / `68fa897`):日志新增**渲染进程诊断信息收集**与**崩溃转储(crash dump)处理 + 延迟重建机制**,崩溃现场更易追溯;扩展 API 注入在 MV3 引导期间支持命名空间附加(`offscreen` / `renderer`)。
## 主要更新
### 1. PWA 独立窗口重做为应用壳层:应用栏 + 菜单 + 扩展 + 系统代理
把「装到桌面后的 PWA 只是一个带地址的瘦窗口」升级为「一个有应用栏、有菜单、能装扩展、懂代理的完整应用壳」:
- **应用壳主体扩展**(`src/main/windows/app-mode.ts`,约 +470;新增 `src/preloads/app-mode-preload.ts` +146):PWA / 独立窗口模式下新增**应用栏(app bar)与应用菜单**,窗口行为与快捷方式命令行参数处理整体校正;开发版快捷方式此前指向错误路径的问题一并修复。
- **PWA 模式下的扩展管理**(`ff01a56`):独立窗口内**加载并激活已安装扩展**,应用菜单中列出已装扩展,扩展在 PWA 模式下不再「装了等于没装」。
- **系统代理模式在应用模式下生效**(`2dbb4f3`):代理设置新增**系统代理模式**,应用模式窗口同样走该配置;`ProfileNetwork` 设置面板与提示信息同步优化,配套 `test-profiles.js` 回归脚本。
- **AUMID 区分开发 / 生产构建**(`bda053e`):`bootstrap-paths` 与 `index.ts` 为本地开发与正式打包分配不同的 App User Model ID——开发版与正式版以**不同 App 身份**注册,任务栏固定、开始菜单、窗口分组互不干扰。
### 2. 系统级桌面截图 + 富标注工具
把截图从「截当前网页」升级为「**截整个桌面**」,并补上一套完整的标注与后续动作:
- **系统级截图覆盖层**(新增 `src/main/services/desktop-screenshot.ts`,+300):`DesktopScreenshotService` 负责系统级(跨屏、跨窗口)截图的覆盖层与生命周期管理,截图动作接入主菜单与 `view-manager`,可在任意场景唤起。
- **截图 App 大幅重构**(`screenshot/components/App`,+706 / −213):标注能力整体补齐——**绘制图形、文字、画笔**,新增标注工具栏与选项面板,支持**颜色选择与画笔粗细**调节,样式按可用性重做。
- **截图后动作**:截图结果可直接**以图搜索**或**交给 AI 问答**,截图 → 识别 → 检索 / 提问一条龙。
- **加载处理增强**(`a9c51f5`):截图渲染的加载态与异常路径加固,避免截取瞬间白屏 / 错位。
### 3. 设置中心全面 UI 重构 + 设置项迁移
本阶段体量最大的单次改动,目标是让设置「**好找、好懂、视觉统一**」:
- **25 个设置组件整体重写**(`bb66a6e`,约 +3067 / −1475):设置主框架(`App` +910)、外观(`Appearance` +461)、地址栏 / 搜索、下载、快捷键、隐私 / 广告规则、划词翻译、自定义工具栏、关于 等几乎全部设置页面重做;基础组件 `Dropdown` / `Switch` 与 `palette` 调色板同步重制,暗色模式下的层次与一致性整体提升。
- **设置项重新归类**(`2fba931`):把过去散落的条目按语义重新归位——**「个性化」改为「外观设置」**、**「自定义工具栏」并入「外观设置」**、**「密码填充」改为「自动填充和密码」**、**「地址栏」改为「搜索设置」**,导航链路与各页面的引用一并迁移。
- **内存节省移入「系统」分区**(`3ebef84`):原先放在「外观」的内存节省(Memory Saver)项归位到「系统」,与代理、数据位置等系统级设置并列。
### 4. 云同步扩展:手机端书签 + 设置镜像 + 账户管理
把 1.3.x 已有的账户 / 同步底盘向更多数据类型铺开:
- **手机端书签云同步**(`7f491f0`,`cloud-sync.ts` +511 / −194):新增手机端书签的云端同步,书签管理器打开时做一次同步校验,PC 与手机端书签保持一致;`account.ts` 补充同步入口与校验逻辑。
- **设置文件双向镜像**(`3b20307`,`bootstrap-paths` + `models/settings.ts` +116):当用户使用自定义数据目录时,**自定义目录与系统 `AppData` 的 `settings.json` 双向更新**——无论从哪一侧改动,另一侧都能感知,避免「设置存了两份、各读各的」;浏览数据相关设置的保存逻辑同步收紧,配套 `test-data-location.js` 校验。
- **账户管理面板**(`008dd6a`):设置页新增账户管理 IPC 与 `AccountCard`,登录态、同步开关可在设置内直接查看与操作。
- **密码云端状态**(`7354bf2`):`login-preload` 的 `sendMsg` 处理密码的云端状态与启用开关,密码同步的可用 / 启用语义更准确。
### 5. window.open 导航正确性 + 渲染进程崩溃恢复
承接 1.3.3 把 `window.open` 弹窗接管成标签的工作,本阶段继续打磨导航正确性,并补上「标签内容区进程崩了怎么办」:
- **渲染进程崩溃后的延迟重建**(`8bc3920`,`view.ts` +282 / `store/tabs.ts` +57):标签内容区渲染进程意外崩溃后,不再整窗白屏卡死,而是**延迟重建**该标签的 `WebContents` 并恢复导航状态;`view-manager` 与 `application` 配套接入崩溃恢复流程。
- **WebContentsView 统一收口**(`5cdbd79`):`View` / `ViewManager` 的 `WebContents` 处理统一到 `WebContentsView`,窗口管理路径更一致。
- **导航与权限处理**(`73ba4c9` / `8fb5d65`):`window.open` 导航及其关联的认证(`auth`)、权限(`permissions`)、会话(`sessions-service`)处理整体校正;`ViewManager` / `View` 的 `window.open` 处理进一步增强。
- **简化命名视图逻辑**(`a9a7f89`):移除上一版为 Google 登录临时引入的「命名视图复用」逻辑(`findNamedView` / `windowName`),`createWindowOpenTarget` 简化为不再做命名窗口检查——`window.open` 的归属与复用改走更通用的 opener 关系路径。
> 注:本主题在排查过程中产生了若干**本地调试用页面**(`popup-window-demo.html`、`renderer-crash-window-open-repro.html` 及配套探测脚本),用于复现 / 验证 `window.open` 与渲染崩溃行为,非 shipped 功能,不计入用户可感知特性。
### 6. 沉浸模式:页面指示器 + 全屏切换
沉浸浏览(鼠标移到顶部唤出悬浮栏)在本阶段补上「**当前是否处于沉浸态**」的可见反馈与全屏入口:
- **全屏切换 + 指示器同步**(`6e68007`):新增全屏切换功能,沉浸态的「页面指示器」(标识当前页面处于沉浸 / 全屏态)随状态同步;标题栏(`Titlebar`)相关逻辑收敛到主进程驱动。
- **沉浸头部集成 BrowserView**(`89c6bc0`):沉浸头部的可见性管理改由 `BrowserView` 集成驱动,显隐逻辑与 `dialogs-service` 协调,过渡更稳定。
- **指示器设置项**(`df44ae7`):新增「沉浸页面指示器」开关(`constants/settings` + `models/settings` + 外观设置页),可按需关闭指示器,状态在主窗口与设置间同步。
## 体验与细节打磨
- **双击关闭标签页**(`9100fbb`):新增「双击标签即关闭」交互,并在设置 / 引导页提供自定义开关。
- **最近关闭标签子菜单 + 标签切换器优化**(`90f9936`):右键 / 菜单中新增「最近关闭的标签」子菜单;标签切换器(`LayoutSwitcher` / `RecentlyClosedTabs`)整体精简重构(−94 / +53)。
- **证书错误「只需点一次」**(`abb5fa2`):此前访问证书有问题的站点需每次点「忽略错误才能打开」,关闭重开又要再点;现把「忽略此次」的决策**存入权限管理**,下次访问同一站点自动放行。
- **打印预览**(`c3fe055`):新增打印预览功能,支持生成并展示 PDF 打印预览,打印流程整体优化(`print-preview.ts` + `models/protocol.ts`)。
- **跨域 iframe 密码填充**(`eba893d`):密码自动填充重构以支持**跨域 iframe** 的自动填充,新增 `autofill-picker` 服务负责跨帧选取凭据;`url.ts` 的域匹配逻辑同步校正。
- **翻译结果缓存 + 切换逻辑**(`fcca015` / `115325a`):各翻译引擎新增 `cacheKey`,**页面翻译结果按缓存键复用**,减少重复请求;地址栏翻译图标的「翻译 / 显示原文」切换逻辑此前会出现「已翻译却不显示原文选项」的错乱,现**对齐 Chrome 的翻译实现**。
- **错误页重载**(`fc7daf1`):网络错误页(`network-error.html`)补上重载功能,重载按钮行为校正。
- **file:// 带参数打不开**(`0b26c6f`):修复本地文件 URL 携带查询参数(`?xxx`)时 `ERR_FILE_NOT_FOUND (-6)` 的问题。
- **下载两处修复**:① 开启弹窗拦截后下载 `.crx` 扩展不再自动安装(`b8cb099`);② 开启「下载前询问」后,下载记录里的文件名被加了 `(1)` 但实际文件没加,导致下载管理点击「打开文件夹」找不到文件——修正自动追加编号的逻辑(`8f8a1d2`)。
- **新标签页搜索重置**(`ad4eb08`):新标签页搜索补上重置逻辑,切换 / 重进时状态更干净。
- **侧边栏与标签容器样式**(`57960e1` / `6c72030`):侧边栏标签的阴影与边框、选项卡容器的背景色与阴影整体打磨,视觉一致性提升。
- **日志与崩溃诊断**(`7f0ce8a` / `68fa897`):日志新增**渲染进程诊断信息收集**与**崩溃转储(crash dump)处理 + 延迟重建机制**,崩溃现场更易追溯;扩展 API 注入在 MV3 引导期间支持命名空间附加(`offscreen` / `renderer`)。
评论
暂无评论。