TQt Netscape Plugin Extension
The TQt Netscape Plugin software makes it easy to write browser plugins
that can be used on both Unix/Linux and MS-Windows, in Netscape,
Mozilla, and any other web browser supporting Netscape's LiveConnect
protocol. Modern versions of MSIE do not support this protocol.
Information
The Netscape Plugin Extension consists of the follow classes:
How-to
- Download the
Plugin SDK from Netscape, and copy the following files from there to
$TQTDIR/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 TQt 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 TQt 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, e.g. by editing Apache's mime.types file.
If the files are viewed via a //...
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.
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
- For Netscape plugins to work, TQt needs to be in the system DLL
path or be compiled into the plugin as a static 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 and Limitations
The TQt-based LiveConnect Plugin binding code has a number of bugs and
limitations, but is sufficiently stable for many production
applications.
- Keyboard input only works in secondary windows (e.g. dialogs created by the plugin).
- You should not expect modality between the plugin and the browser to work.
- Netscape 4.78 on Unix/X11 tends to terminate with a bus error.
- Opaque resize behaviour is erratic due to browser behavior.