【发布时间】:2013-03-28 23:30:22
【问题描述】:
我正在尝试实现 nsIDOMGlobalPropertyInitializer::Init()。
我有一个现有对象(基于 Google Gears),我正在尝试扩展它以支持 JAVASCRIPT_GLOBAL_PROPERTY_CATEGORY(因为 JAVASCRIPT_DOM_CLASS 似乎不再在 FF17 中工作)。
正在调用我的 nsIDOMGlobalPropertyInitializer::Init() 实现,但是如何将我的 C++ 对象(它实现 nsISupports 并公开适当的 IDL)转换为 JS:Value 以使我的对象在 Java Script 中可用?
如果我返回 NS_ERROR_NOT_IMPLEMENTED 或没有实现 nsIDOMGlobalPropertyInitializer 接口,FF(理所当然地)抱怨对象没有公开任何方法或属性。
【问题讨论】:
-
也许通过 nsXPConnect::WrapNativeToJSVal?
-
但是 nsXPConnect 来自哪里?
-
nsXPConnect* xpc = nsXPConnect::GetXPConnect(); -
但是 nsXPConnect.cpp 存在于 js\xpconnect\src\ (这是 FF 源代码树)中,它不在 SDK 中(我正在链接)。
-
@DmitryStreblechenko 你成功了吗?我正在尝试为 FF 实现 C++ 扩展,它应该将它的接口暴露给 JS,并担心它根本不可行......
标签: firefox firefox-addon firefox-addon-sdk xpcom