Firefox的成分似乎并没有被加载

问题描述:

https://github.com/terrafrost/firefox-x-forwarded-for-spooferFirefox的成分似乎并没有被加载

这是一个插件,我试着把这不是在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 @[email protected]/x-forwarded-for.js;1 ec8030f7-c20a-464f-9b0e-13a3a9e97384 

我也试过@ frostjedi.com/X-转发目标为1(这是X-forwarded- for.js有合同编号,但没有帮助)无济于事。

任何想法?

+0

http://forum.xda-developers.com/showthread.php?t=1942222 - 工程与Firefox 15.0-16 *。 – Motes

您在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} 

组件本身需要被修改以及 - 以与火狐4和上述应该露出NSGetFactory函数代替NSGetModule兼容。为此,强烈建议使用XPCOMUtils.jsm module,它将为您完成大部分工作。你可以扔掉整个模块定义和下面的行替换它:

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

请注意,您不再需要申报组件ID和合同ID在组件本身,在chrome.manifest条目是足够的火狐4以上。

参考:XPCOM changes in Gecko 2.0