Web Browser Plugin

Version: $Id: index.html,v 1.6 2001/03/02 07:55:47 raymond Exp $

Mdule owner: Raymond de Vries

Remarks about web browser plugin for Netscape and MS Internet Explorer.

The project proposal for this project can be found at XXX

General remarks


Selection criteria

This document describes a number of libraries and toolkits that make it easier to develop plug-ins. The criteria that will be used are:


Constraints

Because our background is Blender and the Blender Game Player, a number of obvious things can be listed:


Information @ Netscape

Netscape has information available to developers at Netscape Plug-In Guide and A sample Netscape Client Plug-In However, this is rather old information, namely January 1998... However, judged from the content it is still valid for the latest versions of Netscape
For Netscape, LiveConnect provides the interface for communication between plug-ins, Java, and JavaScript.

LiveConnect is built on the Java Runtime Interface (JRI).

When coding directly for a specific platform one has to create specific code for each platform. This introduces a potential maintenance problem and should be investigaed very carefully!

Information @ Microsoft


Cross-platform Qt library web plugin (Netscape and MS Internet Explorer)

The Qt widget library (by http://www.trolltech.com) has an extension (called nsplugin) to make web browser plugins. Maarten already made an overview of Qt here, including licenses and pricing. Important to note is that there are no royalties, run-time licenses or other additional costs. You can distribute your Qt-based programs either statically or dynamically linked without any additional charges.

The documentation tells that Qt uses the so-called LiveConnect technology (see elsewhere in this document) as a basis for the plugins. It seems that every application that is made with Qt can easily be converted into a plugin. Specific information can be found at the TrollTech site

Since the Qt library provides seemless integration with OpenGL by means of special wrapper classes that encapsulate the OpenGL initialisation, it is expected that creating a Qt OpenGL plugin should not be difficult.

Since we are not using java (which is portable by itself) we have to create a binary plug-in for each platform. The Qt Free Edition is currently supported on Linux, Solaris, SunOS, FreeBSD, OSF/1, Irix, BSD/OS, NetBSD, SCO, HP-UX and AIX. This means that all of our (Blender) platforms is supported, except for BeOS! (MS Windows is covered by the Qt Professional and Enterprise (the latter one with OpenGL support) editions).

Maybe relevant for future projects: Qt applications also run on PDAs!

Background information
A nice article that might also be relevant to future Blender:
The French special effects company Duboi recently needed to port their main application from SGI to Windows, and decided Qt was the right tool for the job.

X Swallow - A Generic Plugin for Unix Netscape

Homepage


Plug-in Software Development Kit downloads @ Netscape

Netscape has a download page at http://home.netscape.com/comprod/development_partners/plugin_api/index.html The Netscape Navigator LiveConnect/Plug-in API allows third parties to extend Netscape Navigator with native support for new data types and additional features. Plug-ins appear as additional capabilities of the Netscape client, indistinguishable to the user from the baseline features. LiveConnect allows plug-ins to be controlled by Java and JavaScript."

Sound issues

Hhmm, I wonder if (and how) it's possible to play samples from within a web browser... Anyone??