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但没有帮助)无济于事。
有什么想法吗?
答案 0 :(得分:1)
您在chrome.manifest
中列出的ID应该是组件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
module,它将为您完成大部分工作。您可以抛弃整个模块定义并将其替换为以下行:
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
var NSGetFactory = XPCOMUtils.generateNSGetFactory([XForwardedForProxy]);
请注意,您不再需要在组件本身中声明组件ID和合同ID,chrome.manifest
中的条目足以支持Firefox 4及更高版本。