我正在编写一个 FF 插件,当在 iframe 中加载特定的 url 时,我拦截请求并加载我自己的内容,而不是通过重定向到数据 URI 并将内容脚本附加到拦截的 iframe。这在每个版本的 FF 上都非常有效,除了 nightly 启用 e10s(它适用于禁用 e10s)。在带有 e10s 的 FF nightly 中,帧被截获,但内容脚本不附加(它确实附加到未截获的数据 uri iframe)。
关于为什么这不适用于 e10s 的任何想法?
这是我的拦截代码:
function requestListener(event){
event.subject.QueryInterface(Ci.nsIHttpChannel);
let url = event.subject.URI.spec;
if(url == particularURL) {
event.subject.redirectTo(Services.io.newURI("data:text/html,CONTENT",null, null));
}
}
这里是我使用page mod
FF 的插件 sdk 附加我的内容脚本的地方:
pageMod.PageMod({
include: ["data:*"],
contentScriptFile: [data.url("myScript.js")],
contentScriptWhen: "ready",
attachTo: ["frame"],
onAttach: function(worker){
console.log("Attached"); //doesn't run with e10s
}
});