Page Assist 浏览器支持全解析:本地 AI 扩展在各浏览器中的功能差异与兼容性指南
2026/9/16 20:08:05 网站建设 项目流程

Page Assist 浏览器支持全解析:本地 AI 扩展在各浏览器中的功能差异与兼容性指南

【免费下载链接】page-assistUse your locally running AI models to assist you in your web browsing项目地址: https://gitcode.com/GitHub_Trending/pa/page-assist

Page Assist 是一个开源的浏览器扩展,它把本地运行的 AI 模型(如 Ollama、Chrome 内置 AI、任意 OpenAI 兼容端点)变成网页浏览的随身助手。本指南基于 docs/browser-support.md 与仓库源码,系统梳理该扩展在 Chrome、Edge、Firefox 等主流浏览器上的支持矩阵、三项核心功能(Sidebar、Chat With Webpage、Web UI)的可用差异、受限浏览器的技术原因,以及从源码构建/手动加载适配目标浏览器的完整方法。读完本文,你将能判断自己的浏览器属于"完整支持"还是"部分支持",并掌握自行构建与排查兼容性问题的能力。

支持的浏览器总览

官方文档明确指出,为获得最佳体验,建议在最新版本的 Google Chrome、Microsoft Edge 与 Firefox 上使用 Page Assist。完整支持矩阵如下(与 README.md 中的 Browser Support 章节一致):

BrowserSidebarChat With WebpageWeb UI
Chrome
Brave
Firefox
Vivaldi
Edge
LibreWolf
Zen Browser
Opera
Arc

从表格可以提炼出两个关键结论:

  1. Chromium 系与 Firefox 系的 7 款主流浏览器均获得完整支持:Chrome、Brave、Vivaldi、Edge、LibreWolf、Zen Browser 都是 Chromium 内核,加上 Mozilla 自家的 Firefox,全部三项功能可用。
  2. Opera 与 Arc 属于"部分支持":它们可以正常使用 Web UI(即以独立标签页打开的类 ChatGPT 界面),但侧边栏(Sidebar)与"网页对话"(Chat With Webpage)不可用

这两类浏览器的差异不是偶然,而是由扩展底层依赖的浏览器 API 能力决定的,下文会结合源码逐一拆解。

三项核心功能分别是什么

在理解"支持/不支持"之前,先明确这三项功能在仓库中的具体形态:

Sidebar(侧边栏)

在任意网页上按快捷键即可呼出的浏览器侧边栏,让你不离开当前页面就能与本地模型对话。其入口与快捷键在 wxt.config.ts 的manifest.commands中声明:

commands: { _execute_action: { description: "Open the Web UI", suggested_key: { default: "Ctrl+Shift+L" } }, execute_side_panel: { description: "Open the side panel", suggested_key: { default: "Ctrl+Shift+Y" } } }

侧边栏 UI 的入口在 src/entries/sidepanel/main.tsx,内部渲染的是 src/components/Sidepanel 下的聊天界面组件。

Chat With Webpage(网页对话)

对当前网页内容进行检索增强(RAG)后再回答问题的能力,即"和网页对话"。其核心实现是 src/chain/chat-with-website.ts 中基于 LangChain 构建的createChatWithWebsiteChain链:它包含问题压缩(CondenseQuestion)、根据是否有历史消息决定走检索分支(RunnableBranch+HasChatHistoryCheck)、文档分块格式化(FormatDocumentChunks)以及基于response_template的响应合成(GenerateResponse)等环节。网页正文的抓取与清洗则由 src/libs/get-tab-contents.ts 与 src/parser 目录下针对 Amazon、Twitter/X、Google Docs 等站点的解析器完成。

Web UI(网页界面)

以独立标签页(options.html)打开的完整聊天界面,类似 ChatGPT 的网页端。路由定义在 src/routes/chrome.tsx,包含/(首页)、/settings(设置)以及模型、提示词、Ollama、知识库、RAG、MCP、记忆等十多个配置子页面。它不依赖侧边栏 API,因此在所有列出的浏览器中都能工作。

为什么 Opera 与 Arc 缺少侧边栏能力

从源码结构看,侧边栏功能依赖两个关键 API:Chrome 系的chrome.sidePanelFirefox 系的browser.sidebarAction。这两个 API 并非所有浏览器都提供,这正是 Opera 与 Arc 功能缺失的直接原因:

  • 在 Chromium 版本的后台脚本 src/entries/background.ts 中,打开侧边栏统一走chrome.sidePanel.open({ tabId });当扩展图标被点击且配置为打开侧边栏时(actionIconClick === "sidepanel"),同样调用该 API(src/entries/background.ts)。
  • 在 Firefox 版本的后台脚本 src/entries-firefox/background.ts 中,则使用browser.sidebarAction.toggle()(src/entries-firefox/background.ts),快捷键execute_side_panel也映射到toggle()而非sidePanel.open()

进一步看权限声明:Chromium 构建需要"sidePanel"权限(见 wxt.config.ts 中的chromeMV3Permissions),而 Firefox 构建并不申请该权限。可以推断:Opera 与 Arc 虽然同为 Chromium 内核,但并未完整实现/开放chrome.sidePanelAPI,导致扩展在运行时报错或静默降级,最终表现为 Sidebar 与依赖侧边栏承载的 Chat With Webpage 不可用,而无需该 API 的 Web UI 则不受影响。

双构建体系:Chromium MV3 与 Firefox MV2 的工程实现

Page Assist 并非"一套代码打天下",而是通过 WXT 框架维护两套入口与两套清单,这也是它能覆盖 Chromium 与 Firefox 两种截然不同扩展体系的原因。

入口目录分离

在 wxt.config.ts 中:

entrypointsDir: process.env.TARGET === "firefox" ? "entries-firefox" : "entries", srcDir: "src", outDir: "build",
  • TARGET=chrome(或 edge)时使用 src/entries,产物输出到build目录;
  • TARGET=firefox时使用 src/entries-firefox。

两套目录都包含background.tsoptions/sidepanel/ollama-pull.content.tshf-pull.content.tsyoutube-summarize.content.ts等对应文件,但实现细节针对各自平台的 API 做了适配。

权限与安全模型差异

package.json 中定义了对应脚本:

"build:chrome": "cross-env TARGET=chrome wxt build", "build:firefox": "cross-env TARGET=firefox wxt build -b firefox", "build:edge": "cross-env TARGET=chrome wxt build -b edge"

对应到 wxt.config.ts 中的权限列表,两个体系的核心差异如下:

维度Chromium(MV3)Firefox(MV2)
侧边栏权限sidePanel(配合chrome.sidePanelAPI)不申请sidePanel,改用browser.sidebarAction
网络拦截declarativeNetRequest(MV3 声明式规则)webRequest+webRequestBlocking(MV2 阻塞式请求)
主机权限通过host_permissions申请http://*/*https://*/*file://*/*permissions中直接声明http://*/*https://*/*file://*/*
扩展 ID无固定 ID通过browser_specific_settings.gecko.id固定为page-assist@nazeem
内容安全策略extension_pages单独配置额外放行blob:worker-src,以支持 worker 类资源

Firefox 版本之所以保留webRequestBlocking,是因为 MV2 时代的 Firefox 需要通过阻塞式请求处理跨域/资源改写等逻辑;而 Chromium MV3 强制改用declarativeNetRequest,这也是 package.json 中build脚本会依次执行build:chromebuild:firefoxbuild:edge三个目标的原因——每个目标都需要独立清单。

安装方式:商店安装与手动加载

通过扩展商店安装

Page Assist 已在以下官方渠道上架,安装后即获得与当前浏览器匹配的构建版本:

  • Chrome / Brave / Edge:分别通过 Chrome Web Store 与 Microsoft Edge Add-ons 安装;
  • Firefox:通过 Firefox Add-ons(AMO)安装。

在安装前请先对照上文的支持矩阵确认自己的浏览器属于"完整支持"(7 款主流浏览器)还是"仅 Web UI 可用"(Opera、Arc)。

从源码手动构建并加载

如果你希望自行构建或验证最新源码,仓库提供了完整流程(见 README.md 的 Manual Installation 章节):

前置条件:Bun(或 npm)、本地 AI 服务(如 Ollama)、或任意 OpenAI 兼容端点(如 LM Studio、llamafile)。

# 1. 克隆仓库并安装依赖 git clone <仓库地址> cd page-assist bun install # 2. 构建全部目标(Chrome、Edge、Firefox) bun run build

bun run build依次执行build:chromebuild:firefoxbuild:edge,产物统一输出到build目录。若构建中遇到 Bun 相关问题,README 建议改用npm install/npm run build

Chrome 系浏览器加载

  1. 打开扩展管理页chrome://extensions(Edge 为edge://extensions);
  2. 开启右上角"开发者模式";
  3. 点击"加载已解压的扩展程序",选择build目录。

Firefox 加载

  1. 打开about:addons
  2. 进入"扩展"标签页,点击"管理您的扩展";
  3. 点击"临时载入附加组件",选择build目录下的manifest.json

注意:Firefox 的"临时载入"机制仅用于调试,浏览器重启后临时扩展会失效;正式使用仍建议通过 AMO 安装签名版本。

按单一目标构建

如果你只需要某一平台的产物,可单独执行对应脚本:

bun run build:chrome # 生成 Chromium 目标 bun run build:edge # 生成 Edge 目标 bun run build:firefox # 生成 Firefox 目标

开发调试模式下则使用bun dev(Chrome)、bun dev:firefoxbun dev:edge,WXT 会启动开发服务器并监听源码变更(package.json)。

选型与排查建议

  1. 首选 Chrome / Edge / Firefox:官方文档明确推荐这三个浏览器的最新版本,三项功能(Sidebar、Chat With Webpage、Web UI)均完整可用,且商店安装、手动构建两条路径都经过验证。
  2. Brave、Vivaldi、LibreWolf、Zen Browser:同为 Chromium 系且完整支持,可视为 Chrome 的平替,安装时走chrome://extensions加载或对应商店。
  3. Opera 与 Arc 用户:请将预期调整为"仅使用 Web UI 完成对话",侧边栏与网页对话功能不可用;如需完整体验,建议切换到上述完整支持的浏览器。这一限制源自浏览器未完整开放chrome.sidePanelAPI,与扩展本身的功能实现无关(可对照 src/entries/background.ts 中对该 API 的依赖进行验证)。
  4. 遇到异常时:先确认浏览器已更新到最新版本,再确认本地 AI 服务(如 Ollama)处于运行状态——后台脚本在拉取模型前会通过isOllamaRunning()检查服务可用性,失败时会显示红色E徽标(见 src/entries/background.ts),这属于运行环境问题而非浏览器兼容性问题。

小结

Page Assist 通过"双入口、双清单"的 WXT 工程结构(wxt.config.ts),同时适配了 Chromium MV3 与 Firefox MV2 两套扩展体系:7 款主流浏览器获得 Sidebar、Chat With Webpage、Web UI 的完整支持,而 Opera 与 Arc 因缺少chrome.sidePanelAPI 仅能使用 Web UI。选型时对照支持矩阵即可快速决策;需要深度定制时,bun run build:chrome/build:firefox/build:edge三种构建脚本让你能针对目标浏览器精确产出构建物。

【免费下载链接】page-assistUse your locally running AI models to assist you in your web browsing项目地址: https://gitcode.com/GitHub_Trending/pa/page-assist

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

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

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

立即咨询