Firebreath - Cross-platform browser plugin framework
code.google.com
code.google.com
As far as I can tell, it lets you create new browser functionality in C++ and expose it (to arbitrary websites?) via Javascript APIs - am I close?
Plugins allow you to run custom client-side code (that has access to the OS and its services) inside the browser. The most popular browser plugin is Flash. It is implemented both as an NPAPI plugin (which is supported by Firefox/Chrome/Safari) and an ActiveX component which is supported on IE.
Other plugins include the QuickTime viewer for watching quicktime video.
The cross-platform framework allows you to keep one codebase for both types of plugins, which, I presume would encourage developers to write plugins since it's now easier to make it work on all major browsers without having to learn two sets of APIs.
You can normally see plugins that are installed in your browser by visiting about:plugins
http://code.google.com/p/firebreath/wiki/FireBreathUsers seems empty still.
But yes, I'd love to see more samples, especially not just cross-browser, but cross-platform. Can anybody tell - would a FF plugin made with this work on both OSX & Windows? I can't imagine it would... So this project would let you keep a single codebase for each of win/linux/osx, which is better than having separate codebases for each browser on each platform. Maybe?
If you aren't doing any drawing, just network stuff and calculations, you can probably get by without writing any platform specific code.
- Taxilian (original author of FireBreath)
It's just a compatability shim so your code will work in IE as well as the NPAPI-supporting browsers?
- Taxilian (original author of FireBreath)
FireBreath is a framework that abstracts npapi and activex (but could be extended to abstract other types of browsers as well, if there were reason and someone wanted to) to make it easy to write your own code that works in both places.
Clearly I know very little about the current browser plugin ecosystem. Anyone care to enlighten me?
NPAPI is useful in the context of Chrome extensions as it is the only method (currently) available for running native code in an extension. Firefox extensions are able to bundle NPAPI plugins in this manner as well however this is a less common approach as XPCOM components are generally a better fit for that environment.
One notable difference between extensions in Firefox and in Chrome is that Chrome allows you to specify that a plugin is only executable by your extension; a handy thing as you may not want any arbitrary web page to run your plugin (XPCOM components are not by default accessible via any old webpage).
Internet Explorer no longer supports NPAPI which is why ActiveX support is a useful target.
Native Client as far as I understand is targeted more towards producing one-off executables rather than reusable components.
actual plugins aren't useful for all situations; in fact, I'd say that it's relatively uncommon to need to write a plugin.
That is one of the main reasons I started FireBreath; relatively few people in the world know how to write a browser plugin for any platform, much less make one work on all major browsers. FireBreath aims to make that easier. That shouldn't preclude the fact that plugins simply aren't suited to many tasks; the need to install it is a big factor in that, particularly since most common install methods only work on one browser. Also, there are existing plugins such as flash and silverlight that already have a large install base and can often be used to solve many of the problems that people use plugins to solve; worth considering.