External resources for plugin creation

Frameworks and tools

There are several open source projects designed to assist with the creation of NPAPI plugins. Please note that even when using these, it is still a good idea to have an understanding of what is going on under the hood, regardless of the level of abstraction provided.

Framework: FireBreath

Project home page
Project history
Description (from the project creators):

FireBreath is a cross-platform Browser Plugin Framework written in C++. Plugins created with FireBreath work on all major browsers, including Firefox 3.0 and later. Platforms supported include Windows, Linux, and Mac OS X (intel). Feature highlights include thread safety checks, Unicode support (with std::wstring), ActiveX support, built-in drawing model negotiation for Mac, automatic type conversion (including Javascript Arrays and Objects), advanced security features, and more.

Supported development environments are Visual Studio on windows, XCode on mac, and GCC on linux. All platforms rely on CMake for easy cross-platform builds.

Project: Nixysa

Project Home Page
Description (from the home page):

Nixysa is a framework written in Python to automatically generate glue code for NPAPI plugins (plugins for browsers such as Google Chrome or Firefox), letting you easily expose C++ classes to Javascript from a simple IDL representation.

Nixysa was originally conceived for the needs of O3D, but is flexible enough to support a wide range of use cases.

Project: JUCE

Project Home Page
Description (from the home page):

JUCE (Jules' Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform applications. It contains pretty much everything you're likely to need to create most applications, and is particularly good for creating highly-specialised UIs and for handling graphics and sound. Supported development environments are XCode, Visual Studio, GCC (and probably any other modern C++ compiler)

Browser plugins can be built as NPAPI (Mac/Windows), or ActiveX (Windows).

Project: QtBrowserPlugin

Project Home Page
Description (from the home page):

The QtBrowserPlugin solution makes it easy to write browser plugins that can be used in Mozilla FireFox, Safari, Opera, Google Chrome, QtWebKit and any other web browser that supports the "Netscape Plugin API", NPAPI

Articles, information, and tutorials

NPAPI has been around a very long time, and there have been many attempts to distill down useful information on creating them:

ColonelPanic.net

Wikipedia

Boom Swagger Boom