cornercorner
FeaturesPluginsDocs & SupportCommunityPartners

EmbeddedBrowserPrototypingXULRunner

Prototyping XULRunner integration (May/2009)

XULRunner

There are several Java wrappers for XUL APIs. The following has been tested:

- no support for Mac

- should be able to embed Internet Explorer as well as Mozilla Firefox

- doesn't work on Windows XP when Firefox is installed

- supports all major platforms (Win, Linux, Solaris, Mac)

- bundles all necessary Mozilla binaries (all platforms together are about 50MB)

- allows link interception and redirection

- supports context menu in the browser

- the location of profile directory is configurable

- the project development is slow, but some other projects are successfully embedding it (e.g. LimeWire)

- no binary distribution for Windows 64-bit, see here

- uses Eclipse's embedded browser implementation by running SWT component hierarchy in a separate process

- supports all major platforms including 64-bit architectures

- doesn't work on Mac OS X (deadlock)

- very small footprint of binary libraries, about 1.5MB for each supported platform

- allows link interception and redirection

- no context menu support (only default Internet Explorer context menu on MS Windows)

- very stable as the embedded browser is running in a separate process

- better support for mixing of heavy/lightweight components

- cannot specify the location of profile dir

- the project is being actively developed

Common Issues

- XUL API creates a heavyweight component but support for mixing of heavyweight/lightweight components in JDK1.6 u10+ is not very good. There are problems with 'sliding' windows and menus get painted behind the browser component sometimes.

- there is no support for heavyweight/lightweight mixing on Mac OS X. However all menus are rendered fine as they are heavyweight by default.

- 64-bit version of Windows Vista refused to load 32-bit binaries, some special handling might be needed to embed native browser using 32-bit binaries (or compile and distribute 64-bit binaries)

- XUL APIs allow manipulations with HTML document