Qt-based LiveConnect Plugins
The Qt-based Netscape Plugin software makes it easy to write
plugins
such that they can be used on both Unix/Linux and Windows/95/NT,
in Netscape and Internet Explorer, and any other
web browser supporting the same protocol.
How-to
- Download the
Plugin SDK from Netscape, and copy the following files from there to
$QTDIR/extensions/nsplugin/src :
- common/npwin.cpp
- common/npunix.c
- include/npapi.h
- include/npupp.h
- include/jri.h
- include/jri_md.h
- include/jritypes.h
- Build the Netscape Plugin extension library, found in the
extensions/nsplugin/src directory of your Qt distribution.
This produces a static library to be linked with your plugin code.
- Read the plugin class documentation, and
examine the example plugins.
- Do most of your development as a stand-alone Qt application - debugging
Netscape Plugins is cumbersome. You may want to use signal(2)
in your plugin to enable core-dumps if your browser disables them.
- Note the platform-specific build steps below.
- Read about the raw plugin interface
in Netscape's handbook.
- If files viewed by a plugin are provided by an HTTP server
(using a http://... URL) then
the server must be configured to send the correct MIME type
for the file, such as by editing the mime.types file
of Apache. If the files are viewed via a file://...
URL, then the browser will use the filename extension to decide
the file type (and hence the plugin to load) - the user may need
to set the filename extension in the Helpers or Applications
section of their browser preferences.
We are working on streamlining the build process for Qt-based Netscape Plugins.
Building under X11
- The Makefiles in the examples are appropriate for UNIX/X11.
- The user must install the resulting Shared Object in the Plugins
directory of the browser.
Building under Windows
- Qt needs to be built as a static library when building Netscape plugins, we are
looking into the problem of making it work with Qt as a dynamic library.
- Plugins must be named npname.dll,
or the browser will ignore them.
- The link step must include:
- /def:name.def
- /dll
- a compiled resource file defining the
file/MIME types accepted by the plugin.
- The user must install the resulting DLL in the Plugins directory
of the browser.
Known Bugs
The Qt-based LiveConnect Plugin binding code has a number of
minor bugs, but is sufficiently stable for most production applications.
- MSIE 4.0 support is poor.
- Crashes on X11 if window is closed via window manager.
- Keyboard problems on Windows.