问题标签 [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.

0 投票
1 回答
1041 浏览

firebreath - 将视频从插件流式传输到浏览器

我一直在编写一个接收 QVGA 视频流的浏览器插件。我想以一种可以从 JavaScript 以编程方式接口的方式将该视频流式传输到浏览器 - 例如,可以输入画布的东西,如元素或 Image() 对象。

注意:这意味着我试图避免让我的插件绘制到一个窗口中 - 我知道我可以做到这一点,但我想要与页面的其余部分呈现良好交互的东西,并且还有一个众所周知的对象模型,我不必实施。

棘手的部分是如何快速做到这一点 - 例如,我可以通过设置 src 属性来获得 base64 编码数据,但开销非常高。

我的问题是是否有办法避免更多开销(例如,提供原始图像缓冲区而不是格式化图像并对其进行 base64 编码以让浏览器对其进行解码)——我现在所拥有的还不够快。

至于环境,我正在使用 Firebreath 来编写插件(C++ 与 NPAPI/ActiveX 大部分被抽象出来),我想保留我拥有的 Mac 和 Windows 支持。直接研究使用 NPAPI 是可以接受的,但我宁愿不这样做。

编辑:我通过使用一个元素并使用数据 UI 方案将其 'src' 属性更新为 base64 编码位图解决了这个问题 - (例如 imageJSObject->SetProperty('src', 'data:image/bmp;base64,<encoded BMP>'); 性能不是很好,但已经足够了。主要的警告是,至少在 Chrome 15 上,onload 只触发一次,而不是每次我更改 src 属性时,所以我必须生成自己的事件每次更新后。

0 投票
2 回答
556 浏览

google-chrome-extension - 如何通过 C/C++ 打开包含在 Chrome 扩展中的文件?

我正在尝试在我的 Chrome 扩展程序中打开一个要解析的文件,比如“config.txt”。

通过Javascript,这将相当容易。例如:chrome.extension.getURL('config.txt')会得到类似chrome-extension://kfcphocilcidmjolfgicbchdfjjlfkmh/config.txt.

但是,在扩展的 C++(或 C)代码中,不能通过这种 URL 打开文件。

在这种情况下,有没有办法以扩展名打开文件?

0 投票
2 回答
2480 浏览

html - NPAPI 插件之上的 HTML

在我完成使用 FireBreath 和 OpenGL 编写浏览器插件并使用对象标签嵌入插件后,我尝试在插件顶部覆盖各种 HTML 元素。不幸的是,无论我尝试什么,标签和插件图形总是停留在页面上任何其他 HTML 元素的顶部。

据我所知,flash 插件允许 HTML 覆盖如下:

有没有一种通用的方法来启用 HTML 覆盖或标签?如果没有,有没有办法在 NPAPI/ActiveX 插件上启用覆盖,或者 FireBreath 是否以某种方式支持此功能?

自从我开始编程以来,StackOverFlow 一直是我的主要资源,非常感谢大家!

0 投票
1 回答
728 浏览

winapi - 使用 CustomWndProc 回调仅消息窗口句柄

我正在使用 firebreath 开发一个 NPAPI 插件。我正在使用第三方 dll 集成到游戏设备。设备上的输入通过在打开设备通道时注册的仅消息窗口 (HWND) 传播到插件。

最初,与设备驱动程序握手,握手(HWND,...),然后根据用户输入,在 CustomWinProc() 上进行回调以进行通知。

我做了以下,

- 在 WIN-CustomCallbackHandler.h 下创建一个 Header&CPP 文件,

-CustomCallbackHandler.cpp

-Factory.cpp - 添加了以下方法来覆盖 PluginWindowWin

-MyFirstPluginAPI.cpp-(自动生成的 JSAPIAuto 子类)- JS 方法。

现在,当我调试时,我可以看到为常规插件事件调用了几次 customcallbackhandler,但设备生成的事件不可用。我相信消息窗口的不同实例已传递给 dll。

- 如何获取 PluginWindowWin 的句柄?
- 一旦我在 CustomCallbackHandler 上收到回调,如何生成自定义 sendEvent()?

非常感谢您的帮助。

我是一名 Java 开发人员,在 C++ 编程方面没有太多经验。我相信我缺少一些基本的东西。

0 投票
1 回答
744 浏览

cocoa - NSApplicationPresentationOptions 不适用于 FIREBREATH

我正在尝试从我正在开发的插件中自定义用户体验,我的目标是使用 COCOA NSApplication 中可用的选项提供信息亭样式,代码如下所示:

我已经使用普通的可可应用程序测试了这段代码,它工作正常,但是当我将此代码嵌入到“Firebreath 插件”内的函数中时,尽管firebreath 构建正确并且我拥有的其他功能正常工作,但没有任何反应。

一些想法?这可能是关于系统安全限制?如果是这样如何启用它?如果其他可可功能正常,我不知道为什么这不起作用。

我正在使用 XCODE 4.2 在 Mac OS X Lion 上进行开发

0 投票
1 回答
389 浏览

cocoa - 发送 NSDistributedNotification 并获得响应

我创建了一个向可可应用程序发送通知的 firebreath 插件。如果成功收到通知,有什么方法可以从应用程序中获得响应?

0 投票
1 回答
83 浏览

objective-c - Firebreath MethodConverter.h 初始化无效

嗨,我创建了一个 firebreath 项目。我将此方法添加到默认生成的代码中:

在应用程序 API 头文件 (MYAppAPI.h) 中:

在应用程序 API 源文件(MAppAPI.mm 我使用的是 Objective-c)中:

但是当我构建代码时,我收到了这个错误:

...firebreath/src/ScriptingCore/MethodConverter.h:115:错误:从“std::basic_string,std::allocator >”类型的临时值对“std::string&”类型的非常量引用无效初始化

有任何想法吗?

0 投票
3 回答
572 浏览

npapi - 用 firebreath 创建新项目

我目前的任务是创建一个 NPAPI 插件。而且我已经读到最好用firebreath来做。问题是我不知道如何开始一个项目。所以我研究并找到了来自 firebreath.org 的教程。但是当我尝试他在教程中所做的事情时,我做不到。他使用 CMD 检索了 firebreath 的源代码。该命令是“git clone git://github.com/firebreath/FireBreath firebreath”......在教程中它检索了源代码......在我的情况下它返回了一个错误......说git不是一个公认的批处理命令...任何想法发生了什么?感谢:D

0 投票
2 回答
495 浏览

objective-c - 需要在我的 Firebreath 项目中添加一个 NSDistributedNotification 观察者

我需要从我的可可应用程序向我的 firebreath 项目发送一个分布式通知,所以我需要在我的 firebreath 代码中创建一个观察者和一个选择器。我将类扩展名更改为“.mm”以支持 Objective-c 代码。我的firebreath项目中已经有objective-c代码并且工作正常。但是当我尝试创建一个观察者时,我的代码中出现了错误,我不知道如何解决它。

这是我的 firebreath 项目的源代码:

这是我的错误:

...firebreath/../projects/MyProject/MyProjectAPI.mm:133:错误:“-”令牌之前的预期不合格 ID。这是我定义“receiveAppConfirmationNotification”方法的那一行。

...firebreath/../projects/MyProject/MyProjectAPI.mm:157:错误:“self”未在此范围内声明。

如何定义选择器?如何将观察者添加为类本身?

0 投票
1 回答
272 浏览

c++ - 运行具有授予权限的 NPAPI 插件(firebreath)

我的 NPAPI 插件需要 root 权限才能运行。我想知道是否有任何便携式方法可以使用firebreath。

如果没有,我看看Firesheep 是如何做到的,但它需要一个二进制文件和一个启动器(即插件)。如何区分cmake分别构建二进制文件和插件?