|
-
-
- Juce Browser Plugin Framework
- =============================
-
- These classes let you wrap a normal Juce component as a Mac/Windows NPAPI plugin for use in Firefox,
- Safari, Chrome, etc., and/or an ActiveX plugin for IE.
-
- To create your plugin, your code just needs to implement the createBrowserPlugin() function
- to return a subclass of BrowserPluginComponent, and this acts as the plugin window.
-
- To communicate with javascript running in the host webpage, the 'var' and 'DynamicObject' juce
- classes emulate javascript objects, so you can create a javascript object that represents
- your plugin, and the webpage can invoke methods and access properties on this object. To
- get bi-directional communication between the plugin and webpage, your webpage can simply
- pass its own object to your plugin, and the plugin can call methods on this object to invoke
- javascript actions.
-
- In a similar style to audio plugins, your project has to contain a BrowserPluginCharacteristics.h
- file that defines various properties of the plugin.
-
-
- Building a Mac NPAPI Plugin with XCode
- --------------------------------------
-
- - Create a new "CFPlugin Bundle" project
- - Add the juce wrapper source files to the project (have a look at the demo project to
- find out which files this includes).
- - Set up all the usual frameworks, etc, like you would for any other juce project.
- - In the project or target settings, change the "Wrapper Extension" to "plugin"
- - In your target, add a build phase "Build ResourceManager resources", and add the juce_NPAPI_MacResource.r file
- to this step.
- - Check that your info.plist contains the same items as the demo plugin, because these need to be set for the
- browser to recognise it as a plugin. In particular, the "Bundle OS Type Code" should be set to BRPL.
- - The finished bundle needs to be copied into "/Library/Internet Plug-Ins", so you might want to set up a
- post-build copy step to do this automatically
-
-
- Building a Windows NPAPI plugin in Visual Studio
- ------------------------------------------------
-
- - Create a new project to build a win32 DLL
- - Add the juce wrapper source files to the project (have a look at the demo project to
- find out which files this includes).
- - Your compiled plugin DLL must begin with the letters 'np' (in lower case) for it to be recognised as
- a plugin, so you should make sure your target settings reflect this.
- - To include the BrowserPluginCharacteristics.h file, you may need to add an include path to wherever this
- file lives in your project. Don't use a global include path for this - just add it to the project's
- search paths (both the c++ include paths and the resource include paths)
- - (Refer to the normal juce instructions for setting up other project settings such as which c++ libs to link to etc)
- - The finished plugin needs to be copied into "C:\Program Files\Mozilla Firefox\plugins", so you might want
- to add a post-build step to copy it
- - Note that the "browser plugins/wrapper/npapi" folder contains a copy of some NPAPI header files. If you're
- building a closed-source project, please check the licensing details in these files to make sure
- you're not breaking any Mozilla licensing restictions.
-
-
- Building a Windows ActiveX control for Internet Explorer
- --------------------------------------------------------
-
- - This is actually quite easy, because the same DLL that functions as an NPAPI plugin can
- also be used as an ActiveX control.
- - Just create a windows NPAPI plugin as described above, but add the juce_ActiveX_GlueCode.cpp
- file to the project.
- - In your BrowserPluginCharacteristics.h file, the JuceBrowserPlugin_ActiveXCLSID setting needs
- to be given a unique GUID for your plugin.
- - Because the plugin is a COM object, it doesn't matter where the DLL lives, but it needs to
- be registered in the normal COM way, with regsvr32.exe. Note that on Vista, this command
- needs to be run with administrator permissions for it to be able to write to the registry.
|