问题标签 [firebreath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c++ - 如何更改我的项目 API 类扩展
我创建了一个名为“OpenOnDesktopPlugin”的 firebreath 项目。我需要将“OpenOnDesktopPluginAPI”扩展名从.cpp 更改为.mm,因为我需要添加一些客观的c 代码。我在“.cmake”文件中添加了“Mac/[^.]*.mm”行。问题是,当我将“.mm”的扩展名更改为“OpenOnDesktopPluginAPI.cpp”并运行“prepmac”命令时,该文件未显示在我的 firebreath 项目树中,但如果我去我的 finder,文件在那里。
linux - 将 Mozilla (FireBreath) 插件打包成 .xpi for FireFox?
可能这与在 Firefox 扩展中使用由 Firebreath 生成的插件有关?; 但是,我的问题可能更具体,所以这里......
我正在使用 Linux (Ubuntu 11.04),并且使用 FireBreath 构建了一个 Mozilla/Firefox (Firefox 7) 插件。这个平台上生成的插件是一个“ npXXX.so
”文件,我在~/.mozilla/plugins
. 然后,我编写了一个使用该插件的扩展程序——除了符号链接,似乎不需要其他任何东西——一切似乎都可以正常工作:)
所以,知道“ firefox 支持通过 XPI 安装你的插件。FireBreath 团队不建议这样做”,现在我仍然想将扩展和插件打包成一个 XPI 文件。所以,我正在阅读一些关于可安装包的结构 - MDN的内容,我可以看到这两种可能性:
现在,它说:“不应该使用旧的基于 XPCOM 和 LiveConnect 的插件 API。 ”,所以我猜不/components
应该使用“ ”目录(即使它在上面的页面中作为示例给出)。而且我在任何地方都找不到明确的说明,但我猜 FireBreath 构建了 NPAPI 插件 - 所以大概“ ”是要走的路。(也提到了“ ”,但它清楚地表明它已被 Firefox > 3.6 弃用)。/plugins
/platform
好的,到目前为止一切顺利......所以我尝试将插件文件复制到plugins/linux
扩展目录中:
...然后将以下内容插入chrome.manifest
:
...然后我将整个扩展目录(包括插件)压缩为 .xpi,尝试将其安装在另一台计算机上。在那里,.xpi 成功安装,.so 文件确实在配置文件的extensions/XXX/plugins/linux/
目录下解压缩 - 并且扩展的每个跨平台(javascript)代码都可以正常工作;除了找不到插件。
现在,当然,用户可以自己将扩展符号链接.so
到~/.mozilla/plugins/
; 但是,我想饶恕那个用户:)
我将如何处理这种包装 - 有推荐的方法吗?
非常感谢您的任何答案,
干杯!
编辑:发现将插件作为工具包捆绑发布 - MDN仅声明install.rdf
,并且plugins/obj.so
需要 a;然后我发现Running Quake Live in Firefox 4, 5 and 6 on Linux [fixes inside],指的是QuakeLivePlugin_433-modded_ff10.xpi,并且确实遵循如此简单的结构。如果我安装它,我会得到一个Quake 扩展和 Quake 插件(即使错误控制台抱怨“无法读取 chrome 清单文件 '/path/to/extensions/quakeliveplugin@idsoftware.com/chrome.manifest'。 ”)....但是如果我尝试我的 FireBreath 插件也是如此(例如,只是一个 install.rdf 和插件/plugins
),只显示扩展 - 没有插件(也没有合理的错误消息)。这可能是 FireBreath 的问题吗?
c++ - 如何找到包含的类型库中的接口的接口 ID?
在我的firebreath项目中,我在我的项目中包含了所需的dll,如下所示
我需要使用dll中定义的一些接口的iid。
我如何才能找到和使用类型 iid?
我什至有 dll 的源代码和 .idl 代码。我可以从中找到我需要的信息吗?
c++ - C++ 中不同大小的不同行为(Firebreath 源代码)
当我浏览firebreath的源代码时遇到一个困惑的问题(src/ScriptingCore/Variant.h)
问题是为什么大值类型(大于 void*)的静态函数的实现与小值类型不同。
例如,小值类型的 static_delete 只是在 T 实例上调用析构函数,而对于大值类型,使用 'delete'。
有什么诀窍吗?提前致谢。
c++ - 使用 BSTR 数据类型时出错
我的 firebreath 插件项目有一个活动 X 控件的包装类。
其中一种方法将 BSTR 数据类型变量作为输入,但是当我尝试调用该方法并传递 BSTR 时,出现错误。
我什至包含了“WTypes.h”头文件。但这似乎并不能解决问题。
所以有人提出了替代方案。
Makecall函数使用这些参数调用active x控件实现的Makecall函数
错误
PS:在我搜索错误后,我发现火焰呼吸不支持宽字符,即 uni 代码。那么有没有办法在firebreath中使用unicode数据类型。
javascript - FireBreath 中的触发事件
我正在使用FireBreath插件为 activex 控件编写包装类。
在从 FireBreath 文档链接到的 FireBreath activex 包装器示例中,该项目的作者使用 FireEvent 从 activex 容器类异步触发事件。
但是 FireBreath 的文档现在在 FireEvent 方法下有一个注释,上面写着:
“注意:从 FireBreath 1.5.0 开始不推荐以这种方式触发事件”
而且在示例中,事件未使用以下格式在根 JSAPI 对象中注册:
那么这是正确的做法吗?或者是否可以使用容器类调用事件
方法?
plugins - 在插件上更改\隐藏鼠标光标
我正在为 FF/Chrome/IE/Gecko 开发一个插件。在我的插件中,我需要更改或隐藏鼠标光标。该插件是无窗口的(并且应该保持不变)。
我已经厌倦了更改包含插件的 DOM 的样式,但它不起作用,调用 SetCursor/ShowCursor 也是如此(可能是因为沙盒)。
我知道这在技术上是可行的(Adobe Flash 能够改变鼠标光标,IE YouTube Flash 播放器)
谢谢,科比
cocoa - 使用 Firebreath 框架将可可应用程序转换为 NPAPI 插件
我最近发现 Apple 在 Lion 和 Safari 最新版本中将不支持 webkit 模型,并且每个人都在迁移到 Firebreath 项目以使用 NPAPI。
我有一个基本的 Cocoa 应用程序,它与以下本机框架链接:
- 核心图形
- 核心数据
- IOKit
- PFEventTaps(这是一个 3 方框架:Pfiddlesoft.com)
我从来没有使用过插件,所以这对我来说有点新,我从 Richard bateman 编写的 MAC 教程开始,在遵循指南之后,我最终得到了我个人项目的 firebreath 项目模板。下一步我只是将我所有的 Objective-C 类放入 Source Files 文件夹,添加与 4 个框架的链接,最后我将需要在插件中公开的新公共方法添加到 MyProjectPluinApi.h 例如( registerMethod("MyMethod", make_method(this, &WilmerPlugInAPI::MyMethod));
当我构建 firebreath 项目时,我得到了很多编译错误,其中一个非常重复的是:
NSString was not declared in this scope.
错误指向 NSObjCRuntime.h
到目前为止,我无法使用 XCODE 3.2.6 成功构建此版本
这里有什么问题?我需要更改所有代码以在此模板项目中完成 CPP 样式吗?或者我可以以某种方式链接我的框架?我可以看到一些样本吗?
更多细节:2011 年 11 月 7 日:我试图用一个简单的项目进行测试:
- 首先我创建项目 testOfFB
- 它在 /users/Me/Firebreath-dev/build/projects/testofFB 中生成
- 然后我修改类 testFBApi.cpp 并将其重命名为 testFBApi.mm。
- 我编写了一个名为 testMath.m 的 Objective-c 类并将其重命名为 testMath.mm
我添加了一个带有签名的方法 Add:
/li>最后我用这个修改文件 testFBApi.mm:
/li>在 add 方法的实现中,我创建了一个objective-c 类方法“add”的实例来测试对我的objective-c 方法的调用。我做了包含,并以这种方式更改了文件 /Mac/projectDef.cmake:
/li>
我运行了 prepmac.sh 脚本,然后构建了 xcode 解决方案,并且出现了相同的错误,而且还没有声明一些其他错误,例如 testFBApi。
xcode - 在 Firebreath 项目中使用 wxWidgets
我在 xcode 的 FireBreath 插件项目中使用 wxWidgets。
已添加
C++ 标志(
-I/usr/lib/wx/include/mac-unicode-debug-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXDEBUG__ -D__WXMAC__
)项目设置中的其他链接器标志(
-framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime -framework OpenGL -framework AGL -lwx_macud-2.8
)。
但我收到以下错误,...
并构建失败。
有人可以告诉我我失踪了吗?
提前致谢..
javascript - 在 NPObject 上调用方法时出错!在 JavaScript 中
我有一些想要使用 PortAudio 打开流的 Visual C++ 代码(FireBreath)。完成所有初始操作后,我有以下代码:
这个函数是从 JavaScript 调用的,在一定的秒数后,插件崩溃了Error calling method on NPObject!
,在 JavaScript 中调用它的那一行给我一个错误。