view README @ 146:06a4e046a700 default tip

PR838: IcedTea plugin crashes with chrome browser when javascript is executed
author Deepak Bhole <dbhole@redhat.com>
date Mon, 09 Jan 2012 18:45:31 -0500
parents f44f0d94d282
children
line wrap: on
line source

IcedTea-Web
===========

The IcedTea-Web project provides a Free Software web browser plugin
for running applets written in the Java programming language and an
implementation of Java Web Start, originally based on the NetX
project.

Homepage (wiki):
  http://icedtea.classpath.org/

Bugs (bugzilla):
  http://icedtea.classpath.org/bugzilla

Mailing List: 
  distro-pkg-dev@openjdk.java.net
  http://mail.openjdk.java.net/mailman/listinfo/distro-pkg-dev

FAQ:
  http://icedtea.classpath.org/wiki/FrequentlyAskedQuestions

Anonymous Mercurial checkout:
  hg clone http://icedtea.classpath.org/hg/icedtea-web

NetX
====

NetX provides a drop-in replacement for javaws (Java Web Start). Since
upstream NetX is dormant, we will be hosting and modifying the sources
in the IcedTea-Web repository, particularly in the netx/net/sourceforge/jnlp
directory.

IcedTea's NetX currently supports verification of signed jars, trusted
certificate storing, system certificate store checking, and provides
the services specified by the jnlp API.

The Browser Plugin
==================

IcedTea-Web contains a Free Software browser plugin based on NPRuntime
called NPPlugin.  By default, this will be built, and it can be turned
off using the -disable-plugin option.

Building IcedTea-Web
====================

IcedTea-Web is built using the standard:

$ ./autogen.sh (if building from Mercurial rather than a tarball)
$ ./configure
$ gmake
$ gmake install

incantation.  The build requirements are as follows:

* A bootstrap JDK.  At present, only IcedTea6 is supported.
* A C compiler (for the launchers).
* libX11
* zlib-devel

Additionally, the plugin requires:

* A C++ compiler
* firefox-devel 
* xulrunner-devel

The plugin can be disabled by passing --disable-plugin.

See ./configure --help if you need to override the defaults.

The following locations are checked for a JDK:
    * /usr/lib/jvm/java-openjdk
    * /usr/lib/jvm/icedtea6
    * /usr/lib/jvm/java-6-openjdk
    * /usr/lib/jvm/openjdk
    * /usr/lib/jvm/java-icedtea
    * /usr/lib/jvm/java-gcj
    * /usr/lib/jvm/gcj-jdk
    * /usr/lib/jvm/cacao
in the order given above.  

At present, some of these options fail due to sun.* classes required
by IcedTea-Web.  Upstream OpenJDK will only be able to compile
IcedTea-Web if the patch applet_hole.patch from IcedTea has been
applied.

Most targets in IcedTea-Web create stamp files in the stamps directory
to determine what and when dependencies were compiled.  Each target
has a corresponding clean-x target which removes the output and the
stamp file, allowing it to be rebuilt.

Build Modification Options
==========================

The build process may be modified by passing the following options
to configure:

* --disable-docs: Don't build the Javadoc documentation.
* --with-gcj: Compile ecj to native code with gcj prior to building.
* --with-ecj: Specify the location of a 'ecj' binary.  By default, the path
  is checked for ecj, ecj-3.1, ecj-3.2 and ecj-3.3.
* --with-javac: Specify the location of a 'javac' binary.  By default, the path
  is checked for javac.
* --with-jar: Specify the location of a 'jar' binary.  By default, the path
  is checked for gjar and jar.
* --with-ecj-jar: Specify the location of an ecj JAR file.  By default, the
  following paths are checked:
    - /usr/share/java/eclipse-ecj.jar
    - /usr/share/java/ecj.jar
    - /usr/share/eclipse-ecj-3.{2,3,4,5}/lib/ecj.jar

Other options may be supplied which enable or disable new features.
These are documented fully in the relevant section below.

* --disable-plugin: Don't build the browser plugin.

Testing
=======

A test suite is supplied for the browser plugin.  It can be built
using 'make plugin-tests' and run by loading the HTML page specified
into a browser with the plugin installed.

For debugging, the environment variable ICEDTEAPLUGIN_DEBUG should be
set to 'true'.  This will produce output on the console from the C++
side, and output from the Java side in $HOME/.icedteaplugin/java.stdout
and $HOME/.icedteaplugin/java.stderr.  It also starts the debug server
on port 8787.