问题标签 [e10s]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
93 浏览

javascript - 如何将消息从 Firefox 框架脚本发布到网页?

我正在调整我对 Firefox 多进程(e10s)的扩展。

我想使用框架脚本中的 postMessage 向网页发送一些数据。

Firefox 文档说我应该尝试使用“内容”对象而不是“窗口”对象。尝试访问内容页面时出现错误:.

我应该如何访问内容对象?我应该将任何内容加载到我的 frame-script.js 吗?

(我已经成功从网页中获取数据,并将其发送到扩展程序并从扩展程序中取回其他数据)

0 投票
1 回答
54 浏览

javascript - 将 web 脚本中的 postMessage 发送到框架脚本

在 frame-script.js 上,我无法从网页上的 Web 脚本中捕获/收听 postMessages(也无法收听自定义事件)。

但是,我尝试并能够捕捉到“点击”事件。

我究竟做错了什么?

像这样发布消息:

听框架脚本:

也试过

没有捕捉到 postMessage。

0 投票
2 回答
83 浏览

firefox - Firefox 扩展:响应在父级中观察到的 http-on-modify-request,并向负责加载的子框架发送消息

我正在尝试增强现有的 Firefox 扩展,该扩展依赖于nsIContentPolicy检测和中止某些网络负载(以阻止生成的 UI 操作,即选项卡导航)。然后在内部处理加载该资源。在极少数情况下,只有在处理完负载之后,事实证明我们根本不应该中断负载,所以我们将其标记为忽略并重新启动它。

在 e10s/multi-process 下,这意味着父级(运行内容策略的位置)必须向子级(处理内容的 UI)发送消息以重新加载。今天,这是由以下人员完成的:

这是疯狂的复杂,​​因为 e10s 是疯狂的复杂。但它有效;它在父级中生成一些对象,我可以调用它.sendAsyncMessage(),然后addMessageListener()我的框架/子脚本中的处理程序接收它,并执行它需要做的事情。


我想从 切换nsIContentPolicy到 ,http-on-modify-request因为它提供了更多信息,以便更早地做出更好的决定(阻止并处理此负载?)。在那个观察者里面我可以做:

这给了我一个对象,该对象具有.messageManager某种消息管理器,并且具有.sendAsyncMessage()方法。但是当我使用它时.sendAsyncMessage(),消息消失了,孩子永远不会观察到。


上下文:https ://github.com/greasemonkey/greasemonkey/issues/2280

0 投票
2 回答
169 浏览

jquery - 多进程 Firefox 扩展可以使用 JQuery 吗?

Mozilla 文档对此问题保持沉默。有知道的人可以回答和解释为什么或为什么不吗?如果没有,我想知道为什么不这样做的政策原因和架构决策。

编辑:这个问题仅限于不能使用附加 SDK 而是使用传统覆盖模式的扩展。

0 投票
1 回答
392 浏览

firefox - 如何在 e10s 插件中获取活动标签 URL

对于工具栏按钮单击,我需要获取活动选项卡的 URL 地址。

得到一个CPOW错误。

如何在 e10s 插件中获取活动选项卡 URL 的 URL 位置?

0 投票
0 回答
67 浏览

firefox-addon-sdk - 检测 Firefox 附加 SDK 中的 URL 更改(多进程)

我正在使用附加 SDK 开发我的第一个附加组件,jpm(因为我需要支持旧版本的 Firefox)

我需要在地址栏中跟踪 URL 的变化,我发现这样的事情可以通过使用nsIWebProgressListener界面来完成。

我找到了这个解决方案:Detect tab URL change inside a Firefox add-on,但它不适用于多进程 Firefox (Electrolysis),因为它使用不兼容的tabs/utils API。

代码片段:

功能getBrowserForTab与e10s不兼容,无法正常使用。

我能做些什么?

0 投票
1 回答
229 浏览

firefox - Firefox 多进程兼容性是否需要 multiprocessCompatible 标签?

我在 AMO 上有一个工具栏按钮插件。截至目前,它适用于普通版和 e10s Firefox 版本。但是 AMO 验证器要求附加组件添加 em:multiprocessCompatible 标记。

<em:multiprocessCompatible>true</em:multiprocessCompatible>

如果我没有更新我的 AMO 附加组件并且没有在 install.rdf 中添加 em:multiprocessCompatible 标记,这是否意味着 Firefox 50 将禁用我的附加组件?