Changes Report

Release History

Version Date Description
2.5 Apr 21, 2009 Bugfixes, MooTools support, support all HTML elements and various JavaScript properties
2.4 Dec 30, 2008 Bugfixes, ActiveX support, JQuery & MochiKit support, minimal applet support, IE conditional comments
2.3 Sept 16, 2008 Bugfixes, better generics, add Firefox 3 emulation, GWT 1.5 support
2.2 Jul 24, 2008 Numerous bugfixes (handling of ill formed HTML code, document.write, ...), speed improvements, and move to HtmlUnit-core-js (Rhino fork)
2.1 Apr 15, 2008 Performance improvements in CSS processing and a few bug fixes
2.0 Apr 7, 2008 Migration to Java 5, implementation of org.w3c.dom.*, better support for incorrect html code, large improvements in JavaScript support (GWT 1.4 tests now pass, ...)
1.14 Jan 9, 2008 Enormous improvements particularly in JavaScript support and execution speed
1.13 Aug 17, 2007 Fixes bad maven packaging of version 1.12 + different improvements
1.12 Aug 10, 2007 Enormous improvements particularly in JavaScript support and execution speed
1.11 Mar 15, 2007
1.10 Nov 03, 2006
1.9 Jun 27, 2006
1.8 Feb 17, 2006
1.7 Aug 23, 2005
1.6 May 10, 2005
1.5 March 13, 2005
1.4 January 9, 2005
1.3 November 12, 2004
1.3-pre2 September 26, 2004
1.3-pre1 November 7, 2003
1.2.3 July 31, 2003
1.2.2 March 29, 2003
1.2.1 March 20, 2003
1.2 March 10, 2003
1.1 November 25, 2002
1.1-rc2 November 16, 2002
1.1-rc1 October 29, 2002
1.1-pre5 September 24, 2002
1.1-pre4 August 23, 2002
1.1-pre3 July 23, 2002
1.1-pre2 July 10, 2002
1.1-pre1 July 2, 2002
1.0 May 22, 2002


Release 2.5 - Apr 21, 2009

Type Changes By
update Upgrade HtmlUnit-core-js to 2.5. asashour
update Upgrade NekoHtml to 1.9.12. asashour
fix JavaScript: fix ClassCastException setting or reading property readOnly of HtmlTextAreaElement. Fixes 2768942 . mguillem
update JavaScript: added support for HTMLTableRowElement.deleteCell. Fixes 2767841 . mguillem
update HtmlUnit-core-js now changes package names from org.mozilla.* to net.sourceforge.htmlunit.corejs.* to allow project to use "original" Rhino together with HtmlUnit. mguillem
add Add HtmlPage.getElementByName(String) method. sdanig
fix Remove leading "../" (if any) when resolving URLs. Fixes 2192395 . mguillem
fix JavaScript: don't try to instantiate applets accessed by JavaScript when applet support is disabled. mguillem
fix HtmlOption: handle markup in nested content when it has to be used as default value. mguillem
fix HtmlOption.asText(): no need to consider label attribute. mguillem
fix HtmlOption: label attribute should not be considered in asText(). mguillem
fix JavaScript: dynamically created iframe should load external scripts. Fixes 2722972 . asashour
fix HtmlPage: getFullyQualifiedUrl() should be relative to page of the top window. Fixes 2723086 . asashour
add (EXPERIMENTAL) Add WebClient.waitForBackgroundJavaScript() and WebClient.waitForBackgroundJavaScriptStartingBefore(), which allow waiting for JavaScript background jobs to finish (should be used instead of JavaScriptJobManager methods, which are internal APIs). mguillem
add Add DomNode.isDisplayed() to the public API. sdanig
add JavaScript: add support for reading and writing img.align, p.align, table.align, thead.align, tbody.align, tfoot.align, iframe.align, input.align and applet.align properties. sdanig
add JavaScript: add support for reading and writing the base.href and base.target properties. sdanig
fix JavaScript: window.event should be available during execution of script.onreadystatechange handler (IE only). Fixes 2706760 . sdanig
fix JavaScript: element.getElementsByTagNameNS() can accept null 'namespaceURI'. Fixes 2704664 . asashour
fix Correctly initialize style attribute of images created via JavaScript. Fixes 2697650 . sdanig
fix JavaScript: add support for 'oninput' events on text inputs (Firefox only). Fixes 2672376 . sdanig
fix JavaScript: window.open() can accept numeric name. Fixes 2688241 . asashour
fix JavaScript: in an XMLHttpRequest handler, 'this' is the handler when simulating FF2 and the XHR otherwise. mguillem
fix ToplevelWindow.close() deregisters sub-frames. mguillem
fix JavaScript: add support for window.length. mguillem
fix HtmlForm: submit to the same page if 'action' attribute is not defined. Fixes 2665820 . asashour
fix Apply ScriptPreProcessor to window.eval(). Fixes 2630555 . mguillem
fix HtmlPage.asXml(): expand empty UL and OL nodes to make generated XML readable as HTML on browsers. mguillem
update Upgrade HtmlUnit-core-js to 2.5 (corresponds to head of Rhino branch 1.7R2 from Dec 12, 2008 + fix for Rhino issue 477604). Fixes 2531218 . mguillem
fix JavaScript: add support for selection.getRangeAt() (Firefox only). sdanig
fix JavaScript: add support for CSSImportRule. Fixes 2658249 . sdanig
fix Make password inputs listen to event.preventDefault(). Fixes 1813007 . sdanig
fix JavaScript: calling event.stopPropagation() shouldn't preclude using multiple event listeners of the same type on a single node. Fixes 2643655 . sdanig
fix JavaScript: add support for event.cancelBubble in Firefox emulation mode (already present in IE emulation mode). Fixes 2643655 . sdanig
fix JavaScript: setting event.returnValue=false should abort the event (IE only). Fixes 2643655 . sdanig
add JavaScript: add support form.item() (IE only). asashour
fix When a form is submitted via JavaScript (form.submit()), form submittal should not actually occur until after the current script finishes executing. Fixes 2603370 . sdanig
fix Fix content type sniffing for local XHTML files. Fixes 2515756 . sdanig
fix Fix case-sensitivity of XPath expressions for XHTML documents that are served as 'text/xml'. Fixes 2515873 . sdanig
fix JavaScript: add support for the window.onerror attribute. sdanig
fix JavaScript: document functions should be usable without a reference to the document (IE only). Fixes 2602044 . sdanig
add JavaScript: add support for element.clearAttributes() and element.mergeAttributes() (IE only). sdanig
fix JavaScript: handle invalid back references in string.replace(...) as if they were escaped. Fixes 2638813 . sdanig
fix JavaScript: remove objects created by Rhino in window scope like 'com' that aren't available in browsers. Fixes 2636581 . mguillem
update JavaScript: process false return value of handlers added by .attachEvent() or .addEventListener(). Fixes 2624738 . asashour
fix JavaScript: make prototype available on DOM nodes as __proto__ (FF only). mguillem
fix JavaScript: hide standard Object and Array functions that don't exist on IE. mguillem
fix JavaScript: Expand support for document.namespaces collection. sdanig
fix JavaScript: XMLSerializer should properly handle Document. asashour
fix JavaScript: Date.getYear() returns four digits for years before 1900 and after 1999 when simulating IE. Fixes 2615817 . mguillem
fix JavaScript: single submission of form if onclick handler of HTMLSubmitInput also submits the form. Fixes 2603370 . asashour
update Add default value for "Accept" and "Accept-Language" HTTP headers. Fixes 2602044 . asashour
add JavaScript: add support for HTMLElement.removeNode(). Fixes 2602044 . asashour
update JavaScript: move removeAttribute() from HTMLElement to Element. asashour
update JavaScript: element.doScroll() should throw an exception if page is not yet loaded. asashour
fix JavaScript: fix the return value of node.insertBefore(). Fixes 2526045 . asashour
fix JavaScript: fix behavior when document.cookie is set to an empty string or a string without an '=' character. Fixes 2511851 . sdanig
fix JavaScript: fix element.parentElement if the parent is DocumentFragment. Fixes 2501217 . asashour
fix JavaScript: anchor's href attribute is empty string when no href was specified. mguillem
fix JavaScript: custom RegExp proxy now ignores back references in character class as browsers do. mguillem
fix Correct JavaScript parent scope after using WebClient.setCurrentWindow. bradclarke
add JavaScript: add support for Enumerator (IE only). Fixes 2509952 . asashour
fix JavaScript: custom RegExp proxy now accepts unescaped opening square brackets in character class. mguillem
add JavaScript: add support for HTMLDocument.dispatchEvent (FF only). mguillem
update JavaScript: properties of XMLHttpRequest ActiveX object are case insensitive. Fixes 2520971 . asashour
fix Allow numbers with decimal points in refresh meta tags. sdanig
fix JavaScript: XMLHttpRequest is supported in IE7. asashour
fix Fail gracefully when script tags contain empty 'src' attributes. sdanig
fix Make the cookie manager thread-safe. sdanig
fix JavaScript: setting anchor.hash should accept values both with and without the '#' character. sdanig
fix JavaScript: values returned by anchor.hash should include the '#' character. sdanig
add JavaScript: add support for HTMLElement.dir, .lang, .tabIndex and .spellcheck. asashour
add JavaScript: add support for window.atob() and btoa(). asashour
fix JavaScript: compute URL relatively to owning page for showModelessDialog and showModalDialog. Fixes 2528830 . mguillem
fix IE Conditional comments: accept expressions that contain identifier other than IE (like mso). Fixes 2503965 . mguillem
fix If content-type meta tags contain empty encoding information, ignore it and use the default encoding. Fixes 2484753 . sdanig
update Ignore namespaces if the tag name does not have a prefix. Fixes 2502817 . asashour
update DomElement.getElementsByTagName() should search in only sub-elements. Fixes 2501193 . asashour
add JavaScript: add support for document.createComment(). asashour
update Deprecate ClickableElement and StyledElement, directly use HtmlElement instead. asashour
add JavaScript: add initial support for TextRange.moveStart() and .moveEnd(). Fixes 2495285 . asashour
add JavaScript: add support for document.getElementsByClassName and HTMLElement.getElementsByClassName (FF3 only). mguillem
update JavaScript: document.execCommand doesn't throw an exception when called with unknown command (FF3 only). mguillem
update JavaScript: document.scripts doesn't exist for FF. mguillem
update JavaScript: when simulating Firefox, document.write(ln) returns the function, no matter if elements with this name are present or not. mguillem
update JavaScript: document.createEvent doesn't initialize the target property under FF3. mguillem
update JavaScript: document.all('notExisting') returns undefined for FF. mguillem
update JavaScript: tags property exists on collections for FF2 but not for FF3. mguillem
update JavaScript: prototype should not be enumerated (FF). mguillem
update JavaScript: IE does not enumerate objects methods. asashour
update BrowserVersion: deprecate setJavaScriptVersion(), getJavaScriptVersion() and getJavaScriptVersionNumeric(). asashour
update Replace ThreadManager with JavaScriptJobManager, which internally uses the executor services provided by JDK 5. sdanig
add Add HtmlAbbreviated, HtmlAcronym, HtmlBackgroundSound, HtmlBig, HtmlBlink, HtmlBold, HtmlCitation, HtmlCode, HtmlDefinition, HtmlEmphasis, HtmlExample, HtmlItalic, HtmlKeyboard, HtmlListing, HtmlMarquee, HtmlMultiColumn, HtmlNoBreak, HtmlNoEmbed, HtmlPlainText, HtmlS, HtmlSample, HtmlSmall, HtmlSpacer, HtmlStrike, HtmlStrong, HtmlSubscript, HtmlSuperscript, HtmlTeletype, HtmlUnderlined and HtmlVariable. asashour
remove Deprecation: remove XmlAttr, SubmitMethod, WebRequestSettings.setURL(), and WebClient methods: setCookiesEnabled(), setProxyHost(), setProxyPort(), addHostsToProxyBypass(), and removeHostsFromProxyBypass(). asashour

Release 2.4 - Dec 30, 2008

Type Changes By
update Upgrade HtmlUnit-core-js to 2.4 (corresponds to head of Rhino branch 1.7R2 from Dec 12, 2008). mguillem
update Upgrade NekoHtml to 1.9.11. asashour
add Add support for HtmlEmbed, HtmlCanvas and HtmlWordBreak. asashour
fix JavaScript: correct the return value of EventNode.fireEvent(). Fixes 2421302 . asashour
update JavaScript: add dummy implementation for TextRange methods collapse and select (IE). mguillem
fix JavaScript: replace \n with \r\n for property defaultValue of HtmlTextAreaElement (IE) and ignore leading new line sign. Fixes 2438622 . mguillem
fix JavaScript: frame window object retrieved through should be live and reflect page loads in the window. Fixes 2314485 . mguillem
update JavaScript: do not throw exception on invalid regular expressions. mguillem
add Support for IE conditional comments in HTML code. mguillem
update JavaScript: removeAttribute should delete node property too (IE only), getAttribute returns property if no attribute is found (IE only). mguillem
fix JavaScript: fixed exception occurring while accessing src property of freshly created Image object. Fixes 2214332 . mguillem
fix HtmlPage.asXml(): expand empty table nodes to make generated XML readable as HTML on browsers. Fixes 2393355 . mguillem
fix HtmlTextArea.type(...) should not trigger onchange handler. mguillem
fix Delay execution of image onload handlers after the page finish to load. Fixes 2382872 . mguillem
add First experiments to support applets. mguillem
update 100% success with MochiKit unit tests. mguillem
add JavaScript: HTMLElement.filters is not undefined (IE only). mguillem
fix JavaScript: offsetParent is undefined for detached nodes. mguillem
fix JavaScript: HTMLHtmlElement's clientWidth and clientHeight gives the available screen size. mguillem
fix CSS: font-size is inherited. mguillem
fix CSS: parse shorthand background to find background color. mguillem
fix CSS: parse individual border width from borderWidth. mguillem
fix JavaScript: add dummy implementation for HTMLElement's clientLeft and clientTop. mguillem
update Deprecate HtmlPage.getHtmlElementByAccessKey(), HtmlPage.getHtmlElementsByAccessKey(), HtmlPage.getHtmlElementsByName(), HtmlPage.getHtmlElementsByIdAndOrName(), HtmlElement.getHtmlElementsByAttribute() and HtmlElement.getHtmlElementById(). asashour
update Deprecate DomElement methods getAttributeValue, setAttributeValue. Usage of DOM 2 methods getAttribute, getAttributeNS, setAttribute and setAttributeNS is preferred. mguillem
update Deprecate XmlPage.getDocumentXmlElement(), HtmlPage.createHtmlElement() and createHtmlElementNS(). asashour
fix Document and Element.getElementsByTagName() should not be affected by namespaces. asashour
fix JavaScript: node's attributes collection is never empty for IE. mguillem
add JavaScript: add support for Comment object. Fixes 2318054 . Thanks to Mirko Friedenhagen. asashour
fix JavaScript: prototype for event handlers should be the function prototype. Fixes 2318508 . sdanig
update JavaScript: add support for document.captureEvents (FF). Fixes 2024729 . sdanig
fix JavaScript: fix option.text. Fixes 2316809 . asashour
add JavaScript: add support for window.showModalDialog() and window.showModelessDialog(). Fixes 2124916 . sdanig
fix JavaScript: support Text object. Fixes 2315783 . asashour
fix HtmlInput: typing enter should behave as clicking submit input. asashour
update JavaScript: added support for document.applets. mguillem
add JavaScript: add support for getting and setting the image.onload attribute. Fixes 1693272 . sdanig
add If an image has an onload handler, download the image and then invoke the onload handler. Fixes 1693272 . sdanig
add JavaScript: add support for elements.nextNode() and elements.reset() for the element collection returned by XmlDocument.selectNodes(...) (IE only). Fixes 1829981 . sdanig
fix JavaScript: fix setting input.type if it is the first child. asashour
fix When querying elements for namespaced attributes, don't fall back to returning non-namespaced attributes. Fixes 2024619 . sdanig
add JavaScript: add support for element.removeAttributeNS() (FF only). Fixes 2024619 . sdanig
add JavaScript: dummy support for XUL element in HtmlDocument.createElementNS (FF only). mguillem
add JavaScript: window.controllers is not null (FF only). mguillem
fix JavaScript: IE ignores empty text children. asashour
add JavaScript: add support for document.queryCommandEnabled(). sdanig
add JavaScript: add partial support for window.getSelection() (FF only). sdanig
fix JavaScript: element.style.opacity only accepts numeric values when emulating FF. sdanig
fix JavaScript: fix element.style.display default values when emulating IE. sdanig
fix JavaScript: element.style length-related attributes should be converted to pixels (FF only). sdanig
fix JavaScript: postpone the execution of setting 'location.href'. Fixes 2229862 . asashour
fix JavaScript: select.appendChild(option), .add(), and insertBefore() should update .selectedIndex. asashour
fix Silently ignore HTTP Status code "USE_PROXY" (305), and treat it as success. Fixes 2214332 . asashour
fix XPath: proper handling of upper cased HTML elements. asashour
add Implemented DomNode#compareDocumentPosition and add Node.compareDocumentPosition (FF only). mguillem
add JavaScript: add support for element.contains() (IE only). asashour
fix JavaScript: element.innerHTML should quote anchor href attributes and empty attributes when emulating IE. Fixes 2262599 . sdanig
fix JavaScript: In certain cases, node collections were returning elements when inexistent attributes were accessed. sdanig
fix As per browser conventions, the node for the top-level html tag should only ever contain the head and body tags -- never any text nodes. sdanig
fix JavaScript: make sure element.offsetWidth is constrained by the element's parent's dimensions. sdanig
fix CSS rules specified in stylesheets should not override CSS rules specified directly in an element's "style" attribute. sdanig
add JavaScript: implement element.style.pixelLeft, pixelRight, pixelTop and pixelBottom (IE only). sdanig
fix JavaScript: fire onchange for & lt;input type='file' ... & gt; when field loses focus and value has been changed. mguillem
fix JavaScript: fire focus event not only on & lt;input ... & gt;. Fixes 2136816 . mguillem
add Add support for HTMLDocument.createTreeWalker (FF only). Fixes 2060645 . Thanks to Mike Dirolf. mguillem
add Add support for 'deflate' Content-Encoding. Fixes 2192292 . asashour
update HtmlPage.asXml(): expand empty style nodes to make generated XML readable as HTML on Firefox 3. mguillem
fix HtmlTextInput: type() should remove selected text(). Fixes 2187741 . asashour
add JavaScript: add support for document.uniqueID (IE only). Fixes 2187687 . asashour
update Made static WebClient methods getJavaScriptTimeout() and setJavaScriptTimeout() non-static, so that they can be configured on a per-WebClient basis. Fixes 2089599 . sdanig
add JavaScript: add support for document.compatMode. asashour
add HtmlInput: add isReadOnly() and setReadOnly(). asashour
fix JavaScript: node.appendBefore() should run added script element. asashour
fix Set 'referer' header and other additional headers on loading external JavaScript files. Fixes 2178172 . Thanks to Marco Cova. asashour
fix JavaScript: window.frames should return the ones with id attribute (IE only). Fixes 2174320 . asashour
add Add support for DocumentType. asashour
update Better formatting for asText() particularly with new lines for TR, BR or LI and tabs between cells. Fixes 1509340 . mguillem
fix HtmlElement: correctly handle getNodeName(). Fixes 2043322 . asashour
fix JavaScript: correctly handle element.nodeName, .tagName, .prefix, .localName, and .namespaceURI. asashour
add JavaScript: add support for document.namespaces (IE only). asashour
fix JavaScript: Firefox doesn't support select.options.childNodes. asashour
update XmlElement: is deprecated, use DomElement instead. asashour
update HtmlElement: deprecate getAttributesCollection() and isAttributeDefined(). asashour
update BrowserVersion: deprecate INTERNET_EXPLORER_6_0 and INTERNET_EXPLORER_7_0. Fixes 2129180 . asashour
fix JavaScript: document.cookie should overwrite existing cookie. Fixes 2136953 . Thanks to David Bylsma. asashour
update Upgrade Xalan to 2.7.1 Fixes 2129180 . asashour
fix FrameWindow: should be Serializable. asashour
fix JavaScript: postpone the execution of dynamically added external scripts. asashour
fix JavaScript: correct script.onreadystatechange behavior for external JavaScript files. asashour
fix JavaScript: add support for script.onload (FF only). asashour
fix JavaScript: Attr.specified queries owner node for attribute's existence. mguillem
fix JavaScript: HtmlOptionsElement.getAttributeNode returns a node for attributes "id", "value" and "selected" even if these attributes weren't specified in HTML code (IE only). mguillem
fix JavaScript: HtmlOptionsCollection delegates to enclosing select for FF as well. mguillem
fix HtmlSelect: removeOption() and replaceOption() to inspect only HtmlOption children. Fixes 2116569 . asashour
update Upgrade JUnit to 4.5. asashour
fix JavaScript: fireEvent calls handlers with received event object rather than with a copy (IE only). mguillem
fix JavaScript: trigger deferred scripts' onreadystatechange handler before onload event (IE only). mguillem
fix JavaScript: constant values like TEXT_NODE on elements are not available when simulating IE. mguillem
fix JavaScript: objects like HTMLElement don't have a their prototype property in their prototype chain (FF only). mguillem
fix JavaScript: use 'className' instead of 'class' to get/set class attribute (IE only). mguillem
fix JavaScript: Node.getAttributeNode returns null if no attribute exists with the specified name. mguillem
fix Form element can be included as HTML inside XML. Fixes 2105645 . asashour
fix JavaScript: fix incorrect value of CSSStyleRule.selectorText when identified by id (like "#foo"). Fixes 2124854 . mguillem
fix JavaScript: define properties altKey, ctrlKey and shiftKey on UIEvent when simulating Firefox. mguillem
fix JavaScript: use UIEvent for keyboard events. mguillem
fix JavaScript: cloneNode copies event handlers when simulating IE. mguillem
update Better generics: avoid the need for casting when calling HtmlElement.getHtmlElementById(), HtmlForm.getInputByName(), and .getInputByValue(). asashour
fix JavaScript: implemented workaround for NPE in CSSParser in some usage of CSSStyleSheet.insertRule. mguillem
fix JavaScript: finished implementation of insertRule (FF) and addRule (IE) on CSSStyleSheet. mguillem
fix JavaScript: CSSStyleRule.selectorText should return values like ".foo" rather than "*.foo". mguillem
remove Deprecation: remove HtmlUnitXPath class, DomNode.getXXXDomYYY(), HtmlPage.getDocumentHtmlElement(), HtmlPage.moveFocusToElement(), HtmlPage.getFocusedElement(), WebClient.popFirstWindow(), and WebClient.pushClearFirstWindow(). asashour
add ActiveX: add support for native ActiveX controls (using Jacob). asashour
update WebResponse interface: deprecate getResponseBody() in favor of getContentAsByteArray(), deprecate getLoadTimeInMillSeconds() in favor of getLoadTime(), deprecate getUrl() in favor of getRequestUrl(), add getContentAsString(String). sdanig

Release 2.3 - Sept 16, 2008

Type Changes By
update Better generics: avoid the need for casting when calling methods like WebClient.getPage(), HtmlPage.getHtmlElementById(), ... NOTE: This change avoids casting so that code like 'HtmlImage e = (HtmlImage) page.getHtmlElementById("myImage")' can be written as 'HtmlImage e = page.getHtmlElementById("myImage")'. HOWEVER, due to a bug in Sun Java 5 compiler (fixed in Java 6 and not existing for instance in Eclipse), calling directly a method from the base return type without assigning the result to a variable will produce a compilation error. A simple workaround consists in changing code like 'page.getHtmlElementById("foo").asText()' to 'page. & lt;HtmlElement & gt;getHtmlElementById("foo").asText()' (or assigning the result of the 'getHtmlElementById("foo")' call to an intermediate variable). asashour
fix JavaScript: replace \n with \r\n for value property of HtmlTextAreaElement (IE) and ignore leading new line sign. mguillem
fix JavaScript: document.cookie value to be surrounded by double quotes if it contains space. asashour
update CookieManager: process server-side cookies. asashour
fix Avoid NullPointerException when iframe.src is a "javascript:..." URL and JavaScript has been disabled. sdanig
fix JavaScript: add doScroll() method to bodies, divs, spans and textareas (IE only). Fixes 2088921 . sdanig
fix HtmlTextArea: replace new lines with '%0D%0A' and remove first occurrence in form submission. asashour
fix JavaScript: when setting location.href, if the only real change is in the hash then just change the hash and don't hit the server. Fixes 2101735 . sdanig
add Allow custom CSS error handlers (via WebClient.getCssErrorHandler() and WebClient.setCssErrorHandler()) and provide two error handler implementations out of the box (DefaultCssErrorHandler and SilentCssErrorHandler). Fixes 2065694 . sdanig
update Upgrade NekoHtml to 1.9.9. asashour
fix Select element can be included as HTML inside XML. Fixes 2105645 . asashour
fix JavaScript: setting select.selectedIndex should not change page focus. Fixes 2021810 . asashour
add Add facility method WebClient.closeAllWindows(). mguillem
fix JavaScript: StackOverFlowError when setting html fragment containing BODY tag to innerHTML of an element inside BODY. Updated the parser to ignore HTML, HEAD (with contents in IE) and BODY tag while parsing fragment. sudhan_moghe
fix JavaScript: Make innerHTML property read only in IE for following elements col, colgroup, frameset, head, html, style, table, tbody, tfoot, thead, title, tr. Property is writable for all the elements in FF. sudhan_moghe
fix JavaScript: Make innerText property read only for following elements html, table, tbody, tfoot, thead, tr. FF do not have the property. sudhan_moghe
add JavaScript: Add support for title.text. sudhan_moghe
update WebRequestSettings: Add trailing slash to any URL that contains only hostname (with or without port). asashour
update Rework WebConnection class hierarchy: remove unnecessary WebConnection.getWebClient() and WebConnection.getState() methods, delete unnecessary WebConnectionImpl abstract class, make WebConnection classes part of the public API by removing their internal API warning. sdanig
add Add CookieManager class which can be used to manage cookies on a per-WebClient basis. Fixes 1965338 . sdanig
fix Fix condition where CSS warnings and errors did not have a systemID to easily identify error origin. Fixes 2060931 . sdanig
fix JavaScript: add support for properties style (FF) and styleSheet (IE) on HTMLStyleElement and dummy support for the methods insertRule (FF) and addRule (IE) on CSSStyleSheet. mguillem
update XMLSerializer: includes attributes from HTMLElements. Fixes 2098021 . Thanks to Darrell DeBoer. asashour
remove XmlAttr: remove deprecated constructor with Map.Entry. asashour
fix ThreadManager: add WebWindow name to the background threads name. Fixes 2093427 . asashour
fix XmlPage: ClassCastException should not be thrown by .getByXPath(). Fixes 2091788 . asashour
fix JavaScript: trigger focus event when clicking an element or typing in it. Fixes 1985241 . mguillem
fix JavaScript: trigger mousedown and mouseup event when an element is clicked. Fixes 2013891 . mguillem
fix JavaScript: make document.styleSheets[x] respect WebClient.printContentOnFailingStatusCode and WebClient.throwExceptionOnFailingStatusCode settings when downloading external CSS files. Fixes 2070940 . sdanig
fix JavaScript: StackOverflowError when setting the location hash via the location.href attribute. Fixes 2089341 . sdanig
add JavaScript: add stylesheet.href attribute. Fixes 2063012 . sdanig
fix Don't parse & lt;noscript & gt; content when JavaScript is enabled. Fixes 1729195 . mguillem
fix JavaScript: document.XXX allow to access forms by id (IE only). mguillem
fix JavaScript: silently ignore script nodes with event="..." for="..." when the target element can't be found (IE only). Fixes 2037685 . mguillem
fix JavaScript: copy dynamic properties from template in fireEvent (IE only). Fixes 2014596 . mguillem
fix JavaScript: fixed event order when setting the value of a text field. Fixes 2025912 . mguillem
fix JavaScript: escape quotes found in attribute values when accessing through innerHTML. Fixes 2062406 . mguillem
update Make IE7 the default BrowserVersion (was IE6). sdanig
add Add BrowserVersion for Firefox 3 emulation. sdanig
fix Fixed NullPointerException occurring document.styleSheets[x] with out of bound index. Fixes 2060550 . mguillem
fix Fixed NullPointerException occurring in HtmlPage.writeInParsedStream() when document.write is called after setting innerHTML of some element in page. Fixes 2052115 . Thanks to Ethan Glasser-Camp. sudhan_moghe
fix HTMLParser: now considers namespaces. Fixes 2043322 . asashour
fix HtmlElement: asText() respects hidden visibility style attribute. Fixes 2042339 . asashour
fix Add missing equals() methods to the PluginConfiguration and PluginConfiguration.MimeType classes. sdanig
fix WebClient.expandUrl doesn't handle references correctly. Fixes 2027723 . Thanks to Martin Tamme. sudhan_moghe
fix Attribute values for cloned nodes were not available via JavaScript. Fixes 2024741 . sdanig
add JavaScript: add support for navigator.product (FF only). Fixes 2028071 . asashour
update Upgrade Commons Collections to 3.2.1 asashour
fix JavaScript: 'window.event' should be preserved after another event firing. asashour

Release 2.2 - Jul 24, 2008

Type Changes By
fix JavaScript: fix endless recursion when innerHTML has script that modifies the innerHTML. Fixes 2022578 . sudhan_moghe
fix Accept \r and \n for HtmlTextArea.type(). Fixes 2019665 . mguillem
fix Avoid to perform multiple request for the same external stylesheet. Add facility to access referred content from HtmlLink. mguillem
fix Fix memory leak of window objects when the windows contain long-running background JavaScript tasks scheduled via setInterval() or setTimeout(). Fixes 2014629 . sdanig
fix JavaScript: fix JavaScript error with form.element, when element is located before closing form tag but the tag balancing forces form to be closed earlier. Fixes 2019116 . sudhan_moghe
add HtmlFileInput: allow to load data from memory. Fixes 2001001 . Thanks to Andrew_WOT. mguillem
add JavaScript: add support for attribute.text and attribute.xml (IE only). sudhan_moghe
add JavaScript: add support for document.activeElement and element.setActive() (IE only). Fixes 1990842 . sudhan_moghe
update Ensure to focus element on calling HtmlElement.type(). Fixes 1985241 . asashour
add JavaScript: add support for script.text. Fixes 2005930 . asashour
fix Fix exception when opening about:blank with Firefox. Fixes 2006861 . asashour
add Add classes AttachmentHandler, CollectingAttachmentHandler and Attachment to handle attachments outside of the normal page flow (disabled by default for backwards compatibility). sdanig
fix JavaScript: postponed loading of frame content after script execution when src is set from a script. mguillem
fix JavaScript: window.execScript() now accepts undefined 'language' (IE only). asashour
fix Fix current window's computation when a window is closed by JavaScript during onload processing. Fixes 1995196 . Thanks to Sudhan Moghe. mguillem
fix ThreadManager: set BrowserVersion of HtmlUnitContextFactory of newly created threads. Fixes 1997280 . Thanks to Rene Schwietzke. asashour
fix JavaScript: fix variable scope after document.write. Fixes 1950004 . Thanks to Sudhan Moghe. mguillem
fix Parsing: handle quotes in comments correctly within script nodes. Fixes 1990198 . mguillem
add Cache compiled scripts and parsed stylesheets at the WebClient level. sdanig
update INCOMPATIBLE CHANGE: HtmlElement.getPage() now returns SgmlPage instead of HtmlPage. asashour
add JavaScript: add support for TextRange.duplicate() (IE only). mguillem
add JavaScript: add support for property xml on XML DOM nodes (IE only). mguillem
remove Remove ant build file. asashour
fix Maintain CSS style attribute order, according to document definition. sdanig
fix Style attributes in upper case are not recognized. Fixes 1990648 . Thanks to Sudhan Moghe. mguillem
fix JavaScript: fixed document.write(ln) handling of & lt;br & gt; and & lt;hr & gt;. Fixes 1678826 . mguillem
fix JavaScript: improved document.write(ln) support to add nodes to the right parent. Fixes 1990313 . Thanks to Karel Kolman. mguillem
fix JavaScript: HTMLDocument.ownerDocument is always null. mguillem
fix Fix HtmlTextInput.type(), HtmlTextArea.type() and HtmlPasswordInput.type() to handle backspaces correctly. sdanig
fix JavaScript: implemented a workaround for Rhino bug in number primitive resolution (Rhino bug 374918). Fixes 1822108 . sdanig
add Move proxy-related methods from WebClient to new class ProxyConfig. Fixes 1900452 . sdanig
fix JavaScript: value of form elements is set before triggering keyUp event (was after). mguillem
update Be more tolerant while extracting charset from incorrect Content-Type header. Fixes 1964258 . mguillem
fix JavaScript: add optionElement.disabled and optionGroupElement.disabled attributes. sdanig
fix HtmlOption.isDisabled() and HtmlOptionGroup.isDisabled() always return false when emulating IE. Fixes 1986764 . sdanig
fix Don't lose any custom request headers during redirection. Fixes 1987911 . sdanig
fix Allow PUT request with body content. Thanks to Andreas Hartmann. mguillem
fix Fix extraneous load of frame contents cause by frame node cloning. Fixes 1954869 . sdanig
add JavaScript: add support for methods getAttribute(), setAttribute() and removeAttribute() on element.style and element.runtimeStyle (IE only). Fixes 1982331 . sdanig
fix Fix incorrect handling of conflicting return values in different event handlers during event bubbling. Fixes 1976960 . sdanig
fix Malformed HTML code: associate form elements located before closing form tag to the form even if tag balancing forced form to be closed earlier. mguillem
fix Be more lenient about spurious whitespace in node attributes containing relative URLs (image.src, script.src, link.href, etc). Fixes 1977736 . sdanig
fix Fix document.cookie so that it works correctly when loading HTML pages from the local filesystem, when there is no real domain available. sdanig
fix Allow calls to WebClient.openWindow() with null URLs. Fixes 1975445 . sdanig
add JavaScript: add support for onpropertychange event type (IE only). Fixes 1957900 . asashour
fix Fix HtmlPage.getHtmlElementsByIdAndOrName() returns same element twice. Fixes 1969664 . mguillem
add JavaScript: implement textRange.text setter (IE only). asashour
add JavaScript: implement style.zIndex. Fixes 1955515 . Thanks to Rodney Gitzel. asashour
fix NamedNodeMap instances (element.attributes) are case-insensitive in HTML documents (but not XML documents). sdanig
fix Invalid HTML: when the same attribute appears more than one time, consider the first value rather than the last one. Fixes 1968708 . mguillem
fix JavaScript: HtmlInput.type value is always lower case. mguillem
fix Deprecated JavaScriptEngine.get/setTimeout(), added replacement methods WebClient.get/setJavaScriptTimeout(). Fixes 1643275 . sdanig
fix Fix serialization of HtmlPages (was broken in some scenarios). Fixes 1951047 . sdanig
update Change license to Apache 2. mguillem
fix Fix IllegalStateException that occured using document.write assigned to a variable (IE only). Fixes 1950462 . mguillem
add HtmlPasswordInput: type() appends text to the value. asashour
update JavaScript: XMLDocumet.getElementById retrieve elements with HTML namespace (FF only). Fixes 1964731 . mguillem
update Improved logic to detect the window with the focus. mguillem
add JavaScript: improved behavior of XMLHttpRequest in network error handling. Added support for the onError callback (FF only). Fixes 1962847 . Thanks to Stuart Begg. mguillem
fix Fixed ClassCastException in CSS child selector processing. Fixes 1960512 . mguillem
add Allow to directly invoke URLs with javascript protocol. mguillem
add Add facilities on HtmlImage to download the referenced image and read it. Fixes 1954183 . mguillem
remove Remove deprecated HtmlPage.executeJavaScriptIfPossible() and WebClient.assertionFailed(). asashour
update INCOMPATIBLE CHANGE: Replace SubmitMethod with HttpMethod (some methods with incompatible return types). asashour
add HtmlPage: add refresh(), deprecate HttpWebConnection.newWebResponseInstance() (replaced with another method with different parameters), and deprecate one of WebResponseImpl constructors (with replacement). Fixes 1946000 . asashour
update WebRequestSettings: deprecate getURL() and setURL(), use getUrl() and setUrl(). asashour
fix JavaScript: don't store cookies when document.cookie is set and cookies are disabled. Fixes 1951179 . sdanig
add JavaScript: add support for the link.href, link.type and link.rel properties. sdanig
fix JavaScript: initialize event.target correctly when using createEvent and dispatchEvent (FF only). sdanig
update DomAttr: deprecate getHtmlValue() and setHtmlValue(). asashour
remove INCOMPATIBLE CHANGE: HtmlAttr and XmlAttr are no more used, use DomAttr instead. asashour
fix JavaScript: fix XMLElement.attributes. Fixes 1942640 . asashour
update & lt;span & gt;: empty tag is expanded as required by browsers. Fixes 1947877 . Thanks to Sudhan Moghe. asashour
add JavaScript: add support for XMLElement.hasAttribute() (FF only). asashour
add JavaScript: add support for HTMLAnchorElement.click(). Fixes 1948777 . Thanks to Sudhan Moghe. asashour
fix Any onload events specified on frames and iframes are executed each time the frame content changes -- not just the first time that the frame loads. sdanig
fix Make UTF-8 the default encoding for all XMLHttpRequests. sdanig
fix Encode and decode location.hash when emulating Firefox. sdanig
fix HtmlPage: cloned page handles XPath. Fixes 1946994 . asashour
add JavaScript: Add select.multiple support. sdanig
add JavaScript: Add initial support for CSSRule and CSSStyleRule. asashour
add Add WebClient.setCssEnabled(boolean) and WebClient.isCssEnabled(). Fixes 1942334 . sdanig
fix JavaScript: object properties now returned in creation order. mguillem
update Use HtmlUnit-core-js (which is a Rhino fork) instead of Rhino. mguillem

Release 2.1 - Apr 15, 2008

Type Changes By
update Deprecate HtmlPage.getDocumentHtmlElement(). asashour
add Add support for DomNode.getTextContent() and setTextContent(). asashour
add JavaScript: add initial support for CSSRuleList. asashour
fix HtmlTextInput and HtmlTextArea: fix type() space. asashour
update HtmlPage.getReadyState() now synchronized with the information from the documentElement. Fixes 1592733 . mguillem
update CSS parsing optimization: avoid parsing CSS selectors multiple times. sdanig
update Initialize mouse event coordinates lazily, in order to avoid unnecessary CSS processing overhead. sdanig
fix JavaScript: window.open without URL provided returns blank window when simulating Firefox too. Fixes 1584437 . mguillem
fix JavaScript: clear existing events handlers when page's content is changed with document.write. Fixes 1794764 . mguillem
fix JavaScript: fixed document.location in pages created with document.write. mguillem
fix JavaScript: fixed ClassCastException occurring when select() is called on form elements other than text inputs. mguillem

Release 2.0 - Apr 7, 2008

Type Changes By
update Upgrade NekoHtml to 1.9.7. asashour
update Deprecate DomNode non-DOM methods, i.e. getLastDomChild(), getParentDomNode(), getPreviousSibling(), getNextDomSibling(), getFirstDomChild() and cloneDomNode(). asashour
update Deprecate HtmlUnitXPath. asashour
update DomNode: asXml() uses charset from HtmlPage.getPageEncoding(). Fixes 1931084 . asashour
update Upgrade Jetty to 6.1.9. asashour
update Upgrade Commons Lang to 2.4. asashour
update Deprecate popFirstWindow and pushClearFirstWindow on WebClient. mguillem
fix Add element.offsetParent to FF emulation mode. sdanig
update Upgrade CSS Parser to 0.9.5. sdanig
add Add initial support for data protocol (Firefox only). mguillem
fix Fix element.clientWidth, clientHeight, offsetTop, offsetLeft and offsetParent to reflect CSS configuration. sdanig
add In BoxObject, add attributes element, firstChild, lastChild, nextSibling, previousSibling, x, y, width and height. sdanig
fix Fix element.offsetWidth and element.offsetHeight to include padding. sdanig
add Add DomNode.getCanonicalXPath(). asashour
update Deprecate HtmlPage.moveFocusToElement() and getElementWithFocus(), use setFocusedElement() and getFocusedElement(). asashour
update Meta Refresh: case-insensitive URL (#1924784). Fixes 1924784 . Thanks to Dmitri Zoubkov. asashour
update Upgrade Rhino to 1.7R1. asashour
add JavaScript: add support for XMLElement.getElementsByTagNameNS() (FF only). asashour
add JavaScript: add support for input.setSelectionRange() (FF only). asashour
update HtmlSelect: if any HtmlOption is selected, focus is moved to HtmlSelect. asashour
add JavaScript: add support for 'onfocusin' and 'onfocusout' (IE only). asashour
update JavaScript: CSSStyleSheet added support for ownerNode (FF) and owningElement (IE). mguillem
update JavaScript: allow direct access to nodes per id/name when simulating Firefox too. mguillem
update JavaScript: fixed various issues with Node methods appendChild, insertBefore and replaceChild when involved nodes don't belong to the same document. mguillem
update HtmlPage.asXml(): place scripts in CDATA sections with comments. mguillem
fix JavaScript: fix window.location.hash so it always starts with '#'. asashour
update Upgrade Jetty to 6.1.8, Commons IO to 1.4 and FileUpload to 1.2.1. asashour
remove INCOMPATIBLE CHANGE: Remove KeyValuePair, and hide HtmlForm.getParameterListForSubmit() and .getSubmittableElements(), they shouldn't be directly called by users. asashour
fix JavaScript: return undefined for out of bound element access on HtmlFormElement. mguillem
fix JavaScript: custom RegExp proxy now accepts unescaped curly braces. mguillem
fix JavaScript: ComputedCSSStyleDeclaration.getPropertyValue returns the same value as direct property access. mguillem
add JavaScript: add support for HtmlElement.textContent (FF only). mguillem
remove Remove Jaxen dependency. asashour
remove Remove deprecated methods in HtmlPage: assertAllIdAttributesUnique(), assertAllAccessKeyAttributesUnique(), assertAllTabIndexAttributesSet() (use corresponding methods in WebAssert instead). sdanig
remove Remove deprecated WebRequestSettings.setCookiePolicy() and getCookiePolicy(). sdanig
fix JavaScript: element.currentStyle returns calculated (rather than static) style (IE only). sdanig
add Add method Cache.clear(). sdanig
update JavaScript: added support for (undocumented) method CollectGarbage (IE only). mguillem
update DomNode.getByXPath(): when called with a string starting with slash, evaluation is relative to the root element, not to the DomNode. You can add initial dot. asashour
add Add Xalan 2.7.0 as dependency. asashour
fix JavaScript: fixed IndexOutOfBoundsException in processing of IE @elif pre processor instruction. Fixes 1904189 . mguillem
fix JavaScript: instanceof now works correctly with html elements (FF only). mguillem
fix JavaScript: property ownerDocument now defined on node. mguillem
fix JavaScript: ignore calls to document.open() during page parsing. sdanig
fix JavaScript: calling document.write() after a page has finished parsing results in overwriting the entire page. sdanig
fix Handle script elements with src attributes containing "javascript:..." URLs. Fixes 1782719 . sdanig
fix Correct the order of script element execution, deferred script element execution, script ready state changes, deferred script ready state changes, and onload handlers. sdanig
add JavaScript: add support for document.fireEvent (IE only) and document.onXXX event handlers (elements already had these). sdanig
fix Don't reload page from server if window.location.hash is modified. sdanig
fix JavaScript: HTMLCollection.item and namedItem return null when element is not found. mguillem
update JavaScript: avoid detection of document.all when simulating FF (property still available). mguillem
update XPath: case-insensitive match for attribute names. asashour
fix Add temporary body element when one is missing and document.write() is called. sdanig
fix Add implicit body element when one is missing and there is no content to trigger addition by NekoHTML. sdanig
fix When document is missing a body element, document.body returns null instead of undefined. sdanig
fix Execute JavaScript when a script element's src attribute is set (always when emulating IE, only sometimes when emulating FF). sdanig
fix Add test-scoped dependency on slf4j, in order to trigger correct logging in Jetty during the unit tests. sdanig
add JavaScript: add support for document.importNode() (FF only). Fixes 1896964 . asashour
update Upgrade Jetty to 6.1.7 and JCL to 1.1.1. sdanig
fix Fixed incorrect processing of multiple conditional compilation flags (IE only). mguillem
add JavaScript: add empty implementation of HTMLElement.clientWidth and .clientHeight. asashour
fix JavaScript: remove style attribute if it is empty. asashour
add Add support of having XML inside Html (IE only). asashour
update INCOMPATIBLE CHANGE: Rename UnknownHtmlElement to HtmlUnknownElement. asashour
update Beautify asXml() by removing unnecessary blanks. asashour
fix XmlPage: fix asText() and asXml(). asashour
add JavaScript: add basic support for document.queryCommandSupported and document.execCommand. mguillem
fix XmlPage: correct XPath handling (#1883395). Fixes 1883395 . asashour
update Fixed User-Agent header for IE6. mguillem
update JavaScript: changed simulated screen dimensions to 1024x768 (was 800x600). mguillem
add JavaScript: add basic support for all missing style attributes. asashour
update JavaScript: Node.replaceChild() correctly processes DocumentFragment. asashour
update JavaScript: XMLHttpRequest should not call onreadystatechange handler if sync (FF only). asashour
add JavaScript: add support for Range.createContextualFragment (FF only). asashour
update JavaScript: __proto__ is only defined for Firefox. asashour
fix Handle line comments in multiline onXxxx events handlers declarations. Fixes 1464948 . mguillem
update Upgraded nekohtml to version 1.9.6.1 mguillem
update INCOMPATIBLE CHANGE: Change html package to implement W3C DOM API interfaces, though most methods are not yet implemented. Remove deprecated methods. Fix DomCData derivation to be from DomText. Rename getAttributes methods that conflict with W3C DOM API return type. (#1747878). Fixes 1747878 . dktaylor
update INCOMPATIBLE CHANGE: Rename HtmlHeader1 (to HtmlHeader6) to corresponding HtmlHeading1 (to HtmlHeading6). asashour
update INCOMPATIBLE CHANGE: Rename HtmlTextDirection to the correct name (HtmlDirectory). asashour
update JavaScript: XMLHttpRequest should not throw an exception when send() is called without args (for FF) and when send content is specified but method is GET. mguillem
update JavaScript: correct toString() for properties in 'window' scope (FF only). asashour
update JavaScript: detect encoding from XML declaration (#1876545). Fixes 1876545 . asashour
fix JavaScript: HTMLAnchor href attribute should be reachable even if the URL is malformed. mguillem
add JavaScript: add support for XMLElement.getAttributeNode() (#1874624). Fixes 1874624 . Thanks to Sudhan Moghe. asashour
fix JavaScript: document.cookie separates cookies with '; ' and not ';'. mguillem
fix Fixed ClassCastException occurring when a non HTML page is loaded with Firefox simulation (regression in 1.14). mguillem
remove Remove Assert, use WebAssert instead. asashour
update Upgrade JUnit to 4.4. asashour
add JavaScript: Add support for HTMLHtmlElement. asashour
remove HtmlForm: Remove deprecated .getRadioButtonInput() and .setCheckedRadioButton(). asashour
remove Remove deprecated HtmlForm.fakeCheckedRadioButton() and HtmlSelect.fakeSelectedAttribute(). asashour
add JavaScript: Add support for XPathResult.iterateNext() (FF only). Fixes 1873562 . asashour
remove Remove deprecated HtmlElement.MapEntryWrappingIterator. asashour
update Deprecate HtmlElement.getAttributeEntriesIterator(), use .getAttributes() instead. asashour
fix JavaScript: HTMLCollection should not have 'tags' property in Firefox (except for document.all ). asashour
add HtmlTextInput and HtmlTextArea: Add support for select(), and fix tabIndex JavaScript property. asashour
add Add initial support for document.selection.createRange() (IE only). asashour
remove Remove deprecated constants in BrowserVersion, in addition to HtmlForm.submit(). asashour
update Deprecate DomNode.getChildIterator(), use getChildren() instead. asashour
update INCOMPATIBLE CHANGE: DomNode.getAllHtmlChildElements() returns Iterable instead of Iterator. asashour
remove DomNode: remove unused EventHandler, and deprecated PropertyChange methods. asashour
update Deprecate HtmlElement.getChildElementsIterator(), use getChildElements() instead. asashour
add JavaScript: add support for input.selectionStart, input.selectionEnd, and input.textLength. asashour
remove Remove deprecated DomNode.XXXX_NODE, use org.w3c.dom.Node instead. asashour
remove Remove the public (deprecated) constructor of HtmlElement and its subclasses. asashour

Release 1.14 - Jan 9, 2008

Type Changes By
fix JavaScript: allow script node's onreadystatechange handler to be set to null. mguillem
fix Don't escape '+' in URL path. Fixes 1866448 . Thanks to David Bylsma. mguillem
add JavaScript: add support for 'Node' prototype. mguillem
add JavaScript: add support for window.resizeBy. mguillem
update JavaScript: StyleSheetList correctly loads CSS content (FF only). asashour
add Correctly handle URLs with path starting with double slash. mguillem
add JavaScript: add configurable support for supported plugins and mime types (FF only). Per default a Shockwave Flash plugin is "configured" for Firefox 2. mguillem
fix JavaScript: XMLHttpRequest.responseXML.getElementById should always return null (#1854975). Fixes 1854975 . asashour
add JavaScript: add support for "for (i in collection)" (#1862054). Fixes 1862054 . asashour
add JavaScript: XSLT support (ActiveXObject 'Msxml2.XSLTemplate') (IE only). asashour
update XPath: is now namespace aware for XmlElements. asashour
add JavaScript: add initial support for XPathResult, and XSLTProcessor (FF only). asashour
update JavaScript: activate document.all for Firefox too. mguillem
add Add DomElement with its JavaScript 'Element' prototype. asashour
fix XPath: DomCharacterData is treated as text node. asashour
add XMLDocument: add support for .parseError property (IE only), createElement(), createNSResolver() (FF only), evaluate() (FF only), and 'xml:space' attribute (IE only). asashour
update XMLPage handles qualified tag names. asashour
update JavaScript: added 'HTMLEvents' to the event types supported by document.createEvent (Firefox). mguillem
update JavaScript: use custom JDK based regular expression evaluation for String.match to avoid Rhino problems (speed and wrong evaluation). mguillem
update HtmlTextInput and HtmlPasswordInput: type('\n') submits the enclosing form. asashour
update & lt;frame & gt; and & lt;iframe & gt; should trim values in 'src' attribute. asashour
update JavaScript: element.dispatchEvent() exactly behaves as calling ClickableElement.click() and .dblClick() and returns correct value (based on event.preventDefault()) (#1813007). Fixes 1813007 . asashour
add JavaScript: add initial support for event.preventDefault() (anchor, checkbox, text input, textarea, others to follow) (#1813007). Fixes 1813007 . asashour
add HtmlTextInput: type() appends text to the value. asashour
add JavaScript: cache parsed JavaScript responses. Fixes 1716540 . mguillem
update JavaScript [internal]: removed ScriptEngine, use JavaScriptEngine directly. mguillem
add XMLPage: add support for comment node. asashour
update Deprecate FocusableElement. asashour
add JavaScript: add support for label.htmlFor (#1835550). Fixes 1835550 . asashour
fix JavaScript: fix removeChild() for XML elements (#1836922). Fixes 1836922 . asashour
add JavaScript: Add style.borderBottom[Color,Style,Width], .borderLeft[Color,Style,Width] , .borderRight[Color,Style,Width], and .borderTop[Color,Style,Width] (#1835836). Fixes 1835836 . asashour
add Parse CSS files and use the result in window.getComputedStyle(), as well as providing accurate values for document.styleSheets.length. All CSS file downloading and parsing occurs lazily. NOTE: Adds a dependency on cssparser 0.9.4. sdanig
fix JavaScript: Tolerate empty string for DOMParser.parseFromString() (FF only), and ActiveXObject('Microsoft.XMLDOM').loadXML() (IE only) (#1835090). Fixes 1835090 . asashour
fix JavaScript: & lt;iframe & gt; src is now correctly handled via setAttribute() (#1828914). Fixes 1828914 . asashour
fix JavaScript: add support for getAttributeNS and setAttributeNS on node (Firefox). mguillem
fix JavaScript: don't encode xml special characters for innerHTML property on script nodes. mguillem
fix Ignore & lt;script & gt; src that starts with "javascript:". asashour
fix Handle file URLs with query portions (file://my/path?a=b) and ref portions (file://my/path#ref) without breaking. sdanig
fix Fixed possible ConcurrentModificationException and dead lock with HtmlAttributeChangeListener and DomChangeListener. mguillem
add Add support for deferred script elements (IE only). sdanig
fix Avoid leaving the DOM in an inconsistent state when DomNode.replace(DomNode) is called and the target node is used as the parameter. sdanig
fix JavaScript: delegate select.options.xxx property modifications to the parent select element (property accesses were already being delegated correctly; IE only). sdanig
add Add basic support for document.getBoxObjectFor() (FF only) (#1815602). Fixes 1815602 . Thanks to Sam Hough. asashour
update HtmlTextArea.asXml() now preserves content and expands empty tag to make generated xml interpretable as html by browsers. mguillem
add Add WebAssert utility class for domain-specific assertions. INCOMPATIBLE CHANGE: Deprecate assertion methods in HtmlPage in favor of using WebAssert. The exceptions thrown are now java.lang classes instead of junit classes, though they still function as before. sdanig
update HtmlForm: on submitting a form without parameters, URL should not end with a question mark (IE7 only). asashour
add JavaScript: getElementsByTagName now returns empty collection when called with 'incorrect' name. mguillem
add JavaScript: add support for hasAttribute and hasAttributeNS on node (Firefox), getNamedItem on NamedNodeMap. mguillem
add Add a popup blocker (WebClient.setPopupBlockerEnabled(boolean)). sdanig
fix Use browser-compatibility cookie handling by default, deprecate unnecessary cookie settings in WebRequestSettings, ensure cookie policy used during HTTP communication matches the cookie policy used by the document.cookie attribute, use a single cookie header during HTTP communication. sdanig
add HtmlFileInput: add support for non-ASCII name of uploaded files (#1818569). Fixes 1818569 . asashour
add JavaScript: accept ECMA reserved keywords like 'float' as normal identifier. mguillem
add JavaScript: added support for DOMContentLoaded event (Firefox). Fixes 1812960 . Thanks to Sam Hough. mguillem
add Add possibility to configure the mime type used when uploading a file. mguillem
add JavaScript: add support for the htmlElement.attributes collection. sdanig
add Add WebClient.setUseInsecureSSL(boolean): forces the client to trust all hosts, regardless of their certificates. Makes it easy to work around servers with expired or misconfigured certificates. sdanig
add JavaScript: make focus and blur available on HtmlElement. Fixes 1815275 . Thanks to Sam Hough. mguillem
fix Don't use custom RetryHandler anymore to allow standard retry when server drops the connection which caused NoHttpResponseException. (see http://jakarta.apache.org/httpcomponents/httpclient-3.x/exception-handling.html). Fixes 1753734 . mguillem
fix Make the loading of external .js files referenced via script tags listen to WebClient.getPrintContentOnFailingStatusCode() and WebClient.isThrowExceptionOnFailingStatusCode(). sdanig
add Add support for CDATA sections of xml documents. mguillem
add Add facility method DomNode.getFirstByXPath(xpathExpr). mguillem
add JavaScript exceptions: line number information now relative to the page. mguillem
add Add HtmlPage.executeJavaScript to inject JavaScript code in a page. mguillem
add JavaScript: add support for element.dispatchEvent(event) (Firefox only). sdanig
add Cache JS server responses to avoid useless requests (script caching will come later). Fixes 1716540 . mguillem
fix Don't load the originally specified source of a frame, when its location has already been changed by JavaScript. Fixes 1518195 . mguillem
add Add primitive support for document.styleSheets (#1805817). Fixes 1805817 . asashour
add Add support of setExpression and removeExpression for element and style (#1809522). Fixes 1809522 . asashour
update Update window.frames so it does not throw ClassCastException (#1802836). Fixes 1802836 . asashour
update JavaScript: document.all('notExistingElement') now returns null as IE does. Fixes 1802969 . mguillem
fix Fix loading content containing 'Content-Type' header with quoted charset (#1797235). Fixes 1797235 . asashour
update Upgrade Jetty to 6.1.5. asashour
fix JavaScript: XMLDocument should not ignore descendants non-empty DomText in IE. asashour
fix JavaScript: loadXML() supports relative URLs in ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE only). asashour
add Add basic support for attributes of XML elements. asashour
add Added FalsifyingWebConnection, a WebConnection wrapper that provides facility methods to provide other content than the "real" one. mguillem
add JavaScript: added backgroundImage to allowed style properties. mguillem
add JavaScript: added Document.createRange() and basic support for Range (Firefox only). mguillem
add JavaScript: add selectNodes() and selectSingleNode() (IE only), getElementsByTagName() and .tagName property for XML elements. asashour
add JavaScript: add basic support of setProperty() function and .preserveWhiteSpace property for ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE only). asashour
update DomNode.getByXPath() with 'id()' function should return empty list instead of throwing an exception (#1790308). Fixes 1790308 . asashour
add WebClient.loadWebResponse should not be final. Fixes 1790312 . mguillem
add JavaScript: add UIEvent.initUIEvent() (FF only). sdanig
add Allow HTTP methods DELETE, HEAD, OPTIONS, PUT and TRACE (in WebClient.getPage(WebRequestSettings) and in XMLHttpRequest). mguillem
add JavaScript: add XMLSerializer (FF), and .xml property for ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE). asashour
add JavaScript: add DOMParser, with implementation of parseFromString() (FF only). asashour
add JavaScript: add loadXML() and selectNodes() for ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE only). asashour
update JavaScript: ignore text nodes of loaded XML by ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE). asashour
update Move getWebClient() from HtmlPage to SgmlPage. asashour
update JavaScript: correctly handle 'documentElement' property for 'document.implementation.createDocument()' (FF), and ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE). asashour
add JavaScript: add load() and getElementsByTagName() for 'document.implementation.createDocument()' (FF), and ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE). asashour
add JavaScript: add support for function element.fireEvent() (IE only). Thanks to Rob Di Marco. sdanig
add JavaScript: add support for function mouseEvent.initMouseEvent() (FF only). Thanks to Rob Di Marco. sdanig
update ActiveXObject (XmlHttp): should not be created by case-sensitive string. (#1784330). Fixes 1784330 . Thanks to Dan Fabulich. asashour
update Add support for keypress and keyup events (keydown is already supported). Deprecate HtmlElement.keyDown() methods in favor of HtmlElement.type() methods which simulate user typing rather than a single event type. sdanig
add Add SgmlPage: moving towards having fully fledged XmlPage. asashour
fix Regular Expressions: allow 'undefined' pattern, and tolerate improper patterns (trigger warning). asashour
update Upgrade Rhino to 1.6R7. asashour
add JavaScript: add support for function event.initEvent() (FF only). Thanks to Rob Di Marco. sdanig
fix Fix document.createEvent() and document.createEventObject(): set event prototypes correctly. sdanig
add JavaScript: add 'async' property for 'document.implementation.createDocument()' (FF), and ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE). asashour
add JavaScript: add support for read-only attributes uiEvent.detail and uiEvent.view (FF only). Thanks to Rob Di Marco. sdanig
update JavaScript: fixed bug in String.replace (due to custom RegExp proxy) when first arg is a String with special characters and not a RegExp. Fixes 1780089 . mguillem
add JavaScript: add basic support for 'document.implementation.createDocument()' (FF), and ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE). asashour
update JavaScript: select.size is used when only needed. asashour
update Upgrade HttpClient to 3.1. asashour
add JavaScript: document.createElement() to accept html as a valid parameter (IE only). asashour
add JavaScript: Make event.shiftKey, event.ctrlKey and event.altKey IE-only attributes; add mouseEvent.shiftKey, mouseEvent.ctrlKey, mouseEvent.altKey and mouseEvent.metaKey FF-only attributes. sdanig
add JavaScript: add support for read-only attributes event.timeStamp, event.bubbles and event.cancelable and event.eventPhase (FF only). Thanks to Rob Di Marco. sdanig
add JavaScript: document.createElement() to accept " & lt;tagName & gt;" as a valid parameter. asashour
update JavaScript: element.setAttribute() sets corresponding event handler onXXX if found (FF only). asashour
add JavaScript: add primitive support for document.elementFromPoint (IE only). asashour
add Add namespace support for attributes: DomNode.getnamespaceURI, getLocalName, getPrefix, setPrefix, hasAttributes, HtmlElement.getAttribute, getAttributeNS, hasAttributes, hasAttribute, hasAttributeNS, setAttribute, setAttributeNS, setAttributeValue(NS), and removeAttributeNS. (#1747878). Fixes 1747878 . dktaylor
add JavaScript: add support for element.uniqueID (IE only). asashour
update Deprecate unused class MapEntryWrappingIterator. (#1747878). Fixes 1747878 . dktaylor
update Deprecate String-to-String attribute map for HtmlElement. Add initial support for namespaces for attributes. (#1747878). Fixes 1747878 . dktaylor
update Deprecate HtmlAttr implementing Map.Entry that conflicts with W3C DOM API. Replace uses of Map.Entry with HtmlAttr. Add HtmlAttr.getName. (#1747878). Fixes 1747878 . dktaylor
add New interface com.gargoylesoftware.htmlunit.OnbeforeunloadHandler with associated WebClient getter and setter, to support 'onbeforeunload' event (#1498419). Fixes 1498419 . asashour
add JavaScript: document.getElementById() must not return elements added to newly created ones (not yet added to document). asashour
add JavaScript: add support for 'onunload' event handler. asashour

Release 1.13 - Aug 17, 2007

Type Changes By
update Add document.createEvent() and document.createEventObject(). Thanks to Rob Di Marco. sdanig
update HtmlElement.asXml(): separate lines for empty element and the one after. asashour
fix JavaScript: element.appendChild() and insertBefore() must recursively maintain document.getElementById() contract. asashour
add WebRequestSettings: add getter and setter of CookiePolicy. asashour
update JavaScript: for element.appendChild(), .insertBefore(), .innerHTML, and .innerText: if the element parentNode is null, create a DocumentFragment to be the parentNode (IE only). asashour
update Deprecated methods that conflict with W3C DOM API: DomTest.splitText, HtmlPage.getDocumentElement, createElement, createElementNS, HtmlAttr.getValue, setValue, DomNode.getLastChild, getParentNode, getPreviousSibling, getNextSibling, getFirstChild, cloneNode, appendChild, HtmlElement.cloneNode. Added replacement Dom or Html methods. Renamed HtmlPage.createDocumentFragment to createDomDocumentFragment. (#1747878). Fixes 1747878 . dktaylor
update Deprecated DomNode.XXXX_NODE. asashour
update Change DomNode.ATTRIBUTE_NODE to be 2 in order to match W3C DOM Node.ATTRIBUTE_NODE. asashour
add JavaScript: add support for document.createDocumentFragment(). asashour
add JavaScript: add basic support for element.getBoundingClientRect() and element.getClientRects(). asashour
add JavaScript: add support for node.isSameNode(). asashour
remove WebClient: Remove deprecated moveFocusFromElement(), moveFocusToElement(), and getElementWithFocus(). asashour
update HtmlTitle.asXml(): empty tag is expanded as required by Internet Explorer. asashour
update JavaScript: if window object could not find a property or function, it returns 'undefined' instead of null (#1771549). Fixes 1771549 . asashour

Release 1.12 - Aug 10, 2007

Type Changes By
add Add method HtmlPage.getHtmlElementsByName(String). sdanig
fix HtmlSelect (in single-selection mode) selects the first option if none is selected. asashour
add JavaScript: add basic support for element.runtimeStyle. mguillem
update JavaScript: add basic support for document.createStyleSheet (when emulating IE only). mguillem
update JavaScript: implemented a workaround for Rhino bug in string primitive resolution (Rhino bug 374918). mguillem
update Deprecate HtmlForm.submit(). asashour
update Deprecate HtmlForm.fakeCheckedRadioButton(). asashour
update The method element.style.getPropertyValue('foo') should expect property names to be delimiter-separated (ie 'font-size') rather than camel case (ie 'fontSize'). sdanig
add Basic document.implementation: hasFeature(). asashour
update Add support for oncontextmenu event type. asashour
update Fix element.innerHTML, element.innerText, element.outerHTML: uppercase tag names when emulating IE; don't quote attributes when they don't contain whitespace and we're emulating IE; always use separate open and close tags (even if the tag is empty); escape XML characters inside text nodes. sdanig
add HtmlElement: add rightClick(). asashour
update JavaScript added minimal support for MouseEvent properties clientX, clientY, pageX, pageY, screenX, screenY coherent with position of event's target. mguillem
update Set Referer header for requests from XMLHttpRequest. mguillem
update First option in a single-selection select input gets selected by default. sdanig
update Add implementation of element.style.filter attribute (when emulating IE only). sdanig
add JavaScript: added support for properties "button" and "which" on mouse events. mguillem
add Add initial support for IE conditional compilation @if, @elif, @else, @end and @set instructions as well as for conditional compilation variables. mguillem
update Fix getElementsByTagName('*') at the document level (it was returning an empty collection). sdanig
add JavaScript: add support for style.getPropertyValue() (#1759750). Fixes 1759750 . asashour
update JavaScript: fixed eval scope bug when used within function. Fixes 1727599 . mguillem
add Add an optional (disabled by default) debugger implementation which can make it easier to debug complex interactions between HtmlUnit and JavaScript. sdanig
add Deprecate BrowserVersion constants for Mozilla 1.0, Netscape 4.7.9 and Netscape 6.2.3; add MSIE 7 and Firefox 2. sdanig
add JavaScript: add basic support for element.currentStyle and window.getComputedStyle. Fixes 1756277 . asashour
update BrowserVersion: add equals() and hashCode(). Fixes 1756617 . Thanks to Matt Ryall. asashour
add HtmlElement: add mouseOver(), mouseMove(), mouseOut(), mouseDown(), and mouseUp(). asashour
update JavaScript: implement navigator.cookieEnabled to match WebClient#isCookiesEnabled(). asashour
add Add empty implementation for table.refresh() (#1742662). Fixes 1742662 . asashour
update HTMLCollection: cache getElements() for better performance (#1751756). Fixes 1751756 . asashour
add Experimental: added AjaxController and NicelyResynchronizingAjaxController. mguillem
update JavaScript: added support for window.captureEvents (FF). Fixes 1225021 . mguillem
update JavaScript: fixed addEventListener cannot be called twice. Fixes 1716129 . mguillem
update JavaScript: added support for event capturing and bubbling phases. mguillem
update JavaScript: added support for Event.stopPropagation() (FF) and Event.cancelBubble() (IE). mguillem
update JavaScript: added support for window.onclick and window.ondblclick. mguillem
update Ignore & lt;base & gt; if inside & lt;body & gt; (#1579707). Fixes 1579707 . asashour
fix FailingHttpStatusCodeException is thrown for failing frame (#1065041). Fixes 1065041 . asashour
update JavaScript: use custom JDK based regular expression evaluation for String.replace to avoid Rhino problems (speed and wrong evaluation). mguillem
update Elements inside & lt;noscript & gt; are ignored if isJavaScriptEnabled() (#1186639). Fixes 1186639 . asashour
update Version: add getProductName(), getProductVersion() and getCopyright() (#1748672). Fixes 1748672 . asashour
add DomNode: add/remove DomChangeListener. asashour
remove Remove deprecated WebClient.getThrowExceptionOnFailingStatusCode and BaseFrame.FrameWindow. asashour
update HtmlImageInput, HtmlResetInput and HtmlSubmitInput can be clicked if exist outside an enclosing form. (#1747454). Fixes 1747454 . asashour
add JavaScript: allow FormField.onchange, form.onsubmit and frame.onload to be set to null (#1745024). Fixes 1745024 . asashour
add JavaScript: Add table.cellSpacing and table.cellPadding. asashour
add HtmlElement and HtmlPage: add/remove HtmlAttributeChangeListener (#1124781). Fixes 1124781 . asashour
add JavaScript: Implement insertAdjacentElement(). asashour
update HtmlSubmitInput: setting value to "Submit Query" if not specified, associated with asText(), asXml(), and submitValue changes. asashour
add HTMLElement.scrollIntoView() is added as an empty implementation (#1740086). Fixes 1740086 . Thanks to Bruce Chapman. asashour
fix DomNode.asText() now correctly handles style elements (e.g. & lt;i & gt;, & lt;b & gt;, and & lt;font & gt;) (#1731042). Fixes 1731042 . Thanks to Rodney Gitzel. asashour
fix HtmlPage.clone() doesn't share idMap_ with original (#1708397). Fixes 1708397 . Thanks to Bruce Chapman. asashour
add ClickableElement: Add dblClick() (#1385295). Fixes 1385295 . asashour
add JavaScript: Add document.createElementNS(), element.namespaceURI, element.prefix, and element.localName (#1521790). Fixes 1521790 . asashour
add HtmlPage supports Serialization (#1685311). Fixes 1685311 . asashour
add Add partial support for IE Conditional Compilation (#1680026). Fixes 1680026 . asashour
update Meta Refresh: tolerate spaces before the semicolon (#1549916). Fixes 1549916 . Thanks to Andre Soereng. asashour
update Allow setChecked of & lt;input type="radio" & gt; which is outside any & lt;form & gt; (#1587962). Fixes 1587962 . asashour
update Deprecated HtmlForm#getRadioButtonInput(String,String) and HtmlForm#setCheckedRadioButton(String,String). Use #getByXPath instead. asashour
fix Allow HtmlFileInput to handle values starting with "file:/" (#1513928). Fixes 1513928 . asashour
update Align node types numeric values to W3C values. mguillem
fix JavaScript: allow comment nodes to be retrieved mguillem
update HtmlSelectElement: ignores setting 'selectedIndex' to more than or equal to options size. asashour
add HtmlForm: #getTextAreaByName and #getButtonByName (#1713515). Fixes 1713515 . Thanks to Philip Graf. asashour
add Add UTF-16BE, and UTF-16LE charset detection (#1729467). Fixes 1729467 . Thanks to Karel Kolman. asashour
update Use WebRequestSettings#getCharset() as the encoding of pages instead of "ISO-8859-1" (#1483301). Fixes 1483301 . asashour
fix Proper handling of & nbsp; in DomNode#asText() (#1549745). Fixes 1549745 . Thanks to Kristian Muntau. asashour
update JavaScript: Simulate browser behavior for comments that have last line of "statement-- & gt;", but not "statement//-- & gt;". asashour
add JavaScript: Add support for location.toString() (#1725742). Fixes 1725742 . asashour
update asXml() now expands tags for div, iframe and script to make generated xml interpretable as html by browsers. mguillem
add Add support for table.width (#1691024). Fixes 1691024 . asashour
update HtmlInput (HtmlCheckBoxInput and HtmlRadioButtonInput): #setChecked now returns Page (#1724889). Fixes 1724889 . asashour
fix Javascript: Correct handling of comments (#1725162). Fixes 1725162 . asashour
update JavaScript [internal]: use Context.call(ContextAction) for faster JavaScript execution. mguillem
update Meta Refresh empty URL is handled (#1722665). Fixes 1722665 . asashour
add JavaScript: add support for textarea.selectionStart, textarea.selectionEnd, and textarea.textLength (#1714772). Fixes 1714772 . asashour
update DomNode#getAllHtmlChildElements() now returns Iterator. asashour
update Fixed exception occurring handling script tag with one line content starting with & lt;!-- and without closing --! & gt;. Fixes 1714762 . mguillem
update JavaScript: allow function named onload. Fixes 1609944 . mguillem
update JavaScript: made equality tests on functions working. mguillem
update JavaScript: don't allow usage of write(ln) detached from document object when simulating Firefox. mguillem
update JavaScript [internal]: large refactoring for a better Rhino usage. mguillem
add JavaScript: Add support for event.shiftKey, event.ctrlKey, and event.altKey. Fixes 1168346 . asashour
update Tolerate URL starting with http:/ and http: in Firefox. Fixes 1714767 . asashour
update Added IncorrectnessListener to get notified of things that HtmlUnit cope with but that don't respect standards. mguillem
update JavaScript: provide the event object to onreset handlers. mguillem
update Added ScriptException.printScriptStackTrace to retrieve the stack trace of the script execution. mguillem
add WebClient can now enable/disable cookies support. asashour
update JavaScript: allow to set window.onload to something else than a function. Fixes 1201561 . mguillem
update DomNode.DescendantElementsIterator.remove() now throws UnsupportedOperationException (previous behavior was not correct). Fixes 1705521 . Thanks to Bruce Chapman. mguillem
update JavaScript: added support for label property on Option objects. mguillem
update JavaScript: added support for defaultSelected property on Option objects. Thanks to Bruce Chapman. mguillem
update JavaScript: allow selected and defaultSelected attribute in Option constructor. Fixes 1705517 . Thanks to Bruce Chapman. mguillem
update INCOMPATIBLE CHANGE: Remove HtmlOption#getValue() (deprecated nearly two years ago), remove FailingHttpStatusCodeException#FailingHttpStatusCodeException(int, String) (deprecated over a year ago), remove ScriptException#getEnclosedException() (deprecated over a year ago). sdanig
update JavaScript: Add support for script.src, script.type, script.readyState and script.onreadystatechange. sdanig
update When cloning nodes, clone the id attribute as well. Fixes 1707726 . Thanks to Bruce Chapman. sdanig
update Avoid NPEs for responses with null bodies (ie 304 Not Modified responses). Fixes 1706505 . Thanks to Martin Tamme. sdanig
update JavaScript: Cloning a script node should not execute the script. Fixes 1707788 . Thanks to Bruce Chapman. sdanig
update JavaScript: Don't run scripts after the window location changes. Fixes 1706237 . sdanig
update Verify correct behavior of HtmlSelect#asText() with multiple selections, fix JavaDoc. Fixes 1634051 . sdanig
update JavaScript: add support for frameset.rows and frameset.cols properties. Fixes 1705559 . Thanks to Bruce Chapman. sdanig
update JavaScript: ignore invalid script.src attribute used by jQuery ("//:"). Fixes 1695279 . sdanig
update Trim whitespace off of anchor href attributes. Fixes 1658064 . sdanig
update JavaScript: add support for event.type property. sdanig
update Fixed NPE exception triggered by invalid iframe/frame src attribute. Fixes 1699119 . sdanig
update Fixed infinite loop triggered by recursive iframe/frame src attribute. Fixes 1699125 . sdanig
update JavaScript: fixed set innerHTML uses 8bits for all chars and ignores some HTML. Fixes 1541150 . Thanks to Sam Hough and Ahmed Ashour. mguillem
update JavaScript: handle out of bound indexes on options as browsers do (undefined when too high and exception when negative). mguillem
update Added (limited) support for client side map. Fixes 799817 . Thanks to Ahmed Ashour. mguillem
update Don't execute JavaScript in & lt;noframes & gt; and & lt;iframe & gt;. Fixes 1689214 . Thanks to Ahmed Ashour. mguillem
update Set Referer header on outgoing requests. Fixes 1693423 . Thanks to Ahmed Ashour. mguillem
update JavaScript: setting innerHTML to null shouldn't create any text node for Firefox. Fixes 1692811 . Thanks to Ahmed Ashour. mguillem
update JavaScript: fixed remaining problem of submitted select values when select.selectedIndex = -1 has been used before setting an other value. Fixes 1684652 . mguillem
update JavaScript: setting innerHTML to empty string shouldn't create any text node. Fixes 1692572 . Thanks to Ahmed Ashour. mguillem
update JavaScript: added support for property parentElement on DOM nodes (IE specific). Fixes 1690203 . Thanks to Ahmed Ashour. mguillem
update JavaScript: configure correctly the prototype hierarchy on created host objects. mguillem
update JavaScript: fixed non executed scripts added wit document.write. Fixes 1613119 . Thanks to Karel Kolman. mguillem
update JavaScript: "this" should be the window and not the current node in JavaScript href of link and area as well as in JavaScript action of forms. Fixes 1689798 . mguillem
update Fixed wrong parsing order of comment and text nodes. Fixes 1686412 . Thanks to Karel Kolman. mguillem
update JavaScript: added support for following properties on HtmlAnchor: hash, host, hostname, pathname, port, protocol, search and target. Fixes 1686412 . Thanks to Bruce Chapman. mguillem
update Handle correctly anchors (alias reference) in URLs after form submission. mguillem
update JavaScript: XMLHttpRequest now encodes post body in UTF-8. Fixes 1681779 . mguillem

Release 1.11 - Mar 15, 2007

Type Changes By
update Respect non proxy hosts in redirects from a host using proxy. Fixes 1669097 . mguillem
update JavaScript: resolve relative locations from the originating page for Location's href, replace and assign. mguillem
update Renamed frame host class to avoid conflict when a frame has 'Frame' as name. Fixes 1562872 . mguillem
update Form should not send push buttons on submit. Fixes 1676667 . mguillem
update Added facility method DomNode.getByXPath(xpathExpr). mguillem
update JavaScript: Option.setAttribute now works even if option has not yet been added to a select. Fixes 1672048 . mguillem
update Parse as html all responses with content type ending with "xhtml+xml" like XHTML mobile profile documents (application/vnd.wap.xhtml+xml). Fixes 1672392 . mguillem
update Improved HtmlPage.getAnchors's javadoc. Fixes 1665629 . mguillem
update Added support for server side map (HtmlImage.click(int, int)). Fixes 799815 . mguillem
update Allow redirections to the same URL with a maximal number of 20. Fixes 1619765 . mguillem
update Fixed HtmlHtml.getXmlLangAttribute(). mguillem
update Upgraded dependencies to Jaxen 1.1, commons-lang 2.2, rhino 1.6R5, commons-io 1.3. mguillem
update Changing element id should not impact child nodes. Fixes 1658273 . Thanks to Karel Kolman. mguillem
update JavaScript: provide event object as argument when calling onload listeners attached with attachEvent (Internet explorer). mguillem
update JavaScript: provide the event object to onsubmit handlers. Fixes 1648014 . mguillem
update Set cookies defined in meta tags with http-equiv equals to set-cookie. mguillem
update Fixed NullPointerException occurring while submitting a from which onsubmit handler returns null. Fixes 1628521 . Thanks to Andre Soereng. mguillem
update JavaScript: fixed bad initialisation of JavaScript context when window content changes (was introduced since last release in fixed for bug 1040244). Fixes 1627983 . mguillem
update JavaScript: ensure that script execution is synchronized on the owning html page (for instance using XMLHttpRequest asynchronously). Fixes 1508377 . mguillem
update JavaScript: made ThreadManager thread safe. Fixes 1584525 . Thanks to Karel Kolman. mguillem
update JavaScript: perform correct setup of context for asynchronous execution of XMLHttpRequest. Fixes 1619727 . Thanks to Deryk Sinotte. mguillem
update JavaScript: don't wrap JavaScript primitive types when returned from a Java method. Fixes 1611097 . mguillem
update Fixed Non-html reply in window.open() doesn't create window object by restricting initialization of windows and pages. Added line/column numbering of HTML elements for embedded script names that are easier to debug. Fixes 1040244 . dktaylor
update JavaScript: fixed regression introduced in 1.10 on window.eval for local scope. Fixes 1608555 . mguillem
update JavaScript: provide the event object to onfocus and onblur handlers. mguillem
update Moved focus related methods from WebClient to HtmlPage and deprecated them on WebClient. mguillem
update Fixed AREA elements can't handle JavaScript hrefs by copying code from anchor element. Fixes 1605997 . dktaylor
update Fixed frames[i] return null for frames generated by document.write by allowing JavaScript Window object to be properly initialized with JavaScriptEngine. Fixes 1192854 . dktaylor
update Fixed document.write problem when & lt;a... & gt; written in 2 times by checking for complete HTML tags before parsing. Fixes 1124613 . dktaylor
update Fixed document.write() does not keep ending spaces by reducing text of adjacent text nodes as a whole instead of separately. Fixes 1493455 . dktaylor
update JavaScript: handle comments in event handlers. Fixes 1601754 . Thanks to Andre Soereng. mguillem
update JavaScript: if window with name 'myOldWin' exists, window.open('', 'myOldWin') should retrieve it rather than opening a new one. Fixes 1592723 . mguillem
update Fixed asText() for style node. Now returns an empty string. mguillem
update JavaScript: fixed select.selectedIndex = -1 should not be irreversible. Fixes 1592726 . mguillem
update JavaScript: setting option's selected status to false when it is already false shouldn't reset the whole select. Fixes 1592728 . mguillem
update JavaScript: fixed java.util.ConcurrentModificationException occurring when some onload event is removed during execution of an onload event. Fixes 1596926 . mguillem
update JavaScript: second argument DOM node's insertBefore is now optional when simulating Internet Explorer. Fixes 1409087 . mguillem
update Added support for comments: & lt;!-- some comment -- & gt;. Patch from Karel Kolman. Fixes 1591212 . Thanks to Karel Kolman. mguillem
update JavaScript: added XMLHttpRequest.overrideMimeType. Fixes 1204628 . mguillem
update JavaScript: fixed bug preventing to set non String style properties. Fixes 1592299 . mguillem
update JavaScript: allow to add options to a select with an index as second argument when simulating Internet Explorer. Fixes 1570478 . mguillem
update Ignore invalid URLs specified in & lt;base href="..."/ & gt;. Fixes 1579511 . mguillem

Release 1.10 - Nov 03, 2006

Type Changes By
update Fixed asText() for script node. Now returns an empty string. Fixes 1587246 . mguillem
update Removed ":" in project id to avoid problems on Windows with plugins like idea. Fixes 1575783 . mguillem
update Upgraded jaxen to 1.1-beta-11 (even if it's a "beta", this is the version recommended by jaxen developers). mguillem
update Added Maven compliant scopes in project.xml. Fixes 1559903 . mguillem
update JavaScript: added minimal support for navigator.mimeTypes (Firefox). mguillem
update Fixed select's faked selections are ignored, if select is empty. Fixes 1570484 . mguillem
update Fixed asText() for hidden input. Now returns an empty string. Fixes 1570567 . mguillem
update JavaScript: only style's built in properties are of type String (with empty string as default value) mguillem
update Use MultiThreadedHttpConnectionManager (avoids problems with requests started asynchronously from JavaScript). Fixes 1472606 . mguillem
update JavaScript: property "all" now available on all html element (Internet explorer). Fixes 1570597 . mguillem
update Fixed incorrect handling of web connections (missing call to releaseConnection()). mguillem
update JavaScript: item(xx) method now works correctly on node list. mguillem
update JavaScript: improved support for addEventListener on DOM nodes (Mozilla) and added support for attachEvent (Internet explorer). Thanks to Daniel Gredler. mguillem
update JavaScript: build XMLHttpRequest for all ActiveX names starting with "Msxml2.XMLHTTP". mguillem
update JavaScript: fixed bug in table.insertRow with empty tbody. Fixes 1562461 . mguillem
update Follow redirection to the same Url if original method was a POST. Handle redirections like browsers do rather than according to the RFC. Fixes 1531821 . mguillem
update JavaScript: allow script to set a "javascript:..." location. Fixes 1345136 . mguillem
update JavaScript: use of HTMLElement.innerHTML should not cause registration of a WebWindow. Fixes 1495132 . mguillem
update JavaScript: window.eval now evaluates in the right window scope. mguillem
update JavaScript: added basic support for addEventListener on DOM nodes (Mozilla). mguillem
update JavaScript: added support for window.createPopup (Internet Explorer). mguillem
update Added FrameWindow.getFrameElement and support for Javascript's frameElement property on windows. mguillem
update Parser: automatically add an & lt;head & gt; element if none present in html source (as done by Internet Explorer and Firefox). mguillem
update JavaScript: Location.replace wrongly loaded new URL in top window. Fixes 1491743 . mguillem
update XPath: fixed wrong behavior with following axis. Fixes 1527799 . mguillem
update JavaScript: fixed double execution of external JavaScript files occurring when text contained between & lt;script src=... & gt; and & lt;/script & gt;. Fixes 1552746 . mguillem
update JavaScript: allow to specify a maximal script execution time. Fixes 1525269 . Thanks to Andre Soereng. mguillem
update INCOMPATIBLE CHANGE: OK button is now simulated for JavaScript confirm calls when no ConfirmHandler is installed (it was was the Cancel button previously). mguillem
update Removed Jelly support. mguillem
update Updated doc to reflect migration from CVS to SVN. Fixes 1545598 . mguillem
update Do not submit reset buttons in forms. bradclarke
update Transparently decompress server response if gzipped for transfer. Fixes 1244810 . Thanks to Daniel Gredler. mguillem
update JavaScript: fixed default String conversion of objects (like table, table row, table cell, collection). Fixes 1538136 . mguillem
update JavaScript: XMLHttpRequest.responseXml NodeList elements now accessible by index. Fixes 1415496 . mguillem
update JavaScript: take expiration date into account when creating cookies. Fixes 1525234 . Thanks to Andre Soereng. mguillem
update JavaScript: cells collection for rows now takes th into account. Fixes 1528024 . mguillem
update JavaScript: table/tbody.deleteRow(-1) will now delete the last row bradclarke

Release 1.9 - Jun 27, 2006

Type Changes By
update Upgraded commons-collections to version 3.2 bradclarke
update Upgraded commons-logging to version 1.1 bradclarke
update Upgraded commons-io to version 1.2 bradclarke
update JavaScript: added support IE style of events (window.event). Fixes 1439904 . mguillem
update Added possibility to configure NTLM credentials for the DefaultCredentialsProvider. Fixes 1472307 . mguillem
update Added facility method WebClient.getPage(String). mguillem
update Upgraded jaxen to 1.1-beta-9 (even if it's a "beta", this is the version recommended by jaxen developers). mguillem
update JavaScript: set form as parent scope for form fields (allows handlers to call directly form methods like submit()). mguillem
update XmlPage: parse xml pages namespace aware. mguillem
update JavaScript: ensure that the page being loaded has not already been replaced in its window by a new one through JavaScript before executing onload handlers. Fixes 1494421 . mguillem
update Use Byte Order Mark to recognize UTF-8 content when no charset header is provided. mguillem
update JavaScript: added addEventListener/attachEvent, removeEventListener/detachEvent to Window, allowing to register load events on a window. mguillem
update Upgraded commons-httpclient to version 3.0.1. mguillem
update JavaScript: added support for properties defaultView (Mozilla) and parentWindow (IE) on Document. mguillem
update JavaScript: added support for property ownerDocument on HtmlElements. mguillem
update DomText.asText() now cleans up & nbsp; and multiple blanks as other DomNodes do. mguillem
update Added facility methods HtmlOption.getEnclosingSelect() and HtmlLabel.getReferencedElement(). mguillem
update Fixed HtmlTable.getCellAt when table contains a rowspan. Fixes 1455390 . Thanks to Julien Henry. mguillem
update Proxy settings now respected to load external JavaScript files. Fixes 1460444 . mguillem
update HtmlCheckBoxInput.setChecked() now fires the JavaScript onchange event. bradclarke
update Implemented window.setTimeout(function, int) and window.setInterval(function, int) bradclarke
update HtmlOption.asText() now respects the label attribute as browsers do. bradclarke
update Encode path part of URLs containing illegal characters. Fixes 1437068 . mguillem
update Added support for firing onkeydown events. Fixes 1436102 . Thanks to Brad Murray. mguillem
update HtmlElement.getAttributeEntriesIterator now returns the attributes in the order in which they appear in the html source code. Fixes 1419050 . mguillem
update HttpWebConnection now allows extensions to simply override HttpClient creation. Fixes 1438216 . mguillem
update Use configured proxy when performing a request after a redirection. Fixes 1439464 . mguillem
update Allow & lt;button... & gt;s located outside of a form to be clicked and their onclick handler to be called. mguillem

Release 1.8 - Feb 17, 2006

Type Changes By
update Cookies can now be shared between HTTP and HTTPS. Fixes 1280422 . mguillem
update HttpWebConnection now uses a single instance of HttpClient (as it can now handle multiple connections). mguillem
update Throw ScriptException (unless WebClient.isThrowExceptionOnScriptError() is false) when the source of an external script can't be loaded. mguillem
update Deprecated ScriptException.getEnclosedException. Use getCause instead. mguillem
update Added URL of the failed request in message of FailingHttpStatusCodeException. mguillem
update Fixed a bug that could cause a ConcurrentModificationException when navigating away from a page with JavaScript running in the background. bradclarke
update DefaultPageCreator now builds an XmlPage and not a TextPage for responses with content type "text/vnd.wap.wml". mguillem
update JavaScript: fixed parent scope wrongly set on Style object. mguillem
update FailingHttpStatusCodeException now contains the failing WebResponse. mguillem
update Modified XmlHttpRequest to use new thread management API for async requests. bradclarke
update JavaScript: fixed exception in access to a DOM node when the page contains a custom object with the same name as the one used by htmlunit for the host object (caused error like: "Form" is not a constructor). mguillem
update Fixed bad handling of comma in Location header of redirections (30x) Fixes 1105226 . mguillem
update Implemented setInterval/clearInterval and thread management for setTimeout and setInterval threads. Thanks to Steven Grimm and Daniel Gredler for patches that were helpful in the implementation. bradclarke
update JavaScript: added support for properties target and srcElement on events. Fixes 1281651 . Thanks to Stefan Anzinger. mguillem
update Upgraded commons-httpclient to version 3.0. mguillem
update Fixed NPE thrown when JS error occurs on click when ThrowExceptionOnScriptError is false. Fixes 1385864 . Thanks to Paul King. mguillem
update Added HtmlAnchor.openLinkInNewWindow() bradclarke
update JavaScript: changes on form's action attribute in onSubmit were ignored. Fixes 1382013 . mguillem
update Allow external scripts to be loaded using file protocol. Fixes 1381734 . mguillem
update JavaScript: added support for property cellIndex on td and th eleements. Fixes 1369052 . Thanks to Mark van Leeuwen. mguillem
update BaseFrame.FrameWindow has been deprecated and replaced with a top level FrameWindow class. bradclarke
update JavaScript: fixed exception occurring when addBehavior is called twice for the same behavior. mguillem
update JavaScript: Implement add() method for OptionsArray to avoid TypeError. Fixes 1378925 . Thanks to Bruce Faulkner. mguillem
update JavaScript: added the full URL of the file containing the script being executed in the exception message when a script error occurs. mguillem
update JavaScript: made Location properties writable. Fixes 1238429 . Thanks to Daniel Gredler. mguillem
update Added possibility to bypass configured proxy for some hosts. Fixes 1224239 . Thanks to Daniel Gredler. mguillem
update Fixed support for NTLM proxy. Fixes 1224239 . Thanks to Vikram Shitole and Daniel Gredler. mguillem
update JavaScript: setting options' length to a value greater than current. size fills option array with empty options. Fixes 1370484 . mguillem
update Fixed mangled binary files loaded with the file protocol for non ISO-8859-1 default system file encoding. Fixes 1370049 . Thanks to Paul King. mguillem
update Upgraded commons-io to 1.1. mguillem
update Form's name now writable (both in DOM and in Javascript). Fixes 1370468 . mguillem
update Javascript: getElementsByTagName now returns an ElementArray (instead of a NativeArray) for html elements allowing expressions like "myForm.getElementsByTagName('input')['one']". Fixes 1369514 . mguillem
update JavaScript: when simulating IE, options collection delegates to select when the requested property/method doesn't exist. Fixes 1111597 . Thanks to Daniel Gredler. mguillem
update Consider inputs with invalid type as text inputs. mguillem
update JavaScript: responses to XMLHttpRequest don't disturb window contents anymore. Fixes 1357412 . mguillem
add All code deprecated prior to 1.6 has been removed bradclarke
add JavaScript: added implementation of IE behavior "#default#download". Fixes 1343212 . Thanks to Stefan Anzinger. mguillem
update Fixed HtmlSelect.getSelectedOptions to return an empty list if select has no option. JavaScript: fixed select.value to return an empty string when select has no option. mguillem
update HtmlOption.click() now returns correctly the page loaded by an onchange event. Fixes 1334150 . mguillem
update Fixed requested URL for post form with empty action and original page containing a query string or action containing only a query string. Fixes 1334541 . Thanks to Ian Lovejoy. mguillem
update Upgraded jaxen to 1.1-beta-8 (even if it's a "beta", this is the version recommended by jaxen developers). mguillem
update JavaScript: added support for property contentWindow on (i)frames. mguillem
update Upgraded rhino JavaScript library to 1.6R2. Noteworthy is that the JavaScript stack trace is now added in the normal Java stack trace (bug 274467 reported by Daniel Gredler, see http://www.mozilla.org/rhino/rhino16R2.html for full change log). mguillem
update Fill frame windows with about:blank when the declaring tag is found to allow JavaScript to run on it before the real content is loaded. Fixes 1239285 . mguillem
update Upgraded commons-httpclient to version 3.0rc4 in ant as well. Made HtmlForm.submit(SubmittableElement) public to simulate keyboard submits (more to come later). bradclarke
update JavaScript: XMLHttpRequest.send now accepts null as parameter and fails when simulating Mozilla if called with no parameter like the browser does. mguillem
update Upgraded commons-httpclient to version 3.0rc4. mguillem
update Javascript: allow to set current node's property within onclick event handler. Fixes 1260369 . mguillem
update Javascript: XMLHttpRequest now accepts non xml responses. Fixes 1209682 . mguillem
update Javascript: allow to change selected attribute of options created with document.createElement('option') and not yet added to a select. Fixes 1323425 . mguillem
update Load frames content first after the page is loaded to allow access to the whole page for scripts contained in the frames. Fixes 1289060 . mguillem
update JavaScript: added support for document.frames (specific to IE). mguillem
update JavaScript: when simulating IE, second parameter in Select.add can be omitted. Fixes 1304741 . mguillem
update JavaScript: in a frameset, document.body returns the frameset node. mguillem
update JavaScript: added dummy implementation of the properties scrollHeight, scrollLeft, scrollTop and scrollWidth for html elements. mguillem
update JavaScript: added document.anchors. Fixes 1280127 . mguillem
update JavaScript: XMLHttpRequest now accepts relative urls. Fixes 1209692 . mguillem
update JavaScript: allow creation of XMLHttpRequest as new ActiveXObject('Microsoft.XMLHTTP') when simulating Internet Explorer. mguillem
update JavaScript: default conversion of host objects to string is now "[object Xxxx]" like what Mozilla does mguillem
update DomNode.asXml() now produces correct xml encoding special characters. Fixes 1289462 . Thanks to Lothar Märkle. mguillem
update JavaScript: implemented property offsetParent. Fixes 1267106 . Thanks to Bruce Faulkner. mguillem

Release 1.7 - Aug 23, 2005

Type Changes By
update JavaScript: img nodes can be accessed by id or name within a form. Fixes 1153775 . mguillem
update Click on a JavaScript link loading a page containing frames now return the main loaded page and not a frame anymore. Fixes 1265410 . Thanks to Stefan Anzinger. mguillem
update Trim the text of HtmlOption when it is used as initial value attribute (when no attribute is found as defined in HTML 4.01). mguillem
update JavaScript: fixed problem occurring while reading properties of nodes retrieved with childNodes(). Fixes 1264271 . Thanks to Bruce Faulkner. mguillem
update When posting a form as multipart/form-data don't send Content-Transfer-Encoding headers for the parts and send Content-Type headers only for files like browsers do. Fixes 1210726 . mguillem
update When posting a form, use encoding from accept-charset attribute if any else from page to encode the posted parameters. Fixes 1119937 . mguillem
update Fixed infinite loop when DefaultCredentialsProvider provides invalid credential. Ensure that the web connection uses the CredentialProvider configured for the WebClient. mguillem
update Handle port correctly when handling a redirection to an other port on the same host. Fixes 1195099 . mguillem
update JavaScript: fixed properties text, value and selected for Option objects created from JavaScript and not yet added to a select. Fixes 1151593 . mguillem
update Added WebResponse.getRequestMethod(). ImmediateRefreshHandler now accepts a refresh to the same URL if the first request was a POST. Fixes 1211980 . mguillem
update JavaScript: added support for window.closed. mguillem
update HtmlOption's value attribute initial value is the text of the option if no attribute is found as defined in HTML 4.01. Deprecated HtmlOption.getValue(). mguillem
update JavaScript: fixed execution of onchange handlers to really return "The page that occupies this window after this method completes" as defined by the javadoc. Fixes 1159709 . mguillem
update JavaScript: fixed behavior of table.insertRow and table.rows.length for tables containing nested tables. Fixes 1244839 . mguillem
update Improved the way getHtmlElementById handle pages containing multiple elements with the same id. Fixes 1244959 . mguillem
update JavaScript: made input.setAttribute("type", xxx) behave the same than input.type = xxxx. Fixes 1244923 . mguillem
update JavaScript: fixed double execution of script inside & lt;table & gt;. Fixes 1210751 . mguillem
update Set state of radio button before executing onclick handler. Fixes 1241739 . Thanks to Bruce Faulkner. mguillem
update Upgraded nekohtml to version 0.9.5 mguillem
update Load responses which content type matches regular expression "application/.*\+xml" as XmlPage (rather than UnexpectedPage). mguillem
update Children of removed nodes were erroneously still available by id using HtmlPage.getElementById. Fixes 1233519 . mguillem
update Upgraded commons-jelly to version 1.0 bradclarke
update Upgraded commons-httpclient to version 3.0rc3 bradclarke
update Added method for setting HttpClient's virtual host Fixes 1195509 . Thanks to dlevine004. bradclarke
update INCOMPATIBLE CHANGE: HtmlElement.getAttributeEntriesIterator now return an iterator on HtmlAttr (and not Map.Entry) allowing XPath expressions that return a list of node attributes. Fixes 1221161 . Thanks to Denis N. Antonioli. mguillem
update Don't perform server request when a link is clicked if href is just an anchor (like "#"). Fixes 1220522 . mguillem
update JavaScript: resolve relative locations from the originating page. Fixes 1101525 . mguillem
update JavaScript: use the Window as the top scope in Rhino JavaScript engine. Fixes 1213455 . Thanks to Daniel Gredler. mguillem
update JavaScript: Fixed bug with onchange handler being fired for all input type="file" on creation. bradclarke
update JavaScript: handle position in insertAjacentHTML as case insensitive as IE does. Fixes 1210742 . mguillem
update HtmlOption.click() now selects the option. Fixes 1216267 . mguillem
update Handle content types in a case insensitive way (as of RFC 2045). Fixes 1215621 . mguillem
update Implemented form reset, defaultValue and defaultChecked. Fixes 1209947 . Thanks to Daniel Gredler. mguillem
update JavaScript: Added window.print() as unimplemented method. bradclarke
update Javascript: document.getElementsByTagName and document.getElementsByName now return an ElementArray (instead of a NativeArray) allowing expressions like "document.getElementsByTagName('a').item(0)". Fixes 1204922 . mguillem
update In a script tag & lt;script type="..." & gt;, the value of the type attribute is case insensitive. Thanks to Ray Suliteanu. mguillem
update Send headers added with WebClient.addRequestHeader to the server again (bug introduced in release 1.6). mguillem
update Upgraded jaxen to 1.1-beta-6 (even if it's a "beta", this is the version recommended by jaxen developers and it fixes the element order bug). mguillem
update A click on a & lt;label ... & gt; is now propagated to the referenced element. mguillem

Release 1.6 - May 10, 2005

Type Changes By
update Added XMLHttpRequest support. Patch submitted by Daniel Gredler. Fixes 1194006 . Thanks to Daniel Gredler. bradclarke
update Deprecated and renamed getAll & lt;Something & gt;s methods to get & lt;Something & gt;s to make them easier to find. Fixes 1080774 . Thanks to Daniel Gredler. bradclarke
update More refactoring and deprecation to use WebRequestSettings. WebRequestSettings now has get/setAdditionalHeaders, patch submitted by Daniel Gredler. INCOMPATIBLE CHANGE: Third party extenders of WebConnection will need to implement getResponse(WebRequestSettings) in place of other getResponse methods, which have been deprecated and given default implementations that call this method. bradclarke
update Javascript: fixed exception occurring while changing type of input created via document.createElement(). Fixes 1183971 . Thanks to Bruce Faulkner. mguillem
update Upgraded commons-httpclient to version 3.0rc2 bradclarke
update Javascript: insertRow now accepts the number of rows as parameter value. Fixes 1188143 . Thanks to Bruce Faulkner. mguillem
update Javascript: the onchange event handler of a radio button is now invoked when its state is changed. Fixes 1183019 . Thanks to Chris Eldredge. mguillem
update Javascript: implemented property contentDocument for frames and iframes on Mozilla. mguillem
update Javascript: fixed error occurring in NodeImpl insertBefore() with null reference child object. Fixes 1180352 . Thanks to George Murnock. mguillem
update Now load the mapping of html classes to their respective JS classes from the configuration file. cerskine
update Javascript: when simulating IE, window.open("") handles empty string as "about:blank". Fixes 1179134 . mguillem
update Reworked the processing of the JavaScript functions and properties. Names have all changed to start with jsxXXX and now the functions and properties are registered with the prototypes when they are defined. cerskine
update INCOMPATIBLE CHANGE: replaced WebClient.setValidateHtml(boolean) with WebClient.setHTMLParserListener(HTMLParserListener) allowing to programmatically catch parser messages. mguillem
update Javascript: fixed infinite loop caused by onblur. Fixes 1161705 . mguillem
update The URL of a page resulting of a form submission with the GET method now contains the query parameters (which are encoded when needed according to the page's encoding). mguillem
update Javascript: added navigator.language for Mozilla. mguillem
update Javascript: added dummy implementation of Mozilla's window properties innerHeight, innerWidth, outerHeight, outerWidth. mguillem
update Added to the JavaScript configuration page a column showing if a function is not implemented. cerskine
update Reworked the JavaScript configuration. Configuration file is now used and supports the browser constraints on the properties and functions. cerskine
update Javascript: navigator properties now depend from used BrowserVersion. mguillem
add Javascript: added dummy implementation for read only properties offsetHeight, offsetLeft, offsetTop and offsetWidth. mguillem
add Javascript: added support for multiple arguments for document.write and document.writeln. Fixes 1150208 . mguillem
add Added WebResponse.getResponseHeaders(). Fixes 1150208 . Thanks to Daniel Gredler. mguillem
update Fixed NPE in loadWebResponse for responses with status code 204 (No Content). Fixes 1166652 . Thanks to Alfred Nathaniel. mguillem
update Javascript: form's onsubmit property is now a function and can be assigned. Fixes 1166781 . Thanks to Kent Tong. mguillem
add Javascript: added support for new Image() and changing src attribute. Fixes 1153758 . Thanks to George Murnock. mguillem

Release 1.5 - March 13, 2005

Type Changes By
update Determine content-type of uploaded files. Fixes 976077 . mguillem
add Javascript: implemented method removeAttribute for DOM nodes. Fixes 1153758 . Thanks to George Murnock. mguillem
update Javascript: Added support for document.scripts bradclarke
update Javascript: fixed getAttribute() to return null if the requested attribute is not defined. Fixes 1157936 . mguillem
add Javascript: implemented property childNodes. Fixes 1153693 . Thanks to George Murnock. mguillem
update Fixed bug where document.write-ing a frame was causing an attempt to load an invalid URL starting with http://first bradclarke
update Fixed node reference problem occurring when the text of a textarea is changed. Fixes 1155063 . mguillem
update Javascript: document.links doesn't return tags with empty href anymore. Fixes 1153710 . Thanks to George Murnock. mguillem
update A RefeshHandler can now throw IOExceptions instead of handling them. Updated ImmediateRefeshHandler and ThreadedRefeshHandler to make refresh failures exceptions instead of just log messages. Added WaitingRefeshHandler for waiting real time on the current thread. bradclarke
update Javascript: the type property of input elements can now be changed. mguillem
update Fixed bug occurring when submitting from JavaScript a form with a JavaScript action. Fixes 1145773 . Thanks to George Murnock. mguillem
update HtmlElement's getHtmlElementsByAttribute, getHtmlElementsByTagName, and getHtmlElementsByTagNames were all updated to ignore the case of the passed in tag name as they're always compared with a lowercase version. Fixes 1151184 . bradclarke
update JavaScript: Implemented location.reload(). Fixes 1145916 . Thanks to Daniel Gredler. bradclarke
update Fixed bug with meta refresh that only contained a number. Fixes 1143982 . Thanks to Daniel Gredler. bradclarke
update INCOMPATIBLE CHANGE: RefeshHandler interface changed and they must now do the refresh themselves. DefaultRefreshHandler was replaced with ImmediateRefreshHandler (the new default) and ThreadedRefreshHandler. Fixes 1145869 . Thanks to Daniel Gredler. bradclarke
update INCOMPATIBLE CHANGE: com.gargoylesoftware.htmlunit.CredentialProvider has been removed. You should now use org.apache.commons.httpclient.auth.CredentialsProvider instead. This patch should allow support for NTLM and Digest authentication as well as proxy authentication. Fixes 1144103 . Thanks to Daniel Gredler. bradclarke
update JavaScript: Pick up behaviors defined in style attribute when simulating IE. Fixes 1110768 . Thanks to Daniel Gredler. mguillem
update JavaScript: expressions like myForm.myField now look for form fields with "myField" as id or name. Fixes 1118222 . mguillem
update Clicked image button without name sends parameter x and y. Fixes 1118877 . mguillem
update Submit form elements in the same order that they appear in the HTML form. Fixes 1093017 . Thanks to David D. Kilzer. mguillem
update Upgraded commons-httpclient to version 3.0rc1 bradclarke
update JavaScript: fixed document.domain setter for domains like d1.d2.d3.d4.com. Fixes 1115259 . Thanks to Michael Ottati. mguillem
update JavaScript: fixed document.myForm.myField should not retrieve the field if it is an input of type image. Fixes 1115091 . mguillem
update JavaScript: added empty implementation of type setter for input fields (already allowing some scripts to run). mguillem
add Added HtmlElement.getEnclosingElement(String tagName). mguillem
update JavaScript: added properties rowIndex and cells and function insertCell for table rows. mguillem
add JavaScript: fixed insertRow when asked to insert at the end of the rows collection (was inserted one position before). mguillem
update Guess content type for file content and file name when loading a file URL. Fixes 1113487 . mguillem
update Parse responses of type "application/xml" as XmlPage. mguillem
update Fixed wrong URLs expansion with "#". Fixes 1101525 . Thanks to Hans Donner. mguillem
update JavaScript: improved window.execScript to execute JavaScript code. Fixes 1106319 . Thanks to Daniel Gredler. mguillem
update Use commons-codec's Base64. Marked custom Base64 as deprecated. Fixes 1109224 . Thanks to Hans Donner. mguillem
update Fixed NullPointerException thrown in JavaScript by createElement('input') Fixes 1002140 . Thanks to Daniel Gredler. mguillem
update Javascript: implemented innerText for html elements (read/write). Fixes 1107432 . Thanks to Hans Donner. mguillem
update Fixed ClassCastException occurring when unloading a frameset that contained a frame which content wasn't html. mguillem
update Implemented WebRequestSettings parameter object. Created new WebClient.getPage() methods and deprecated old ones. bradclarke
update Stopped httpclient from automatically retrying failed connections 5 times. bradclarke
update A failure when setting a location from JavaScript now throws an exception bradclarke
update Added support for misc table methods in JavaScript Fixes 1104522 . Thanks to Daniel Gredler. bradclarke
update JavaScript: added dummy implementation of window.setInterval and window.clearInterval doing nothing. mguillem
update synchronized JavaScript execution for multi-threaded testing Fixes 976471 . Thanks to David D. Kilzer. bradclarke
update parse application/xhtml+xml content type into HtmlPage Fixes 1088709 . bradclarke
update JavaScript: use js object Input for & lt;input type="image" .../ & gt; and & lt;input type="button" .../ & gt; Fixes 1104028 . mguillem
update JavaScript: default conversion to string of an anchor returns the fully qualified URL specified by the href. mguillem
update JavaScript: the DOM node of a & lt;frame & gt; or & lt;frame & gt; is now visible to the contained page while loading. mguillem
update JavaScript: when simulating IE, a variable named after the id of a DOM node represents this DOM node. Fixes 1084226 . mguillem
add Made window.name writable. Fixes 1099235 . Thanks to David D. Kilzer. mguillem
update JavaScript: document.xxx now retrieves DOM node with name xxx only if it's an img or a form (input should not be retrieved). Fixes 1100975 . mguillem
update JavaScript: Fixed bug in window.frames[i] (was introduced in 1.4). mguillem
update JavaScript: Fixed bug with frames.length not working. cerskine
add JavaScript: Implement writeable document.location. Fixes 1100321 . Thanks to Daniel Gredler. mguillem
update JavaScript: added window.status and removed erroneous document.status. Fixes 1100089 . mguillem
update Fixed window.frames['frameName'] causes ClassCastException. Fixes 1099644 . Thanks to Chris Eldredge. mguillem
update JavaScript: document.getElementById("") now returns null. mguillem

Release 1.4 - January 9, 2005

Type Changes By
add Fixed platform specific encoding problem in test WebClientTest.testLoadPage_EncodeQueryString() Fixes 1098981 . Thanks to David D. Kilzer. mbowler
add JavaScript: added window.clearTimeout. Fixes 1090094 . Thanks to Daniel Gredler. mguillem
update JavaScript: dynamically compiled function runs in the scope of their creation. Fixes 949691 . mguillem
update JavaScript: fixed problem occurring for & lt;script for="window" event="onload()" & gt; with event value ending with "()". mguillem
add JavaScript: added document.domain. mguillem
add JavaScript: added implementation of IE behavior "#default#clientCaps". Fixes 1096789 . Thanks to Daniel Gredler. mguillem
update JavaScript: added support to get/set the onload property as a function for window and for frames. mguillem
update INCOMPATIBLE CHANGE: HtmlFrame and HtmlInlineFrame don't implement WebWindow anymore but now contain a WebWindow accessible by getEnclosedWindow(). JavaScript handling of frames works better due to the distinction between frame element and contained window. mguillem
add Added HtmlPage.getFrameByName mguillem
update asText() now returns "checked" or "unchecked" for HtmlRadioButtonInput and HtmlCheckBoxInput Fixes 1083336 . Thanks to Mike Bresnahan. mguillem
add JavaScript: added dummy implementation of window.execScript doing nothing. mguillem
add JavaScript: added attribute support. Fixes 1096133 . Thanks to Daniel Gredler. mguillem
add Added WebClient.setThrowExceptionOnScriptError(boolean) and isThrowExceptionOnScriptError() to allow script errors to stop only execution of current script as browsers do. mguillem
update JavaScript: document.write(ln) writes directly in DOM which allows access to DOM nodes in the same script code. mguillem
add Added WebClient.setTimeout(int) and WebClient.getTimeout() bradclarke
update JavaScript: all elements can now be accessed by name with syntax document.foo (like what was already working for forms). mguillem
update JavaScript: setting the value attribute of a select object now selects the corresponding option. mguillem
update document.images is now a "live" collection. mguillem
update Added DebuggingWebConnection, a web connection that saves the received responses and builds an overview. Sometimes useful at conception time to understand what is "browsed". mguillem
update Extended JavaScript event handler to most common events: ondblclick, onmousedown, onmouseup, onmousemove, onmouseover, onmouseout, onkeypress, onkeydown, onkeyup, onfocus, onblur. Fixes 1090438 . Thanks to Chris Eldredge. mguillem
update Added JS support for outerHTML. mguillem
update Upgraded commons-httpclient to version 3.0beta1 mguillem
update Added dependency to commons-codec 1.3 mguillem
update Possibly incompatible change: Removed fix trying to mimic browser kludge for non-RFC2019-compliant cookies as it causes new problems. Fixes 1058846 . mguillem
update Possibly incompatible change: Don't set httpclient's cookie policy to COMPATIBILITY anymore what lets user configure it directly or use the default (RFC2109). mguillem
add Added support for setting cookies from JS (like document.cookie = "foo=something"). mguillem
add Added dependency to commons-lang mguillem
update Trying to set a JS property configured with writable="false" now generates a JS runtime error. mguillem
add Added conversion to string and method toString on event handler functions. mguillem
add Added support for JS document.links. mguillem
update IFrames can now be seen in JS as an html element too. Expressions like window.myIFrame.style.display now work. Fixes 1067396 . mguillem
update document.forms is now a "live" collection and forms can be accessed with document.forms["myFormId"] where "myFormId" is the id of a form. Fixes 1088353 . mguillem
update Collections like document.all or form.elements now use xpath expressions and are "live" (thanks to Daniel Gredler for the idea). mguillem
update Added the possibility to evaluate xpath expressions relatively to a particular node of a the html document. mguillem
update Added node.children. mguillem
update Fixed bug for JS wrapped in HTML comments on one line. Fixes 1088655 . Thanks to Daniel Gredler. mguillem
update Allow to set commons-httpclient cookie policy using system property. mguillem
update Added support for insertAdjacentHTML. mguillem
update Fixed DomNode.replace() fails to set previousSibling on newNode and other problems when changing DomNode. Fixes 930846 . mguillem
update Allow onclick event handler to be set by JavaScript. Fixes 1080365 . Thanks to Chris Eldredge. mguillem
update Added logic to WebClient to allow messages from parsing the HTML to be displayed on the on the console. cerskine
update Fixed bug changing "//" to "/" in query parameters of URLs called from a page. Fixes 1085612 . Thanks to Sergey Gorelkin. mguillem
update When simulating IE, nodes can now be accessed directly by their name (ex: window.form1). mguillem
update Improved ElementArray: fix for empty collection and addition of method namedItem(). Fixes 1085878 . Thanks to Daniel Gredler. mguillem
update Fixed bug with setTimeout: a timeout is now only executed if the page that placed it is always "alive". mguillem
update Fixed html element property access in JS: attributes are case sensitive. Fixes 1085378 . mguillem
update Improved JS innerHTML to allow complex html code to be set. mguillem
update Refactored different arrays of html elements in a generic ElementArray. Expressions like "document.all.tags('s').item(y)" can now be evaluated. Fixes 1085224 . Thanks to Daniel Gredler. mguillem
update Upgraded rhino js to 1.6R1. Fixes 1082098 . mguillem
update Fixed NullPointerException tossed by HtmlSelect.asText() if no option is selected. Fixes 1083330 . Thanks to Mike Bresnahan. mguillem
update Improved Refresh meta tag support: Take care of enclosing & lt;noscript & gt; tags and correctly interpret quoted urls. mguillem
update Implemented IE specific behavior related methods as well as default behavior "#default#homePage". Fixes 1081544 . Thanks to Daniel Gredler. mguillem
update Implemented screen methods. Fixes 1081544 . Thanks to Daniel Gredler. mguillem
update Added missing (for IE) methods/properties of window.navigator. Fixes 1082509 . Thanks to Daniel Gredler. mguillem
update Added support for window.location.replace(...). mguillem
update Fixed problem with pages where body's onload contains a return statement. Fixes 1082259 . Thanks to Daniel Gredler. mguillem
update Fixed bug in JS accessing form elements through syntax like myForm[i] and don't count inputs with type=image in form.length as browsers do. mguillem
update Automatically add value="on" for radio buttons and checkboxes without value attribute (available for JS access and used when submitting a form as browsers do). Fixes 1081557 . mguillem
update Added support for methods moveBy, scroll, scrollBy, scrollByLines, scrollByPages and scrollTo for JS window object. Fixes 1075526 . Thanks to Daniel Gredler. mguillem
update Fixed bug where encoded " & ", "=", "+", ",", and "$" in URLs would be decoded before sending to the server. bradclarke
update getTypeAttribute now returns "text" for input without specified type attribute as it is the default value. mguillem
update Added support for item function in JavaScript like "document.all(...).item(...). Fixes 1081554 . mguillem
update Onchange script handlers not executed anymore if the field value is changed by JavaScript. This should for instance avoid infinite loops when field A changes field B and field B changes field A. mguillem
update Upgraded nekohtml to version 0.9.4 bradclarke
add Automatically encode query string part of requested URLs if needed as browsers do (for instance change "http://first?a=b c" to "http://first?a=b%20c"). mguillem
add Response of type "text/xml" are now represented as an XmlPage (rather that a TextPage) which gives access to the Document object if the xml is well formed. mguillem
update Fixed bug for JS location.protocol (was missing a ":", e.g. "http:" and not "http"). Fixes 1075690 . Thanks to Michael Ottati. mguillem
add Added support for getting and setting option.selected in JavaScript. Fixes 1072996 . mguillem
update Fixed bug where a NullPointerException is thrown when leaving a page containing an iframe without src attribute. mguillem
add Added support for window.resizeTo. Fixes 1068672 . Thanks to Dierk Koenig. mguillem
update Fixed wrong values of window.opener: now null (instead of undefined) when no opener and null when a link opens in "_top". Fixes 1068667 . mguillem
update Upgraded commons-httpclient to version 2.0.2 mbowler
update Added support for function syntax on document.all(). Fixes 1067471 . Thanks to Marc Guillemot. mbowler
update Added support for InnerHTML(). Fixes 1065797 . Thanks to Chris Erskine. mbowler
update Added support for enabling the errors from NekoHtml by setting a value on the WebClient. Fixes 1065797 . Thanks to Chris Erskine. mbowler
update Previously, if you clone an element, and set an attribute in either the old or the new, the new setting appears in the other one as well. This was because cloneNode just left the attributemap alone, so the clones wound up using the same ones as the old. Fixes 1065797 . Thanks to Mike Gallaher. mbowler

Release 1.3 - November 12, 2004

Type Changes By
update Upgraded commons-jelly to version 1.0-beta-4 mbowler
update Upgraded commons-jelly-tags-log to version 1.0 mbowler
update Upgraded commons-jelly-tags-xml to version 1.0 mbowler
update Upgraded commons-jelly-tags-junit to version 1.0 mbowler
update Upgraded commons-jexl to version 1.0 mbowler
update Upgraded commons-cli to version 1.0 mbowler
update Upgraded dom4j to version 1.5 mbowler
add Added dependencies to jaxen 1.0 and saxpath 1.0 as they are needed by the latest dom4j. It would appear that saxpath will be rolled into jaxen in future releases but for now it is a separate dependency. mbowler
update Upgraded commons-collections to version 3.1 mbowler
update Upgraded commons-beanutil to version 1.7.0 mbowler
update Upgraded commons-httpclient to version 2.0.1 mbowler
update Upgraded xercesImpl to version 2.6.2 mbowler
update Upgraded nekohtml to version 0.9.1 mbowler
update Upgraded commons-logging to version 1.0.4 mbowler
update Upgraded gsbase to version 2.0.1 mbowler
update Updated server names for cvs access. Fixes 1033055 . Thanks to Chris Erskine. mbowler
update Added support for the JavaScript document.images and also for getting and setting the page title. Fixes 1032913 . Thanks to Chris Erskine. mbowler
update Patch for JS frames.length. Fixes 1006472 . Thanks to Marc Guillemot. mbowler
update Fixed inconsistencies in the handling of isDisabled. Fixes 975675 . Thanks to David D. Kilzer, Mike Bresnahan. mbowler
update Initial support for Active X objects. Fixes 940981 . Thanks to Ben Curren. mbowler
update INCOMPATIBLE CHANGE: The common browsers will automatically insert a tbody tag inside tables if there isn't one already there. Now HtmlUnit does that as well. Fixes 930539 . mbowler
update Fixed bug where calling document.body from JavaScript before the body tag had been parsed was causing an exception. mbowler
update Added support for JavaScript table.rows. Fixes 930069 . Thanks to David D. Kilzer. mbowler
update The common browsers always return uppercase values for the JavaScript nodeName property. Now HtmlUnit does as well. Fixes 930531 . mbowler
update Added support for the IE attribute document.readyState. Also added the js.log custom logger to aid in debugging JavaScript errors. Thanks to Chris Erskine. mbowler
update Added support for onchange handlers in textareas Fixes 1045243 . Thanks to Marc Guillemot. mbowler
update Stubbed out window.moveTo(x,y) Fixes 1049797 . Thanks to Marc Guillemot. mbowler
update Added dependency to commons-io Fixes 1053811 . Thanks to Marc Guillemot. mbowler
update Initial support for file urls. There is a bug in commons-io that will break this when trying to read file URLs on another drive under windows: http://issues.apache.org/bugzilla/show_bug.cgi?id=31884 Fixes 1053811 . Thanks to Marc Guillemot. mbowler
update Fixes for buggy link management in DomNode.basicRemove() Fixes 1051885 . Thanks to Mike Williams. mbowler
update Fix for bug where HttpWebConnection.getStateForUrl() fails with localhost URL Fixes 1028314 . Thanks to David D. Kilzer. mbowler
update Added IE specific behaviour for getElementById() Fixes 1056744 . Thanks to Chris Erskine. mbowler
update Made WebTestCase abstract Fixes 1056376 . Thanks to David D. Kilzer. mbowler
update Changed HtmlElement.getOneHtmlElement() to match the documented behaviour in the case where multiple matches were found. Fixes 1044768 . mbowler
add Added getElementsByTagName(), getClassName() and setClassName() to HTMLElement Fixes 1058238 . Thanks to Chris Erskine. mbowler
update getAttribute() and setAttribute() missing on HTMLElement. Fixes 930546 . Thanks to David D. Kilzer. mbowler
update Mimic browser kludge for non-RFC2019-compliant cookies. Fixes 1058846 . Thanks to David D. Kilzer. mbowler
update Fixed bug where the getAttribute() and setAttribute() methods were not ignoring the case of the attribute name when getting and setting. Fixes 939639 . Thanks to David D. Kilzer. mbowler
update Fixed bug where a colon in a relative URL causes MalformedURLException in WebClient.expandUrl() Fixes 1009817 . mbowler
update If the type attribute isn't specified on a button attribute then the default value according to the spec is "submit". Internet Explorer doesn't obey the spec and returns "button". HtmlUnit now does what the browsers do, depending which BrowserVersion is specified.. Fixes 1050643 . mbowler
update Fixed bug in handling of onclick handlers for an HtmlCheckBoxInput. When an onclick handler is specified on a HTML checkbox that causes a new page to be displayed, the function HtmlCheckBoxInput.click() was not returning the new page. Rather it was returning the original page. Fixes 974447 . Thanks to Mike Bresnahan. mbowler
update Fixed bug where HtmlImageInput.click() was not including the name.x and name.y attributes in the submitted request. Fixes 977759 . Thanks to Mike Bresnahan. mbowler
update If form.submit() is called from JavaScript then the forms onsubmit handler should not get executed. Fixes 1008707 . mbowler
update Fixed OutOfMemoryError when submitting a form many times from the same HtmlPage Fixes 1061234 . Thanks to David D. Kilzer. mbowler
update Clean up memory use in HttpWebConnection.makeWebResponse(). Fixes 1062388 . Thanks to David D. Kilzer. mbowler

Release 1.3-pre2 - September 26, 2004

Type Changes By
update Added support for setting input.name in JavaScript bradclarke
update Added support for JavaScript document.body bradclarke
update Changed HtmlSelect.getSelectedOptions() to not auto-select the first option if the list size > 1. Fixes 972822 . Thanks to Mike Bresnahan. bradclarke
update Refactored HtmlFileInput submission to include the filename even when there is no file submitted. Fixes 974966 . Thanks to David D. Kilzer. bradclarke
update Added support for JavaScript Window.close() Fixes 956964 . Thanks to David D. Kilzer. bradclarke
update INCOMPATIBLE CHANGE: WebClient.moveFocusToElement() now takes a FocusableElement as it's parameter instead of an HtmlElement. FocusableElement is derived from HtmlElement. Added framework for focus() and blur() as well as JavaScript support for them on anchors and inputs. Fixes 913740 . Thanks to David D. Kilzer. bradclarke
update Added support for JavaScript Element.setAttribute() bradclarke
update Added support for JavaScript Node.hasChildNodes() bradclarke
update Fix for Bug 916316 - this.form inside onclick should work now bradclarke
update Implemented JavaScript document.getElementsByName() bradclarke
update Added support for setting select.selectedIndex from JavaScript bradclarke
update Changed HtmlSelect.fakeSelectedAttribute() to use an empty string as no value at all (nothing submitted) bradclarke
update Fixed bug where a select option with no value attribute was not submitted with it's contents bradclarke
update DefaultPageCreator can now be easily extended to add custom content type handling without affecting the default handlers. bradclarke
update INCOMPATIBLE CHANGE: PageCreator.createPage() no longer takes a WebClient as a parameter. If you have an existing PageCreator you can get the WebClient from the WebWindow parameter. This change also occurred in DefaultPageCreator. bradclarke
update Deprecated HtmlPage(WebClient, URL, WebResponse, webWindow) in favor of HtmlPage(URL, WebResponse, webWindow) bradclarke
update Deprecated HTMLParser() as you should never need an instance bradclarke
update Deprecated HTMLParser.parse(WebClient, WebRespose, WebWindow) in favor of static HTMLParser.parse(WebRespose, WebWindow). bradclarke
update Updated HtmlRadioButtonInput.click() to select the clicked radio button bradclarke
update Fixed bug where the JavaScript value of a select list was always empty. It should now correctly be the value of the selected option. bradclarke
update Fixed bug where the JavaScript value of an option element was empty if the value attribute was not defined. The value should now correctly be the contents of the element. bradclarke
update Added HtmlOption.getValue() that returns the value of the option as it should be submitted bradclarke
update Fixed bug where submitting a form with a submit control that had no name would submit an invalid name/value pair instead of ignoring the control bradclarke
update Fixed bug where submitting a form containing a select that had no options caused a NullPointerException. bradclarke
update INCOMPATIBLE CHANGE: Changed HtmlPage so it is no longer derived from HtmlElement. It is now derived from DomNode and a new HtmlHtml element represents the root element of the document. Similarly, Document in JavaScript is no longer derived from HTMLElement, but is derived from NodeImpl instead. dktaylor
add Add HtmlPage.getDocumentElement() and Document.documentElement in JavaScript. dktaylor
update Improved speed of getElementById(). dktaylor
update Change the node type and node name for HtmlPage and Document in JavaScript. dktaylor
update Nested input elements, i.e. those that were not immediate children of the enclosing form, were not handled. Thanks to Christian Sell. mbowler
update Changed the behaviour of single select lists to match the common browsers. When multiple items have the selected attribute then the last one is returned to the server. When no items have been selected, the first one is sent to the server. Thanks to Christian Sell. mbowler
update Deprecated MockWebConnection.setContent() in favour of setDefaultResponse() which is more descriptive. Changed all tests to use the new method. mbowler
update Changed all tests to use MockWebConnection instead of FakeWebConnection. The FakeWebConnection class has been deprecated and will be removed for the next major release of HtmlUnit after 1.3. mbowler
update The same hard coded URLs were being used over and over again throughout the tests. Defined constants for the most frequently used URLs in WebTestCase and changed tests to use these constants. This will reduce the number of temporary objects during tests runs and will decrease the chance of making a typo in the urls. mbowler
update Fixed bug where forms without names were not being returned by document.forms Fixes 831453 . mbowler
add Added support for the following attributes on Document.Location: hash, host, hostname, href, pathname, port, protocol and search. Fixes 831456 . mbowler
add Added support for Anchor.href and Anchor.getAttribute(). Fixes 856885 . Thanks to Alexei Goussev. mbowler
update Fixed bug where getting the style attribute should return an empty string instead of NOT_FOUND. Fixes 871620 . Thanks to Alexei Goussev. mbowler
update Fixed bug where calling select() on an HtmlInput from JavaScript caused an exception about select being a function and a property (it's only a function) bradclarke
update Added initial support for refresh handlers. They will be invoked from meta tag refreshes and response header refreshes but not currently from JavaScript refreshes mbowler
update Added serialVersionUID to all classes that are Serializable but didn't already have one of these. mbowler
update Fix for performance problem in JavaScript handling. Fixes 1034897 . Thanks to Darrell DeBoer. mbowler
update If the server returns an unsupported encoding type then the browsers assume ISO-8859-1. Now HtmlUnit does the same. Fixes 856797 . mbowler

Release 1.3-pre1 - November 7, 2003

Type Changes By
update INCOMPATIBLE CHANGE: Added method to interface WebWindowListener for window closing events. mbowler
update INCOMPATIBLE CHANGE: There previously were three separate tree models for any given page: 1) the HtmlElement hierarchy 2) The xml DOM model and 3) the JavaScript element model. Now the first two tree models have been merged into one. Thanks to Christian Sell. mbowler
update Continued migration of the build process from ant to maven. mbowler
update Patch for bug in onload handler submitted by Andreas Hangler Fixes 713646 . mbowler
update Added support for the about: protocol - patch from Jun Chen Fixes 797144 . mbowler
update Added support for window frames - patch from Jun Chen Fixes 797144 . mbowler
update an update of the version number in build.xml and outputting of a src jar for the current build. Patch submitted by Brad Clarke Fixes 803233 . Thanks to Brad Clarke. mbowler
update Added HtmlFileInput support. Patch submitted by Brad Clarke Fixes 803229 . Thanks to Brad Clarke. mbowler
update Upgraded junit.jar to 3.8.1 Fixes 803237 . Thanks to Brad Clarke. mbowler
update Fixed bug where HtmlPage.asText() would blow up if form tags were found between tr and td tags. Clearly this is illegal html but the browsers support it so HtmlUnit needs to as well. Fixes 802285 . mbowler
update Fixed bug where form elements without names were being submitted anyway. Patch supplied by Brad Clarke Fixes 805332 . Thanks to Brad Clarke. mbowler
update Fixed bug where disabled elements were being submitted anyway. Patch supplied by Brad Clarke Fixes 808776 . Thanks to Brad Clarke. mbowler
update Navigator.javaEnabled should be method not property Fixes 800993 . mbowler
add Added WebClient.getWebWindows() Fixes 799760 . mbowler
update Fixed bug where radio button and checkbox logic was case sensitive. Patch supplied by Brad Clarke Fixes 812749 . Thanks to Brad Clarke. mbowler
update Added support for Window.focus(). Patch supplied by Brad Clarke Fixes 814741 . Thanks to Brad Clarke. mbowler
update Add support for getting HTMLElement.firstChild, lastChild, nextSibling and previousSibling. HTMLElement.firstChild returns the first node below the current node. HTMLElement.lastChild returns the last node below the current node. HTMLElement.nextSibling returns the node after the current node. HTMLElement.previousSibling returns the node before the current node. They each return null if there is no such node or the node type is not supported (not HTML). dktaylor
update Add support for HTMLElement.removeChild and insertBefore. HTMLElement.removeChild removes an Element from the HTML document. It returns the removed Element which is no longer part of the HTML document. HTMLElement.insertBefore adds a new child element before another child element. It returns the newly added child element. dktaylor
update Add support for HTMLElement.cloneNode and replaceChild and Document.createTextNode to close RFE 805051. To support createTextNode, added support for DOM text nodes and character data nodes including the data and length properties and appendData, deleteData, insertData, replaceData, substringData and splitText functions. Updated DOM API properties and methods of HTMLElement to work with text nodes. Also added support for HTMLElement.nodeType, nodeName and nodeValue properties. Fixes 805051 . dktaylor
add Added method HtmlArea.click() mbowler
add Add support for click() for all element types that have an onClick attribute. This includes image. Removed extra non-standard attributes (onClick, etc.) from BDO element. Fixed support for button tags with type other than submit. Added support for access keys to anchor, area, label, legend, and textarea elements. Fixes 799865 . dktaylor
update Fixed bug where variables defined in a script could not be referenced as "window.myVariable". This prevented the google ads from working on the HtmlUnit website. mbowler
add Stubbed out Window.onerror mbowler
update Fixed bug where an option without a value could not be selected. Fixes 799839 . mbowler
update Fixed bug where Select[index] wasn't returning options. Fixes 799752 . mbowler
update Fixed bug where button names would get submitted twice. Patch submitted by Brad Clarke. Fixes 824145 . Thanks to Brad Clarke. mbowler
add Added support for auto-refresh both from a Meta tag and from an HTTP response header. Fixes 772233 . mbowler
update Added support for the format of & lt;script & gt; defined by DOM Level 2. Patch submitted by Jun Chen Fixes 824842 . Thanks to Jun Chen. mbowler
update An HtmlTextArea should not contain anything but preformatted text, so doing things such as converting & lt;br & gt; to line breaks and removing extra white space should not happen. Patch supplied by Brad Clarke. Fixes 825003 . Thanks to Brad Clarke. mbowler
update Fixed exception when trying to reference one frame by name from another in JavaScript. For example "parent.nav.document", where nav is the name of the frame. Fixes 824069 . mbowler
update Fixed exception when specifying an empty string for src on an a frame. Fixes 793340 . mbowler
update Fixed the bug where newly opened windows targeted at named frames were not opening in the correct windows. Changed returned page from click() method to work with new targets. That is, instead of just returning changes to the immediate window, it returns any window that is opened. So, if you call click() on an element that has a target set, you will get the page in the window for that target. This is particularly needed for the _blank target where you couldn't find the new window without this change since it is not named. Fixes 753776 . dktaylor
update Fixed a bug where windows that were overwritten were not cleaned up so they would be returned from getWebWindowByName. dktaylor
add Added WebWindow.getTopWindow() and getParentWindow(). dktaylor
add Added support for the remaining special target names (_blank, _parent, _top in addition to _self that was already supported). These special target names are supported for a, area and form elements as well as the JavaScript open() function. dktaylor
add Added support for DOM API node navigation methods in HtmlElement so they are available within test cases. This includes getParentNode, getNextSibling, getPreviousSibling, getFirstChild, getLastChild, getNodeType, getNodeName, and getNodeValue. dktaylor
add Added support for base elements to set a default target using the target attribute. This affects a, area and form elements. dktaylor
update Fixed a bug where a base element without an href attribute was causing a MalformedURLException to be thrown. This can be caused when the base element just sets a default target. Similarly check for empty href attribute in a and area elements. (The HTML 4 standard does not allow the action attribute to be optional in form elements.) dktaylor
update Changed the behaviour of HtmlCheckBoxInput.click() to be consistent with IE and Mozilla. Patch submitted by Jun Chen. Fixes 824730 . Thanks to Jun Chen. mbowler
update Fix return type from DomCharacterData.getData to be String. dktaylor
update Removed non-standard Element API from Text and CharacterData Node classes by factoring out a DOM Node class in the html and JavaScript implementations. Return type from DOM navigation methods, e.g., getFirstChild(), standardized to be DomNode instead of HtmlElement. dktaylor
add Added support for onload handlers on frames. This isn't supported by the HTML specification but is supported by the popular browsers. mbowler
update Upgraded commons-httpclient.jar to 2.0-rc2 mbowler
add New method WebClient.loadWebResponseInto() which can be used to create pages that were not loaded via HTTP. mbowler
add New method StringWebResponse which can be used to easily create a WebResponse based on a string containing html. mbowler
add Finished the second variation of document.write(), writing to frames other than the one that is loading. Fixes 614045 . mbowler
add New method TopLevelWindow.close() Fixes 799757 . mbowler
add Added "type" attribute to WebWindowEvent to make testing easier mbowler
update Refactored test for window opening using the new type attribute. mbowler
add Added support for window.status Fixes 650924 . mbowler
add New method HtmlForm.getInputByValue() to get a single input Fixes 742519 . mbowler
add New method HtmlForm.getInputsByValue() to get multiple inputs Fixes 742519 . mbowler
update Raise more specific exception from HtmlForm.getRadioButtonInput if there is no radio button to match the name. dktaylor
add Added support for JavaScript editing of select options: add new options, replace options, remove options, shorten options list, set value, and set text. These features also available through HtmlOption. dktaylor
update Fixed support for option label attribute so label value is returned as text if label is set. dktaylor
add Add support for the id attribute of HTMLElement in JavaScript. This partly fixes bug 757225. dktaylor
add Add HtmlElement.getId and setId. dktaylor
update Fix Document.getElementById in JavaScript so it returns null when there is no element with the given ID. dktaylor
update Added support for jelly wrappers mbowler
update Fixed bug with expansion of URLs that contain pound signs. mbowler
update Upgraded NekoHTML to 0.8.1 mbowler
update Added MockWebConnection in the deployable tree and changed FakeWebConnection (in the test tree) to subclass that. mbowler

Release 1.2.3 - July 31, 2003

Type Changes By
add Initial support for Maven mbowler
update Fixed bug where checkboxes weren't getting properly mapped to the JavaScript Checkbox object which resulted in incorrect behaviour. Add some additional tests to prevent this kind of problem happening again. mbowler
update Fixed bug in the setup of JavaScript form variables which resulted in situations where input elements may not show up in the form depending on what had happened during page load. mbowler
add Refactored some logic out of Form into FormElementsArray for easier maintenance mbowler
update Many classes had their own assertNotNull() method. Created an assert class and changed all classes to use Assert.notNull() rather than separate methods. mbowler
update Fixed bug in character encoding. Patch supplied by Noboru Sinohara. Fixes 716568 . Thanks to Noboru Sinohara. mbowler
update Enhanced HtmlElement.asText() to behave more like a browser. Patch supplied by Mike J. Bresnahan. Thanks to Mike J. Bresnahan. mbowler
update Updated NekoHTML to 0.7.7 mbowler
update Changed the JavaScriptEngine to use weak references for HtmlPage objects. Previously HtmlPage objects were never being garbage collected resulting in excessive memory usage. Fixes 721008 . Thanks to Noboru Sinohara. mbowler
update Fixed bug where the JavaScript textarea object was not properly getting and setting the 'value'. Fixes 729266 . mbowler
update Fixed bug where URL expansion wasn't obeying the base element as defined in the html. Fixes 717021 . Thanks to XuefengHe. mbowler
update Fixed bug where JavaScript form elements were not always being initialized correctly.. Fixes 727718 . Thanks to jin kim. mbowler
update Fixed typo in two of the samples in the getting started document. Fixes 732952 . Thanks to Matt Ho. mbowler
update Moved all tests under src/test/java mbowler
update Fixed bug where onload handler would not execute a function if the brackets weren't specified. Patch submitted by David K. Taylor. Fixes 713646 . Thanks to David K. Taylor. mbowler
update Fixed bug "document.write of script element does not load script". Patch submitted by David K. Taylor. Fixes 715379 . Thanks to David K. Taylor. mbowler
update Fix for bug 740636 "getElementsByTagName should be case insensitive". Patch submitted by David K. Taylor Fixes 740636 . Thanks to David K. Taylor. mbowler
update Fix for bug 740605 "External script is executed before script element added". Patch submitted by David K. Taylor Fixes 740605 . Thanks to David K. Taylor. mbowler
update Fix for bug 740665 "Script attributes undefined when script executes". Patch submitted by David K. Taylor Fixes 740665 . Thanks to David K. Taylor. mbowler
update Fix for bug 742902 "document.location prints as object reference instead of URL". Patch submitted by David K. Taylor Fixes 742902 . Thanks to David K. Taylor. mbowler
update Fix for bug 743241 "document.write from external script is not added to document". Patch submitted by David K. Taylor Fixes 743241 . Thanks to David K. Taylor. mbowler
update Partial fix for RFE 741930 "document.createElement(...) and form.appendChild(...)". This fix adds document.createElement for most element types. It does not support input tags. Fixes 741930 . dktaylor
update Add support for setting window.onload within a script. Window.onload may be set to the name of a function, e.g., window.onload=initFunc; dktaylor
update Partial fix for RFE 741930 "document.createElement(...) and form.appendChild(...)". This fix adds HTMLElement.appendChild. Fixes 741930 . Thanks to Barnaby Court. dktaylor
update Add support for getting HTMLElement.parentNode. HTMLElement.parentNode returns the node above the current node. It returns null if there is no parent or the parent node type is not supported (not HTML). dktaylor
update Fixed broken behaviour in Input.onclick. Previously, if the onclick handler for a submit input didn't return true then the form would not be submitted. The html spec doesn't seem clear on this but Internet Explorer and Mozilla both allow the form to be submitted no matter what is returned from Input.onclick. mbowler
update Moved all logic from the HtmlInput subclasses up into HtmlInput itself. Patch provided by Barnaby Court. Thanks to Barnaby Court. mbowler
update Added instructions for the "how to compile from cvs" document. Patch provided by Barnaby Court. Thanks to Barnaby Court. mbowler
update Changed HtmlTextArea.setText() to actually modify the DOM Patch provided by Barnaby Court. Fixes 759217 . Thanks to Barnaby Court. mbowler
update Fix for bug 738548 - "Form values are not Posted Properly to Server" Fixes 738548 . mbowler
add Added support for the property Window.name mbowler
add Added read-only support for Document.cookie. mbowler
add Added support for the JavaScript method Window.setTimeout() Fixes 675597 . mbowler
update Upgraded the rhino engine to 1.5R4.1 mbowler
update Upgraded the xerces to 2.4 mbowler
add New method HtmlPage.getAllForms() Fixes 742515 . mbowler
update Fixed bug where inputs would not submit properly if the type attribute wasn't lowercase. mbowler
update Changed behaviour of HtmlImageInput submission to be consistent with what the browsers do. If the input's name was foo we would previously send the following values to the server: foo, foo.x and foo.y. The browsers only send foo.x and foo.y. Fixes 744381 . mbowler
add Added docs on configuring JSSE - contributed by Tom Hamilton mbowler

Release 1.2.2 - March 29, 2003

Type Changes By
add Started tracking more information about changes mbowler
update Fixed bug where the checked attribute wasn't always returning the correct value. Fixes 705703 . Thanks to Jean-Luc Vaillant. mbowler
update Fixed bug where checkboxes were returning the wrong value if they hadn't explicitly been set by the server. Fixes 705693 . Thanks to Jean-Luc Vaillant. mbowler
add Added support for JavaScript Document.getElementsByTagName() Fixes 705951 . mbowler
update Fixed bug where document.all wasn't being initialized correctly until after the entire page had loaded. This meant that JavaScript that executed during page load would blow up when trying to access document.all. Fixes 707750 . Thanks to Mabel Chow. mbowler
add Added support for location.hostname which fixed all but one of the tests in the sanity check. Thanks to Teo Kian Lee. mbowler
add Added support for document.all[index] mbowler
update Changed the JavaScript tagName attribute to return uppercase values according to spec mbowler
update Updated configuration file with more functions/properties mbowler
add Added support for document.all.tags() Thanks to Mabel Chow. mbowler
update Fixed bug in expansion of relative URLs Thanks to Dominique Broeglin. mbowler
add Added support for setting the src attribute on an iframe via JavaScript. Setting this attribute will cause the iframe to be reloaded with new content. Fixes 709740 . Thanks to David K. Taylor. mbowler
update Improved the documentation for WebWindowEvent handling as the behaviour wasn't really self explanatory. Fixes 707343 . mbowler

Release 1.2.1 - March 20, 2003

Type Changes By
add Added method HtmlButtonInput#click(). mbowler
update Fixed a bug in JavaScript loading where external scripts were being loaded after the page was fully parsed rather than as each & lt;script & gt; tag was being handled. This resulted in situations where JavaScript that was executed during the parsing of the page would not be able to access functions declared in the external JavaScript files. mbowler
update Fixed bug in HtmlForm.getRadioButtonsByName() where it would not match elements with an uppercase value for "radio" mbowler
update Fixed a bunch of places that were declared to throw ElementNotFoundException but never actually did. mbowler

Release 1.2 - March 10, 2003

Type Changes By
update Fixed bug where redirection didn't happen correctly if the location header contained multiple entries separated by commas mbowler
update Fixed bug where some success status codes (not 200) were being reported as errors mbowler
update Upgraded NekoHTML to version 0.7.4 mbowler
update Upgraded commons-httpclient to 2.0beta3 mbowler
update Upgraded xerces to 2.2.1 mbowler
update Upgraded the rhino JavaScript engine to version 1.5b3 mbowler
add Added support for the Window.opener property mbowler
update Fixed bug where JavaScript that was enclosed in html comment tags would blow up mbowler
add Initial support for keyboard navigation mbowler
add Initial draft of a howto for keyboard navigation mbowler
add New method: HtmlButton#isDisabled() mbowler
update The click() method on buttons now do nothing if that element is disabled mbowler
update Fixed bug where JavaScript Form.elements was not returning radio buttons mbowler
update Refactored the interface between WebClient and WebConnection to make it easier to add custom implementations of WebConnection. mbowler
add Added support for the JavaScript Style object mbowler
update Fixed bug where comments on the same line of an opening html comment inside a script tag were being treated as JavaScript rather than as comment mbowler
update Fixed bug where clicking on a checkbox would submit the form. mbowler
update Fixed bug where form.submit() was always loading into the default WebWindow, not the current one. mbowler
add Added support for indexed properties in JavaScript forms mbowler
update Changes in the latest versions of commons-httpclient are reusing buffers that they previously weren't. This results in a situation where trying to get the content out of a WebResponse after the initial load would result in no content. Buffering is now done within HtmlUnit to avoid this problem. mbowler
add New method WebResponse#getLoadTimeInMilliSeconds() to measure load times of specific pages. This is intended for performance tuning of web applications mbowler
update Moved submission guidelines into their own document (submittingPatches.html). mbowler
update Fixed bug where the variable "this" in an onclick handler was a Window rather than the appropriate component. mbowler
add Added support for onchange handlers in input tags mbowler
add Added support for JavaScript document.referrer mbowler
add Added support for JavaScript document.URL mbowler
add Added initial support for JavaScript document.write(). Calling document.write() to add content while the page is loading is working. Using it to write to a different frame is not. mbowler

Release 1.1 - November 25, 2002

Type Changes By
update Fixed bug where loading of external JavaScript files would not follow redirects. mbowler
update Fixed bug where accessing radio buttons by name wasn't working correctly mbowler
update Stubbed out Window.close() mbowler
update If there is only one radio button with a given name then JavaScript should be returning the radio button, not an array of buttons. The code was always returning an array. mbowler
update Fixed bug where the JavaScript Option.text was returning the wrong value mbowler

Release 1.1-rc2 - November 16, 2002

Type Changes By
update Fixed bug where calling WebClient.open() would open a new top level window every time. mbowler
update Fixed bug where javascript:Window.open() was not returning the new window object mbowler
add Added support for onchange handler in HtmlSelect mbowler
update Cleaned up some javadoc warnings mbowler
add New method WebClient#loadWebResponse(URL, SubmitMethod, List) mbowler
update Removed the need for HiddenWebWindow - JavaScript files are now loaded via WebClient#loadWebResponse(URL, SubmitMethod, List). This should fix an intermittent bug where an UnsupportedOperationException was being called from the HiddenWebWindow if a JavaScript file was returned with a content type of "text/html" mbowler
update Fixed bug where javascript:option.getValue() was returning the text, not the value mbowler
update Improved some error handling when secondary pages are being loaded by frames mbowler

Release 1.1-rc1 - October 29, 2002

Type Changes By
update Upgraded commons-logging.jar to 1.0.2 mbowler
update Upgraded commons-httpclient.jar to Oct 20/2002 gump build mbowler
add Added support for javascript:Input.disabled mbowler
update Upgraded NekoHTML to version 0.6.8 + patches from the author mbowler
update Changed window.open() to understand the magic name _self mbowler
add Added HtmlOption#setSelected(boolean) mbowler
add Completed support for reset buttons mbowler
update Page load was blowing up if the name of an input was the same as the name of a predefined property in Form (ie id or action). Fixed so that if the input has the same name as a predefined property, the input wins. mbowler
add Added support for the JavaScript method Window.confirm() mbowler
add New interface ConfirmHandler mbowler
add New method WebClient#setConfirmHandler(ConfirmHandler) and WebClient#getConfirmHandler() mbowler
add Added support for the JavaScript method Window.prompt() mbowler
add New interface PromptHandler mbowler
add New method WebClient#setPromptHandler(PromptHandler) and WebClient#getPromptHandler() mbowler
add New method HtmlForm#getParameterListForSubmit(). This method is intended as a debugging aid. mbowler
update Page load would blow up if no body tag found. Framesets aren't required to have body tags mbowler
add Added support for JavaScript URLs in Frame and IFrame src tags mbowler
update Improved some error messages during initialization mbowler
add New class ObjectInstantiationException mbowler
add Added protocol package for URL protocols and added protocol/javascript package for code that supports JavaScript URLs mbowler
update Removed deprecated method WebClient.setBrowserVersion(BrowserVersion). No replacement for this method - browser versions must be set in the constructor of the WebClient. mbowler
update Removed deprecated method HtmlPage.executeJavascriptIfPossible(String,String). Use HtmlPage.executeJavaScriptIfPossible(String,String,boolean) instead. mbowler
update Removed deprecated method HtmlPage.getTitle(). Use HtmlPage.getTitleText() instead. mbowler
update Added support for manipulating the disabled attribute of any element via JavaScript. This is incorrect according to the html specification but Internet Explorer supports it so we have to as well. This will print a warning if it is used. mbowler
update Fixed bug where script tags that loaded external files would cause the new script to overwrite the existing page in the window mbowler
update Fixed bug where a redirect called from JavaScript in the page load would not replace the page. mbowler

Release 1.1-pre5 - September 24, 2002

Type Changes By
update Changed html parser from JTidy to CyberNeko. CyberNeko is better at parsing really bad html but this now gives us a dependency on the xerces parser from apache. mbowler
update The directory structure has undergone a significant change and is now checked in under a single module ("htmlunit") in cvs. This should only affect those people who are checking out code directly from cvs. mbowler
update Upgraded checkstyle to version 2.4 mbowler
add Added support for document.location (an alias for window.location) mbowler
update Changed initialization order in HtmlPage so that the enclosing window is initialized before the JavaScript is run mbowler
update BEHAVIOUR CHANGE: WebClients may no longer change browser versions after creation. This is required because some of the JavaScript bits initialize differently depending on which browser is in use. If we allowed the browser version to change then behaviour would be very unpredictable. mbowler
add Added method HtmlPage#getFirstAnchorByText(java.lang.String) mbowler
update First steps towards having property/function information in a configuration file mbowler
add Added method HtmlPage#getHtmlElementsByAccessKey(char) mbowler
add Added support for javascript:document.getElementById() mbowler
add Added support for javascript:document.all[string] mbowler
update Fixed bug where relative URLs were not being expanded in certain situations mbowler
update Fixed bug in relative URL expansion that was blowing up on URLs like //foo.com mbowler
update Upgraded commons-httpclient.jar and commons-logging.jar to the Aug 30 gump build mbowler
add Added HtmlElement#asXml() mbowler
add Added WebClient#expandUrl(URL, String) mbowler
update Fixed bug where relative URLs in redirects were not being expanded. mbowler
update Fixed bug in HtmlSelect#getOptionByValue(String) where searching for the option would start at the top of the page instead of at the select. mbowler
update Applied patches to NekoHTML to fix problems with script tags and isindex tags. Thanks to Andy Clark (author of NekoHTML) for extremely quick responses to bug reports. mbowler
add Added support for HtmlImageInput#click() and HtmlImageInput#click(int, int) mbowler
update Changed redirect logic so that on a 302 or 303 status, if the method changes from post to get, the parameters will be thrown away for the second request. The HTTP spec is unclear on this exact behaviour but the common browsers seem to do it this way. mbowler
add Added the constant BrowserVersion.NETSCAPE_6_2_3 mbowler

Release 1.1-pre4 - August 23, 2002

Type Changes By
update Changed the license used by HtmlUnit to an apache style one mbowler
update Changed default value of WebClient.isRedirectEnabled() to false to be consistent with pre2 mbowler
update Updated look of documentation mbowler
add Started migrating System.out.println calls over to commons-logging. Refer to the logging tutorial (logging.html) for information on customizing this. mbowler
add Support for onClick handlers in HtmlSubmitInput mbowler
update Support for onClick handlers in HtmlButton mbowler
update Fixed bug where NullPointerException would be thrown if window.alert() was called and no AlertHandler had been registered mbowler
add Support for onload handler on the body tag mbowler
add Support for customizing the page types. See WebClient.setPageCreator() mbowler
add Added HtmlElement.hasHtmlElementWithId() mbowler
update Renamed DefaultAlertHandler to CollectingAlertHandler mbowler
update Fixed NullPointerException in HtmlForm during submission of a form containing a radio button mbowler
add Stubbed out the following methods on Input: click(), focus(), blur(), select() mbowler
add Added support for inherited functions to SimpleScriptable. Previously only getters and setters were supported. mbowler
update Changed SimpleScriptable.getLog() to create a new log object each time. This is necessary since in rhino, functions don't know who their object is. A way for functions to learn about their objects will have to be determined. mbowler
add Added a JavaScript style object mbowler
add Added new method HtmlElement.isAttributeDefined() mbowler
update Changed HtmlElement.getAttributeValue() to return constants indicating whether the attribute was defined with an empty value or just not defined. Both of these constants are empty strings so the behaviour of this method hasn't changed. mbowler
add Added a tutorial section on the main page and added a link to the table tutorial mbowler
add Started writing the table tutorial - still needs a lot of work mbowler
add Added support for the JavaScript function Form.submit() mbowler
update Fixed bug where javascript:document.forms[formName] was blowing up mbowler
update Changed logic behind anchor onClick() handler to abort the click if JavaScript returns false mbowler
update Changed logic behind form onSubmit() handler to abort the submit if JavaScript returns false mbowler
update Fixed WebConnection so that it now passes the query string through on post requests mbowler
add Added HtmlFrame class. Loading a page containing frames will cause those frames to be automatically loaded as well. mbowler
update Added support for loading iframes mbowler
add Added HtmlFrameSet class mbowler
add Added a coding conventions document (codingConventions.html) mbowler
add Added a "how to get the latest code from cvs" document (buildingFromCvs.html) mbowler
update Renamed WebWindow.getPage() and setPage() to getEnclosedPage() and setEnclosedPage() to avoid conflict with getPage in HtmlElement mbowler
add Added WebClient.getWebWindowByName() mbowler
add New class WebWindowNotFoundException mbowler
update When checking to see if a script is JavaScript we previously assumed that the script was not and then looked for proof that it was. This gives us behaviour that is different from browsers in some situations. The logic has been changed so that now it assumed that any script IS JavaScript unless there is proof otherwise. mbowler
add New method HtmlPage.getFrames() mbowler
add Initial support for resetting forms. None of the elements actually revert to their previous values yet but onReset handlers will be run if specified. mbowler
add New method HtmlTable.getCaptionText() mbowler
update Deprecated HtmlPage.getTitle() to be replaced with HtmlPage.getTitleText(). This will be removed before the final release of 1.1 mbowler
add Added support for the JavaScript properties: Select.options, Select.selectedIndex, Select.length and Option.value mbowler

Release 1.1-pre3 - July 23, 2002

Type Changes By
add Added HtmlElement.getParent() mbowler
add Added HtmlElement.getNextSibling() mbowler
add Added HtmlElement.getPreviousSibling() mbowler
update Changed WebConnection so that cookies will be shared among servers in the same domain mbowler
add Added support for redirection - WebClient.setRedirectEnabled(boolean) mbowler
add Added method on WebResponse to access the response headers mbowler
add Many new JavaScript objects - this will be transparent to users of HtmlUnit mbowler
update Lots of refactoring in the JavaScript portion mbowler
update Fixed a NullPointerException if the server doesn't return a content-type header mbowler
update Fixed HtmlElement.childrenAsText() so that it ignores comments mbowler
add Added support for Input.checked mbowler
add Added some constants to BrowserVersion for various browsers mbowler
update Upgraded gsbase.jar to version 1.8 mbowler
update Replaced js.jar with a version that has been compiled with debug support mbowler
update Upgraded commons-httpclient.jar to the July 27 gump build. mbowler
add Added commons-logging.jar (July 27 gump build) which is needed by httpclient mbowler
add Support for proxy server and ssl together mbowler

Release 1.1-pre2 - July 10, 2002

Type Changes By
update Fixed NullPointerException due to a bug in JTidy - thanks to Mike J Bresnahan for tracking this one right into the JTidy source. mbowler
add HtmlAnchor now supports JavaScript URLs and onClick handlers mbowler
add Ability to set the emulated browser via WebClient.setBrowserVersion(BrowserVersion) mbowler
add Stubbed out a bunch of JavaScript methods that are used by the popular websites. Each stubbed out method will print a diagnostic message when it is called to alert the user to the fact that it was called. This is just a temporary measure to ensure that HtmlUnit doesn't blow up when hitting common sites. These methods *will* be implemented properly at some point. mbowler
add Added WebWindow mbowler
add Added TopLevelWindow mbowler
add Added WebWindowListener mbowler
add Added WebWindowEvent mbowler
add Added WebWindowAdapter mbowler
add Added initial support for javascript:open(). Does not currently support features or browser history mbowler
update Fixed some cases in HtmlPage.getFullyQualifiedUrl() that weren't expanding properly mbowler
add Added HtmlTitle mbowler
add Added HtmlPage.getTitle() mbowler
add Added JavaScript window.location="some url" mbowler
add Stubbed out the JavaScript history object mbowler
add Added support JavaScript URLs in HtmlForm submission mbowler
add Added support for HtmlForm.onSubmit() mbowler
update Rewrote logic for handling relative URLs mbowler
update Fixed bug in HtmlRadioButtonInput that was causing isChecked() to return false in some cases even if the checked attribute was there. mbowler

Release 1.1-pre1 - July 2, 2002

Type Changes By
add Added initial JavaScript support mbowler
update Lots of bug fixes mbowler

Release 1.0 - May 22, 2002

Type Changes By
add Initial release mbowler