铬合金
我有一个 Chrome 扩展程序,它的行为类似于一个 Web 应用程序(除了使用 chrome.* API 和跨域请求),它具有多个 html 页面,这些页面都使用background.html与 NPAPI 插件进行通信。
扩展的结构(从扩展的根开始)如下:
- 背景.html
- plugin/ (NPAPI 插件包)
- 前端/
- main.html
- foo.html
- bar.html
- ..
background.html 在扩展安装时加载并加载 NPAPI 插件,无限期运行(直到浏览器关闭或扩展被停用/删除)。
单击扩展的工具栏按钮后,将打开main.html,它提供了一个 UI 导航来访问其他页面 foo.html 和 bar.html。
这些页面中的任何一个都chrome.extension.getBackgroundPage()
用于调用 NPAPI 插件的方法并同步接收响应。
火狐
关于背景 NPAPI 插件,这已经在我的上一个问题中得到了回答。
从当前插件 sdk 中可用的选项来看,Firefox 将消息传递限制为 JSON 可序列化值,因此我不能再直接调用 NPAPI 插件方法(通过传递插件的返回值来解决)。
剩下的问题涉及前端应用程序页面,这些页面是本地的并且应该是受信任的脚本。我已经尝试将它们加载为Panels,但 Panels 似乎不适合完整的 UI 页面,而是适合小的信息片段。
有没有办法在不以编程方式在每个页面中注入 page-mod contentscript 的情况下加载这些页面?(这也需要在页面导航时注入一个新脚本)。