首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >firefox组件似乎未加载

firefox组件似乎未加载
EN

Stack Overflow用户
提问于 2012-09-24 11:33:59
回答 1查看 191关注 0票数 0

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

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

据我所知,组件几乎不工作,我也不知道原因。

我尝试将chrome.manifest文件读作如下所示:

代码语言:javascript
复制
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,但没有帮助)。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-26 04:03:24

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

代码语言:javascript
复制
component {f3bbf109-6d66-46ca-960e-4b78014023b3} components/x-forwarded-for.js
contract @frostjedi.com/x-forwarded-for;1 {f3bbf109-6d66-46ca-960e-4b78014023b3}

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

代码语言:javascript
复制
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
var NSGetFactory = XPCOMUtils.generateNSGetFactory([XForwardedForProxy]);

请注意,您不再需要在组件本身中声明组件ID和合同ID,chrome.manifest中的条目对于Firefox4和更高版本就足够了。

参考:XPCOM changes in Gecko 2.0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12558518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档