使用Gecko 12.0在Firefox上注册XPCOM

使用Gecko 12.0在Firefox上注册XPCOM,firefox,firefox-addon,xpcom,Firefox,Firefox Addon,Xpcom,我编写了一个二进制XPCOM组件。它使用XULRunner SDK 12.0(Gecko 12.0)成功编译,但在Firefox中注册失败!信息是: WARN addons.updates:更新的清单testxp@meilijie.com未包含更新属性 我的install.rdf如下所示: testxp@meilijie.com 真的 CTestXP 欢迎来到美丽街! 0.1 万云霄 https://meilijie.com/testxp 2. {9f748727-57a0-4f2d-8d24

我编写了一个二进制XPCOM组件。它使用XULRunner SDK 12.0(Gecko 12.0)成功编译,但在Firefox中注册失败!信息是:

WARN addons.updates:更新的清单testxp@meilijie.com未包含更新属性

我的
install.rdf
如下所示:


testxp@meilijie.com
真的
CTestXP
欢迎来到美丽街!
0.1
万云霄
https://meilijie.com/testxp
2.
{9f748727-57a0-4f2d-8d24-b71212c18d32}
4
12.*

和我的
chrome.manifest

binary-component components/TestXP.so

interfaces components/CTestXP.xpt

contract  @meilijie.com/newedu/CTestXP;1 {9f748727-57a0-4f2d-8d24-b71212c18d32}

我使用firefox工具检查组件:错误控制台。
当我输入这些代码时:

Components.classes["@meilijie.com/newedu/CTestXP;1"].createInstance();
错误消息是: 时间戳: 2012年05月16日 13时14分16秒 错误: Components.classes['@meilijie.com/newedu/CTestXP;1']未定义 源文件:javascript:%20Components.classes[“@meilijie.com/newedu/CTestXP;1”].createInstance(); 行:1.


我用html和js代码检查,html代码是:

<html>
  <SCRIPT SRC="MyComponentTest.js"></SCRIPT>
  <BODY>
    <BUTTON ONCLICK="MyComponentTestGo();">Go</BUTTON>
  </BODY>
</html>

您引用的错误消息与二进制组件无关,而是与Firefox试图为您的扩展查找更新有关。您是如何检查组件未注册的?致Wladimir Palant:非常感谢。我使用firefox工具检查组件:错误控制台。当我输入这些代码时:Components.classes[“@meilijie.com/newedu/CTestXP;1”].createInstance();错误消息是:Components.classes['@meilijie.com/newedu/CTestXP;1']是未定义的源文件javascript:Components.classes[“@meilijie.com/newedu/CTestXP;1”].createInstance();行:1我用html和js代码检查,html代码是:Go,js代码是:函数MyComponentTestGo(){try{netscape.security.PrivilegeManager.enablePrivilege(“UniversalXPConnect”);const cid=“@meilijie.com/newedu/CTestXP;1”;obj=Components.classes[cid].createInstance();obj=obj.QueryInterface(Components.interfaces.IMyComponent);}catch(err){alert(err);return;}var res=obj.Add(3,4);alert('Performing 3+4.Returned'+res+');}您引用的错误消息与二进制组件无关,而是与Firefox试图为您的扩展查找更新有关。您如何检查该组件是否未注册?致Wladimir Palant:非常感谢。我使用Firefox工具:错误控制台检查该组件。当我输入这些代码时:Components.class[“@meilijie.com/newedu/CTestXP;1”].createInstance();错误消息是:Components.classes['@meilijie.com/newedu/CTestXP;1']是未定义的源文件javascript:Components.classes[“@meilijie.com/newedu/CTestXP;1”].createInstance();行:1I用html和js代码检查,html代码是:Go,js代码是:函数MyComponentTestGo(){try{netscape.security.privilegmanager.enablePrivilege(“UniversalXPConnect”);const cid=“@meilijie.com/newedu/CTestXP;1”;obj=Components.classes[cid].createInstance();obj=obj.QueryInterface(Components.interfaces.IMyComponent);}catch(err){alert(err);return;}var res=obj.Add(3,4);alert('Performing 3+4.Returned'+res+');}
function MyComponentTestGo() {
try {
    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
    const cid = "@meilijie.com/newedu/CTestXP;1";
    obj = Components.classes[cid].createInstance();
    obj = obj.QueryInterface(Components.interfaces.IMyComponent);
} catch (err) {
    alert(err);
    return;
}
var res = obj.Add(3, 4);
alert('Performing 3+4. Returned ' + res + '.');