Rhino fork: HtmlUnit-core-js

HtmlUnit has now started a fork of the Mozilla Rhino JavaScript engine.

HtmlUnit uses Rhino as its core JavaScript engine (roughly speaking what is covered by the ECMA specification: the objects Object, String, Date, Number, … but not the DOM objects like Document, Window, … that are defined by HtmlUnit). Most of the work to simulate browser’s JavaScript processing resides in the browser specific objects and Rhino does a really good job as core JavaScript engine.

Nevertheless we are blocked by some issues in Rhino that don’t get fixed – or not quickly enough – even when we propose patches (for instance bug 412928). As discussed in Rhino mailing list [1] this seems to come from a lack of resources on Rhino’s side as well as from a slightly different focus: for us the most important is to simulate browser’s behaviour whereas speed and respect of ECMA standard are very important for Rhino.

Releases of htmlunit-core-js will be made available at the same time than future HtmlUnit releases.

My biggest hope for this project is… to be able to declare it dead and useless as soon as possible, once Rhino fills all our need. For this purpose, we will continue to open issues and provide patches to the Rhino project to help improving it.

[1] Rhino mailing list thread “Rhino project (half) asleep?

HtmlUnit 2.1 released

This time HtmlUnit committer Daniel Gredler has been faster to blog about it! 😉

HtmlUnit 2.1 is now available. We’ve put this release less than 2 weeks after version 2.0 to quickly fix some performance problems that occurred with HtmlUnit 2.0 in CSS processing (users have reported that 2.1 runs up to 5 times faster than 2.0). Additionally this release contains a few improvements and bug fixes as documented in the change log.

HtmlUnit 2.0 released

Four months after release 1.14, I’m glad to announce the availability of HtmlUnit 2.0. Thanks to everyone who has contributed to this release and particularly to the committers Ahmed Ashour and Daniel Gredler.

From the large list of improvements contained in this release, following are particularly important:
– first release to target Java 5: HtmlUnit now makes intensive usage of Java 5 features, particularly of generics
– HtmlUnit DOM now implements org.w3c.dom.* making interaction with 3rd party libraries easier
– improved support for incorrect HTML code
– and as always a very large number of improvements in JS support with a major achievement: the GWT 1.4 tests now pass when simulating Firefox as well as when simulating Internet Explorer!

This major release contains a few incompatible changes and can’t be dropped as a replacement of HtmlUnit-1.14.

NekoHTML 1.9.7 released

Release 1.9.7 of NekoHTML is now available.

Besides a few bug fixes, the main changes are internal: no reflection is used any more to ensure compatibility with different Xerces versions having different and incompatible methods. I’ve introduced the usage of a “bridge” per Xerces version inspired from Rhino‘s VMBridge. It was a really interesting exercise to set this up and to compile and test it correctly (furthermore with JDK 1.3 compatibility).