EmbeddedBrowserPrototypingXULRunner
Prototyping XULRunner integration (May/2009)
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

