0

https://github.com/terrafrost/firefox-x-forwarded-for-spoofer

这是我正在尝试恢复的插件,它在最新版本的 Firefox 中不起作用,我正在尝试找出原因。

据我所知,该组件无法正常工作,我不知道为什么。

我尝试使 chrome.manifest 文件如下所示:

content x-forwarded-for chrome/content/
overlay chrome://browser/content/browser.xul chrome://x-forwarded-for/content/overlay.xul
locale x-forwarded-for en-US chrome/locale/en-US/
component ec8030f7-c20a-464f-9b0e-13a3a9e97384 components/x-forwarded-for.js
contract @x-forwarded-for@frostjedi.com/x-forwarded-for.js;1 ec8030f7-c20a-464f-9b0e-13a3a9e97384

我也试过 @frostjedi.com/x-forwarded-for;1 (这是 x-forwarded-for.js 的合同 ID,但没有帮助)无济于事。

有任何想法吗?

4

1 回答 1

1

您列出的 IDchrome.manifest应该是组件 ID,而不是扩展 ID。此外,合同 ID 似乎不正确,可能是复制和粘贴错误。正确的行是:

component {f3bbf109-6d66-46ca-960e-4b78014023b3} components/x-forwarded-for.js
contract @frostjedi.com/x-forwarded-for;1 {f3bbf109-6d66-46ca-960e-4b78014023b3}

组件本身也需要修改 - 为了与 Firefox 4 及更高版本兼容,它应该公开一个NSGetFactory函数而不是NSGetModule. 强烈建议为此使用XPCOMUtils.jsm模块,它将为您完成大部分工作。您可以丢弃整个模块定义并将其替换为以下行:

Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
var NSGetFactory = XPCOMUtils.generateNSGetFactory([XForwardedForProxy]);

请注意,您不再需要在组件本身中声明组件 ID 和合约 ID,其中的条目chrome.manifest对于 Firefox 4 及更高版本已足够。

供参考:Gecko 2.0 中的 XPCOM 更改

于 2012-09-25T20:03:23.607 回答