gpt4 book ai didi

firefox - 获取 nsIChannel 请求的 nsIDOMWindow 在 e10s 上总是返回 null

转载 作者:行者123 更新时间:2023-12-01 05:07:20 25 4
gpt4 key购买 nike

我在“http-on-modify-request”上有一个 observer,我需要获取与该请求相关联的 DOMWindow

以下代码取自 AdBlock Plus 并基于 this article

function getRequestWindow(/**nsIChannel*/ channel) /**nsIDOMWindow*/
{
try
{
if (channel.notificationCallbacks)
return channel.notificationCallbacks.getInterface(Ci.nsILoadContext).associatedWindow;
} catch(e) {}

try
{
if (channel.loadGroup && channel.loadGroup.notificationCallbacks)
return channel.loadGroup.notificationCallbacks.getInterface(Ci.nsILoadContext).associatedWindow;
} catch(e) {}

return null;
}

但是,此代码不再适用于多进程 Firefox(v36+,现在在 Firefox Nightly 上)。

有任何想法吗?

最佳答案

我自己还没有尝试过,所以请带上一粒盐:

您可以从 nsIChannel.loadInfo 中获取 innerWindowId,而不是从 channel 中获取 nsIDOMWindow 本身。然后可以通过 QueryInterfacensIDOMWindowUtils 在框架脚本中解析窗口 ID。

关于firefox - 获取 nsIChannel 请求的 nsIDOMWindow 在 e10s 上总是返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27555262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com