雨见浏览器PC测试版1.5.2

发布于

本阶段(1.5.1 → 1.5.2)的主线是「**扩展兼容性与广告拦截**」。首先是**扩展屏幕/标签捕获**——补齐 chrome.desktopCapture 与 chrome.tabCapture,录屏、截图类扩展可以真正调起屏幕/窗口选择器并拿到媒体流;配套的 chrome.declarativeContent 让「先禁用按钮、命中页面规则再启用」的扩展图标恢复正常亮起。第二块是**广告拦截增强**——订阅规则中的元素隐藏(cosmetic)与 scriptlet 在主进程完整落地,来源文档判定修复 no-referrer 下大量第三方规则不命中,白名单按主机名匹配不再被查询串绕过。其余还有**打开本地文件/网页存档**(Ctrl+O)、**外观面板标签栏/标签高度滑块**、**侧边栏视觉打磨**,以及 File System Access 权限修复。

## 主要更新

### 1. 扩展屏幕/标签捕获

- **desktopCapture / tabCapture 实现**(`563d679`):补齐 `chrome.desktopCapture.chooseDesktopMedia` / `cancelChooseDesktopMedia` 与 `chrome.tabCapture.getMediaStreamId` / `getCapturedTabs`。选择器复用网页 getDisplayMedia 的屏幕/窗口选择弹窗,以扩展名作为"谁在请求共享"展示并自动切到关联标签;Electron 原生的 mediaSourceId 绑定单一消费者且 10 秒过期,改为自签发不透明 stream id(60 秒有效、按扩展隔离),扩展在 offscreen 文档兑现 getUserMedia 时才解析到真实消费者。
- **媒体权限处理**(`563d679`):扩展凭 streamId 调 getUserMedia 时视选择器本身为用户授权,不再二次弹框(短期 grant,仅限扩展发起的那次请求);无窗口的 offscreen 扩展页无法弹权限框,复用扩展 origin 已保存的麦克风/摄像头授权记录。Awesome Screenshot 等录屏/截图扩展全链路可用。
- **captureVisibleTab 增强**(`563d679`):无活动标签时按 Chrome 语义报错而非静默返回;最小化/被遮挡窗口用 stayHidden 兜底仍可出帧;支持 ImageDetails 的 jpeg 格式与 quality 参数(默认 92)。
- **declarativeContent 动态工具栏图标**(`2a3969d`):实现 chrome.declarativeContent(MV2/MV3)的 onPageChanged 规则 + PageStateMatcher.pageUrl(完整 UrlFilter),导航提交时按标签评估,命中即恢复该标签上 action 可用。不少扩展先 `chrome.action.disable()` 再按页面规则启用,此前 service worker 会在构造 PageStateMatcher 时抛错、图标永远灰色点击无反应,现已修复;css / isBookmarked 条件视为满足,SetIcon / RequestContentScript 接受但忽略。

### 2. 广告拦截增强

- **元素隐藏(cosmetic)落地**(`8872bf5`):cliqz 自带的 cosmetic 通道依赖同步 IPC 与页面世界 require('electron'),与沙箱 view-preload 架构不兼容,改在主进程完成同等三步——导航提交时尽早注入订阅里的 scriptlet(##+js),dom-ready 注入通用 + 本域名隐藏样式减少广告位闪现,再在隔离世界采集 DOM 的 class/id/href 按需注入"通用类/ID 选择器"规则,加载完成及 1.5 / 4 / 9 秒复扫覆盖懒加载出来的广告位。
- **来源文档判定修复**(`8872bf5`):规则引擎只用 referrer 判 $third-party / $domain=,而 Referrer-Policy: no-referrer 及部分 fetch/beacon/媒体请求 referrer 为空,这些请求被当成"第一方"导致大量第三方规则不命中(这正是扩展拦得更多的原因之一);现按 referrer → 发起帧地址 → 顶层页面地址依次回落。
- **白名单精确匹配**(`8872bf5`):白名单从对整条 referrer 做 includes 改为按主机名后缀匹配,修复 `?from=qq.com` 之类查询串误放行的问题。
- **引擎缓存换版**(`8872bf5`):引擎配置(含是否加载 cosmetic 过滤器)随缓存一起序列化,缓存文件更名为 cache-v2.bin,避免旧缓存反序列化后仍是旧配置、订阅更新后规则与过滤计数不刷新。

### 3. 打开本地文件

- **网页存档与本地 HTML**(`3d98af7`):文件菜单新增「打开本地文件」(默认 Ctrl+O,快捷键设置"文件与标签"分类可自定义),通过浏览器内文件选择器打开 mhtml / mht / html / htm,支持多选各开新标签;不依赖安装器声明系统文件关联(相应移除 MHTML 文件关联注册)。本提交同时将版本号更新为 `1.5.2`。

### 4. 外观自定义

- **标签栏/标签高度滑块**(`5a021e1`):Chrome 风格外观面板新增「标签栏高度」(36–80px)与「标签高度」(24–44px)两个独立滑块,补齐中英文文案,可分别调整标题栏与标签行的高度。

### 5. 侧边栏视觉

- **新建标签按钮轻量化**(`526b131`、`19dcb4c`):侧边栏新建标签按钮从大面积渐变色块改为与标签行同尺寸、同对齐的轻量行(图标列与 favicon 对齐,强调色只用于图标与文字),收起时"+"图标常驻可直接点击;标签分组样式统一间距、圆角与字重,组色光晕竖条随固定分组加强,整体与标签列表视觉一致。

### 6. 修复

- **File System Access 权限**(`632e4d8`):Electron 43 装了权限 check handler 后完全以其为准,fileSystem 权限默认拒绝且不再走 prompt,导致 showOpenFilePicker / 拖放 getAsFileSystemHandle 拿到的句柄 getFile() 抛 NotAllowedError(ScriptCat 导入本地脚本失败即此);按 Chrome"用户已选择即授权读/写"的语义放行用户手势选中的句柄(含此前存入 IndexedDB 的句柄),系统敏感目录仍由 Chromium 的受限目录黑名单在选择阶段单独拦截。

评论

暂无评论。

0.056227s