使用Gecko 12.0在Firefox上注册XPCOM
我编写了一个二进制XPCOM组件。它使用XULRunner SDK 12.0(Gecko 12.0)成功编译,但在Firefox中注册失败!信息是: WARN addons.updates:更新的清单testxp@meilijie.com未包含更新属性 我的使用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
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 + '.');