Firefox addon jsctypes终结器跨域问题
我过去成功地使用过jsctypes,但最新版本的firefox(32)开始给我一条奇怪的错误消息 这是过去的工作- javascript内容向chrome中的javascript扩展发送一条消息(该扩展使用ctypes调用一个特殊的设备分配器,然后向内容返回一个cdata.finalizer) 稍后,当内容被垃圾收集时,finalizer将被调用以释放特殊的设备分配 虽然这过去工作正常,但现在我得到了一个异常ctypes.CDataFinalizer 不允许将跨原点对象定义为[object]或[Array]X射线包装器上的属性 在谷歌上搜索似乎找不到任何相关信息 在扩展上我有这段代码(func…things是c代码的访问方法) 有什么建议吗Firefox addon jsctypes终结器跨域问题,firefox-addon,cross-domain,jsctypes,Firefox Addon,Cross Domain,Jsctypes,我过去成功地使用过jsctypes,但最新版本的firefox(32)开始给我一条奇怪的错误消息 这是过去的工作- javascript内容向chrome中的javascript扩展发送一条消息(该扩展使用ctypes调用一个特殊的设备分配器,然后向内容返回一个cdata.finalizer) 稍后,当内容被垃圾收集时,finalizer将被调用以释放特殊的设备分配 虽然这过去工作正常,但现在我得到了一个异常ctypes.CDataFinalizer 不允许将跨原点对象定义为[object]或[
self.addEventListener("allocArray", function (event) {
var info = event.detail.info;
try {
var cBytes = ctypes.int32_t(info.bytes);
var cArrayId = ctypes.uint32_t(0);
var err = funcAllocArray(cBytes, cArrayId.address());
if(err !== 0) {
info.rtnCode = err;
info.arrayId = -1;
info.error = "Error: " + (err === 2)? "out of memory": "allocation failed";
} else {
info.rtnCode = 0;
info.arrayId = ctypes.CDataFinalizer(cArrayId.value, funcReleaseArray);
}
}
catch(exception) {
info.rtnCode = -1;
info.arrayId = -1;
info.error = report(exception);
}
}, true, true);
如果你想关注你的jsctypes主题,你必须给它一个firefox插件标签,否则没有人会看到它。你找到这个了吗?你在这方面取得了任何进展:)我确实找到了,我必须添加event=XPCNati eWrapper.unwrap(event)在Firefox30的代码中,内容对象在插入chrome扩展时会被包装,我们无法将本地对象和CDATA终结器存储到对象中,这非常有趣。你说的chrome扩展是什么意思?你是说firefox专用代码?还是谷歌浏览器?