IcedTea-Web 1.0.2 released!

IcedTea-Web 1.0.2 has been released! This is a maintenance release that contains some important bug fixes.

What’s new in 1.0.2:

  • PR638: JNLPClassLoader.loadClass(String name) can return null
  • RH677772: NoSuchAlgorithmException using SSL/TLS in javaws
  • PR612: NetDania application ends on access denied (java.util.PropertyPermission browser read)
  • Binary PDF documentation has been replaced with an editable HTML vesion

The following people helped with this release:
Mark Greenwood <mark _at_> (code), Andrew John Hughes (code), Omair Majid (code)

SHA256 Checksum:
aa836e4c350eaaf3a3f474522ec47069f9b71c02ce59e8dd3d79881edb15115c  icedtea-web-1.0.2.tar.gz

Download link:

After extracting (tar xzf icedtea-web-1.0.2.tar.gz),  it can be built as per instructions here:

Posted in IcedTea | Leave a comment

IcedTea-Web 1.0.1 released!

IcedTea-Web 1.0.1 has been released. This is a security fix only release and addresses a couple of security issues.

What’s new in 1.0.1:

  • S6983554, CVE-2010-4450: Launcher incorrect processing of empty library path entries
  • RH677332, CVE-2011-0706: IcedTea multiple signers privilege escalation

The following people helped with this release:
Omair Majid (code), Andrew John Hughes (guidance on how to release)

cfcb17e94d6cd406e7aceb08de2ae7c03fe3f2a730829cc5ac54ca6a90a9d46e icedtea-web-1.0.1.tar.gz

Download link:

After extracting (tar xzf icedtea-web-1.0.1.tar.gz),  it can be built as per instructions here:

A security update is also available for IcedTea6 now.

Posted in IcedTea | Leave a comment

First release of IcedTea-Web!

I am happy to announce the first release of IcedTea-Web!

IcedTea-Web is an addon component to IcedTea. It is open source (GPL + LGPL for
some parts) and provides a Java web browser plugin (IcedTea NP Plugin) and Java
Web Start
implementation (i.e. javaws binary, based on NetX and referred to as such). Additionally, release 1.0 also contains an alpha preview of itweb-settings, a GUI tool to control deployment settings for NetX and the plugin.

So what is new in the plugin and NetX in icedtea-web you ask? Well, lots!


  • NetX and plugin configuration can now be specified via a file
  • System-level as well as user-level files with locked configuration are supported
  • Applications and applets can now have a Look and Feel different from rest of IcedTea-Web
  • Native directories are correctly cleaned on exit
  • Cached files with special characters in file names are now handled correctly
  • Interfaces javax.jnlp.IntegrationService and javax.jnlp.DownloadService2 are now available
  • javaws now supports a new  -Xclearcache option
  • Applications with non-public main classes are now supported.
  • JNLP files containing <component-desc> as well as <application-desc> will now work
  • JNLP files referenced in the applet tag are now parsed to detect applet properties
  • Applets are now double-buffered to eliminate flicker in ones that do heavy drawing

Bug fixes:

  • PR592: NetX can create invalid desktop entry files
  • PR542: Plugin fails with NPE
  • PR552: Support for FreeBSD’s pthread implementation
  • PR554: System.err writes content two times
  • PR556: Applet initialization code is prone to race conditions
  • PR557: Applet opens in a separate window if tab is closed when the applet loads
  • PR565: UIDefaults.getUI fails with jgoodies:looks 2.3.1
  • PR593: Increment of invalidated iterator in IcedTeaPluginUtils
  • PR597: Entities are parsed incorrectly in PARAM tag in applet plugin
  • PR619: Improper finalization by the plugin can crash the browser
  • RH665104: OpenJDK Firefox Java plugin loses a cookie

It can be downloaded here:

Build instructions are here:

SHA256 sum:
e33413768cdf2ffce66aaff00fed5dd06deb09ed7eb28e522cdad4f29b78e594  icedtea-web-1.0.tar.gz

A big thanks to Andrew John Hughes, Omair Majid and Andrew Su for helping make this happen!

Posted in IcedTea | 2 Comments

IcedTea 1.8 released (with new NP plugin)!

IcedTea 1.8 is now out. It officially replaces the old IcedTea Plugin with the new NPRuntime based plugin.

A significant number of fixes went in since the NP plugin version in 1.7. Some of the biggest ones are:

  • Memory on C++ side is all correctly managed now
  • Speed has been improved over previous version
  • An arbitrary number applets can initialize in parallel without causing a spike in thread count
  • Support for /home on AFS and others filesystems that don’t support FIFO pipes
  • Support for Chromium and Firefox running *at the same time*

If you had been apprehensive about trying it out because it wasn’t finalized before, give it a try now!

Posted in IcedTea | 6 Comments

IcedTea Java plugin with Chromium and Firefox 3.6A1

With improved cross-browser API support thanks to the Mozilla/Sun/Chromium teams, last week I decided to take a break from functionality development and focus on browser compatibility for the new NP plugin. And here is the end result .. the plugin working with Chromium!

IcedTea NP Plugin running with Chromium
IcedTea NP Plugin running with Chromium

In addition to Chromium, the plugin also works with Firefox 3.6 A1 now.

It is the only Java plugin that works with Chromium at the moment. Proxy and cookie support won’t be there with Chromium as the APIs haven’t been implemented on the browser side yet. When they are, the plugin should be able to make use of them seamlessly.

All code is in mercurial:

Just a side note: To use it with Chromium/FF3.6, it needs to be built against xulrunner 1.9.2 Alpha* as that contains headers with the new API. Also, chormium build from 20090824 (rev. 24148) or higher is needed to make use of Liveconnect.

Posted in IcedTea | 1 Comment

New support (including Facebook applet) in the NP Java Plugin!

I remember when I first took over the old plugin. A little while before that, Tom had posted on his blog about getting the Facebook image uploader applet working with the IcedTea Plugin. This was a huge achievement because of the complex support that is required to make it work. So for the rewrite, I decided to chase that goal too, and I am happy to say that NPPlugin can now load the Facebook image uploader applet!

Infact not just Facebook, but Yahoo! games, JigZone, and a variety of other sites now work. In addition to new functionality support, other improvements include:

– Significant speed improvements. Unlike the IcedTeaPlugin which suffered from an initial lag during the first liveconnect call for an instance due to OJI and other limitations, the new one is instantaneous.

– Unicode support is done, and everything uses UTF-8 now.

Oh and for anyone following the dates, the plugin *needed* to be done by around March 2010 until a while ago:

However, Namoroka (Firefox 3.6) which uses Gecko 1.9.2 is now due around November ’09:

So that is now the new date by which the new plugin *needs* to be done. As my friend and colleague Andrew would say (or so I picture in my head), “good times”. Good times indeed.

And here are some screen shots of a few new cool applets working with the new plugin:

1: Facebook image uploader applet, after uploading an image:

Facebook Image Uploader and IcedTeaNP Plugin

Facebook Image Uploader and IcedTeaNP Plugin

2: JigZone applet. The Left bar is html, and contains JavaScript that monitors the applet via LiveConnect to determine when to start/stop the timer:

JigZone applet and IcedTeaNP Plugin

JigZone applet and IcedTeaNP Plugin

3: Yahoo! Games. The black blocks that remove user names were added by me:

Yahoo! Poker game applet and IcedTeaNP Plugin

Yahoo! Poker game applet and IcedTeaNP Plugin

As usual, all code is upstream:

Posted in IcedTea | Leave a comment

Java can now talk to JavaScript with the new np plugin!

Wow.. been a while since my last update. I’ve been toiling away writing gobs of new code for the new NP plugin. With the initial framework now in place, I am finally seeing results.

Java can now set members on JavaScript side! It may sound like a simple thing, but there is a lot of work needed to make it happen. String exchanges, object creation via jni-like reference handles and reflection, multi-threaded  handling, etc. And that is also why I consider this an important milestone. A lot of the aforementioned items comprise the base framework. The fact that JS members can now be controlled, proves the stability of that framework.

I have uploaded a small clip here that shows this in action (this is applet used). When the mouse moves over the applet, a listener uses liveconnect to modify the value of the “Desired Altitude” element on the right. Similarly, moving the slider updates the “Maximum Cost” element.

Click here to see the clip

Updates to the field seem a tad slow in the clip, but that is just due to recording limitations. Updates are synchronous on the end machine. All of the code needed to do the above is now in the upstream mercurial repository.

Next on my list is to do something similar for JS->Java calls, implement a few basic functions and such.

Posted in IcedTea | 2 Comments