<?xml version="1.0"?>
<document>
    <properties>
        <title>Changes</title>
    </properties>

    <body>
        <release version="2.8" date="Aug 5, 2010" description="Bugfixes, (large) binary download, single thread for JavaScript background tasks, HttpClient 4, SOCKS proxy, initial support for FF 3.6, support for GoogleAppEngine">
            <action type="add" dev="asashour" issue="3037585">
                HtmlOptionGroup: add utility method getEnclosingSelect().
            </action>
            <action type="fix" dev="asashour" issue="3018444" due-to="Ronald Brill">
                HtmlRadioButtonInput: trigger onchange event handler on losing focus with IE.
            </action>
            <action type="update" dev="mguillem" issue="2985827">
                Configure JavaScript executor thread as daemon thread.
            </action>
            <action type="add" dev="asashour">
                JavaScript: initial support for HTMLAudioElement, HTMLSourceElement and HTMLVideoElement.
            </action>
            <action type="fix" dev="asashour" issue="3029611">
                Fix Content-Type header value on posting a form with "multipart/form-data" encoding.
            </action>
            <action type="fix" dev="mguillem" issue="3032380">
                JavaScript: document.cookie should not return cookies that have expired since they have been set.
            </action>
            <action type="fix" dev="mguillem" issue="3030247">
                JavaScript: ignore expired cookies set by document.cookie.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: XSLTemplate and XMLDOMParseError are not instantiable.
            </action>
            <action type="update" dev="asashour" issue="3026349">
                HTTP headers: 'Host' to be the first (FF only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: XMLHttpRequest.setRequestHeader ignores prohibited headers.
            </action>
            <action type="fix" dev="asashour" issue="3026194">
                JavaScript: fix 'typeof window'.
            </action>
            <action type="add" dev="asashour" issue="3025318">
                JavaScript: add dummy implementation of window.pageXOffset and .pageYOffset.
            </action>
            <action type="update" dev="mguillem" issue="2962074" due-to="Amit Manjhi">
                Add support for Google App Engine.
            </action>
            <action type="fix" dev="asashour" issue="3018437" due-to="Ronald Brill">
                HtmlCheckBoxInput: trigger onchange event handler on losing focus.
            </action>
            <action type="update" dev="mguillem">
                Google App Engine support: WebClient uses per default UrlFetchWebConnection when Google App Engine is detected.
            </action>
            <action type="fix" dev="mguillem" issue="2903223">
                WebResponse.getLoadTime(): take body download time into account.
            </action>
            <action type="update" dev="mguillem">
                Remove MemoryInputStream and BinaryPage introduced since release 2.7.
                Download large binary content to a temporary file.
            </action>
            <action type="fix" dev="asashour" issue="3019557">
                FileUpload: send Content-Type headers for file parts.
            </action>
            <action type="fix" dev="mguillem" issue="2995968">
                JavaScript: allow access to lost elements per name from HTMLFormElement.elements in invalid HTML code.
            </action>
            <action type="fix" dev="asashour" issue="3022242">
                XMLHttpRequest: post method to send query string.
            </action>
            <action type="fix" dev="asashour" issue="3004262">
                JavaScript: set a maximum for infinite recursion.
            </action>
            <action type="update" dev="asashour">
                Deprecate WebResponse.getContentAsBytes().
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: make form elements only accessible by their original name (IE)
                or by all the names they have had (FF).
            </action>
            <action type="update" dev="mguillem">
                Deprecated IsDescendantOfContextualFormFunction.
            </action>
            <action type="fix" dev="mguillem" issue="3019226" due-to="Ronald Brill">
                JavaScript: fire onchange for &amp;lt;input type='password' ...&amp;gt; when field loses focus and value has been changed.
            </action>
            <action type="fix" dev="mguillem" issue="3012067">
                Fix NullPointerExceptin occurring when for JavaScript submitting form with hash multiple times.
            </action>
            <action type="fix" dev="mguillem" issue="3004425" due-to="Amit Khanna">
                HtmlTextArea.asXml(): escape XML characters.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: events fired by HTMLOptionElement should have 'srcElement' of the enclosing Select.
            </action>
            <action type="fix" dev="asashour" issue="3017828">
                JavaScript: fix event.button of click events with IE.
            </action>
            <action type="fix" dev="mguillem" issue="3005485" due-to="Ronald Brill">
                JavaScript HtmlUnit RegExp proxy: use empty string for existing replacement groups without value.
            </action>
            <action type="update" dev="mguillem">
                HtmlPage.save: add support for (i)frames.
            </action>
            <action type="fix" dev="mguillem">
                HtmlPage.save should not modify the current DOM.
            </action>
            <action type="fix" dev="mguillem" issue="3013799">
                JavaScript: window.execScript returns undefined and not null (IE only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: add support for function HTMLDocument.clear.
            </action>
            <action type="add" dev="asashour" issue="3009368">
                JavaScript: add support for globalStorage, localStorage and sessionStorage.
            </action>
            <action type="add" dev="asashour">
                Page: add .getUrl().
            </action>
            <action type="add" dev="asashour" issue="3006350">
                Add support for SOCKS proxy (at WebClient and WebRequest levels).
            </action>
            <action type="add" dev="mguillem">
                Add UrlFetchWebConnection, an experimental WebConnection with limited functionalities but that doesn't require HttpClient.
            </action>
            <action type="fix" dev="asashour">
                HtmlArea: set 'Referer' header on clicking.
            </action>
            <action type="fix" dev="mguillem">
                Don't send charset information in Content-Type header for application/x-www-form-urlencoded POST requests.
            </action>
            <action type="fix" dev="asashour" issue="3007121">
                Fix MemoryInputStream.read() for negative values.
            </action>
            <action type="update" dev="asashour" issue="2950332" due-to="Nicolas Belisle">
                Upgrade HttpClient to 4.0.1.
            </action>
            <action type="update" dev="asashour">
                Deprecate BrowserVersion static constants.
            </action>
            <action type="fix" dev="mguillem" issue="2998004">
                StringWebResponse: take care of provided charset for parsing.
            </action>
            <action type="add" dev="asashour" issue="2973509">
                JavaScript: support string.trim(), .trimLeft() and .trimRight() (FF 3.6 only).
            </action>
            <action type="add" dev="asashour">
                Initial support for FF 3.6.
            </action>
            <action type="update" dev="mguillem" issue="2996583" due-to="Philip Graf">
                Implement DomComment.getCanonicalXPath().
            </action>
            <action type="update" dev="asashour">
                INCOMPATIBLE CHANGE: WebResponse is now a class not an interface. WebResponseImpl is deprecated.
            </action>
            <action type="fix" dev="asashour" issue="2993991">
                Fix asText() of HtmlCheckBoxInput and HtmlRadioButtonInput.
            </action>
            <action type="fix" dev="asashour" issue="2986384">
                JavaScript: fix document.getElementsByTagName() for elements with prefix.
            </action>
            <action type="update" dev="asashour">
                HtmlImageInput: fix submitted parameters.
            </action>
            <action type="update" dev="asashour" issue="2986782">
                BinaryPage: change threshold to 300 bytes, and handle chunked content.
            </action>
            <action type="update" dev="asashour">
                Deprecate WebRequestSettings, WebResponse.getRequestSettings() and MockWebConnection.getLastWebRequestSettings().
            </action>
            <action type="update" dev="asashour">
                Correctly handle URLs with '%'.
            </action>
            <action type="add" dev="asashour" issue="2979275">
                JavaScript: add support for KeyboardEvent.which (FF only).
            </action>
            <action type="add" dev="mguillem" issue="2981752">
                JavaScript: add support for navigator.productSub (FF only).
            </action>
            <action type="update" dev="asashour" issue="2982020">
                JavaScript: fix ClassCastException in window.open().
            </action>
            <action type="update" dev="mguillem">
                DomElement.asXml(): escape only &lt;, &amp; and &quot; in attribute values.
            </action>
            <action type="add" dev="asashour">
                HtmlPage: add .isQuirksMode(), .querySelector() and .querySelectorAll().
            </action>
            <action type="remove" dev="asashour">
                Remove StringScriptPreProcessor.
            </action>
            <action type="add" dev="asashour" issue="2971861">
                JavaScript: add empty implementation of window.stop (FF only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: fire (i)frames onload event even for non-HTML pages.
            </action>
            <action type="add" dev="mguillem" issue="2952960" due-to="Amit Manjhi">
                JavaScript: use a single Java thread for executing background JavaScript tasks.
            </action>
            <action type="add" dev="asashour" issue="2958709">
                WebRequestSettings: add support for basic authentication inside the URL.
            </action>
            <action type="fix" dev="sdanig" issue="2964137">
                DomNode.isDisplayed() (and by extension, DomNode.asText()) should ignore CSS styling when CSS has been disabled.
            </action>
            <action type="fix" dev="sdanig" issue="2911299">
                JavaScript: return window proxies from window.open(), window.top, window.parent, window.self, window.window and window.opener;
                proxy window.document and frame.contentDocument, too.
            </action>
            <action type="add" dev="asashour" issue="2892289">
                JavaScript: add support for HTMLTableCellElement.width and .height attributes.
            </action>
            <action type="fix" dev="mguillem" issue="2822048" due-to="Chris Frost">
                JavaScript HtmlUnit RegExp proxy: don't escape unicode escape sequence in regular expression.
            </action>
            <action type="fix" dev="mguillem" issue="2822048">
                Fix exception on HTTP response with code 302 without Location header.
            </action>
            <action type="fix" dev="mguillem" issue="2885136">
                JavaScript: implement stack property on exceptions.
            </action>
            <action type="fix" dev="mguillem" issue="2884462">
                HtmlTable.asText(): display first thead at the top, even if it appears after some tbody.
            </action>
            <action type="fix" dev="mguillem" issue="2956588" due-to="Benoit Heinrich">
                JavaScript: fixed ClassCastException occurring in IE simulation while accessing XMLHttpRequest.responseXML
                when content uses XHTML namespace and contains a checked radio button.
            </action>
            <action type="fix" dev="sdanig" issue="2959014">
                JavaScript: offsetHeight and offsetWidth should be 0 for elements with display:none, regardless of their contents.
            </action>
            <action type="fix" dev="sdanig" issue="2958675">
                When applying CSS rules to elements, take the media type into account.
            </action>
            <action type="fix" dev="mguillem" issue="2956550">
                JavaScript: fixed exception when calling setTimeout during window unload.
            </action>
            <action type="add" dev="asashour">
                Add BinaryPage to support download of large files.
            </action>
            <action type="fix" dev="sdanig" issue="2902466">
                JavaScript: Form elements are also functions that take a child element's id, name or index and return the corresponding element (IE only).
            </action>
            <action type="add" dev="sdanig" issue="2954288" due-to="Benoit Heinrich">
                JavaScript: add support for element.removeAttributeNode() (FF only).
            </action>
            <action type="add" dev="sdanig" issue="2952882" due-to="Philip Graf">
                Add implementation of DomText.getCanonicalXPath().
            </action>
            <action type="fix" dev="sdanig" issue="2954910" due-to="Benoit Heinrich">
                JavaScript: img.onload functions not always called when img.src modified.
            </action>
            <action type="fix" dev="sdanig" issue="2955073" due-to="Benoit Heinrich">
                JavaScript: Dynamically-added frame.onload and img.onload functions were sometimes being ignored.
            </action>
            <action type="fix" dev="mguillem" issue="2815614">
                Clicking an element should make enclosing window the current one.
            </action>
            <action type="fix" dev="mguillem" issue="2952333">
                Fixed ClassCastException occurring while accessing XMLHttpRequest.responseXML when content uses XHTML namespace and contains an (i)frame.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added simple implementation of TextRange.setEndPoint (IE only).
            </action>
            <action type="fix" dev="sdanig" issue="2897457">
                JavaScript: implement window.scroll(x, y), window.scrollBy(x, y), window.scrollTo(x, y), window.scrollByLines(lines)
                and window.scrollByPages(pages).
            </action>
            <action type="fix" dev="mguillem" issue="2940936">
                Parser: place text located between &lt;/TD&gt; and &lt;/TR&gt; before the enclosing TABLE.
            </action>
            <action type="fix" dev="mguillem" issue="2949446">
                JavaScript HtmlUnit RegExp proxy: handle two digits replacement references.
            </action>
            <action type="fix" dev="mguillem" issue="2948498">
                JavaScript: allow to set HTMLTableColElement's width to null.
            </action>
            <action type="update" dev="asashour">
                INCOMPATIBLE CHANGE: add an extra parameter (int lineNumber) to ScriptPreProcessor.preProcess().
            </action>
            <action type="add" dev="asashour" issue="2899323" due-to="Peter Faller">
                JavaScript: add dummy support for window.external.AutoCompletionSave() (IE only).
            </action>
            <action type="fix" dev="asashour" issue="2898484" due-to="Tomasz Kalkosinski">
                JavaScript: fix document.getElementsByName() to handle empty and null values.
            </action>
            <action type="remove" dev="asashour">
                Deprecation: remove DomText.splitDomText(), HtmlPage.getFirstAnchorByText(), WebClient.setIgnoreOutsideContent(),
                WebResponse.getRequestUrl, .getRequestMethod() and .getContentCharSet(), HTMLParser.parse()
                and WebRequestSettings.addAdditionalHeader().
            </action>
        </release>
        <release version="2.7" date="Feb 9, 2010" description="Bugfixes, initial IE8 support, HttpClient 4 migration preparation">
            <action type="fix" dev="mguillem">
                JavaScript: allow access to a frame through document.frameName (IE only).
            </action>
            <action type="fix" dev="sdanig" issue="2889077">
                JavaScript: better implementation of element.scrollLeft and element.scrollTop properties.
            </action>
            <action type="fix" dev="mguillem" issue="2935350">
                JavaScript HtmlUnit RegExp proxy: handle $&amp;, $' and $` in replacement string.
            </action>
            <action type="update" dev="mguillem">
                Removed public method HtmlForm.submit(SubmittableElement) without replacement (method was marked as internal API).
            </action>
            <action type="fix" dev="asashour" issue="2924097">
                JavaScript: StringScriptPreProcessor to use Rhino AST.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: many calls to form.submit after change of the action attribute causes many downloads
                and only the last one is parsed and loaded into the window.
            </action>
            <action type="fix" dev="mguillem" issue="2884585">
                JavaScript: fix dynamically loading of external script when loading a page as result of a click.
            </action>
            <action type="update" dev="mguillem" issue="2921851">
                JavaScript: resolve relative URLs from opener's URL when document.write is used in a window opened with window.open.
            </action>
            <action type="update" dev="asashour">
                DomNode.asText(): don't include children of &lt;noscript&gt; if JavaScript is enabled.
            </action>
            <action type="add" dev="asashour">
                JavaScript: empty implementation of CanvasRenderingContext2D.drawImage() (FF).
            </action>
            <action type="update" dev="sdanig">
                INCOMPATIBLE CHANGES (HttpClient 4 migration preparation): use internal NameValuePair class in the public
                APIs (rather than HttpClient's NameValuePair class); use internal Cookie class in the public APIs (rather
                than HttpClient's Cookie class).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: execute script with event attribute only when value is "onload" (FF).
            </action>
            <action type="fix" dev="mguillem" issue="2930676">
                DomNode.asText(): H1, H2, H3, H4, H5 and H6 are blocks.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: ensure that elements returned by Selection.getRangeAt are of the right type (FF only).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: document body is selection's start element when designMode='on' is set and body has no child element (FF only).
            </action>
            <action type="update" dev="mguillem">
                Throw exception with explicit message when maximum of allowed HTTP redirects is reached.
            </action>
            <action type="fix" dev="mguillem" issue="2903514">
                JavaScript: fix parseFloat for values like "40em".
            </action>
            <action type="fix" dev="mguillem" issue="2914283">
                JavaScript: add support for Function.caller.
            </action>
            <action type="update" dev="mguillem">
                Update htmlunit-core-js to Rhino head of 07.01.2010 + custom patches.
            </action>
            <action type="fix" dev="sdanig" issue="2915453">
                Redirect limit should apply regardless of whether or not the redirects are to the same URL.
            </action>
            <action type="fix" dev="sdanig" issue="2912255">
                JavaScript: fix value of element.offsetTop attribute when element's position is relative.
            </action>
            <action type="fix" dev="sdanig" issue="2919853" due-to="Richard Eggert">
                JavaScript: fix format of document.lastModified attribute.
            </action>
            <action type="fix" dev="asashour" issue="2903679">
                JavaScript: fix XMLHttpRequest with empty body of 'PUT' method.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: allow setting element.width and .height to a value that ends with 'px'.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: fix computed element widths and heights when percentages are involved in the CSS.
            </action>
            <action type="update" dev="mguillem">
                Deprecated BrowserVersion.FIREFOX_2.
            </action>
            <action type="add" dev="sdanig">
                Add WebClientUtils.attachVisualDebugger(WebClient).
            </action>
            <action type="fix" dev="sdanig" issue="2815823">
                JavaScript: add support for "onerror" event handlers on script nodes (FF only).
            </action>
            <action type="fix" dev="sdanig" issue="2897473">
                JavaScript: better value for document.body.clientHeight.
            </action>
            <action type="fix" dev="mguillem">
                WebClient.closeAllWindows: improved JavaScript threads termination.
            </action>
            <action type="add" dev="mguillem">
                Add WebWindow.isClosed().
            </action>
            <action type="fix" dev="mguillem" issue="2906293">
                JavaScript HtmlUnit RegExp proxy: escape dollar after escaped backslash.
            </action>
            <action type="fix" dev="mguillem" issue="2879412">
                JavaScript HtmlUnit RegExp proxy: un-escape illegally escaped characters.
            </action>
            <action type="update" dev="mguillem">
                Change TopLevelWindow and DialogWindow constructors' visibility to protected.
            </action>
            <action type="fix" dev="mguillem" issue="2907515">
                Don't pick invisible frame window as the current window.
            </action>
            <action type="fix" dev="mguillem">
                CSS: don't override rules with a higher specificity.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: window.getSelection() returns null for frame windows that are not displayed (FF only).
            </action>
            <action type="fix" dev="asashour" issue="2906062">
                MetaTag: fix NPE in encoding detection.
            </action>
            <action type="fix" dev="mguillem">
                Don't skip form submission to same URL when triggered from an anchor with href="#".
            </action>
            <action type="fix" dev="mguillem" issue="2905890">
                JavaScript: added support for functions ScriptEngine, ScriptEngineMajorVersion, ScriptEngineMinorVersion, and ScriptEngineBuildVersion (IE only).
            </action>
            <action type="fix" dev="mguillem" issue="2905890">
                JavaScript: keyCode of lower case characters is the same than upper case ones.
            </action>
            <action type="fix" dev="mguillem" issue="2894952">
                JavaScript: add support for HTMLTextArea.setSelectionRange (FF only).
            </action>
            <action type="fix" dev="mguillem" issue="2891430">
                JavaScript: enforce same-origin policy for XMLHttpRequest.
            </action>
            <action type="fix" dev="mguillem">
                Use style sheets too to compute DomNode.isDisplayed.
            </action>
            <action type="fix" dev="mguillem" issue="2899045">
                HtmlNoFrames.asText() returns empty string.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: XMLHttpRequest.responseXML is null when send() has not been called.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: XMLHttpRequest.responseXML is accessible when no content type header is present.
            </action>
            <action type="update" dev="asashour" issue="2900487">
                JavaScript: log exceptions thrown in background threads.
            </action>
            <action type="fix" dev="asashour" issue="2881627">
                IEConditionalCompilationScriptPreProcessor should ignore string literals.
            </action>
            <action type="fix" dev="asashour">
                HtmlNoFrames: preserve inner XML content.
            </action>
            <action type="fix" dev="asashour" issue="2899485">
                JavaScript: add support for ProcessingInstruction during parsing.
            </action>
            <action type="fix" dev="sdanig" issue="2892939">
                JavaScript: better calculation of element.offsetTop and element.offsetHeight properties.
            </action>
            <action type="fix" dev="mguillem">
                Implement setter and getter for textContent on DomAttr.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: fix exception accessing selectionStart and selectionEnd on inputs of type password.
            </action>
            <action type="fix" dev="sdanig" issue="2888451">
                JavaScript: better calculation of element.offsetLeft property.
            </action>
            <action type="fix" dev="asashour" issue="2892533">
                JavaScript: document.write() should have an affect (by implicit postponed call to close()).
            </action>
            <action type="fix" dev="sdanig" issue="2890847">
                Empty frames added via JavaScript shouldn't ever really become the "current window".
            </action>
            <action type="fix" dev="asashour">
                JavaScript: fix attribute.setNodeValue().
            </action>
            <action type="fix" dev="asashour" issue="2887288">
                JavaScript: fix NPE when element.setAttributeNode() is called for non-existing attribute.
            </action>
            <action type="fix" dev="mguillem" issue="2891013">
                JavaScript HtmlUnit RegExp proxy: escape "$" in replacement string for String.replace.
            </action>
            <action type="fix" dev="mguillem" issue="2890953">
                JavaScript HtmlUnit RegExp proxy: replace "$$" by "$" in replacement string for String.replace.
            </action>
            <action type="fix" dev="mguillem">
                DefaultCredentialsProvider: addCredentials should overwrite previous values.
            </action>
            <action type="fix" dev="asashour" issue="2889583">
                JavaScript: fix setting of element.innerText and .textContent with empty string or null.
            </action>
            <action type="fix" dev="mguillem" issue="2888604">
                Meta refresh: handle space as separator between delay and url.
            </action>
            <action type="fix" dev="mguillem" issue="2888289">
                JavaScript: events focus and blur don't apply to all kind of HTML elements.
            </action>
            <action type="fix" dev="mguillem" issue="2888342">
                JavaScript: add support for onerror handler.
            </action>
            <action type="fix" dev="mguillem">
                Fix issue where WebClient.waitForBackgroundJavaScriptStartingBefore hangs (setInterval with short interval).
            </action>
            <action type="fix" dev="asashour">
                HtmlScript: "for" and "event" attributes for 'window' are ignored by FF.
            </action>
            <action type="fix" dev="mguillem" issue="2888366">
                JavaScript: MouseEvent.initMouseEvent and KeyboardEvent.initKeyEvent initialize metaKey
            </action>
            <action type="fix" dev="mguillem">
                Fixed StringIndexOutOfBoundsException occurring when typing in a cloned text input or textarea node.
            </action>
            <action type="fix" dev="asashour" issue="2881627">
                JavaScript: pre-process \xDD in string literals before IE conditional compilation.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: allow MouseEvent to have independent client coordinate values, if necessary.
            </action>
            <action type="fix" dev="sdanig">
                Fix the DomNodeList returned by DomNode.getChildNodes() so that it behaves correctly when children are removed from the DOM.
            </action>
            <action type="update" dev="sdanig">
                Deprecate DomNode.getAllHtmlChildElements(); replaced by the more intuitively named DomNode.getHtmlElementDescendants().
            </action>
            <action type="add" dev="sdanig">
                JavaScript: implement range.extractContents() (Firefox only).
            </action>
            <action type="fix" dev="asashour" issue="2881794">
                JavaScript: properly handle body elements with qualified name.
            </action>
            <action type="fix" dev="sdanig">
                Fix Node.setTextContent() to set the text for comment, cdata, text and processing instruction nodes,
                rather than appending a new text node.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: mouse event 'ondblclick' should not trigger 'onclick' handler.
            </action>
            <action type="fix" dev="mguillem" issue="2880057">
                CSS: add support for rule priority.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: properly escape XML entities in .xml property (IE) and XMLSerializer (FF).
            </action>
            <action type="add" dev="mguillem" issue="2875273">
                JavaScript: add support for HTMLDocument.lastModified.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: support the serialization of comments in .xml property (IE) and XMLSerializer (FF).
            </action>
            <action type="add" dev="sdanig">
                JavaScript: implement element.getAttributeNodeNS() (Firefox only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: XMLHttpRequest.open throws an exception when the provided url is null or an empty string.
            </action>
            <action type="fix" dev="sdanig">
                Fix caching of page's document element even after the document element has been removed from the page.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: add support for XMLHttpRequest.onload (Firefox only).
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: document.activeElement is the document body by default (IE only).
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: add support for selection.addRange(), selection.removeAllRanges() and selection.removeRange() (FF only).
            </action>
            <action type="fix" dev="sdanig" issue="2874300">
                JavaScript: add support for TextRange.htmlText and TextRange.moveToElementText (IE only).
            </action>
            <action type="fix" dev="asashour" issue="2856764">
                JavaScript: handle namespaces when serializing XML.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: window.location should start with 'file:///' instead of just 'file:/' when dealing with a local file.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HTMLTableCellElement.cellIndex, HTMLTableRowElement.rowIndex
                and sectionRowIndex (FF only) return -1 when the element is not added to the document.
            </action>
            <action type="update" dev="mguillem">
                Don't allow JavaScript catch statements to catch HtmlUnit internal errors.
            </action>
            <action type="fix" dev="asashour" issue="2855731">
                JavaScript: fix how document.write() detects complete string.
            </action>
            <action type="fix" dev="sdanig" issue="2873035">
                The default value of range.startContainer and range.endContainer is the document itself (Firefox only).
            </action>
            <action type="add" dev="asashour" issue="2856764">
                JavaScript: primitive support for xmlDocument.createNode() (IE only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: implement attributes.setNamedItem().
            </action>
            <action type="fix" dev="sdanig">
                Avoid errors triggered by images with onload attributes and invalid src URLs.
            </action>
            <action type="fix" dev="sdanig" issue="2860732">
                HtmlPage.getPageEncoding() was sometimes returning a different encoding than the encoding actually used to parse the page.
            </action>
            <action type="add" dev="asashour">
                Implement DomAttr.getSpecified() and SgmlPage.createAttribute().
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HTMLElement.offsetWidth and offsetHeight are 0 when the element is hidden.
            </action>
            <action type="fix" dev="mguillem" issue="2868052">
                DomNode.asText() considers UL content that is not within a LI too.
            </action>
            <action type="fix" dev="mguillem" issue="2865948">
                Fix HtmlHtml.getCanonicalXPath() when document contains a doctype declaration.
            </action>
            <action type="fix" dev="mguillem">
                Form submission: don't send a Content-Type header when method is GET.
            </action>
            <action type="fix" dev="mguillem" issue="2860721">
                FormEncodingType.getInstance returns URL_ENCODED if the requested encoding type doesn't exist.
            </action>
            <action type="fix" dev="mguillem" issue="2819477">
                JavaScript: don't call (i)frame's onload handler for the dummy page that fill the frame until the real content is loaded.
            </action>
            <action type="fix" dev="mguillem">
                Loading about:blank in an existing window resets the JavaScript scope for the window.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: window.opener is always writable for IE and only in special cases for FF.
            </action>
            <action type="update" dev="mguillem">
                When a textarea receives focus its content is not selected and call to type(...) causes content to be appended.
            </action>
            <action type="update" dev="mguillem">
                Click on a non form element removes focus from current element and triggers handlers if needed.
            </action>
            <action type="fix" dev="asashour" issue="2862553">
                JavaScript: respect headers set by XMLHttpRequest.setRequestHeader().
            </action>
            <action type="update" dev="mguillem" issue="2860541">
                JavaScript: improve resolution performance of "someForm.someField" when many elements in the page
                have "someField" as id or name attribute but only one in the provided form.
            </action>
            <action type="update" dev="mguillem">
                List returned by HtmlPage.getElementsByIdAndOrName is now mutable.
            </action>
            <action type="fix" dev="mguillem" issue="2834335">
                JavaScript: delete operator should not walk property chain.
            </action>
            <action type="update" dev="mguillem">
                Upgrade HtmlUnit-core-js to 2.7-SNAPSHOT (corresponds to head of Rhino trunk from Sep 21, 2009 + minimal adaptations).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: remove String functions "equals" and "equalsIgnoreCase",
                Array functions "reduce" and "reduceRight" (FF2 and IE),
                global functions "isXMLName" and "uneval" (IE) as well as "toSource" on all objects (IE).
            </action>
            <action type="fix" dev="asashour" issue="2861623">
                JavaScript: properly handle element.textContent with null value (FF only).
            </action>
            <action type="fix" dev="asashour">
                JavaScript: set the checked property of input of type 'radio' to defaultChecked when it is attached (IE only).
            </action>
            <action type="fix" dev="mguillem" issue="2861064">
                JavaScript: HTMLImageElement's height and width are numbers, not strings.
            </action>
            <action type="update" dev="mguillem">
                HTMLElement.offsetWidth tries to compute width depending on the content when CSS attribute float is set to "right" or "left".
            </action>
            <action type="update" dev="mguillem">
                CSS: add support for CSS3 pseudo classes :root, :enabled, :checked.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HTMLStyleElement.sheet parses all child nodes and not only the first one.
            </action>
            <action type="fix" dev="asashour" issue="2855470">
                JavaScript: fix style 'pixel' attributes.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: HTMLTableElement's properties caption, tHead and tFoot are writable (FF only) with right parameters,
                otherwise an exception is thrown.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add support for HTMLTableRowElement.sectionRowIndex.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add support for DOMException constants (FF only).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: HtmlDocument.createTreeWalker accepts function as filter (FF only).
            </action>
            <action type="fix" dev="sdanig" issue="2854240">
                Fix memory leak when many different BrowserVersion instances used.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HtmlButtonElement.type falls back to default value ("submit" for FF, "button" for IE) when attribute "type" is removed.
            </action>
            <action type="add" dev="asashour">
                Add IE8 support.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: appendChild, insertBefore and replaceChild throw exception (FF) or silently fail (IE) when parameter is the HTML node.
            </action>
            <action type="fix" dev="asashour">
                HtmlAnchor: fix characters escaping if 'href' is a javascript.
            </action>
            <action type="fix" dev="mguillem" issue="2854634" due-to="Rodney Gitzel">
                Correctly clean up "/./" and "/../" sequences from URLs.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: fix button.type attribute.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: perform delayed form submission with fields and target values at the moment where HtmlFormElement.submit is called.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add primitive support for MutationEvent.
            </action>
            <action type="update" dev="asashour">
                JavaScript: use KeyboardEvent in htmlElement.type() and add support for .charCode.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: normal submit button action has priority over HtmlFormElement.submit() called in onclick handler.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: when link's onclick changes location the next page is still the one mentioned in href.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: avoid multiple form submissions when HtmlFormElement.submit() is called multiple times.
            </action>
            <action type="remove" dev="asashour">
                BrowserVersion: remove deprecated methods related to JavaScript version.
            </action>
            <action type="update" dev="mguillem">
                Update JavaDoc of HtmlElement.click methods to reflect what already happens: click returns
                the page in the WebClient's current window.
            </action>
            <action type="remove" dev="asashour">
                Remove deprecated ClickableElement and StyledElement.
            </action>
        </release>
        <release version="2.6" date="Sep 2, 2009" description="Bugfixes, add HtmlPage.save(), better XHTML support, Proxy Auto-Config, improved cache">
            <action type="add" dev="asashour" issue="2848802">
                JavaScript: add basic support for element.scopeName and .tagUrn (IE only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HtmlFormElement.action returns the fully qualified URL (FF only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: setting HtmlTextAreaElement's defaultValue changes the current value if it is still the initial one (FF only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add primitive support for KeyboardEvent.
            </action>
            <action type="fix" dev="sdanig" issue="2847838">
                Allow "javascript:..." URLs with encoded script code.
            </action>
            <action type="fix" dev="sdanig" issue="2812769">
                Use the browser language (from the BrowserVersion being used) to set the value of the "Accept-Language" HTTP header.
            </action>
            <action type="fix" dev="sdanig" issue="2821888">
                Don't treat 304 responses as if they were redirections.
            </action>
            <action type="fix" dev="asashour" issue="2846557">
                JavaScript: node.insertBefore() handles undefined variable.
            </action>
            <action type="update" dev="mguillem">
                Cache: use cache for all kinds of (cacheable) content.
            </action>
            <action type="fix" dev="mguillem">
                CSS: resolve relative URLs in @import rule from URL of current style sheet.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HTMLSelectElement throw exception when invalid value is set to selectedIndex (FF only).
            </action>
            <action type="update" dev="mguillem">
                DebuggingWebConnection: display received headers in generated report, added addMark method.
            </action>
            <action type="fix" dev="asashour">
                CookieManager: handle cookies with null value.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: handle empty code.
            </action>
            <action type="update" dev="asashour">
                Upgrade commons-codec to 1.4
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: document.getElementById() and document.getElementsByNames() trigger implicit document.close() calls (IE only).
            </action>
            <action type="fix" dev="sdanig" issue="2824436">
                JavaScript: window.frames returns a reference to the window itself.
            </action>
            <action type="update" dev="asashour" issue="2837819">
                Force NekoHtml and Xalan to use xercesImpl 2.9.1 dependency.
            </action>
            <action type="add" dev="sdanig" issue="2832735">
                Add selection-related methods to HtmlPasswordInput.
            </action>
            <action type="fix" dev="mguillem" issue="2836591">
                JavaScript: fixed NPE calling inRange with selection range when nothing is selected (IE only).
            </action>
            <action type="fix" dev="mguillem" issue="2824134">
                Add TITLE to HEAD even if it is found in BODY.
            </action>
            <action type="fix" dev="mguillem">
                Submit image button name too (FF only).
            </action>
            <action type="fix" dev="mguillem" issue="2833588">
                Include caption in HtmlTable's asText() representation.
            </action>
            <action type="fix" dev="asashour">
                Fix DomNode.compareDocumentPosition() (FF only).
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for the compact attribute on ul, ol, menu, dl and dir elements.
            </action>
            <action type="add" dev="asashour">
                JavaScript: implement node.normalize().
            </action>
            <action type="fix" dev="asashour">
                JavaScript: support the serialization of CDATASection in .xml property (IE) and XMLSerializer (FF).
            </action>
            <action type="fix" dev="asashour">
                HtmlScript: fix the order of "type" and "language" attributes evaluation.
            </action>
            <action type="update" dev="asashour">
                DomText: deprecate splitDomText(), use splitText() instead.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: fix .prefix attribute of xml nodes.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: fix text.splitText().
            </action>
            <action type="add" dev="asashour">
                JavaScript: implement xmlDocument.getElementsByTagName(), .getElementsByTagNameNS() and .nodeFromID().
            </action>
            <action type="fix" dev="sdanig" due-to="Nick Kralevich">
                Fix many issues with WebClient serialization and deserialization.
            </action>
            <action type="fix" dev="sdanig">
                Load stylesheets referenced via @import.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: fix XMLSerializer for non-element nodes (FF only).
            </action>
            <action type="update" dev="asashour">
                JavaScript: move .xml attribute from xmlElement to xmlNode (IE only).
            </action>
            <action type="update" dev="asashour">
                INCOMPATIBLE CHANGE: rename DomCData to DomCDataSection.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: node.appendChild() can be called inside xmlDocument.
            </action>
            <action type="add" dev="asashour">
                XmlDocument: implement .createProcessingInstruction() and .createCDATASection().
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for map.areas attribute.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: process scripts with 'application/javascript' type (FF only).
            </action>
            <action type="fix" dev="asashour">
                JavaScript: return collection if elements with duplicate IDs are found (IE only).
            </action>
            <action type="fix" dev="asashour" issue="2818493">
                Properly handle unicode characters in requested URLs.
            </action>
            <action type="update" dev="mguillem">
                Deprecate WebClient.setIgnoreOutsideContent and HTMLParser.setIgnoreOutsideContent.
            </action>
            <action type="add" dev="mguillem" issue="2817634">
                Set 'referer' header on loading pictures and CSS files.
            </action>
            <action type="add" dev="mguillem" issue="2820873">
                JavaScript: add basic support for CSSValue, CSSPrimitiveValue, and CSSStyleDeclaration.getPropertyCSSValue (FF only).
            </action>
            <action type="fix" dev="mguillem" issue="2820873">
                JavaScript: set currentTarget on event when event handler is called after global event listener.
            </action>
            <action type="fix" dev="mguillem" issue="2819046">
                Cleanup "/./" and "/../" in URLs before to perform a request.
            </action>
            <action type="fix" dev="mguillem" issue="2820051">
                Fixed ConcurrentModificationException occurring in invalidation of computed styles when
                an other page tried to access some style information at the same time.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: about:blank (i)frame domain is the one of the container page (FF and IE)
                and same rules apply to set domain (FF only).
            </action>
            <action type="fix" dev="mguillem">
                CSS: invalidate style of child elements when node attribute is changed.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: read only properties can't be written (FF3 only).
            </action>
            <action type="fix" dev="mguillem" issue="2815674">
                JavaScript: parseFloat trim leading new line signs.
            </action>
            <action type="fix" dev="mguillem" issue="2766583">
                Incorrect HTML: move DIV within TABLE before the TABLE.
            </action>
            <action type="fix" dev="mguillem" issue="2802096">
                HtmlPage.asXml(): don't escape XML special characters when style node contains an XML comment.
            </action>
            <action type="fix" dev="sdanig" issue="2815823">
                Correctly fire load events attached to script nodes via addEventListener (FF only).
            </action>
            <action type="fix" dev="sdanig" issue="2815905">
                JavaScript: document.namespaces can be used as a function (IE only).
            </action>
            <action type="fix" dev="sdanig" issue="2815903">
                Fix NullPointerException thrown for script tags referencing a resource that returns a 204 (No Content) response.
            </action>
            <action type="fix" dev="sdanig" issue="2808901">
                JavaScript: add support for the window.onbeforeunload attribute.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for textarea.rows and textarea.cols attributes.
            </action>
            <action type="fix" dev="sdanig">
                Some CSS properties are inherited from parent elements (computed styles only).
            </action>
            <action type="fix" dev="asashour" issue="2811607">
                JavaScript: form submission should consider event.preventDefault() (FF only).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: make dummy implementation of HtmlDocument.elementFromPoint available for FF as well.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for the colSpan, rowSpan, noWrap, axis and abbr attributes on td and th elements.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for the bgColor attribute on table, tr, td and th elements.
            </action>
            <action type="add" dev="asashour" issue="2799316">
                Add support for Proxy Auto-Config.
            </action>
            <action type="fix" dev="sdanig" issue="2808520">
                JavaScript: call onbeforeunload handler when TopLevelWindow.close() is called.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: reserve the duplicate ID attribute behavior on changing other attributes.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for attributes align, vAlign, ch and chOff for thead, tbody, tfoot, tr, td, and th elements.
            </action>
            <action type="fix" dev="asashour" issue="2807135">
                CSS: properly handle 'lang' condition.
            </action>
            <action type="fix" dev="asashour">
                Handle HTML pages with empty 'Content-Type' HTTP header.
            </action>
            <action type="fix" dev="sdanig" issues="2803378">
                Handle 204 (No Content) HTTP responses correctly.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: implement TextRange.inRange (IE only).
            </action>
            <action type="fix" dev="sdanig" issues="2804850">
                Check meta tags inside HTML pages for encoding information.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for br.clear attribute.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for option.form, legend.form, object.form and label.form attributes.
            </action>
            <action type="fix" dev="sdanig" issues="2515806">
                Add better support for XHTML pages (new XHtmlPage class extends HtmlPage class).
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for fieldSet.form and fieldSet.align attributes.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for body.aLink, body.background, body.bgColor, body.link, body.text and
                body.vLink attributes.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for attr.isId attribute (Firefox 3 only).
            </action>
            <action type="fix" dev="sdanig" issues="2794667">
                Update page URL when navigating to a local anchor.
            </action>
            <action type="fix" dev="sdanig" issues="1337174">
                JavaScript: implement placeholder functions history.back(), history.forward() and history.go().
            </action>
            <action type="fix" dev="asashour">
                JavaScript: fix setting select.value.
            </action>
            <action type="update" dev="asashour" issues="2129288">
                Extending NodeList to implement List&lt;E extends DomNode&gt;.
            </action>
            <action type="fix" dev="asashour" issues="2800211">
                JavaScript: fix document.referrer.
            </action>
            <action type="update" dev="asashour">
                JavaScript: fix document.createAttribute().
            </action>
            <action type="update" dev="asashour" issues="2799550">
                HtmlObject: "classid" is supported (using Jacob).
            </action>
            <action type="add" dev="asashour" issues="2674431">
                HtmlSelect: add .getOptionByText().
            </action>
            <action type="add" dev="asashour" issues="2486331">
                HtmlPage and HtmlImage: add .save().
            </action>
            <action type="update" dev="asashour">
                Change default value for "Accept-Language" HTTP header to "en-us".
            </action>
            <action type="fix" dev="asashour" issue="2794061">
                HtmlForm: properly handle 'action' which starts with a question mark.
            </action>
            <action type="update" dev="asashour">
                Deprecate WebRequestSettings.addAdditionalHeader() and HtmlPage.getFirstAnchorByText().
            </action>
            <action type="fix" dev="asashour" issue="2792033">
                Handle XmlPage with NO_CONTENT HTTP status.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: option.selected does not necessarily mean there is 'selected' attribute.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: correct attribute .firstChild and .lastChild (FF only).
            </action>
            <action type="fix" dev="mguillem" issue="2789325">
                IE Conditional comments: handle comments with invalid expressions as plain text.
            </action>
            <action type="fix" dev="mguillem" issue="2784679">
                JavaScript: handle multiple conditional compilation comments (IE only).
            </action>
            <action type="update" dev="asashour">
                JavaScript: document.getElementById() should be case insensitive (IE only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: body element of a frame has to be null while loading only as long as nothing has been loaded (IE only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: initially implement properties of HTMLMetaElement.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for iframe.width and iframe.height properties.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add element.document (IE only).
            </action>
            <action type="add" dev="asashour">
                WebRequestSettings: add .removeAdditionalHeader() and make headers case-insensitive.
            </action>
            <action type="add" dev="asashour">
                JavaScript: implement xmlDocument.createElementNS() (FF only).
            </action>
            <action type="fix" dev="asashour">
                JavaScript: 'class' attribute should be trimmed (FF only).
            </action>
            <action type="fix" dev="asashour">
                JavaScript: fix properties defined in super objects (IE only),
                            and fix .getAttribute() and .getAttributeNode().
            </action>
            <action type="fix" dev="mguillem" issue="2783489">
                Parser: don't recognize &amp;prod as incomplete entity.
            </action>
            <action type="fix" dev="mguillem" issue="2783950">
                JavaScript: fix incorrect escaping of backslash in replacement for String.replace(String, String).
            </action>
            <action type="add" dev="asashour" issue="2786813">
                JavaScript: primitive implementation of canvas (FF only).
            </action>
            <action type="fix" dev="asashour">
                JavaScript: better implementation for "node's attributes collection is never empty for IE".
            </action>
            <action type="fix" dev="asashour">
                JavaScript: option.value should not be affected by the text content (IE only).
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for caption.align (IE and FF) and caption.vAlign (IE only).
            </action>
            <action type="add" dev="sdanig">
                Add WebClient.getTopLevelWindows().
            </action>
            <action type="fix" dev="asashour">
                Ignore content-type meta tag if HTTP header is specified.
            </action>
            <action type="update" dev="asashour">
                WebResponse: Deprecate .getContentCharSet(), .getRequestMethod(), and .getRequestUrl().
                Add .getContentCharset() and .getContentCharsetOrNull().
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: add support for selection.empty() and selection.type (IE only).
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: setInterval() invocations with a 0 millisecond delay behave like setTimeout() invocations in IE.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for the col.align, col.vAlign, col.span, col.width, col.chOff and col.ch attributes.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for input.accessKey, label.accessKey, anchor.accessKey, button.accessKey,
                legend.accessKey, textarea.accessKey and area.accessKey (Firefox only).
            </action>
            <action type="remove" dev="asashour">
                Deprecation: remove HtmlAttr, XmlElement, BrowserVersion.INTERNET_EXPLORER_6_0, .isNetscape(), getNickName(),
                DomAttr.getHtmlValue(), .getAttributeValue(),
                HtmlElement.isAttributeDefined(), .getAttributesCollection(), .getHtmlElementById(), .getHtmlElementsByAttribute(),
                HtmlPage.createHtmlElement(), WebResponse.getLoadTimeInMilliSeconds(), .getResponseBody(), and .getUrl().
            </action>
        </release>
        <release version="2.5" date="Apr 21, 2009" description="Bugfixes, MooTools support, support all HTML elements and various JavaScript properties">
            <action type="update" dev="asashour">
                Upgrade HtmlUnit-core-js to 2.5.
            </action>
            <action type="update" dev="asashour">
                Upgrade NekoHtml to 1.9.12.
            </action>
            <action type="fix" dev="mguillem" issue="2768942">
                JavaScript: fix ClassCastException setting or reading property readOnly of HtmlTextAreaElement.
            </action>
            <action type="update" dev="mguillem" issue="2767841">
                JavaScript: added support for HTMLTableRowElement.deleteCell.
            </action>
            <action type="update" dev="mguillem">
                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.
            </action>
            <action type="add" dev="sdanig">
                Add HtmlPage.getElementByName(String) method.
            </action>
            <action type="fix" dev="mguillem" issue="2192395">
                Remove leading "../" (if any) when resolving URLs.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: don't try to instantiate applets accessed by JavaScript when applet support is disabled.
            </action>
            <action type="fix" dev="mguillem">
                HtmlOption: handle markup in nested content when it has to be used as default value.
            </action>
            <action type="fix" dev="mguillem">
                HtmlOption.asText(): no need to consider label attribute.
            </action>
            <action type="fix" dev="mguillem">
                HtmlOption: label attribute should not be considered in asText().
            </action>
            <action type="fix" dev="asashour" issue="2722972">
                JavaScript: dynamically created iframe should load external scripts.
            </action>
            <action type="fix" dev="asashour" issue="2723086">
                HtmlPage: getFullyQualifiedUrl() should be relative to page of the top window.
            </action>
            <action type="add" dev="mguillem">
                (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).
            </action>
            <action type="add" dev="sdanig">
                Add DomNode.isDisplayed() to the public API.
            </action>
            <action type="add" dev="sdanig">
                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.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for reading and writing the base.href and base.target properties.
            </action>
            <action type="fix" dev="sdanig" issue="2706760">
                JavaScript: window.event should be available during execution of script.onreadystatechange handler (IE only).
            </action>
            <action type="fix" dev="asashour" issue="2704664">
                JavaScript: element.getElementsByTagNameNS() can accept null 'namespaceURI'.
            </action>
            <action type="fix" dev="sdanig" issue="2697650">
                Correctly initialize style attribute of images created via JavaScript.
            </action>
            <action type="fix" dev="sdanig" issue="2672376">
                JavaScript: add support for 'oninput' events on text inputs (Firefox only).
            </action>
            <action type="fix" dev="asashour" issue="2688241">
                JavaScript: window.open() can accept numeric name.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: in an XMLHttpRequest handler, 'this' is the handler when simulating FF2 and the XHR otherwise.
            </action>
            <action type="fix" dev="mguillem">
                ToplevelWindow.close() deregisters sub-frames.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: add support for window.length.
            </action>
            <action type="fix" dev="asashour" issue="2665820">
                HtmlForm: submit to the same page if 'action' attribute is not defined.
            </action>
            <action type="fix" dev="mguillem" issue="2630555">
                Apply ScriptPreProcessor to window.eval().
            </action>
            <action type="fix" dev="mguillem">
                HtmlPage.asXml(): expand empty UL and OL nodes to make generated XML readable as HTML on browsers.
            </action>
            <action type="update" dev="mguillem" issue="2531218">
                Upgrade HtmlUnit-core-js to 2.5 (corresponds to head of Rhino branch 1.7R2 from Dec 12, 2008 + fix for Rhino issue 477604).
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: add support for selection.getRangeAt() (Firefox only).
            </action>
            <action type="fix" dev="sdanig" issue="2658249">
                JavaScript: add support for CSSImportRule.
            </action>
            <action type="fix" dev="sdanig" issue="1813007">
                Make password inputs listen to event.preventDefault().
            </action>
            <action type="fix" dev="sdanig" issue="2643655">
                JavaScript: calling event.stopPropagation() shouldn't preclude using multiple event listeners of the same
                type on a single node.
            </action>
            <action type="fix" dev="sdanig" issue="2643655">
                JavaScript: add support for event.cancelBubble in Firefox emulation mode (already present in IE emulation mode).
            </action>
            <action type="fix" dev="sdanig" issue="2643655">
                JavaScript: setting event.returnValue=false should abort the event (IE only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support form.item() (IE only).
            </action>
            <action type="fix" dev="sdanig" issue="2603370">
                When a form is submitted via JavaScript (form.submit()), form submittal should not actually occur until
                after the current script finishes executing.
            </action>
            <action type="fix" dev="sdanig" issue="2515756">
                Fix content type sniffing for local XHTML files.
            </action>
            <action type="fix" dev="sdanig" issue="2515873">
                Fix case-sensitivity of XPath expressions for XHTML documents that are served as 'text/xml'.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: add support for the window.onerror attribute.
            </action>
            <action type="fix" dev="sdanig" issue="2602044">
                JavaScript: document functions should be usable without a reference to the document (IE only).
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for element.clearAttributes() and element.mergeAttributes() (IE only).
            </action>
            <action type="fix" dev="sdanig" issue="2638813">
                JavaScript: handle invalid back references in string.replace(...) as if they were escaped.
            </action>
            <action type="fix" dev="mguillem" issue="2636581">
                JavaScript: remove objects created by Rhino in window scope like 'com' that aren't available in browsers.
            </action>
            <action type="update" dev="asashour" issue="2624738">
                JavaScript: process false return value of handlers added by .attachEvent() or .addEventListener().
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: make prototype available on DOM nodes as __proto__ (FF only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: hide standard Object and Array functions that don't exist on IE.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: Expand support for document.namespaces collection.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: XMLSerializer should properly handle Document.
            </action>
            <action type="fix" dev="mguillem" issue="2615817">
                JavaScript: Date.getYear() returns four digits for years before 1900 and after 1999 when simulating IE.
            </action>
            <action type="fix" dev="asashour" issue="2603370">
                JavaScript: single submission of form if onclick handler of HTMLSubmitInput also submits the form.
            </action>
            <action type="update" dev="asashour" issue="2602044">
                Add default value for "Accept" and "Accept-Language" HTTP headers.
            </action>
            <action type="add" dev="asashour" issue="2602044">
                JavaScript: add support for HTMLElement.removeNode().
            </action>
            <action type="update" dev="asashour">
                JavaScript: move removeAttribute() from HTMLElement to Element.
            </action>
            <action type="update" dev="asashour">
                JavaScript: element.doScroll() should throw an exception if page is not yet loaded.
            </action>
            <action type="fix" dev="asashour" issue="2526045">
                JavaScript: fix the return value of node.insertBefore().
            </action>
            <action type="fix" dev="sdanig" issue="2511851">
                JavaScript: fix behavior when document.cookie is set to an empty string or a string without an '=' character.
            </action>
            <action type="fix" dev="asashour" issue="2501217">
                JavaScript: fix element.parentElement if the parent is DocumentFragment.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: anchor's href attribute is empty string when no href was specified.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: custom RegExp proxy now ignores back references in character class as browsers do.
            </action>
            <action type="fix" dev="bradclarke">
                Correct JavaScript parent scope after using WebClient.setCurrentWindow.
            </action>
            <action type="add" dev="asashour" issue="2509952">
                JavaScript: add support for Enumerator (IE only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: custom RegExp proxy now accepts unescaped opening square brackets in character class.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add support for HTMLDocument.dispatchEvent (FF only).
            </action>
            <action type="update" dev="asashour" issue="2520971">
                JavaScript: properties of XMLHttpRequest ActiveX object are case insensitive.
            </action>
            <action type="fix" dev="sdanig">
                Allow numbers with decimal points in refresh meta tags.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: XMLHttpRequest is supported in IE7.
            </action>
            <action type="fix" dev="sdanig">
                Fail gracefully when script tags contain empty 'src' attributes.
            </action>
            <action type="fix" dev="sdanig">
                Make the cookie manager thread-safe.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: setting anchor.hash should accept values both with and without the '#' character.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: values returned by anchor.hash should include the '#' character.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for HTMLElement.dir, .lang, .tabIndex and .spellcheck.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for window.atob() and btoa().
            </action>
            <action type="fix" dev="mguillem" issue="2528830">
                JavaScript: compute URL relatively to owning page for showModelessDialog and showModalDialog.
            </action>
            <action type="fix" dev="mguillem" issue="2503965">
                IE Conditional comments: accept expressions that contain identifier other than IE (like mso).
            </action>
            <action type="fix" dev="sdanig" issue="2484753">
                If content-type meta tags contain empty encoding information, ignore it and use the default encoding.
            </action>
            <action type="update" dev="asashour" issue="2502817">
                Ignore namespaces if the tag name does not have a prefix.
            </action>
            <action type="update" dev="asashour" issue="2501193">
                DomElement.getElementsByTagName() should search in only sub-elements.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for document.createComment().
            </action>
            <action type="update" dev="asashour">
                Deprecate ClickableElement and StyledElement, directly use HtmlElement instead.
            </action>
            <action type="add" dev="asashour" issue="2495285">
                JavaScript: add initial support for TextRange.moveStart() and .moveEnd().
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add support for document.getElementsByClassName and HTMLElement.getElementsByClassName (FF3 only).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: document.execCommand doesn't throw an exception when called with unknown command (FF3 only).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: document.scripts doesn't exist for FF.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: when simulating Firefox, document.write(ln) returns the function,
                no matter if elements with this name are present or not.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: document.createEvent doesn't initialize the target property under FF3.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: document.all('notExisting') returns undefined for FF.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: tags property exists on collections for FF2 but not for FF3.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: prototype should not be enumerated (FF).
            </action>
            <action type="update" dev="asashour">
                JavaScript: IE does not enumerate objects methods.
            </action>
            <action type="update" dev="asashour">
                BrowserVersion: deprecate setJavaScriptVersion(), getJavaScriptVersion() and getJavaScriptVersionNumeric().
            </action>
            <action type="update" dev="sdanig">
                Replace ThreadManager with JavaScriptJobManager, which internally uses the executor services provided by JDK 5.
            </action>
            <action type="add" dev="asashour">
                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.
            </action>
            <action type="remove" dev="asashour">
                Deprecation: remove XmlAttr, SubmitMethod, WebRequestSettings.setURL(), and
                WebClient methods: setCookiesEnabled(), setProxyHost(), setProxyPort(), addHostsToProxyBypass(),
                and removeHostsFromProxyBypass().
            </action>
        </release>
        <release version="2.4" date="Dec 30, 2008" description="Bugfixes, ActiveX support, JQuery &amp; MochiKit support, minimal applet support, IE conditional comments">
            <action type="update" dev="mguillem">
                Upgrade HtmlUnit-core-js to 2.4 (corresponds to head of Rhino branch 1.7R2 from Dec 12, 2008).
            </action>
            <action type="update" dev="asashour">
                Upgrade NekoHtml to 1.9.11.
            </action>
            <action type="add" dev="asashour">
                Add support for HtmlEmbed, HtmlCanvas and HtmlWordBreak.
            </action>
            <action type="fix" dev="asashour" issue="2421302">
                JavaScript: correct the return value of EventNode.fireEvent().
            </action>
            <action type="update" dev="mguillem">
                JavaScript: add dummy implementation for TextRange methods collapse and select (IE).
            </action>
            <action type="fix" dev="mguillem" issue="2438622">
                JavaScript: replace \n with \r\n for property defaultValue of HtmlTextAreaElement (IE) and ignore leading new line sign.
            </action>
            <action type="fix" dev="mguillem" issue="2314485">
                JavaScript: frame window object retrieved through should be live and reflect page loads in the window.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: do not throw exception on invalid regular expressions.
            </action>
            <action type="add" dev="mguillem">
                Support for IE conditional comments in HTML code.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: removeAttribute should delete node property too (IE only),
                getAttribute returns property if no attribute is found (IE only).
            </action>
            <action type="fix" dev="mguillem" issue="2214332">
                JavaScript: fixed exception occurring while accessing src property of freshly created Image object.
            </action>
            <action type="fix" dev="mguillem" issue="2393355">
                HtmlPage.asXml(): expand empty table nodes to make generated XML readable as HTML on browsers.
            </action>
            <action type="fix" dev="mguillem">
                HtmlTextArea.type(...) should not trigger onchange handler.
            </action>
            <action type="fix" dev="mguillem" issue="2382872">
                Delay execution of image onload handlers after the page finish to load.
            </action>
            <action type="add" dev="mguillem">
                First experiments to support applets.
            </action>
            <action type="update" dev="mguillem">
                100% success with MochiKit unit tests.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: HTMLElement.filters is not undefined (IE only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: offsetParent is undefined for detached nodes.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HTMLHtmlElement's clientWidth and clientHeight gives the available screen size.
            </action>
            <action type="fix" dev="mguillem">
                CSS: font-size is inherited.
            </action>
            <action type="fix" dev="mguillem">
                CSS: parse shorthand background to find background color.
            </action>
            <action type="fix" dev="mguillem">
                CSS: parse individual border width from borderWidth.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: add dummy implementation for HTMLElement's clientLeft and clientTop.
            </action>
            <action type="update" dev="asashour">
                Deprecate HtmlPage.getHtmlElementByAccessKey(), HtmlPage.getHtmlElementsByAccessKey(),
                HtmlPage.getHtmlElementsByName(), HtmlPage.getHtmlElementsByIdAndOrName(),
                HtmlElement.getHtmlElementsByAttribute() and HtmlElement.getHtmlElementById().
            </action>
            <action type="update" dev="mguillem">
                Deprecate DomElement methods getAttributeValue, setAttributeValue.
                Usage of DOM 2 methods getAttribute, getAttributeNS, setAttribute and setAttributeNS is preferred.
            </action>
            <action type="update" dev="asashour">
                Deprecate XmlPage.getDocumentXmlElement(), HtmlPage.createHtmlElement() and createHtmlElementNS().
            </action>
            <action type="fix" dev="asashour">
                Document and Element.getElementsByTagName() should not be affected by namespaces.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: node's attributes collection is never empty for IE.
            </action>
            <action type="add" dev="asashour" issue="2318054" due-to="Mirko Friedenhagen">
                JavaScript: add support for Comment object.
            </action>
            <action type="fix" dev="sdanig" issue="2318508">
                JavaScript: prototype for event handlers should be the function prototype.
            </action>
            <action type="update" dev="sdanig" issue="2024729">
                JavaScript: add support for document.captureEvents (FF).
            </action>
            <action type="fix" dev="asashour" issue="2316809">
                JavaScript: fix option.text.
            </action>
            <action type="add" dev="sdanig" issue="2124916">
                JavaScript: add support for window.showModalDialog() and window.showModelessDialog().
            </action>
            <action type="fix" dev="asashour" issue="2315783">
                JavaScript: support Text object.
            </action>
            <action type="fix" dev="asashour">
                HtmlInput: typing enter should behave as clicking submit input.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for document.applets.
            </action>
            <action type="add" dev="sdanig" issue="1693272">
                JavaScript: add support for getting and setting the image.onload attribute.
            </action>
            <action type="add" dev="sdanig" issue="1693272">
                If an image has an onload handler, download the image and then invoke the onload handler.
            </action>
            <action type="add" dev="sdanig" issue="1829981">
                JavaScript: add support for elements.nextNode() and elements.reset() for the element collection returned
                by XmlDocument.selectNodes(...) (IE only).
            </action>
            <action type="fix" dev="asashour">
                JavaScript: fix setting input.type if it is the first child.
            </action>
            <action type="fix" dev="sdanig" issue="2024619">
                When querying elements for namespaced attributes, don't fall back to returning non-namespaced attributes.
            </action>
            <action type="add" dev="sdanig" issue="2024619">
                JavaScript: add support for element.removeAttributeNS() (FF only).
            </action>
            <action type="add" dev="mguillem">
                JavaScript: dummy support for XUL element in HtmlDocument.createElementNS (FF only).
            </action>
            <action type="add" dev="mguillem">
                JavaScript: window.controllers is not null (FF only).
            </action>
            <action type="fix" dev="asashour">
                JavaScript: IE ignores empty text children.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for document.queryCommandEnabled().
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add partial support for window.getSelection() (FF only).
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: element.style.opacity only accepts numeric values when emulating FF.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: fix element.style.display default values when emulating IE.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: element.style length-related attributes should be converted to pixels (FF only).
            </action>
            <action type="fix" dev="asashour" issue="2229862">
                JavaScript: postpone the execution of setting 'location.href'.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: select.appendChild(option), .add(), and insertBefore() should update .selectedIndex.
            </action>
            <action type="fix" dev="asashour" issue="2214332">
                Silently ignore HTTP Status code "USE_PROXY" (305), and treat it as success.
            </action>
            <action type="fix" dev="asashour">
                XPath: proper handling of upper cased HTML elements.
            </action>
            <action type="add" dev="mguillem">
                Implemented DomNode#compareDocumentPosition and add Node.compareDocumentPosition (FF only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for element.contains() (IE only).
            </action>
            <action type="fix" dev="sdanig" issue="2262599">
                JavaScript: element.innerHTML should quote anchor href attributes and empty attributes when emulating IE.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: In certain cases, node collections were returning elements when inexistent attributes were accessed.
            </action>
            <action type="fix" dev="sdanig">
                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.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: make sure element.offsetWidth is constrained by the element's parent's dimensions.
            </action>
            <action type="fix" dev="sdanig">
                CSS rules specified in stylesheets should not override CSS rules specified directly in an element's "style" attribute.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: implement element.style.pixelLeft, pixelRight, pixelTop and pixelBottom (IE only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: fire onchange for &amp;lt;input type='file' ...&amp;gt; when field loses focus and value has been changed.
            </action>
            <action type="fix" dev="mguillem" issue="2136816">
                JavaScript: fire focus event not only on &amp;lt;input ...&amp;gt;.
            </action>
            <action type="add" dev="mguillem" issue="2060645" due-to="Mike Dirolf">
                Add support for HTMLDocument.createTreeWalker (FF only).
            </action>
            <action type="add" dev="asashour" issue="2192292">
                Add support for 'deflate' Content-Encoding.
            </action>
            <action type="update" dev="mguillem">
                HtmlPage.asXml(): expand empty style nodes to make generated XML readable as HTML on Firefox 3.
            </action>
            <action type="fix" dev="asashour" issue="2187741">
                HtmlTextInput: type() should remove selected text().
            </action>
            <action type="add" dev="asashour" issue="2187687">
                JavaScript: add support for document.uniqueID (IE only).
            </action>
            <action type="update" dev="sdanig" issue="2089599">
                Made static WebClient methods getJavaScriptTimeout() and setJavaScriptTimeout() non-static, so
                that they can be configured on a per-WebClient basis.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for document.compatMode.
            </action>
            <action type="add" dev="asashour">
                HtmlInput: add isReadOnly() and setReadOnly().
            </action>
            <action type="fix" dev="asashour">
                JavaScript: node.appendBefore() should run added script element.
            </action>
            <action type="fix" dev="asashour" issue="2178172" due-to="Marco Cova">
                Set 'referer' header and other additional headers on loading external JavaScript files.
            </action>
            <action type="fix" dev="asashour" issue="2174320">
                JavaScript: window.frames should return the ones with id attribute (IE only).
            </action>
            <action type="add" dev="asashour">
                Add support for DocumentType.
            </action>
            <action type="update" dev="mguillem" issue="1509340">
                Better formatting for asText() particularly with new lines for TR, BR or LI and tabs between cells.
            </action>
            <action type="fix" dev="asashour" issue="2043322">
                HtmlElement: correctly handle getNodeName().
            </action>
            <action type="fix" dev="asashour">
                JavaScript: correctly handle element.nodeName, .tagName, .prefix, .localName, and .namespaceURI.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for document.namespaces (IE only).
            </action>
            <action type="fix" dev="asashour">
                JavaScript: Firefox doesn't support select.options.childNodes.
            </action>
            <action type="update" dev="asashour">
                XmlElement: is deprecated, use DomElement instead.
            </action>
            <action type="update" dev="asashour">
                HtmlElement: deprecate getAttributesCollection() and isAttributeDefined().
            </action>
            <action type="update" dev="asashour" issue="2129180">
                BrowserVersion: deprecate INTERNET_EXPLORER_6_0 and INTERNET_EXPLORER_7_0.
            </action>
            <action type="fix" dev="asashour" issue="2136953" due-to="David Bylsma">
                JavaScript: document.cookie should overwrite existing cookie.
            </action>
            <action type="update" dev="asashour" issue="2129180">
                Upgrade Xalan to 2.7.1
            </action>
            <action type="fix" dev="asashour">
                FrameWindow: should be Serializable.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: postpone the execution of dynamically added external scripts.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: correct script.onreadystatechange behavior for external JavaScript files.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: add support for script.onload (FF only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: Attr.specified queries owner node for attribute's existence.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HtmlOptionsElement.getAttributeNode returns a node for attributes "id", "value" and "selected"
                even if these attributes weren't specified in HTML code (IE only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HtmlOptionsCollection delegates to enclosing select for FF as well.
            </action>
            <action type="fix" dev="asashour" issue="2116569">
                HtmlSelect: removeOption() and replaceOption() to inspect only HtmlOption children.
            </action>
            <action type="update" dev="asashour">
                Upgrade JUnit to 4.5.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: fireEvent calls handlers with received event object rather than with a copy (IE only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: trigger deferred scripts' onreadystatechange handler before onload event (IE only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: constant values like TEXT_NODE on elements are not available when simulating IE.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: objects like HTMLElement don't have a their prototype property in their prototype chain (FF only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: use 'className' instead of 'class' to get/set class attribute (IE only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: Node.getAttributeNode returns null if no attribute exists with the specified name.
            </action>
            <action type="fix" dev="asashour" issue="2105645">
                Form element can be included as HTML inside XML.
            </action>
            <action type="fix" dev="mguillem" issue="2124854">
                JavaScript: fix incorrect value of CSSStyleRule.selectorText when identified by id (like "#foo").
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: define properties altKey, ctrlKey and shiftKey on UIEvent when simulating Firefox.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: use UIEvent for keyboard events.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: cloneNode copies event handlers when simulating IE.
            </action>
            <action type="update" dev="asashour">
                Better generics: avoid the need for casting when calling HtmlElement.getHtmlElementById(),
                HtmlForm.getInputByName(), and .getInputByValue().
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: implemented workaround for NPE in CSSParser in some usage of CSSStyleSheet.insertRule.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: finished implementation of insertRule (FF) and addRule (IE) on CSSStyleSheet.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: CSSStyleRule.selectorText should return values like ".foo" rather than "*.foo".
            </action>
            <action type="remove" dev="asashour">
                Deprecation: remove HtmlUnitXPath class, DomNode.getXXXDomYYY(), HtmlPage.getDocumentHtmlElement(),
                HtmlPage.moveFocusToElement(), HtmlPage.getFocusedElement(), WebClient.popFirstWindow(),
                and WebClient.pushClearFirstWindow().
            </action>
            <action type="add" dev="asashour">
                ActiveX: add support for native ActiveX controls (using Jacob).
            </action>
            <action type="update" dev="sdanig">
                WebResponse interface: deprecate getResponseBody() in favor of getContentAsByteArray(),
                deprecate getLoadTimeInMillSeconds() in favor of getLoadTime(), deprecate getUrl() in
                favor of getRequestUrl(), add getContentAsString(String).
            </action>
        </release>
        <release version="2.3" date="Sept 16, 2008" description="Bugfixes, better generics, add Firefox 3 emulation, GWT 1.5 support">
            <action type="update" dev="asashour">
                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.&amp;lt;HtmlElement&amp;gt;getHtmlElementById("foo").asText()'
                (or assigning the result of the 'getHtmlElementById("foo")' call to an intermediate variable).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: replace \n with \r\n for value property of HtmlTextAreaElement (IE) and ignore leading new line sign.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: document.cookie value to be surrounded by double quotes if it contains space.
            </action>
            <action type="update" dev="asashour">
                CookieManager: process server-side cookies.
            </action>
            <action type="fix" dev="sdanig">
                Avoid NullPointerException when iframe.src is a "javascript:..." URL and JavaScript has been disabled.
            </action>
            <action type="fix" dev="sdanig" issue="2088921">
                JavaScript: add doScroll() method to bodies, divs, spans and textareas (IE only).
            </action>
            <action type="fix" dev="asashour">
                HtmlTextArea: replace new lines with '%0D%0A' and remove first occurrence in form submission.
            </action>
            <action type="fix" dev="sdanig" issue="2101735">
                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.
            </action>
            <action type="add" dev="sdanig" issue="2065694">
                Allow custom CSS error handlers (via WebClient.getCssErrorHandler() and WebClient.setCssErrorHandler())
                and provide two error handler implementations out of the box (DefaultCssErrorHandler and
                SilentCssErrorHandler).
            </action>
            <action type="update" dev="asashour">
                Upgrade NekoHtml to 1.9.9.
            </action>
            <action type="fix" dev="asashour" issue="2105645">
                Select element can be included as HTML inside XML.
            </action>
            <action type="fix" dev="asashour" issue="2021810">
                JavaScript: setting select.selectedIndex should not change page focus.
            </action>
            <action type="add" dev="mguillem">
                Add facility method WebClient.closeAllWindows().
            </action>
            <action type="fix" dev="sudhan_moghe">
                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.
            </action>
            <action type="fix" dev="sudhan_moghe">
                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.
            </action>
            <action type="fix" dev="sudhan_moghe">
                JavaScript: Make innerText property read only for following elements html, table, tbody,
                tfoot, thead, tr. FF do not have the property.
            </action>
            <action type="add" dev="sudhan_moghe">
                JavaScript: Add support for title.text.
            </action>
            <action type="update" dev="asashour">
                WebRequestSettings: Add trailing slash to any URL that contains only hostname (with or without port).
            </action>
            <action type="update" dev="sdanig">
                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.
            </action>
            <action type="add" dev="sdanig" issue="1965338">
                Add CookieManager class which can be used to manage cookies on a per-WebClient basis.
            </action>
            <action type="fix" dev="sdanig" issue="2060931">
                Fix condition where CSS warnings and errors did not have a systemID to easily identify error origin.
            </action>
            <action type="fix" dev="mguillem">
                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.
            </action>
            <action type="update" dev="asashour" issue="2098021" due-to="Darrell DeBoer">
                XMLSerializer: includes attributes from HTMLElements.
            </action>
            <action type="remove" dev="asashour">
                XmlAttr: remove deprecated constructor with Map.Entry.
            </action>
            <action type="fix" dev="asashour" issue="2093427">
                ThreadManager: add WebWindow name to the background threads name.
            </action>
            <action type="fix" dev="asashour" issue="2091788">
                XmlPage: ClassCastException should not be thrown by .getByXPath().
            </action>
            <action type="fix" dev="mguillem" issue="1985241">
                JavaScript: trigger focus event when clicking an element or typing in it.
            </action>
            <action type="fix" dev="mguillem" issue="2013891">
                JavaScript: trigger mousedown and mouseup event when an element is clicked.
            </action>
            <action type="fix" dev="sdanig" issue="2070940">
                JavaScript: make document.styleSheets[x] respect WebClient.printContentOnFailingStatusCode
                and WebClient.throwExceptionOnFailingStatusCode settings when downloading external CSS files.
            </action>
            <action type="fix" dev="sdanig" issue="2089341">
                JavaScript: StackOverflowError when setting the location hash via the location.href attribute.
            </action>
            <action type="add" dev="sdanig" issue="2063012">
                JavaScript: add stylesheet.href attribute.
            </action>
            <action type="fix" dev="mguillem" issue="1729195">
                Don't parse &amp;lt;noscript&amp;gt; content when JavaScript is enabled.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: document.XXX allow to access forms by id (IE only).
            </action>
            <action type="fix" dev="mguillem" issue="2037685">
                JavaScript: silently ignore script nodes with event="..." for="..." when the target element can't be found (IE only).
            </action>
            <action type="fix" dev="mguillem" issue="2014596">
                JavaScript: copy dynamic properties from template in fireEvent (IE only).
            </action>
            <action type="fix" dev="mguillem" issue="2025912">
                JavaScript: fixed event order when setting the value of a text field.
            </action>
            <action type="fix" dev="mguillem" issue="2062406">
                JavaScript: escape quotes found in attribute values when accessing through innerHTML.
            </action>
            <action type="update" dev="sdanig">
                Make IE7 the default BrowserVersion (was IE6).
            </action>
            <action type="add" dev="sdanig">
                Add BrowserVersion for Firefox 3 emulation.
            </action>
            <action type="fix" dev="mguillem" issue="2060550">
                Fixed NullPointerException occurring document.styleSheets[x] with out of bound index.
            </action>
            <action type="fix" dev="sudhan_moghe" issue="2052115" due-to="Ethan Glasser-Camp">
                Fixed NullPointerException occurring in HtmlPage.writeInParsedStream() when document.write is called after setting innerHTML of some element in page.
            </action>
            <action type="fix" dev="asashour" issue="2043322">
                HTMLParser: now considers namespaces.
            </action>
            <action type="fix" dev="asashour" issue="2042339">
                HtmlElement: asText() respects hidden visibility style attribute.
            </action>
            <action type="fix" dev="sdanig">
                Add missing equals() methods to the PluginConfiguration and PluginConfiguration.MimeType classes.
            </action>
            <action type="fix" dev="sudhan_moghe" issue="2027723" due-to="Martin Tamme">
                WebClient.expandUrl doesn't handle references correctly.
            </action>
            <action type="fix" dev="sdanig" issue="2024741">
                Attribute values for cloned nodes were not available via JavaScript.
            </action>
            <action type="add" dev="asashour" issue="2028071">
                JavaScript: add support for navigator.product (FF only).
            </action>
            <action type="update" dev="asashour">
                Upgrade Commons Collections to 3.2.1
            </action>
            <action type="fix" dev="asashour">
                JavaScript: 'window.event' should be preserved after another event firing.
            </action>
        </release>
        <release version="2.2" date="Jul 24, 2008" description="Numerous bugfixes (handling of ill formed HTML code, document.write, ...), speed improvements, and move to HtmlUnit-core-js (Rhino fork)">
            <action type="fix" dev="sudhan_moghe" issue="2022578">
                JavaScript: fix endless recursion when innerHTML has script that modifies the innerHTML.
            </action>
            <action type="fix" dev="mguillem" issue="2019665">
                Accept \r and \n for HtmlTextArea.type().
            </action>
            <action type="fix" dev="mguillem">
                Avoid to perform multiple request for the same external stylesheet. Add facility to access referred content
                from HtmlLink.
            </action>
            <action type="fix" dev="sdanig" issue="2014629">
                Fix memory leak of window objects when the windows contain long-running background JavaScript tasks
                scheduled via setInterval() or setTimeout().
            </action>
            <action type="fix" dev="sudhan_moghe" issue="2019116">
                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.
            </action>
            <action type="add" dev="mguillem" issue="2001001" due-to="Andrew_WOT">
                HtmlFileInput: allow to load data from memory.
            </action>
            <action type="add" dev="sudhan_moghe">
                JavaScript: add support for attribute.text and attribute.xml (IE only).
            </action>
            <action type="add" dev="sudhan_moghe" issue="1990842">
                JavaScript: add support for document.activeElement and element.setActive() (IE only).
            </action>
            <action type="update" dev="asashour" issue="1985241">
                Ensure to focus element on calling HtmlElement.type().
            </action>
            <action type="add" dev="asashour" issue="2005930">
                JavaScript: add support for script.text.
            </action>
            <action type="fix" dev="asashour" issue="2006861">
                Fix exception when opening about:blank with Firefox.
            </action>
            <action type="add" dev="sdanig">
                Add classes AttachmentHandler, CollectingAttachmentHandler and Attachment to handle attachments
                outside of the normal page flow (disabled by default for backwards compatibility).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: postponed loading of frame content after script execution when src is set from a script.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: window.execScript() now accepts undefined 'language' (IE only).
            </action>
            <action type="fix" dev="mguillem" issue="1995196" due-to="Sudhan Moghe">
                Fix current window's computation when a window is closed by JavaScript during onload processing.
            </action>
            <action type="fix" dev="asashour" issue="1997280" due-to="Rene Schwietzke">
                ThreadManager: set BrowserVersion of HtmlUnitContextFactory of newly created threads.
            </action>
            <action type="fix" dev="mguillem" issue="1950004" due-to="Sudhan Moghe">
                JavaScript: fix variable scope after document.write.
            </action>
            <action type="fix" dev="mguillem" issue="1990198">
                Parsing: handle quotes in comments correctly within script nodes.
            </action>
            <action type="add" dev="sdanig">
                Cache compiled scripts and parsed stylesheets at the WebClient level.
            </action>
            <action type="update" dev="asashour">
                INCOMPATIBLE CHANGE: HtmlElement.getPage() now returns SgmlPage instead of HtmlPage.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add support for TextRange.duplicate() (IE only).
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add support for property xml on XML DOM nodes (IE only).
            </action>
            <action type="remove" dev="asashour">
                Remove ant build file.
            </action>
            <action type="fix" dev="sdanig">
                Maintain CSS style attribute order, according to document definition.
            </action>
            <action type="fix" dev="mguillem" issue="1990648" due-to="Sudhan Moghe">
                Style attributes in upper case are not recognized.
            </action>
            <action type="fix" dev="mguillem" issue="1678826">
                JavaScript: fixed document.write(ln) handling of &amp;lt;br&amp;gt; and &amp;lt;hr&amp;gt;.
            </action>
            <action type="fix" dev="mguillem" issue="1990313" due-to="Karel Kolman">
                JavaScript: improved document.write(ln) support to add nodes to the right parent.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HTMLDocument.ownerDocument is always null.
            </action>
            <action type="fix" dev="sdanig">
                Fix HtmlTextInput.type(), HtmlTextArea.type() and HtmlPasswordInput.type() to handle backspaces
                correctly.
            </action>
            <action type="fix" dev="sdanig" issue="1822108">
                JavaScript: implemented a workaround for Rhino bug in number primitive resolution (Rhino bug 374918).
            </action>
            <action type="add" dev="sdanig" issue="1900452">
                Move proxy-related methods from WebClient to new class ProxyConfig.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: value of form elements is set before triggering keyUp event (was after).
            </action>
            <action type="update" dev="mguillem" issue="1964258">
                Be more tolerant while extracting charset from incorrect Content-Type header.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: add optionElement.disabled and optionGroupElement.disabled attributes.
            </action>
            <action type="fix" dev="sdanig" issue="1986764">
                HtmlOption.isDisabled() and HtmlOptionGroup.isDisabled() always return false when emulating IE.
            </action>
            <action type="fix" dev="sdanig" issue="1987911">
                Don't lose any custom request headers during redirection.
            </action>
            <action type="fix" dev="mguillem" due-to="Andreas Hartmann">
                Allow PUT request with body content.
            </action>
            <action type="fix" dev="sdanig" issue="1954869">
                Fix extraneous load of frame contents cause by frame node cloning.
            </action>
            <action type="add" dev="sdanig" issue="1982331">
                JavaScript: add support for methods getAttribute(), setAttribute() and removeAttribute() on
                element.style and element.runtimeStyle (IE only).
            </action>
            <action type="fix" dev="sdanig" issue="1976960">
                Fix incorrect handling of conflicting return values in different event handlers during
                event bubbling.
            </action>
            <action type="fix" dev="mguillem">
                Malformed HTML code: associate form elements located before closing form tag to the form
                even if tag balancing forced form to be closed earlier.
            </action>
            <action type="fix" dev="sdanig" issue="1977736">
                Be more lenient about spurious whitespace in node attributes containing relative URLs (image.src,
                script.src, link.href, etc).
            </action>
            <action type="fix" dev="sdanig">
                Fix document.cookie so that it works correctly when loading HTML pages from the local filesystem,
                when there is no real domain available.
            </action>
            <action type="fix" dev="sdanig" issue="1975445">
                Allow calls to WebClient.openWindow() with null URLs.
            </action>
            <action type="add" dev="asashour" issue="1957900">
                JavaScript: add support for onpropertychange event type (IE only).
            </action>
            <action type="fix" dev="mguillem" issue="1969664">
                Fix HtmlPage.getHtmlElementsByIdAndOrName() returns same element twice.
            </action>
            <action type="add" dev="asashour">
                JavaScript: implement textRange.text setter (IE only).
            </action>
            <action type="add" dev="asashour" issue="1955515" due-to="Rodney Gitzel">
                JavaScript: implement style.zIndex.
            </action>
            <action type="fix" dev="sdanig">
                NamedNodeMap instances (element.attributes) are case-insensitive in HTML documents (but not XML documents).
            </action>
            <action type="fix" dev="mguillem" issue="1968708">
                Invalid HTML: when the same attribute appears more than one time, consider the first value rather than the last one.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HtmlInput.type value is always lower case.
            </action>
            <action type="fix" dev="sdanig" issue="1643275">
                Deprecated JavaScriptEngine.get/setTimeout(), added replacement methods WebClient.get/setJavaScriptTimeout().
            </action>
            <action type="fix" dev="sdanig" issue="1951047">
                Fix serialization of HtmlPages (was broken in some scenarios).
            </action>
            <action type="update" dev="mguillem">
                Change license to Apache 2.
            </action>
            <action type="fix" dev="mguillem" issue="1950462">
                Fix IllegalStateException that occured using document.write assigned to a variable (IE only).
            </action>
            <action type="add" dev="asashour">
                HtmlPasswordInput: type() appends text to the value.
            </action>
            <action type="update" dev="mguillem" issue="1964731">
                JavaScript: XMLDocumet.getElementById retrieve elements with HTML namespace (FF only).
            </action>
            <action type="update" dev="mguillem">
                Improved logic to detect the window with the focus.
            </action>
            <action type="add" dev="mguillem" issue="1962847" due-to="Stuart Begg">
                JavaScript: improved behavior of XMLHttpRequest in network error handling.
                Added support for the onError callback (FF only).
            </action>
            <action type="fix" dev="mguillem" issue="1960512">
                Fixed ClassCastException in CSS child selector processing.
            </action>
            <action type="add" dev="mguillem">
                Allow to directly invoke URLs with javascript protocol.
            </action>
            <action type="add" dev="mguillem" issue="1954183">
                Add facilities on HtmlImage to download the referenced image and read it.
            </action>
            <action type="remove" dev="asashour">
                Remove deprecated HtmlPage.executeJavaScriptIfPossible() and WebClient.assertionFailed().
            </action>
            <action type="update" dev="asashour">
                INCOMPATIBLE CHANGE: Replace SubmitMethod with HttpMethod (some methods with incompatible return types).
            </action>
            <action type="add" dev="asashour" issue="1946000">
                HtmlPage: add refresh(), deprecate HttpWebConnection.newWebResponseInstance()
                (replaced with another method with different parameters),
                and deprecate one of WebResponseImpl constructors (with replacement).
            </action>
            <action type="update" dev="asashour">
                WebRequestSettings: deprecate getURL() and setURL(), use getUrl() and setUrl().
            </action>
            <action type="fix" dev="sdanig" issue="1951179">
                JavaScript: don't store cookies when document.cookie is set and cookies are disabled.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for the link.href, link.type and link.rel properties.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: initialize event.target correctly when using createEvent and dispatchEvent (FF only).
            </action>
            <action type="update" dev="asashour">
                DomAttr: deprecate getHtmlValue() and setHtmlValue().
            </action>
            <action type="remove" dev="asashour">
                INCOMPATIBLE CHANGE: HtmlAttr and XmlAttr are no more used, use DomAttr instead.
            </action>
            <action type="fix" dev="asashour" issue="1942640">
                JavaScript: fix XMLElement.attributes.
            </action>
            <action type="update" dev="asashour" issue="1947877" due-to="Sudhan Moghe">
                &amp;lt;span&amp;gt;: empty tag is expanded as required by browsers.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for XMLElement.hasAttribute() (FF only).
            </action>
            <action type="add" dev="asashour" issue="1948777" due-to="Sudhan Moghe">
                JavaScript: add support for HTMLAnchorElement.click().
            </action>
            <action type="fix" dev="sdanig">
                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.
            </action>
            <action type="fix" dev="sdanig">
                Make UTF-8 the default encoding for all XMLHttpRequests.
            </action>
            <action type="fix" dev="sdanig">
                Encode and decode location.hash when emulating Firefox.
            </action>
            <action type="fix" dev="asashour" issue="1946994">
                HtmlPage: cloned page handles XPath.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: Add select.multiple support.
            </action>
            <action type="add" dev="asashour">
                JavaScript: Add initial support for CSSRule and CSSStyleRule.
            </action>
            <action type="add" dev="sdanig" issue="1942334">
                Add WebClient.setCssEnabled(boolean) and WebClient.isCssEnabled().
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: object properties now returned in creation order.
            </action>
            <action type="update" dev="mguillem">
                Use HtmlUnit-core-js (which is a Rhino fork) instead of Rhino.
            </action>
        </release>
        <release version="2.1" date="Apr 15, 2008" description="Performance improvements in CSS processing and a few bug fixes">
            <action type="update" dev="asashour">
                Deprecate HtmlPage.getDocumentHtmlElement().
            </action>
            <action type="add" dev="asashour">
                Add support for DomNode.getTextContent() and setTextContent().
            </action>
            <action type="add" dev="asashour">
                JavaScript: add initial support for CSSRuleList.
            </action>
            <action type="fix" dev="asashour">
                HtmlTextInput and HtmlTextArea: fix type() space.
            </action>
            <action type="update" dev="mguillem" issue="1592733">
                HtmlPage.getReadyState() now synchronized with the information from the documentElement.
            </action>
            <action type="update" dev="sdanig">
                CSS parsing optimization: avoid parsing CSS selectors multiple times.
            </action>
            <action type="update" dev="sdanig">
                Initialize mouse event coordinates lazily, in order to avoid unnecessary CSS processing overhead.
            </action>
            <action type="fix" dev="mguillem" issue="1584437">
                JavaScript: window.open without URL provided returns blank window when simulating Firefox too.
            </action>
            <action type="fix" dev="mguillem" issue="1794764">
                JavaScript: clear existing events handlers when page's content is changed with document.write.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: fixed document.location in pages created with document.write.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: fixed ClassCastException occurring when select() is called on form elements other than
                text inputs.
            </action>
        </release>
        <release version="2.0" date="Apr 7, 2008" description="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, ...)">
            <action type="update" dev="asashour">
                Upgrade NekoHtml to 1.9.7.
            </action>
            <action type="update" dev="asashour">
                Deprecate DomNode non-DOM methods, i.e. getLastDomChild(), getParentDomNode(), getPreviousSibling(),
                getNextDomSibling(), getFirstDomChild() and cloneDomNode().
            </action>
            <action type="update" dev="asashour">
                Deprecate HtmlUnitXPath.
            </action>
            <action type="update" dev="asashour" issue="1931084">
                DomNode: asXml() uses charset from HtmlPage.getPageEncoding().
            </action>
            <action type="update" dev="asashour">
                Upgrade Jetty to 6.1.9.
            </action>
            <action type="update" dev="asashour">
                Upgrade Commons Lang to 2.4.
            </action>
            <action type="update" dev="mguillem">
                Deprecate popFirstWindow and pushClearFirstWindow on WebClient.
            </action>
            <action type="fix" dev="sdanig">
                Add element.offsetParent to FF emulation mode.
            </action>
            <action type="update" dev="sdanig">
                Upgrade CSS Parser to 0.9.5.
            </action>
            <action type="add" dev="mguillem">
                Add initial support for data protocol (Firefox only).
            </action>
            <action type="fix" dev="sdanig">
                Fix element.clientWidth, clientHeight, offsetTop, offsetLeft and offsetParent to reflect CSS configuration.
            </action>
            <action type="add" dev="sdanig">
                In BoxObject, add attributes element, firstChild, lastChild, nextSibling, previousSibling, x, y, width and height.
            </action>
            <action type="fix" dev="sdanig">
                Fix element.offsetWidth and element.offsetHeight to include padding.
            </action>
            <action type="add" dev="asashour">
                Add DomNode.getCanonicalXPath().
            </action>
            <action type="update" dev="asashour">
                Deprecate HtmlPage.moveFocusToElement() and getElementWithFocus(),
                use setFocusedElement() and getFocusedElement().
            </action>
            <action type="update" dev="asashour" due-to="Dmitri Zoubkov" issue="1924784">
                Meta Refresh: case-insensitive URL (#1924784).
            </action>
            <action type="update" dev="asashour">
                Upgrade Rhino to 1.7R1.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for XMLElement.getElementsByTagNameNS() (FF only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for input.setSelectionRange() (FF only).
            </action>
            <action type="update" dev="asashour">
                HtmlSelect: if any HtmlOption is selected, focus is moved to HtmlSelect.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for 'onfocusin' and 'onfocusout' (IE only).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: CSSStyleSheet added support for ownerNode (FF) and owningElement (IE).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: allow direct access to nodes per id/name when simulating Firefox too.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: fixed various issues with Node methods appendChild, insertBefore and replaceChild
                when involved nodes don't belong to the same document.
            </action>
            <action type="update" dev="mguillem">
                HtmlPage.asXml(): place scripts in CDATA sections with comments.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: fix window.location.hash so it always starts with '#'.
            </action>
            <action type="update" dev="asashour">
                Upgrade Jetty to 6.1.8, Commons IO to 1.4 and FileUpload to 1.2.1.
            </action>
            <action type="remove" dev="asashour">
                INCOMPATIBLE CHANGE: Remove KeyValuePair, and hide HtmlForm.getParameterListForSubmit() and .getSubmittableElements(),
                they shouldn't be directly called by users.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: return undefined for out of bound element access on HtmlFormElement.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: custom RegExp proxy now accepts unescaped curly braces.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: ComputedCSSStyleDeclaration.getPropertyValue returns the same value as direct property access.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add support for HtmlElement.textContent (FF only).
            </action>
            <action type="remove" dev="asashour">
                Remove Jaxen dependency.
            </action>
            <action type="remove" dev="sdanig">
                Remove deprecated methods in HtmlPage: assertAllIdAttributesUnique(), assertAllAccessKeyAttributesUnique(),
                assertAllTabIndexAttributesSet() (use corresponding methods in WebAssert instead).
            </action>
            <action type="remove" dev="sdanig">
                Remove deprecated WebRequestSettings.setCookiePolicy() and getCookiePolicy().
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: element.currentStyle returns calculated (rather than static) style (IE only).
            </action>
            <action type="add" dev="sdanig">
                Add method Cache.clear().
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for (undocumented) method CollectGarbage (IE only).
            </action>
            <action type="update" dev="asashour">
                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.
            </action>
            <action type="add" dev="asashour">
                Add Xalan 2.7.0 as dependency.
            </action>
            <action type="fix" dev="mguillem" issue="1904189">
                JavaScript: fixed IndexOutOfBoundsException in processing of IE @elif pre processor instruction.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: instanceof now works correctly with html elements (FF only).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: property ownerDocument now defined on node.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: ignore calls to document.open() during page parsing.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: calling document.write() after a page has finished parsing results in overwriting the entire page.
            </action>
            <action type="fix" dev="sdanig" issue="1782719">
                Handle script elements with src attributes containing "javascript:..." URLs.
            </action>
            <action type="fix" dev="sdanig">
                Correct the order of script element execution, deferred script element execution, script ready state changes,
                deferred script ready state changes, and onload handlers.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for document.fireEvent (IE only) and document.onXXX event handlers (elements
                already had these).
            </action>
            <action type="fix" dev="sdanig">
                Don't reload page from server if window.location.hash is modified.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HTMLCollection.item and namedItem return null when element is not found.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: avoid detection of document.all when simulating FF (property still available).
            </action>
            <action type="update" dev="asashour">
                XPath: case-insensitive match for attribute names.
            </action>
            <action type="fix" dev="sdanig">
                Add temporary body element when one is missing and document.write() is called.
            </action>
            <action type="fix" dev="sdanig">
                Add implicit body element when one is missing and there is no content to trigger addition by NekoHTML.
            </action>
            <action type="fix" dev="sdanig">
                When document is missing a body element, document.body returns null instead of undefined.
            </action>
            <action type="fix" dev="sdanig">
                Execute JavaScript when a script element's src attribute is set (always when emulating IE,
                only sometimes when emulating FF).
            </action>
            <action type="fix" dev="sdanig">
                Add test-scoped dependency on slf4j, in order to trigger correct logging in Jetty during the unit tests.
            </action>
            <action type="add" dev="asashour" issue="1896964">
                JavaScript: add support for document.importNode() (FF only).
            </action>
            <action type="update" dev="sdanig">
                Upgrade Jetty to 6.1.7 and JCL to 1.1.1.
            </action>
            <action type="fix" dev="mguillem">
                Fixed incorrect processing of multiple conditional compilation flags (IE only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add empty implementation of HTMLElement.clientWidth and .clientHeight.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: remove style attribute if it is empty.
            </action>
            <action type="add" dev="asashour">
                Add support of having XML inside Html (IE only).
            </action>
            <action type="update" dev="asashour">
                INCOMPATIBLE CHANGE: Rename UnknownHtmlElement to HtmlUnknownElement.
            </action>
            <action type="update" dev="asashour">
                Beautify asXml() by removing unnecessary blanks.
            </action>
            <action type="fix" dev="asashour">
                XmlPage: fix asText() and asXml().
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add basic support for document.queryCommandSupported and document.execCommand.
            </action>
            <action type="fix" dev="asashour" issue="1883395">
                XmlPage: correct XPath handling (#1883395).
            </action>
            <action type="update" dev="mguillem">
                Fixed User-Agent header for IE6.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: changed simulated screen dimensions to 1024x768 (was 800x600).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add basic support for all missing style attributes.
            </action>
            <action type="update" dev="asashour">
                JavaScript: Node.replaceChild() correctly processes DocumentFragment.
            </action>
            <action type="update" dev="asashour">
                JavaScript: XMLHttpRequest should not call onreadystatechange handler if sync (FF only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for Range.createContextualFragment (FF only).
            </action>
            <action type="update" dev="asashour">
                JavaScript: <![CDATA[<code>]]>__proto__<![CDATA[</code>]]> is only defined for Firefox.
            </action>
            <action type="fix" dev="mguillem" issue="1464948">
                Handle line comments in multiline onXxxx events handlers declarations.
            </action>
            <action type="update" dev="mguillem">
                Upgraded nekohtml to version 1.9.6.1
            </action>
            <action type="update" dev="dktaylor" issue="1747878">
                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).
            </action>
            <action type="update" dev="asashour">
                INCOMPATIBLE CHANGE: Rename HtmlHeader1 (to HtmlHeader6) to corresponding HtmlHeading1 (to HtmlHeading6).
            </action>
            <action type="update" dev="asashour">
                INCOMPATIBLE CHANGE: Rename HtmlTextDirection to the correct name (HtmlDirectory).
            </action>
            <action type="update" dev="mguillem">
                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.
            </action>
            <action type="update" dev="asashour">
                JavaScript: correct toString() for properties in 'window' scope (FF only).
            </action>
            <action type="update" dev="asashour" issue="1876545">
                JavaScript: detect encoding from XML declaration (#1876545).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: HTMLAnchor href attribute should be reachable even if the URL is malformed.
            </action>
            <action type="add" dev="asashour" issue="1874624" due-to="Sudhan Moghe">
                JavaScript: add support for XMLElement.getAttributeNode() (#1874624).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: document.cookie separates cookies with '; ' and not ';'.
            </action>
            <action type="fix" dev="mguillem">
                Fixed ClassCastException occurring when a non HTML page is loaded with Firefox simulation (regression in 1.14).
            </action>
            <action type="remove" dev="asashour">
                Remove Assert, use WebAssert instead.
            </action>
            <action type="update" dev="asashour">
                Upgrade JUnit to 4.4.
            </action>
            <action type="add" dev="asashour">
                JavaScript: Add support for HTMLHtmlElement.
            </action>
            <action type="remove" dev="asashour">
                HtmlForm: Remove deprecated .getRadioButtonInput() and .setCheckedRadioButton().
            </action>
            <action type="remove" dev="asashour">
                Remove deprecated HtmlForm.fakeCheckedRadioButton() and HtmlSelect.fakeSelectedAttribute().
            </action>
            <action type="add" dev="asashour" issue="1873562">
                JavaScript: Add support for XPathResult.iterateNext() (FF only).
            </action>
            <action type="remove" dev="asashour">
                Remove deprecated HtmlElement.MapEntryWrappingIterator.
            </action>
            <action type="update" dev="asashour">
                Deprecate HtmlElement.getAttributeEntriesIterator(), use .getAttributes() instead.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: HTMLCollection should not have 'tags' property in Firefox
                (except for <![CDATA[<code>]]>document.all<![CDATA[</code>]]>).
            </action>
            <action type="add" dev="asashour">
                HtmlTextInput and HtmlTextArea: Add support for select(), and fix tabIndex JavaScript property.
            </action>
            <action type="add" dev="asashour">
                Add initial support for document.selection.createRange() (IE only).
            </action>
            <action type="remove" dev="asashour">
                Remove deprecated constants in BrowserVersion, in addition to HtmlForm.submit().
            </action>
            <action type="update" dev="asashour">
                Deprecate DomNode.getChildIterator(), use getChildren() instead.
            </action>
            <action type="update" dev="asashour">
                INCOMPATIBLE CHANGE: DomNode.getAllHtmlChildElements() returns Iterable instead of Iterator.
            </action>
            <action type="remove" dev="asashour">
                DomNode: remove unused EventHandler, and deprecated PropertyChange methods.
            </action>
            <action type="update" dev="asashour">
                Deprecate HtmlElement.getChildElementsIterator(), use getChildElements() instead.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for input.selectionStart, input.selectionEnd, and input.textLength.
            </action>
            <action type="remove" dev="asashour">
                Remove deprecated DomNode.XXXX_NODE, use org.w3c.dom.Node instead.
            </action>
            <action type="remove" dev="asashour">
                Remove the public (deprecated) constructor of HtmlElement and its subclasses.
            </action>
        </release>
        <release version="1.14" date="Jan 9, 2008" description="Enormous improvements particularly in JavaScript support and execution speed">
            <action type="fix" dev="mguillem">
                JavaScript: allow script node's onreadystatechange handler to be set to null.
            </action>
            <action type="fix" dev="mguillem" due-to="David Bylsma" issue="1866448">
                Don't escape '+' in URL path.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add support for 'Node' prototype.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add support for window.resizeBy.
            </action>
            <action type="update" dev="asashour">
                JavaScript: StyleSheetList correctly loads CSS content (FF only).
            </action>
            <action type="add" dev="mguillem">
                Correctly handle URLs with path starting with double slash.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add configurable support for supported plugins and mime types (FF only).
                Per default a Shockwave Flash plugin is "configured" for Firefox 2.
            </action>
            <action type="fix" dev="asashour" issue="1854975">
                JavaScript: XMLHttpRequest.responseXML.getElementById should always return null (#1854975).
            </action>
            <action type="add" dev="asashour" issue="1862054">
                JavaScript: add support for "for (i in collection)" (#1862054).
            </action>
            <action type="add" dev="asashour">
                JavaScript: XSLT support (ActiveXObject 'Msxml2.XSLTemplate') (IE only).
            </action>
            <action type="update" dev="asashour">
                XPath: is now namespace aware for XmlElements.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add initial support for XPathResult, and XSLTProcessor (FF only).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: activate document.all for Firefox too.
            </action>
            <action type="add" dev="asashour">
                Add DomElement with its JavaScript 'Element' prototype.
            </action>
            <action type="fix" dev="asashour">
                XPath: DomCharacterData is treated as text node.
            </action>
            <action type="add" dev="asashour">
                XMLDocument: add support for .parseError property (IE only), createElement(), createNSResolver() (FF only),
                evaluate() (FF only), and 'xml:space' attribute (IE only).
            </action>
            <action type="update" dev="asashour">
                XMLPage handles qualified tag names.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added 'HTMLEvents' to the event types supported by document.createEvent (Firefox).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: use custom JDK based regular expression evaluation for String.match
                to avoid Rhino problems (speed and wrong evaluation).
            </action>
            <action type="update" dev="asashour">
                HtmlTextInput and HtmlPasswordInput: type('\n') submits the enclosing form.
            </action>
            <action type="update" dev="asashour">
                &amp;lt;frame&amp;gt; and &amp;lt;iframe&amp;gt; should trim values in 'src' attribute.
            </action>
            <action type="update" dev="asashour" issue="1813007">
                JavaScript: element.dispatchEvent() exactly behaves as calling ClickableElement.click() and .dblClick()
                and returns correct value (based on event.preventDefault()) (#1813007).
            </action>
            <action type="add" dev="asashour" issue="1813007">
                JavaScript: add initial support for event.preventDefault() (anchor, checkbox, text input, textarea, others to follow) (#1813007).
            </action>
            <action type="add" dev="asashour">
                HtmlTextInput: type() appends text to the value.
            </action>
            <action type="add" dev="mguillem" issue="1716540">
                JavaScript: cache parsed JavaScript responses.
            </action>
            <action type="update" dev="mguillem">
                JavaScript [internal]: removed ScriptEngine, use JavaScriptEngine directly.
            </action>
            <action type="add" dev="asashour">
                XMLPage: add support for comment node.
            </action>
            <action type="update" dev="asashour">
                Deprecate FocusableElement.
            </action>
            <action type="add" dev="asashour" issue="1835550">
                JavaScript: add support for label.htmlFor (#1835550).
            </action>
            <action type="fix" dev="asashour" issue="1836922">
                JavaScript: fix removeChild() for XML elements (#1836922).
            </action>
            <action type="add" dev="asashour" issue="1835836">
                JavaScript: Add style.borderBottom[Color,Style,Width], .borderLeft[Color,Style,Width], .borderRight[Color,Style,Width],
                and .borderTop[Color,Style,Width] (#1835836).
            </action>
            <action type="add" dev="sdanig">
                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.
            </action>
            <action type="fix" dev="asashour" issue="1835090">
                JavaScript: Tolerate empty string for DOMParser.parseFromString() (FF only),
                and ActiveXObject('Microsoft.XMLDOM').loadXML() (IE only) (#1835090).
            </action>
            <action type="fix" dev="asashour" issue="1828914">
                JavaScript: &amp;lt;iframe&amp;gt; src is now correctly handled via setAttribute() (#1828914).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: add support for getAttributeNS and setAttributeNS on node (Firefox).
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: don't encode xml special characters for innerHTML property on script nodes.
            </action>
            <action type="fix" dev="asashour">
                Ignore &amp;lt;script&amp;gt; src that starts with "javascript:".
            </action>
            <action type="fix" dev="sdanig">
                Handle file URLs with query portions (file://my/path?a=b) and ref portions (file://my/path#ref) without breaking.
            </action>
            <action type="fix" dev="mguillem">
                Fixed possible ConcurrentModificationException and dead lock with HtmlAttributeChangeListener and DomChangeListener.
            </action>
            <action type="add" dev="sdanig">
                Add support for deferred script elements (IE only).
            </action>
            <action type="fix" dev="sdanig">
                Avoid leaving the DOM in an inconsistent state when DomNode.replace(DomNode) is called and the
                target node is used as the parameter.
            </action>
            <action type="fix" dev="sdanig">
                JavaScript: delegate select.options.xxx property modifications to the parent select element
                (property accesses were already being delegated correctly; IE only).
            </action>
            <action type="add" dev="asashour" issue="1815602" due-to="Sam Hough">
                Add basic support for document.getBoxObjectFor() (FF only) (#1815602).
            </action>
            <action type="update" dev="mguillem">
                HtmlTextArea.asXml() now preserves content and expands empty tag to make generated xml interpretable as html by browsers.
            </action>
            <action type="add" dev="sdanig">
                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.
            </action>
            <action type="update" dev="asashour">
                HtmlForm: on submitting a form without parameters, URL should not end with a question mark (IE7 only).
            </action>
            <action type="add" dev="mguillem">
                JavaScript: getElementsByTagName now returns empty collection when called with 'incorrect' name.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add support for hasAttribute and hasAttributeNS on node (Firefox),
                getNamedItem on NamedNodeMap.
            </action>
            <action type="add" dev="sdanig">
                Add a popup blocker (WebClient.setPopupBlockerEnabled(boolean)).
            </action>
            <action type="fix" dev="sdanig">
                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.
            </action>
            <action type="add" dev="asashour" issue="1818569">
                HtmlFileInput: add support for non-ASCII name of uploaded files (#1818569).
            </action>
            <action type="add" dev="mguillem">
                JavaScript: accept ECMA reserved keywords like 'float' as normal identifier.
            </action>
            <action type="add" dev="mguillem" due-to="Sam Hough" issue="1812960">
                JavaScript: added support for DOMContentLoaded event (Firefox).
            </action>
            <action type="add" dev="mguillem">
                Add possibility to configure the mime type used when uploading a file.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for the htmlElement.attributes collection.
            </action>
            <action type="add" dev="sdanig">
                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.
            </action>
            <action type="add" dev="mguillem" due-to="Sam Hough" issue="1815275">
                JavaScript: make focus and blur available on HtmlElement.
            </action>
            <action type="fix" dev="mguillem" issue="1753734">
                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).
            </action>
            <action type="fix" dev="sdanig">
                Make the loading of external .js files referenced via script tags
                listen to WebClient.getPrintContentOnFailingStatusCode() and
                WebClient.isThrowExceptionOnFailingStatusCode().
            </action>
            <action type="add" dev="mguillem">
                Add support for CDATA sections of xml documents.
            </action>
            <action type="add" dev="mguillem">
                Add facility method DomNode.getFirstByXPath(xpathExpr).
            </action>
            <action type="add" dev="mguillem">
                JavaScript exceptions: line number information now relative to the page.
            </action>
            <action type="add" dev="mguillem">
                Add HtmlPage.executeJavaScript to inject JavaScript code in a page.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add support for element.dispatchEvent(event) (Firefox only).
            </action>
            <action type="add" dev="mguillem" issue="1716540">
                Cache JS server responses to avoid useless requests (script caching will come later).
            </action>
            <action type="fix" dev="mguillem" issue="1518195">
                Don't load the originally specified source of a frame, when its location has already been changed by JavaScript.
            </action>
            <action type="add" dev="asashour" issue="1805817">
                Add primitive support for document.styleSheets (#1805817).
            </action>
            <action type="add" dev="asashour" issue="1809522">
                Add support of setExpression and removeExpression for element and style (#1809522).
            </action>
            <action type="update" dev="asashour" issue="1802836">
                Update window.frames so it does not throw ClassCastException (#1802836).
            </action>
            <action type="update" dev="mguillem" issue="1802969">
                JavaScript: document.all('notExistingElement') now returns null as IE does.
            </action>
            <action type="fix" dev="asashour" issue="1797235">
                Fix loading content containing 'Content-Type' header with quoted charset (#1797235).
            </action>
            <action type="update" dev="asashour">
                Upgrade Jetty to 6.1.5.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: XMLDocument should not ignore descendants non-empty DomText in IE.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: loadXML() supports relative URLs in ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE only).
            </action>
            <action type="add" dev="asashour">
                Add basic support for attributes of XML elements.
            </action>
            <action type="add" dev="mguillem">
                Added FalsifyingWebConnection, a WebConnection wrapper that provides facility methods to
                provide other content than the "real" one.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: added backgroundImage to allowed style properties.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: added Document.createRange() and basic support for Range (Firefox only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add selectNodes() and selectSingleNode() (IE only), getElementsByTagName()
                and .tagName property for XML elements.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add basic support of setProperty() function and .preserveWhiteSpace property for
                ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE only).
            </action>
            <action type="update" dev="asashour" issue="1790308">
                DomNode.getByXPath() with 'id()' function should return empty list instead of throwing an exception (#1790308).
            </action>
            <action type="add" dev="mguillem" issue="1790312">
                WebClient.loadWebResponse should not be final.
            </action>
            <action type="add" dev="sdanig">
                JavaScript: add UIEvent.initUIEvent() (FF only).
            </action>
            <action type="add" dev="mguillem">
                Allow HTTP methods DELETE, HEAD, OPTIONS, PUT and TRACE (in WebClient.getPage(WebRequestSettings) and in XMLHttpRequest).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add XMLSerializer (FF), and .xml property for ActiveXObjects: 'Microsoft.XmlDom' and
                'MSXML.DOMDocument' (IE).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add DOMParser, with implementation of parseFromString() (FF only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add loadXML() and selectNodes() for ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE only).
            </action>
            <action type="update" dev="asashour">
                JavaScript: ignore text nodes of loaded XML by ActiveXObjects: 'Microsoft.XmlDom' and
                'MSXML.DOMDocument' (IE).
            </action>
            <action type="update" dev="asashour">
                Move getWebClient() from HtmlPage to SgmlPage.
            </action>
            <action type="update" dev="asashour">
                JavaScript: correctly handle 'documentElement' property for
                'document.implementation.createDocument()' (FF),
                and ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add load() and getElementsByTagName() for 'document.implementation.createDocument()' (FF), and
                ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE).
            </action>
            <action type="add" dev="sdanig" due-to="Rob Di Marco">
                JavaScript: add support for function element.fireEvent() (IE only).
            </action>
            <action type="add" dev="sdanig" due-to="Rob Di Marco">
                JavaScript: add support for function mouseEvent.initMouseEvent() (FF only).
            </action>
            <action type="update" dev="asashour" issue="1784330" due-to="Dan Fabulich">
                ActiveXObject (XmlHttp): should not be created by case-sensitive string. (#1784330).
            </action>
            <action type="update" dev="sdanig">
                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.
            </action>
            <action type="add" dev="asashour">
                Add SgmlPage: moving towards having fully fledged XmlPage.
            </action>
            <action type="fix" dev="asashour">
                Regular Expressions: allow 'undefined' pattern, and tolerate improper patterns (trigger warning).
            </action>
            <action type="update" dev="asashour">
                Upgrade Rhino to 1.6R7.
            </action>
            <action type="add" dev="sdanig" due-to="Rob Di Marco">
                JavaScript: add support for function event.initEvent() (FF only).
            </action>
            <action type="fix" dev="sdanig">
                Fix document.createEvent() and document.createEventObject(): set event prototypes correctly.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add 'async' property for 'document.implementation.createDocument()' (FF), and
                ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE).
            </action>
            <action type="add" dev="sdanig" due-to="Rob Di Marco">
                JavaScript: add support for read-only attributes uiEvent.detail and uiEvent.view (FF only).
            </action>
            <action type="update" dev="mguillem" issue="1780089">
                JavaScript: fixed bug in String.replace (due to custom RegExp proxy) when first arg is a String
                with special characters and not a RegExp.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add basic support for 'document.implementation.createDocument()' (FF), and ActiveXObjects:
                'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE).
            </action>
            <action type="update" dev="asashour">
                JavaScript: select.size is used when only needed.
            </action>
            <action type="update" dev="asashour">
                Upgrade HttpClient to 3.1.
            </action>
            <action type="add" dev="asashour">
                JavaScript: document.createElement() to accept html as a valid parameter (IE only).
            </action>
            <action type="add" dev="sdanig">
                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.
            </action>
            <action type="add" dev="sdanig" due-to="Rob Di Marco">
                JavaScript: add support for read-only attributes event.timeStamp, event.bubbles and
                event.cancelable and event.eventPhase (FF only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: document.createElement() to accept "&amp;lt;tagName&amp;gt;" as a valid parameter.
            </action>
            <action type="update" dev="asashour">
                JavaScript: element.setAttribute() sets corresponding event handler onXXX if found (FF only).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add primitive support for document.elementFromPoint (IE only).
            </action>
            <action type="add" dev="dktaylor" issue="1747878">
                Add namespace support for attributes: DomNode.getnamespaceURI, getLocalName, getPrefix,
                setPrefix, hasAttributes, HtmlElement.getAttribute, getAttributeNS, hasAttributes,
                hasAttribute, hasAttributeNS, setAttribute, setAttributeNS, setAttributeValue(NS),
                and removeAttributeNS.  (#1747878).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for element.uniqueID (IE only).
            </action>
            <action type="update" dev="dktaylor" issue="1747878">
                Deprecate unused class MapEntryWrappingIterator.  (#1747878).
            </action>
            <action type="update" dev="dktaylor" issue="1747878">
                Deprecate String-to-String attribute map for HtmlElement.  Add initial support for
                namespaces for attributes.  (#1747878).
            </action>
            <action type="update" dev="dktaylor" issue="1747878">
                Deprecate HtmlAttr implementing Map.Entry that conflicts with W3C DOM API.  Replace
                uses of Map.Entry with HtmlAttr.  Add HtmlAttr.getName.  (#1747878).
            </action>
            <action type="add" dev="asashour" issue="1498419">
                New interface com.gargoylesoftware.htmlunit.OnbeforeunloadHandler with associated WebClient getter and setter, to support 'onbeforeunload' event (#1498419).
            </action>
            <action type="add" dev="asashour">
                JavaScript: document.getElementById() must not return elements added to newly created ones (not yet added to document).
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for 'onunload' event handler.
            </action>
        </release>
        <release version="1.13" date="Aug 17, 2007" description="Fixes bad maven packaging of version 1.12 + different improvements">
            <action type="update" dev="sdanig" due-to="Rob Di Marco">
                Add document.createEvent() and document.createEventObject().
            </action>
            <action type="update" dev="asashour">
                HtmlElement.asXml(): separate lines for empty element and the one after.
            </action>
            <action type="fix" dev="asashour">
                JavaScript: element.appendChild() and insertBefore() must recursively maintain document.getElementById() contract.
            </action>
            <action type="add" dev="asashour">
                WebRequestSettings: add getter and setter of CookiePolicy.
            </action>
            <action type="update" dev="asashour">
                JavaScript: for element.appendChild(), .insertBefore(), .innerHTML, and .innerText: if the element parentNode is null, create a DocumentFragment to be the parentNode (IE only).
            </action>
            <action type="update" dev="dktaylor" issue="1747878">
                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).
            </action>
            <action type="update" dev="asashour">
                Deprecated DomNode.XXXX_NODE.
            </action>
            <action type="update" dev="asashour">
                Change DomNode.ATTRIBUTE_NODE to be 2 in order to match W3C DOM Node.ATTRIBUTE_NODE.
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for document.createDocumentFragment().
            </action>
            <action type="add" dev="asashour">
                JavaScript: add basic support for element.getBoundingClientRect() and element.getClientRects().
            </action>
            <action type="add" dev="asashour">
                JavaScript: add support for node.isSameNode().
            </action>
            <action type="remove" dev="asashour">
                WebClient: Remove deprecated moveFocusFromElement(), moveFocusToElement(), and getElementWithFocus().
            </action>
            <action type="update" dev="asashour">
                HtmlTitle.asXml(): empty tag is expanded as required by Internet Explorer.
            </action>
            <action type="update" dev="asashour" issue="1771549">
                JavaScript: if window object could not find a property or function, it returns 'undefined' instead of null (#1771549).
            </action>
        </release>
        <release version="1.12" date="Aug 10, 2007" description="Enormous improvements particularly in JavaScript support and execution speed">
            <action type="add" dev="sdanig">
                Add method HtmlPage.getHtmlElementsByName(String).
            </action>
            <action type="fix" dev="asashour">
                HtmlSelect (in single-selection mode) selects the first option if none is selected.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: add basic support for element.runtimeStyle.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: add basic support for document.createStyleSheet (when emulating IE only).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: implemented a workaround for Rhino bug in string primitive resolution (Rhino bug 374918).
            </action>
            <action type="update" dev="asashour">
                Deprecate HtmlForm.submit().
            </action>
            <action type="update" dev="asashour">
                Deprecate HtmlForm.fakeCheckedRadioButton().
            </action>
            <action type="update" dev="sdanig">
                The method element.style.getPropertyValue('foo') should expect property names to be
                delimiter-separated (ie 'font-size') rather than camel case (ie 'fontSize').
            </action>
            <action type="add" dev="asashour">
                Basic document.implementation: hasFeature().
            </action>
            <action type="update" dev="asashour">
                Add support for oncontextmenu event type.
            </action>
            <action type="update" dev="sdanig">
                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.
            </action>
            <action type="add" dev="asashour">
                HtmlElement: add rightClick().
            </action>
            <action type="update" dev="mguillem">
                JavaScript added minimal support for MouseEvent properties
                clientX, clientY, pageX, pageY, screenX, screenY
                coherent with position of event's target.
            </action>
            <action type="update" dev="mguillem">
                Set Referer header for requests from XMLHttpRequest.
            </action>
            <action type="update" dev="sdanig">
                First option in a single-selection select input gets selected by default.
            </action>
            <action type="update" dev="sdanig">
                Add implementation of element.style.filter attribute (when emulating IE only).
            </action>
            <action type="add" dev="mguillem">
                JavaScript: added support for properties "button" and "which" on mouse events.
            </action>
            <action type="add" dev="mguillem">
                Add initial support for IE conditional compilation @if, @elif, @else, @end and @set instructions
                as well as for conditional compilation variables.
            </action>
            <action type="update" dev="sdanig">
                Fix getElementsByTagName('*') at the document level (it was returning an empty
                collection).
            </action>
            <action type="add" dev="asashour" issue="1759750">
                JavaScript: add support for style.getPropertyValue() (#1759750).
            </action>
            <action type="update" dev="mguillem" issue="1727599">
                JavaScript: fixed eval scope bug when used within function.
            </action>
            <action type="add" dev="sdanig">
                Add an optional (disabled by default) debugger implementation which can make it easier
                to debug complex interactions between HtmlUnit and JavaScript.
            </action>
            <action type="add" dev="sdanig">
                Deprecate BrowserVersion constants for Mozilla 1.0, Netscape 4.7.9 and Netscape 6.2.3;
                add MSIE 7 and Firefox 2.
            </action>
            <action type="add" dev="asashour" issue="1756277">
                JavaScript: add basic support for element.currentStyle and window.getComputedStyle.
            </action>
            <action type="update" dev="asashour" issue="1756617" due-to="Matt Ryall">
                BrowserVersion: add equals() and hashCode().
            </action>
            <action type="add" dev="asashour">
                HtmlElement: add mouseOver(), mouseMove(), mouseOut(), mouseDown(), and mouseUp().
            </action>
            <action type="update" dev="asashour">
                JavaScript: implement navigator.cookieEnabled to match WebClient#isCookiesEnabled().
            </action>
            <action type="add" dev="asashour" issue="1742662">
                Add empty implementation for table.refresh() (#1742662).
            </action>
            <action type="update" dev="asashour" issue="1751756">
                HTMLCollection: cache getElements() for better performance (#1751756).
            </action>
            <action type="add" dev="mguillem">
                Experimental: added AjaxController and NicelyResynchronizingAjaxController.
            </action>
            <action type="update" dev="mguillem" issue="1225021">
                JavaScript: added support for window.captureEvents (FF).
            </action>
            <action type="update" dev="mguillem" issue="1716129">
                JavaScript: fixed addEventListener cannot be called twice.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for event capturing and bubbling phases.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for Event.stopPropagation() (FF) and Event.cancelBubble() (IE).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for window.onclick and window.ondblclick.
            </action>
            <action type="update" dev="asashour" issue="1579707">
                Ignore &amp;lt;base&amp;gt; if inside &amp;lt;body&amp;gt; (#1579707).
            </action>
            <action type="fix" dev="asashour" issue="1065041">
                FailingHttpStatusCodeException is thrown for failing frame (#1065041).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: use custom JDK based regular expression evaluation for String.replace
                to avoid Rhino problems (speed and wrong evaluation).
            </action>
            <action type="update" dev="asashour" issue="1186639">
                Elements inside &amp;lt;noscript&amp;gt; are ignored if isJavaScriptEnabled() (#1186639).
            </action>
            <action type="update" dev="asashour" issue="1748672">
                Version: add getProductName(), getProductVersion() and getCopyright() (#1748672).
            </action>
            <action type="add" dev="asashour">
                DomNode: add/remove DomChangeListener.
            </action>
            <action type="remove" dev="asashour">
                Remove deprecated WebClient.getThrowExceptionOnFailingStatusCode and BaseFrame.FrameWindow.
            </action>
            <action type="update" dev="asashour" issue="1747454">
                HtmlImageInput, HtmlResetInput and HtmlSubmitInput can be clicked if exist outside an enclosing form. (#1747454).
            </action>
            <action type="add" dev="asashour" issue="1745024">
                JavaScript: allow FormField.onchange, form.onsubmit and frame.onload to be set to null (#1745024).
            </action>
            <action type="add" dev="asashour">
                JavaScript: Add table.cellSpacing and table.cellPadding.
            </action>
            <action type="add" dev="asashour" issue="1124781">
                HtmlElement and HtmlPage: add/remove HtmlAttributeChangeListener (#1124781).
            </action>
            <action type="add" dev="asashour">
                JavaScript: Implement insertAdjacentElement().
            </action>
            <action type="update" dev="asashour">
                HtmlSubmitInput: setting value to "Submit Query" if not specified, associated with asText(), asXml(), and submitValue changes.
            </action>
            <action type="add" dev="asashour" issue="1740086" due-to="Bruce Chapman">
                HTMLElement.scrollIntoView() is added as an empty implementation (#1740086).
            </action>
            <action type="fix" dev="asashour" issue="1731042" due-to="Rodney Gitzel">
                DomNode.asText() now correctly handles style elements (e.g. &amp;lt;i&amp;gt;, &amp;lt;b&amp;gt;, and &amp;lt;font&amp;gt;) (#1731042).
            </action>
            <action type="fix" dev="asashour" issue="1708397" due-to="Bruce Chapman">
                HtmlPage.clone() doesn't share idMap_ with original (#1708397).
            </action>
            <action type="add" dev="asashour" issue="1385295">
                ClickableElement: Add dblClick() (#1385295).
            </action>
            <action type="add" dev="asashour" issue="1521790">
                JavaScript: Add document.createElementNS(), element.namespaceURI, element.prefix, and element.localName (#1521790).
            </action>
            <action type="add" dev="asashour" issue="1685311">
                HtmlPage supports Serialization (#1685311).
            </action>
            <action type="add" dev="asashour" issue="1680026">
                Add partial support for IE Conditional Compilation (#1680026).
            </action>
            <action type="update" dev="asashour" issue="1549916" due-to="Andre Soereng">
                Meta Refresh: tolerate spaces before the semicolon (#1549916).
            </action>
            <action type="update" dev="asashour" issue="1587962">
                Allow setChecked of &amp;lt;input type="radio"&amp;gt; which is outside any &amp;lt;form&amp;gt; (#1587962).
            </action>
            <action type="update" dev="asashour">
                Deprecated HtmlForm#getRadioButtonInput(String,String) and HtmlForm#setCheckedRadioButton(String,String). Use #getByXPath instead.
            </action>
            <action type="fix" dev="asashour" issue="1513928">
                Allow HtmlFileInput to handle values starting with "file:/" (#1513928).
            </action>
            <action type="update" dev="mguillem">
                Align node types numeric values to W3C values.
            </action>
            <action type="fix" dev="mguillem">
                JavaScript: allow comment nodes to be retrieved
            </action>
            <action type="update" dev="asashour">
                HtmlSelectElement: ignores setting 'selectedIndex' to more than or equal to options size.
            </action>
            <action type="add" dev="asashour" issue="1713515" due-to="Philip Graf">
                HtmlForm: #getTextAreaByName and #getButtonByName (#1713515).
            </action>
            <action type="add" dev="asashour" issue="1729467" due-to="Karel Kolman">
                Add UTF-16BE, and UTF-16LE charset detection (#1729467).
            </action>
            <action type="update" dev="asashour" issue="1483301">
                Use WebRequestSettings#getCharset() as the encoding of pages instead of "ISO-8859-1" (#1483301).
            </action>
            <action type="fix" dev="asashour" issue="1549745" due-to="Kristian Muntau">
                Proper handling of &amp;nbsp; in DomNode#asText() (#1549745).
            </action>
            <action type="update" dev="asashour">
                JavaScript: Simulate browser behavior for comments that have last line of "statement--&amp;gt;", but not "statement//--&amp;gt;".
            </action>
            <action type="add" dev="asashour" issue="1725742">
                JavaScript: Add support for location.toString() (#1725742).
            </action>
            <action type="update" dev="mguillem">
                asXml() now expands tags for div, iframe and script to make generated xml interpretable as html by browsers.
            </action>
            <action type="add" dev="asashour" issue="1691024">
                Add support for table.width (#1691024).
            </action>
            <action type="update" dev="asashour" issue="1724889">
                HtmlInput (HtmlCheckBoxInput and HtmlRadioButtonInput): #setChecked now returns Page (#1724889).
            </action>
            <action type="fix" dev="asashour" issue="1725162">
                Javascript: Correct handling of comments (#1725162).
            </action>
            <action type="update" dev="mguillem">
                JavaScript [internal]: use Context.call(ContextAction) for faster JavaScript execution.
            </action>
            <action type="update" dev="asashour" issue="1722665">
                Meta Refresh empty URL is handled (#1722665).
            </action>
            <action type="add" dev="asashour" issue="1714772">
                JavaScript: add support for textarea.selectionStart, textarea.selectionEnd, and textarea.textLength (#1714772).
            </action>
            <action type="update" dev="asashour">
                DomNode#getAllHtmlChildElements() now returns Iterator.
            </action>
            <action type="update" dev="mguillem" issue="1714762">
                Fixed exception occurring handling script tag with one line content starting with &amp;lt;!-- and without closing --!&amp;gt;.
            </action>
            <action type="update" dev="mguillem" issue="1609944">
                JavaScript: allow function named onload.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: made equality tests on functions working.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: don't allow usage of write(ln) detached from document object when simulating Firefox.
            </action>
            <action type="update" dev="mguillem">
                JavaScript [internal]: large refactoring for a better Rhino usage.
            </action>
            <action type="add" dev="asashour" issue="1168346">
                JavaScript: Add support for event.shiftKey, event.ctrlKey, and event.altKey.
            </action>
            <action type="update" dev="asashour" issue="1714767">
                Tolerate URL starting with http:/ and http: in Firefox.
            </action>
            <action type="update" dev="mguillem">
                Added IncorrectnessListener to get notified of things that HtmlUnit cope with but that don't respect standards.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: provide the event object to onreset handlers.
            </action>
            <action type="update" dev="mguillem">
                Added ScriptException.printScriptStackTrace to retrieve the stack trace of the script execution.
            </action>
            <action type="add" dev="asashour">
                WebClient can now enable/disable cookies support.
            </action>
            <action type="update" dev="mguillem" issue="1201561">
                JavaScript: allow to set window.onload to something else than a function.
            </action>
            <action type="update" dev="mguillem" issue="1705521" due-to="Bruce Chapman">
                DomNode.DescendantElementsIterator.remove() now throws UnsupportedOperationException
                (previous behavior was not correct).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for label property on Option objects.
            </action>
            <action type="update" dev="mguillem" due-to="Bruce Chapman">
                JavaScript: added support for defaultSelected property on Option objects.
            </action>
            <action type="update" dev="mguillem" issue="1705517" due-to="Bruce Chapman">
                JavaScript: allow selected and defaultSelected attribute in Option constructor.
            </action>
            <action type="update" dev="sdanig">
                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).
            </action>
            <action type="update" dev="sdanig">
                JavaScript: Add support for script.src, script.type, script.readyState and script.onreadystatechange.
            </action>
            <action type="update" dev="sdanig" issue="1707726" due-to="Bruce Chapman">
                When cloning nodes, clone the id attribute as well.
            </action>
            <action type="update" dev="sdanig" issue="1706505" due-to="Martin Tamme">
                Avoid NPEs for responses with null bodies (ie 304 Not Modified responses).
            </action>
            <action type="update" dev="sdanig" issue="1707788" due-to="Bruce Chapman">
                JavaScript: Cloning a script node should not execute the script.
            </action>
            <action type="update" dev="sdanig" issue="1706237">
                JavaScript: Don't run scripts after the window location changes.
            </action>
            <action type="update" dev="sdanig" issue="1634051">
                Verify correct behavior of HtmlSelect#asText() with multiple selections, fix JavaDoc.
            </action>
            <action type="update" dev="sdanig" issue="1705559" due-to="Bruce Chapman">
                JavaScript: add support for frameset.rows and frameset.cols properties.
            </action>
            <action type="update" dev="sdanig" issue="1695279">
                JavaScript: ignore invalid script.src attribute used by jQuery ("//:").
            </action>
            <action type="update" dev="sdanig" issue="1658064">
                Trim whitespace off of anchor href attributes.
            </action>
            <action type="update" dev="sdanig">
                JavaScript: add support for event.type property.
            </action>
            <action type="update" dev="sdanig" issue="1699119">
                Fixed NPE exception triggered by invalid iframe/frame src attribute.
            </action>
            <action type="update" dev="sdanig" issue="1699125">
                Fixed infinite loop triggered by recursive iframe/frame src attribute.
            </action>
            <action type="update" dev="mguillem" issue="1541150" due-to="Sam Hough and Ahmed Ashour">
                JavaScript: fixed set innerHTML uses 8bits for all chars and ignores some HTML.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: handle out of bound indexes on options as browsers do (undefined when too high and exception when negative).
            </action>
            <action type="update" dev="mguillem" issue="799817" due-to="Ahmed Ashour">
                Added (limited) support for client side map.
            </action>
            <action type="update" dev="mguillem" issue="1689214" due-to="Ahmed Ashour">
                Don't execute JavaScript in &amp;lt;noframes&amp;gt; and &amp;lt;iframe&amp;gt;.
            </action>
            <action type="update" dev="mguillem" issue="1693423" due-to="Ahmed Ashour">
                Set Referer header on outgoing requests.
            </action>
            <action type="update" dev="mguillem" issue="1692811" due-to="Ahmed Ashour">
                JavaScript: setting innerHTML to null shouldn't create any text node for Firefox.
            </action>
            <action type="update" dev="mguillem" issue="1684652">
                JavaScript: fixed remaining problem of submitted select values when select.selectedIndex = -1 has been used before setting an other value.
            </action>
            <action type="update" dev="mguillem" issue="1692572" due-to="Ahmed Ashour">
                JavaScript: setting innerHTML to empty string shouldn't create any text node.
            </action>
            <action type="update" dev="mguillem" issue="1690203" due-to="Ahmed Ashour">
                JavaScript: added support for property parentElement on DOM nodes (IE specific).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: configure correctly the prototype hierarchy on created host objects.
            </action>
            <action type="update" dev="mguillem" issue="1613119" due-to="Karel Kolman">
                JavaScript: fixed non executed scripts added with document.write.
            </action>
            <action type="update" dev="mguillem" issue="1689798">
                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.
            </action>
            <action type="update" dev="mguillem" issue="1686412" due-to="Karel Kolman">
                Fixed wrong parsing order of comment and text nodes.
            </action>
            <action type="update" dev="mguillem" issue="1686412" due-to="Bruce Chapman">
                JavaScript: added support for following properties on HtmlAnchor: hash, host, hostname, pathname, port, protocol, search and target.
            </action>
            <action type="update" dev="mguillem">
                Handle correctly anchors (alias reference) in URLs after form submission.
            </action>
            <action type="update" dev="mguillem" issue="1681779">
                JavaScript: XMLHttpRequest now encodes post body in UTF-8.
            </action>
        </release>
        <release version="1.11" date="Mar 15, 2007">
            <action type="update" dev="mguillem" issue="1669097">
                Respect non proxy hosts in redirects from a host using proxy.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: resolve relative locations from the originating page for Location's href, replace and assign.
            </action>
            <action type="update" dev="mguillem" issue="1562872">
                Renamed frame host class to avoid conflict when a frame has 'Frame' as name.
            </action>
            <action type="update" dev="mguillem" issue="1676667">
                Form should not send push buttons on submit.
            </action>
            <action type="update" dev="mguillem">
                Added facility method DomNode.getByXPath(xpathExpr).
            </action>
            <action type="update" dev="mguillem" issue="1672048">
                JavaScript: Option.setAttribute now works even if option has not yet been added to a select.
            </action>
            <action type="update" dev="mguillem" issue="1672392">
                Parse as html all responses with content type ending with "xhtml+xml" like XHTML mobile profile documents (application/vnd.wap.xhtml+xml).
            </action>
            <action type="update" dev="mguillem" issue="1665629">
                Improved HtmlPage.getAnchors's javadoc.
            </action>
            <action type="update" dev="mguillem" issue="799815">
                Added support for server side map (HtmlImage.click(int, int)).
            </action>
            <action type="update" dev="mguillem" issue="1619765">
                Allow redirections to the same URL with a maximal number of 20.
            </action>
            <action type="update" dev="mguillem">
                Fixed HtmlHtml.getXmlLangAttribute().
            </action>
            <action type="update" dev="mguillem">
                Upgraded dependencies to Jaxen 1.1, commons-lang 2.2, rhino 1.6R5, commons-io 1.3.
            </action>
            <action type="update" dev="mguillem" issue="1658273" due-to="Karel Kolman">
                Changing element id should not impact child nodes.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: provide event object as argument when calling onload listeners attached with attachEvent (Internet explorer).
            </action>
            <action type="update" dev="mguillem" issue="1648014">
                JavaScript: provide the event object to onsubmit handlers.
            </action>
            <action type="update" dev="mguillem">
                Set cookies defined in meta tags with http-equiv equals to set-cookie.
            </action>
            <action type="update" dev="mguillem" issue="1628521" due-to="Andre Soereng">
                Fixed NullPointerException occurring while submitting a from which onsubmit handler returns null.
            </action>
            <action type="update" dev="mguillem" issue="1627983">
                JavaScript: fixed bad initialisation of JavaScript context when window content changes
                (was introduced since last release in fixed for bug 1040244).
            </action>
            <action type="update" dev="mguillem" issue="1508377">
                JavaScript: ensure that script execution is synchronized on the owning html page
                (for instance using XMLHttpRequest asynchronously).
            </action>
            <action type="update" dev="mguillem" issue="1584525" due-to="Karel Kolman">
                JavaScript: made ThreadManager thread safe.
            </action>
            <action type="update" dev="mguillem" issue="1619727" due-to="Deryk Sinotte">
                JavaScript: perform correct setup of context for asynchronous execution of XMLHttpRequest.
            </action>
            <action type="update" dev="mguillem" issue="1611097">
                JavaScript: don't wrap JavaScript primitive types when returned from a Java method.
            </action>
            <action type="update" dev="dktaylor" issue="1040244">
                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.
            </action>
            <action type="update" dev="mguillem" issue="1608555">
                JavaScript: fixed regression introduced in 1.10 on window.eval for local scope.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: provide the event object to onfocus and onblur handlers.
            </action>
            <action type="update" dev="mguillem">
                Moved focus related methods from WebClient to HtmlPage and deprecated them on WebClient.
            </action>
            <action type="update" dev="dktaylor" issue="1605997">
                Fixed AREA elements can't handle JavaScript hrefs by
                copying code from anchor element.
            </action>
            <action type="update" dev="dktaylor" issue="1192854">
                Fixed frames[i] return null for frames generated by
                document.write by allowing JavaScript Window object to
                be properly initialized with JavaScriptEngine.
            </action>
            <action type="update" dev="dktaylor" issue="1124613">
                Fixed document.write problem when &amp;lt;a...&amp;gt; written in 2 times
                by checking for complete HTML tags before parsing.
            </action>
            <action type="update" dev="dktaylor" issue="1493455">
                Fixed document.write() does not keep ending spaces by reducing
                text of adjacent text nodes as a whole instead of separately.
            </action>
            <action type="update" dev="mguillem" issue="1601754" due-to="Andre Soereng">
                JavaScript: handle comments in event handlers.
            </action>
            <action type="update" dev="mguillem" issue="1592723">
                JavaScript: if window with name 'myOldWin' exists, window.open('', 'myOldWin') should retrieve it
                rather than opening a new one.
            </action>
            <action type="update" dev="mguillem">
                Fixed asText() for style node. Now returns an empty string.
            </action>
            <action type="update" dev="mguillem" issue="1592726">
                JavaScript: fixed select.selectedIndex = -1 should not be irreversible.
            </action>
            <action type="update" dev="mguillem" issue="1592728">
                JavaScript: setting option's selected status to false when it is already false
                shouldn't reset the whole select.
            </action>
            <action type="update" dev="mguillem" issue="1596926">
                JavaScript: fixed java.util.ConcurrentModificationException occurring when some onload event is
                removed during execution of an onload event.
            </action>
            <action type="update" dev="mguillem" issue="1409087">
                JavaScript: second argument DOM node's insertBefore is now optional
                when simulating Internet Explorer.
            </action>
            <action type="update" dev="mguillem" issue="1591212" due-to="Karel Kolman">
                Added support for comments: &amp;lt;!-- some comment --&amp;gt;. Patch from Karel Kolman.
            </action>
            <action type="update" dev="mguillem" issue="1204628">
                JavaScript: added XMLHttpRequest.overrideMimeType.
            </action>
            <action type="update" dev="mguillem" issue="1592299">
                JavaScript: fixed bug preventing to set non String style properties.
            </action>
            <action type="update" dev="mguillem" issue="1570478">
                JavaScript: allow to add options to a select with an index as second argument
                when simulating Internet Explorer.
            </action>
            <action type="update" dev="mguillem" issue="1579511">
                Ignore invalid URLs specified in &amp;lt;base href="..."/&amp;gt;.
            </action>
        </release>
        <release version="1.10" date="Nov 03, 2006">
            <action type="update" dev="mguillem" issue="1587246">
                Fixed asText() for script node. Now returns an empty string.
            </action>
            <action type="update" dev="mguillem" issue="1575783">
                Removed ":" in project id to avoid problems on Windows with plugins like idea.
            </action>
            <action type="update" dev="mguillem">
                Upgraded jaxen to 1.1-beta-11 (even if it's a "beta", this is the version
                recommended by jaxen developers).
            </action>
            <action type="update" dev="mguillem" issue="1559903">
                Added Maven compliant scopes in project.xml.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added minimal support for navigator.mimeTypes (Firefox).
            </action>
            <action type="update" dev="mguillem" issue="1570484">
                Fixed select's faked selections are ignored, if select is empty.
            </action>
            <action type="update" dev="mguillem" issue="1570567">
                Fixed asText() for hidden input. Now returns an empty string.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: only style's built in properties are of type String (with empty string as default value)
            </action>
            <action type="update" dev="mguillem" issue="1472606">
                Use MultiThreadedHttpConnectionManager (avoids problems with requests started asynchronously from JavaScript).
            </action>
            <action type="update" dev="mguillem" issue="1570597">
                JavaScript: property "all" now available on all html element (Internet explorer).
            </action>
            <action type="update" dev="mguillem">
                Fixed incorrect handling of web connections (missing call to releaseConnection()).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: item(xx) method now works correctly on node list.
            </action>
            <action type="update" dev="mguillem" due-to="Daniel Gredler">
                JavaScript: improved support for addEventListener on DOM nodes (Mozilla) and added support for attachEvent (Internet explorer).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: build XMLHttpRequest for all ActiveX names starting with "Msxml2.XMLHTTP".
            </action>
            <action type="update" dev="mguillem" issue="1562461">
                JavaScript: fixed bug in table.insertRow with empty tbody.
            </action>
            <action type="update" dev="mguillem" issue="1531821">
                Follow redirection to the same Url if original method was a POST. Handle redirections
                like browsers do rather than according to the RFC.
            </action>
            <action type="update" dev="mguillem" issue="1345136">
                JavaScript: allow script to set a "javascript:..." location.
            </action>
            <action type="update" dev="mguillem" issue="1495132">
                JavaScript: use of HTMLElement.innerHTML should not cause registration of a WebWindow.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: window.eval now evaluates in the right window scope.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added basic support for addEventListener on DOM nodes (Mozilla).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for window.createPopup (Internet Explorer).
            </action>
            <action type="update" dev="mguillem">
                Added FrameWindow.getFrameElement and support for Javascript's frameElement property on windows.
            </action>
            <action type="update" dev="mguillem">
                Parser: automatically add an &amp;lt;head&amp;gt; element if none present in html source
                (as done by Internet Explorer and Firefox).
            </action>
            <action type="update" dev="mguillem" issue="1491743">
                JavaScript: Location.replace wrongly loaded new URL in top window.
            </action>
            <action type="update" dev="mguillem" issue="1527799">
                XPath: fixed wrong behavior with following axis.
            </action>
            <action type="update" dev="mguillem" issue="1552746">
                JavaScript: fixed double execution of external JavaScript files occurring when text contained
                between &amp;lt;script src=...&amp;gt; and &amp;lt;/script&amp;gt;.
            </action>
            <action type="update" dev="mguillem" issue="1525269" due-to="Andre Soereng">
                JavaScript: allow to specify a maximal script execution time.
            </action>
            <action type="update" dev="mguillem">
                INCOMPATIBLE CHANGE: OK button is now simulated for JavaScript confirm calls when no ConfirmHandler is
                installed (it was was the Cancel button previously).
            </action>
            <action type="update" dev="mguillem">
                Removed Jelly support.
            </action>
            <action type="update" dev="mguillem" issue="1545598">
                Updated doc to reflect migration from CVS to SVN.
            </action>
            <action type="update" dev="bradclarke">
                Do not submit reset buttons in forms.
            </action>
            <action type="update" dev="mguillem" issue="1244810" due-to="Daniel Gredler">
                Transparently decompress server response if gzipped for transfer.
            </action>
            <action type="update" dev="mguillem" issue="1538136">
                JavaScript: fixed default String conversion of objects (like table, table row, table cell, collection).
            </action>
            <action type="update" dev="mguillem" issue="1415496">
                JavaScript: XMLHttpRequest.responseXml NodeList elements now accessible by index.
            </action>
            <action type="update" dev="mguillem" issue="1525234" due-to="Andre Soereng">
                JavaScript: take expiration date into account when creating cookies.
            </action>
            <action type="update" dev="mguillem" issue="1528024">
                JavaScript: cells collection for rows now takes th into account.
            </action>
            <action type="update" dev="bradclarke">
                JavaScript: table/tbody.deleteRow(-1) will now delete the last row
            </action>
        </release>
        <release version="1.9" date="Jun 27, 2006">
            <action type="update" dev="bradclarke">
                Upgraded commons-collections to version 3.2
            </action>
            <action type="update" dev="bradclarke">
                Upgraded commons-logging to version 1.1
            </action>
            <action type="update" dev="bradclarke">
                Upgraded commons-io to version 1.2
            </action>
            <action type="update" dev="mguillem" issue="1439904">
                JavaScript: added support IE style of events (window.event).
            </action>
            <action type="update" dev="mguillem" issue="1472307">
                Added possibility to configure NTLM credentials for the DefaultCredentialsProvider.
            </action>
            <action type="update" dev="mguillem">
                Added facility method WebClient.getPage(String).
            </action>
            <action type="update" dev="mguillem">
                Upgraded jaxen to 1.1-beta-9 (even if it's a "beta", this is the version
                recommended by jaxen developers).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: set form as parent scope for form fields (allows handlers to call directly form
                methods like submit()).
            </action>
            <action type="update" dev="mguillem">
                XmlPage: parse xml pages namespace aware.
            </action>
            <action type="update" dev="mguillem" issue="1494421">
                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.
            </action>
            <action type="update" dev="mguillem">
                Use Byte Order Mark to recognize UTF-8 content when no charset header is provided.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added addEventListener/attachEvent, removeEventListener/detachEvent to Window,
                allowing to register load events on a window.
            </action>
            <action type="update" dev="mguillem">
                Upgraded commons-httpclient to version 3.0.1.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for properties defaultView (Mozilla) and parentWindow (IE) on Document.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for property ownerDocument on HtmlElements.
            </action>
            <action type="update" dev="mguillem">
                DomText.asText() now cleans up &amp;nbsp; and multiple blanks as other DomNodes do.
            </action>
            <action type="update" dev="mguillem">
                Added facility methods HtmlOption.getEnclosingSelect() and HtmlLabel.getReferencedElement().
            </action>
            <action type="update" dev="mguillem" issue="1455390" due-to="Julien Henry">
                Fixed HtmlTable.getCellAt when table contains a rowspan.
            </action>
            <action type="update" dev="mguillem" issue="1460444">
                Proxy settings now respected to load external JavaScript files.
            </action>
            <action type="update" dev="bradclarke">
                HtmlCheckBoxInput.setChecked() now fires the JavaScript onchange event.
            </action>
            <action type="update" dev="bradclarke">
                Implemented window.setTimeout(function, int) and window.setInterval(function, int)
            </action>
            <action type="update" dev="bradclarke">
                HtmlOption.asText() now respects the label attribute as browsers do.
            </action>
            <action type="update" dev="mguillem" issue="1437068">
                Encode path part of URLs containing illegal characters.
            </action>
            <action type="update" dev="mguillem" issue="1436102" due-to="Brad Murray">
                Added support for firing onkeydown events.
            </action>
            <action type="update" dev="mguillem" issue="1419050">
                HtmlElement.getAttributeEntriesIterator now returns the attributes in the order in
                which they appear in the html source code.
            </action>
            <action type="update" dev="mguillem" issue="1438216">
                HttpWebConnection now allows extensions to simply override HttpClient creation.
            </action>
            <action type="update" dev="mguillem" issue="1439464">
                Use configured proxy when performing a request after a redirection.
            </action>
            <action type="update" dev="mguillem">
                Allow &amp;lt;button...&amp;gt;s located outside of a form to be clicked and their onclick handler to be called.
            </action>
        </release>
        <release version="1.8" date="Feb 17, 2006">
            <action type="update" dev="mguillem" issue="1280422">
                Cookies can now be shared between HTTP and HTTPS.
            </action>
            <action type="update" dev="mguillem">
                HttpWebConnection now uses a single instance of HttpClient (as it can now handle multiple connections).
            </action>
            <action type="update" dev="mguillem">
                Throw ScriptException (unless WebClient.isThrowExceptionOnScriptError() is false) when the source
                of an external script can't be loaded.
            </action>
            <action type="update" dev="mguillem">
                Deprecated ScriptException.getEnclosedException. Use getCause instead.
            </action>
            <action type="update" dev="mguillem">
                Added URL of the failed request in message of FailingHttpStatusCodeException.
            </action>
            <action type="update" dev="bradclarke">
                Fixed a bug that could cause a ConcurrentModificationException when navigating away
                from a page with JavaScript running in the background.
            </action>
            <action type="update" dev="mguillem">
                DefaultPageCreator now builds an XmlPage and not a TextPage for responses with content type "text/vnd.wap.wml".
            </action>
            <action type="update" dev="mguillem">
                JavaScript: fixed parent scope wrongly set on Style object.
            </action>
            <action type="update" dev="mguillem">
                FailingHttpStatusCodeException now contains the failing WebResponse.
            </action>
            <action type="update" dev="bradclarke">
                Modified XmlHttpRequest to use new thread management API for async requests.
            </action>
            <action type="update" dev="mguillem">
                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).
            </action>
            <action type="update" dev="mguillem" issue="1105226">
                Fixed bad handling of comma in Location header of redirections (30x)
            </action>
            <action type="update" dev="bradclarke">
                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.
            </action>
            <action type="update" dev="mguillem" issue="1281651" due-to="Stefan Anzinger">
                JavaScript: added support for properties target and srcElement on events.
            </action>
            <action type="update" dev="mguillem">
                Upgraded commons-httpclient to version 3.0.
            </action>
            <action type="update" dev="mguillem" issue="1385864" due-to="Paul King">
                Fixed NPE thrown when JS error occurs on click when ThrowExceptionOnScriptError is false.
            </action>
            <action type="update" dev="bradclarke">
                Added HtmlAnchor.openLinkInNewWindow()
            </action>
            <action type="update" dev="mguillem" issue="1382013">
                JavaScript: changes on form's action attribute in onSubmit were ignored.
            </action>
            <action type="update" dev="mguillem" issue="1381734">
                Allow external scripts to be loaded using file protocol.
            </action>
            <action type="update" dev="mguillem" issue="1369052" due-to="Mark van Leeuwen">
                JavaScript: added support for property cellIndex on td and th eleements.
            </action>
            <action type="update" dev="bradclarke">
                BaseFrame.FrameWindow has been deprecated and replaced with a top level
                FrameWindow class.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: fixed exception occurring when addBehavior is called twice for the same
                behavior.
            </action>
            <action type="update" dev="mguillem" issue="1378925" due-to="Bruce Faulkner">
                JavaScript: Implement add() method for OptionsArray to avoid TypeError.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added the full URL of the file containing the script being executed
                in the exception message when a script error occurs.
            </action>
            <action type="update" dev="mguillem" issue="1238429" due-to="Daniel Gredler">
                JavaScript: made Location properties writable.
            </action>
            <action type="update" dev="mguillem" issue="1224239" due-to="Daniel Gredler">
                Added possibility to bypass configured proxy for some hosts.
            </action>
            <action type="update" dev="mguillem" issue="1224239" due-to="Vikram Shitole and Daniel Gredler">
                Fixed support for NTLM proxy.
            </action>
            <action type="update" dev="mguillem" issue="1370484">
                JavaScript: setting options' length to a value greater than current.
                size fills option array with empty options.
            </action>
            <action type="update" dev="mguillem" issue="1370049" due-to="Paul King">
                Fixed mangled binary files loaded with the file protocol for non ISO-8859-1
                default system file encoding.
            </action>
            <action type="update" dev="mguillem">
                Upgraded commons-io to 1.1.
            </action>
            <action type="update" dev="mguillem" issue="1370468">
                Form's name now writable (both in DOM and in Javascript).
            </action>
            <action type="update" dev="mguillem" issue="1369514">
                Javascript: getElementsByTagName now returns an ElementArray (instead of a
                NativeArray) for html elements allowing expressions like
                "myForm.getElementsByTagName('input')['one']".
            </action>
            <action type="update" dev="mguillem" issue="1111597" due-to="Daniel Gredler">
                JavaScript: when simulating IE, options collection delegates to select
                when the requested property/method doesn't exist.
            </action>
            <action type="update" dev="mguillem">
                Consider inputs with invalid type as text inputs.
            </action>
            <action type="update" dev="mguillem" issue="1357412">
                JavaScript: responses to XMLHttpRequest don't disturb window contents anymore.
            </action>
            <action type="add" dev="bradclarke">
                All code deprecated prior to 1.6 has been removed
            </action>
            <action type="add" dev="mguillem" issue="1343212" due-to="Stefan Anzinger">
                JavaScript: added implementation of IE behavior "#default#download".
            </action>
            <action type="update" dev="mguillem">
                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.
            </action>
            <action type="update" dev="mguillem" issue="1334150">
                HtmlOption.click() now returns correctly the page loaded by an onchange event.
            </action>
            <action type="update" dev="mguillem" issue="1334541" due-to="Ian Lovejoy">
                Fixed requested URL for post form with empty action and original page containing
                a query string or action containing only a query string.
            </action>
            <action type="update" dev="mguillem">
                Upgraded jaxen to 1.1-beta-8 (even if it's a "beta", this is the version
                recommended by jaxen developers).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for property contentWindow on (i)frames.
            </action>
            <action type="update" dev="mguillem">
                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).
            </action>
            <action type="update" dev="mguillem" issue="1239285">
                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.
            </action>
            <action type="update" dev="bradclarke">
                Upgraded commons-httpclient to version 3.0rc4 in ant as well.
                Made HtmlForm.submit(SubmittableElement) public to simulate
                keyboard submits (more to come later).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: XMLHttpRequest.send now accepts null as parameter
                and fails when simulating Mozilla if called with no parameter like the browser does.
            </action>
            <action type="update" dev="mguillem">
                Upgraded commons-httpclient to version 3.0rc4.
            </action>
            <action type="update" dev="mguillem" issue="1260369">
                Javascript: allow to set current node's property within onclick event handler.
            </action>
            <action type="update" dev="mguillem" issue="1209682">
                Javascript: XMLHttpRequest now accepts non xml responses.
            </action>
            <action type="update" dev="mguillem" issue="1323425">
                Javascript: allow to change selected attribute of options created with
                document.createElement('option') and not yet added to a select.
            </action>
            <action type="update" dev="mguillem" issue="1289060">
                Load frames content first after the page is loaded to allow access to the whole page
                for scripts contained in the frames.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for document.frames (specific to IE).
            </action>
            <action type="update" dev="mguillem" issue="1304741">
                JavaScript: when simulating IE, second parameter in Select.add can be omitted.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: in a frameset, document.body returns the frameset node.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added dummy implementation of the properties scrollHeight, scrollLeft,
                scrollTop and scrollWidth for html elements.
            </action>
            <action type="update" dev="mguillem" issue="1280127">
                JavaScript: added document.anchors.
            </action>
            <action type="update" dev="mguillem" issue="1209692">
                JavaScript: XMLHttpRequest now accepts relative urls.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: allow creation of XMLHttpRequest as new ActiveXObject('Microsoft.XMLHTTP')
                when simulating Internet Explorer.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: default conversion of host objects to string is now "[object Xxxx]" like what Mozilla does
            </action>
            <action type="update" dev="mguillem" issue="1289462" due-to="Lothar M�rkle">
                DomNode.asXml() now produces correct xml encoding special characters.
            </action>
            <action type="update" dev="mguillem" issue="1267106" due-to="Bruce Faulkner">
                JavaScript: implemented property offsetParent.
            </action>
        </release>
        <release version="1.7" date="Aug 23, 2005">
            <action type="update" dev="mguillem" issue="1153775">
                JavaScript: img nodes can be accessed by id or name within a form.
            </action>
            <action type="update" dev="mguillem" issue="1265410" due-to="Stefan Anzinger">
                Click on a JavaScript link loading a page containing frames now return
                the main loaded page and not a frame anymore.
            </action>
            <action type="update" dev="mguillem">
                Trim the text of HtmlOption when it is used as initial value attribute
                (when no attribute is found as defined in HTML 4.01).
            </action>
            <action type="update" dev="mguillem" issue="1264271" due-to="Bruce Faulkner">
                JavaScript: fixed problem occurring while reading properties of nodes retrieved with childNodes().
            </action>
            <action type="update" dev="mguillem" issue="1210726">
                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.
            </action>
            <action type="update" dev="mguillem" issue="1119937">
                When posting a form, use encoding from accept-charset attribute if any else
                from page to encode the posted parameters.
            </action>
            <action type="update" dev="mguillem">
                Fixed infinite loop when DefaultCredentialsProvider provides invalid credential.
                Ensure that the web connection uses the CredentialProvider configured for the WebClient.
            </action>
            <action type="update" dev="mguillem" issue="1195099">
                Handle port correctly when handling a redirection to an other port on the same host.
            </action>
            <action type="update" dev="mguillem" issue="1151593">
                JavaScript: fixed properties text, value and selected for Option objects
                created from JavaScript and not yet added to a select.
            </action>
            <action type="update" dev="mguillem" issue="1211980">
                Added WebResponse.getRequestMethod().
                ImmediateRefreshHandler now accepts a refresh to the same URL if the first request was a POST.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support for window.closed.
            </action>
            <action type="update" dev="mguillem">
                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().
            </action>
            <action type="update" dev="mguillem" issue="1159709">
                JavaScript: fixed execution of onchange handlers to really return
                "The page that occupies this window after this method completes" as defined by
                the javadoc.
            </action>
            <action type="update" dev="mguillem" issue="1244839">
                JavaScript: fixed behavior of table.insertRow and table.rows.length for tables containing nested tables.
            </action>
            <action type="update" dev="mguillem" issue="1244959">
                Improved the way getHtmlElementById handle pages containing multiple elements with the same id.
            </action>
            <action type="update" dev="mguillem" issue="1244923">
                JavaScript: made input.setAttribute("type", xxx) behave the same than input.type = xxxx.
            </action>
            <action type="update" dev="mguillem" issue="1210751">
                JavaScript: fixed double execution of script inside &amp;lt;table&amp;gt;.
            </action>
            <action type="update" dev="mguillem" issue="1241739" due-to="Bruce Faulkner">
                Set state of radio button before executing onclick handler.
            </action>
            <action type="update" dev="mguillem">
                Upgraded nekohtml to version 0.9.5
            </action>
            <action type="update" dev="mguillem">
                Load responses which content type matches regular expression
                "application/.*\+xml" as XmlPage (rather than UnexpectedPage).
            </action>
            <action type="update" dev="mguillem" issue="1233519">
                Children of removed nodes were erroneously still available by id using
                HtmlPage.getElementById.
            </action>
            <action type="update" dev="bradclarke">
                Upgraded commons-jelly to version 1.0
            </action>
            <action type="update" dev="bradclarke">
                Upgraded commons-httpclient to version 3.0rc3
            </action>
            <action type="update" dev="bradclarke" issue="1195509" due-to="dlevine004">
                Added method for setting HttpClient's virtual host
            </action>
            <action type="update" dev="mguillem" issue="1221161" due-to="Denis N. Antonioli">
                INCOMPATIBLE CHANGE: HtmlElement.getAttributeEntriesIterator now return an iterator
                on HtmlAttr (and not Map.Entry) allowing XPath expressions that return a list of node attributes.
            </action>
            <action type="update" dev="mguillem" issue="1220522">
                Don't perform server request when a link is clicked if href is just an anchor (like "#").
            </action>
            <action type="update" dev="mguillem" issue="1101525">
                JavaScript: resolve relative locations from the originating page.
            </action>
            <action type="update" dev="mguillem" issue="1213455" due-to="Daniel Gredler">
                JavaScript: use the Window as the top scope in Rhino JavaScript engine.
            </action>
            <action type="update" dev="bradclarke">
                JavaScript: Fixed bug with onchange handler being fired for all input type="file"
                on creation.
            </action>
            <action type="update" dev="mguillem" issue="1210742">
                JavaScript: handle position in insertAjacentHTML as case insensitive as IE does.
            </action>
            <action type="update" dev="mguillem" issue="1216267">
                HtmlOption.click() now selects the option.
            </action>
            <action type="update" dev="mguillem" issue="1215621">
                Handle content types in a case insensitive way (as of RFC 2045).
            </action>
            <action type="update" dev="mguillem" issue="1209947" due-to="Daniel Gredler">
                Implemented form reset, defaultValue and defaultChecked.
            </action>
            <action type="update" dev="bradclarke">
                JavaScript: Added window.print() as unimplemented method.
            </action>
            <action type="update" dev="mguillem" issue="1204922">
                Javascript: document.getElementsByTagName and document.getElementsByName
                now return an ElementArray (instead of a NativeArray) allowing expressions
                like "document.getElementsByTagName('a').item(0)".
            </action>
            <action type="update" dev="mguillem" due-to="Ray Suliteanu">
                In a script tag &amp;lt;script type="..."&amp;gt;, the value of the type attribute is case insensitive.
            </action>
            <action type="update" dev="mguillem">
                Send headers added with WebClient.addRequestHeader to the server again
                (bug introduced in release 1.6).
            </action>
            <action type="update" dev="mguillem">
                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).
            </action>
            <action type="update" dev="mguillem">
                A click on a &amp;lt;label ...&amp;gt; is now propagated to the referenced element.
            </action>
        </release>
        <release version="1.6" date="May 10, 2005">
            <action type="update" dev="bradclarke" issue="1194006" due-to="Daniel Gredler">
                Added XMLHttpRequest support. Patch submitted by Daniel Gredler.
            </action>
            <action type="update" dev="bradclarke" issue="1080774" due-to="Daniel Gredler">
                Deprecated and renamed getAll&amp;lt;Something&amp;gt;s methods to get&amp;lt;Something&amp;gt;s to
                make them easier to find.
            </action>
            <action type="update" dev="bradclarke">
                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.
            </action>
            <action type="update" dev="mguillem" issue="1183971" due-to="Bruce Faulkner">
                Javascript: fixed exception occurring while changing type of input created via document.createElement().
            </action>
            <action type="update" dev="bradclarke">
                Upgraded commons-httpclient to version 3.0rc2
            </action>
            <action type="update" dev="mguillem" issue="1188143" due-to="Bruce Faulkner">
                Javascript: insertRow now accepts the number of rows as parameter value.
            </action>
            <action type="update" dev="mguillem" issue="1183019" due-to="Chris Eldredge">
                Javascript: the onchange event handler of a radio button is now invoked when its state is changed.
            </action>
            <action type="update" dev="mguillem">
                Javascript: implemented property contentDocument for frames and iframes on Mozilla.
            </action>
            <action type="update" dev="mguillem" issue="1180352" due-to="George Murnock">
                Javascript: fixed error occurring in NodeImpl insertBefore() with null reference child object.
            </action>
            <action type="update" dev="cerskine">
                Now load the mapping of html classes to their respective JS classes from the configuration
                file.
            </action>
            <action type="update" dev="mguillem" issue="1179134">
                Javascript: when simulating IE, window.open("") handles empty string as "about:blank".
            </action>
            <action type="update" dev="cerskine">
                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.
            </action>
            <action type="update" dev="mguillem">
                INCOMPATIBLE CHANGE: replaced WebClient.setValidateHtml(boolean) with WebClient.setHTMLParserListener(HTMLParserListener)
                allowing to programmatically catch parser messages.
            </action>
            <action type="update" dev="mguillem" issue="1161705">
                Javascript: fixed infinite loop caused by onblur.
            </action>
            <action type="update" dev="mguillem">
                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).
            </action>
            <action type="update" dev="mguillem">
                Javascript: added navigator.language for Mozilla.
            </action>
            <action type="update" dev="mguillem">
                Javascript: added dummy implementation of Mozilla's window properties innerHeight, innerWidth, outerHeight, outerWidth.
            </action>
            <action type="update" dev="cerskine">
                Added to the JavaScript configuration page a column showing if a function is not implemented.
            </action>
            <action type="update" dev="cerskine">
                Reworked the JavaScript configuration.  Configuration file is now used and supports the
                browser constraints on the properties and functions.
            </action>
            <action type="update" dev="mguillem">
                Javascript: navigator properties now depend from used BrowserVersion.
            </action>
            <action type="add" dev="mguillem">
                Javascript: added dummy implementation for read only properties offsetHeight, offsetLeft, offsetTop and offsetWidth.
            </action>
            <action type="add" dev="mguillem" issue="1150208">
                Javascript: added support for multiple arguments for document.write and document.writeln.
            </action>
            <action type="add" dev="mguillem" issue="1150208" due-to="Daniel Gredler">
                Added WebResponse.getResponseHeaders().
            </action>
            <action type="update" dev="mguillem" issue="1166652" due-to="Alfred Nathaniel">
                Fixed NPE in loadWebResponse for responses with status code 204 (No Content).
            </action>
            <action type="update" dev="mguillem" issue="1166781" due-to="Kent Tong">
                Javascript: form's onsubmit property is now a function and can be assigned.
            </action>
            <action type="add" dev="mguillem" issue="1153758" due-to="George Murnock">
                Javascript: added support for new Image() and changing src attribute.
            </action>
        </release>

        <release version="1.5" date="March 13, 2005">
            <action type="update" dev="mguillem" issue="976077">
                Determine content-type of uploaded files.
            </action>
            <action type="add" dev="mguillem" issue="1153758" due-to="George Murnock">
                Javascript: implemented method removeAttribute for DOM nodes.
            </action>
            <action type="update" dev="bradclarke">
                Javascript: Added support for document.scripts
            </action>
            <action type="update" dev="mguillem" issue="1157936">
                Javascript: fixed getAttribute() to return null if the requested attribute is not defined.
            </action>
            <action type="add" dev="mguillem" issue="1153693" due-to="George Murnock">
                Javascript: implemented property childNodes.
            </action>
            <action type="update" dev="bradclarke">
                Fixed bug where document.write-ing a frame was causing an attempt
                to load an invalid URL starting with http://first
            </action>
            <action type="update" dev="mguillem" issue="1155063">
                Fixed node reference problem occurring when the text of a textarea is changed.
            </action>
            <action type="update" dev="mguillem" issue="1153710" due-to="George Murnock">
                Javascript: document.links doesn't return tags with empty href anymore.
            </action>
            <action type="update" dev="bradclarke">
                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.
            </action>
            <action type="update" dev="mguillem">
                Javascript: the type property of input elements can now be changed.
            </action>
            <action type="update" dev="mguillem" issue="1145773" due-to="George Murnock">
                Fixed bug occurring when submitting from JavaScript a form with a JavaScript action.
            </action>
            <action type="update" dev="bradclarke" issue="1151184">
                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.
            </action>
            <action type="update" dev="bradclarke" issue="1145916" due-to="Daniel Gredler">
                JavaScript: Implemented location.reload().
            </action>
            <action type="update" dev="bradclarke" issue="1143982" due-to="Daniel Gredler">
                Fixed bug with meta refresh that only contained a number.
            </action>
            <action type="update" dev="bradclarke" issue="1145869" due-to="Daniel Gredler">
                INCOMPATIBLE CHANGE: RefeshHandler interface changed and they must now do the
                refresh themselves. DefaultRefreshHandler was replaced with
                ImmediateRefreshHandler (the new default) and ThreadedRefreshHandler.
            </action>
            <action type="update" dev="bradclarke" issue="1144103" due-to="Daniel Gredler">
                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.
            </action>
            <action type="update" dev="mguillem" issue="1110768" due-to="Daniel Gredler">
                JavaScript: Pick up behaviors defined in style attribute when simulating IE.
            </action>
            <action type="update" dev="mguillem" issue="1118222">
                JavaScript: expressions like myForm.myField now look for form fields with "myField" as id or name.
            </action>
            <action type="update" dev="mguillem" issue="1118877">
                Clicked image button without name sends parameter x and y.
            </action>
            <action type="update" dev="mguillem" issue="1093017" due-to="David D. Kilzer">
                Submit form elements in the same order that they appear in the HTML form.
            </action>
            <action type="update" dev="bradclarke">
                Upgraded commons-httpclient to version 3.0rc1
            </action>
            <action type="update" dev="mguillem" issue="1115259" due-to="Michael Ottati">
                JavaScript: fixed document.domain setter for domains like d1.d2.d3.d4.com.
            </action>
            <action type="update" dev="mguillem" issue="1115091">
                JavaScript: fixed document.myForm.myField should not retrieve the field if it is an input of type image.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added empty implementation of type setter for input fields (already allowing some scripts to run).
            </action>
            <action type="add" dev="mguillem">
                Added HtmlElement.getEnclosingElement(String tagName).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added properties rowIndex and cells and function insertCell for table rows.
            </action>
            <action type="add" dev="mguillem">
                JavaScript: fixed insertRow when asked to insert at the end of the rows collection (was inserted one position before).
            </action>
            <action type="update" dev="mguillem" issue="1113487">
                Guess content type for file content and file name when loading a file URL.
            </action>
            <action type="update" dev="mguillem">
                Parse responses of type "application/xml" as XmlPage.
            </action>
            <action type="update" dev="mguillem" issue="1101525" due-to="Hans Donner">
                Fixed wrong URLs expansion with "#".
            </action>
            <action type="update" dev="mguillem" issue="1106319" due-to="Daniel Gredler">
                JavaScript: improved window.execScript to execute JavaScript code.
            </action>
            <action type="update" dev="mguillem" issue="1109224" due-to="Hans Donner">
                Use commons-codec's Base64. Marked custom Base64 as deprecated.
            </action>
            <action type="update" dev="mguillem" issue="1002140" due-to="Daniel Gredler">
                Fixed NullPointerException thrown in JavaScript by createElement('input')
            </action>
            <action type="update" dev="mguillem" issue="1107432" due-to="Hans Donner">
                Javascript: implemented innerText for html elements (read/write).
            </action>
            <action type="update" dev="mguillem">
                Fixed ClassCastException occurring when unloading a frameset that contained a frame which content wasn't html.
            </action>
            <action type="update" dev="bradclarke">
                Implemented WebRequestSettings parameter object.
                Created new WebClient.getPage() methods and deprecated old ones.
            </action>
            <action type="update" dev="bradclarke">
                Stopped httpclient from automatically retrying failed connections 5 times.
            </action>
            <action type="update" dev="bradclarke">
                A failure when setting a location from JavaScript now throws an exception
            </action>
            <action type="update" dev="bradclarke" issue="1104522" due-to="Daniel Gredler">
                Added support for misc table methods in JavaScript
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added dummy implementation of window.setInterval and window.clearInterval doing nothing.
            </action>
            <action type="update" dev="bradclarke" issue="976471" due-to="David D. Kilzer">
                synchronized JavaScript execution for multi-threaded testing
            </action>
            <action type="update" dev="bradclarke" issue="1088709">
                parse application/xhtml+xml content type into HtmlPage
            </action>
            <action type="update" dev="mguillem" issue="1104028">
                JavaScript: use js object Input for &amp;lt;input type="image" .../&amp;gt; and &amp;lt;input type="button" .../&amp;gt;
            </action>
            <action type="update" dev="mguillem">
                JavaScript: default conversion to string of an anchor returns the fully qualified URL specified by the href.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: the DOM node of a &amp;lt;frame&amp;gt; or &amp;lt;frame&amp;gt; is now visible to the contained page while loading.
            </action>
            <action type="update" dev="mguillem" issue="1084226">
                JavaScript: when simulating IE, a variable named after the id of a DOM node represents this DOM node.
            </action>
            <action type="add" dev="mguillem" due-to="David D. Kilzer" issue="1099235">
                Made window.name writable.
            </action>
            <action type="update" dev="mguillem" issue="1100975">
                JavaScript: document.xxx now retrieves DOM node with name xxx only if it's an img or a form (input should not be retrieved).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: Fixed bug in window.frames[i] (was introduced in 1.4).
            </action>
            <action type="update" dev="cerskine">
                JavaScript: Fixed bug with frames.length not working.
            </action>
            <action type="add" dev="mguillem" due-to="Daniel Gredler" issue="1100321">
                JavaScript: Implement writable document.location.
            </action>
            <action type="update" dev="mguillem" issue="1100089">
                JavaScript: added window.status and removed erroneous document.status.
            </action>
            <action type="update" dev="mguillem" due-to="Chris Eldredge" issue="1099644">
                Fixed window.frames['frameName'] causes ClassCastException.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: document.getElementById("") now returns null.
            </action>
        </release>
        <release version="1.4" date="January 9, 2005">
            <action type="add" dev="mbowler" due-to="David D. Kilzer" issue="1098981">
                Fixed platform specific encoding problem in test WebClientTest.testLoadPage_EncodeQueryString()
            </action>
            <action type="add" dev="mguillem" due-to="Daniel Gredler" issue="1090094">
                JavaScript: added window.clearTimeout.
            </action>
            <action type="update" dev="mguillem" issue="949691">
                JavaScript: dynamically compiled function runs in the scope of their creation.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: fixed problem occurring for &amp;lt;script for="window" event="onload()"&amp;gt; with event value ending with "()".
            </action>
            <action type="add" dev="mguillem">
                JavaScript: added document.domain.
            </action>
            <action type="add" dev="mguillem" due-to="Daniel Gredler" issue="1096789">
                JavaScript: added implementation of IE behavior "#default#clientCaps".
            </action>
            <action type="update" dev="mguillem">
                JavaScript: added support to get/set the onload property as a function for window and for frames.
            </action>
            <action type="update" dev="mguillem">
                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.
            </action>
            <action type="add" dev="mguillem">
                Added HtmlPage.getFrameByName
            </action>
            <action type="update" dev="mguillem" due-to="Mike Bresnahan" issue="1083336">
                asText() now returns "checked" or "unchecked" for HtmlRadioButtonInput and HtmlCheckBoxInput
            </action>
            <action type="add" dev="mguillem">
                JavaScript: added dummy implementation of window.execScript doing nothing.
            </action>
            <action type="add" dev="mguillem" due-to="Daniel Gredler" issue="1096133">
                JavaScript: added attribute support.
            </action>
            <action type="add" dev="mguillem">
                Added WebClient.setThrowExceptionOnScriptError(boolean) and isThrowExceptionOnScriptError() to allow script errors
                to stop only execution of current script as browsers do.
            </action>
            <action type="update" dev="mguillem">
                JavaScript: document.write(ln) writes directly in DOM which allows access to DOM nodes in the same script code.
            </action>
            <action type="add" dev="bradclarke">
                Added WebClient.setTimeout(int) and WebClient.getTimeout()
            </action>
            <action type="update" dev="mguillem">
                JavaScript: all elements can now be accessed by name with syntax document.foo (like what was already working for forms).
            </action>
            <action type="update" dev="mguillem">
                JavaScript: setting the value attribute of a select object now selects the corresponding option.
            </action>
            <action type="update" dev="mguillem">
                document.images is now a "live" collection.
            </action>
            <action type="update" dev="mguillem">
                Added DebuggingWebConnection, a web connection that saves the received responses and builds an overview.
                Sometimes useful at conception time to understand what is "browsed".
            </action>
            <action type="update" dev="mguillem" due-to="Chris Eldredge" issue="1090438">
                Extended JavaScript event handler to most common events:  ondblclick, onmousedown, onmouseup,
                onmousemove, onmouseover, onmouseout, onkeypress, onkeydown, onkeyup, onfocus, onblur.
            </action>
            <action type="update" dev="mguillem">
                Added JS support for outerHTML.
            </action>
            <action type="update" dev="mguillem">
                Upgraded commons-httpclient to version 3.0beta1
            </action>
            <action type="update" dev="mguillem">
                Added dependency to commons-codec 1.3
            </action>
            <action type="update" dev="mguillem" issue="1058846">
                Possibly incompatible change: Removed fix trying to mimic browser kludge for non-RFC2019-compliant cookies as it causes new problems.
            </action>
            <action type="update" dev="mguillem">
                Possibly incompatible change: Don't set httpclient's cookie policy to COMPATIBILITY anymore what lets user configure it directly
                or use the default (RFC2109).
            </action>
            <action type="add" dev="mguillem">
                Added support for setting cookies from JS (like document.cookie = "foo=something").
            </action>
            <action type="add" dev="mguillem">
                Added dependency to commons-lang
            </action>
            <action type="update" dev="mguillem">
                Trying to set a JS property configured with writable="false" now generates a JS runtime error.
            </action>
            <action type="add" dev="mguillem">
                Added conversion to string and method toString on event handler functions.
            </action>
            <action type="add" dev="mguillem">
                Added support for JS document.links.
            </action>
            <action type="update" dev="mguillem" issue="1067396">
                IFrames can now be seen in JS as an html element too. Expressions like window.myIFrame.style.display now work.
            </action>
            <action type="update" dev="mguillem" issue="1088353">
                document.forms is now a "live" collection and forms can be accessed with document.forms["myFormId"] where "myFormId" is the id of a form.
            </action>
            <action type="update" dev="mguillem">
                Collections like document.all or form.elements now use xpath expressions and are "live" (thanks to Daniel Gredler for the idea).
            </action>
            <action type="update" dev="mguillem">
                Added the possibility to evaluate xpath expressions relatively to a particular node of a the html document.
            </action>
            <action type="update" dev="mguillem">
                Added node.children.
            </action>
            <action type="update" dev="mguillem" due-to="Daniel Gredler" issue="1088655">
                Fixed bug for JS wrapped in HTML comments on one line.
            </action>
            <action type="update" dev="mguillem">
                Allow to set commons-httpclient cookie policy using system property.
            </action>
            <action type="update" dev="mguillem">
                Added support for insertAdjacentHTML.
            </action>
            <action type="update" dev="mguillem" issue="930846">
                Fixed DomNode.replace() fails to set previousSibling on newNode and other problems when changing DomNode.
            </action>
            <action type="update" dev="mguillem" due-to="Chris Eldredge" issue="1080365">
                Allow onclick event handler to be set by JavaScript.
            </action>
            <action type="update" dev="cerskine">
                Added logic to WebClient to allow messages from parsing the HTML to be displayed on the
                on the console.
            </action>
            <action type="update" dev="mguillem" due-to="Sergey Gorelkin" issue="1085612">
                Fixed bug changing "//" to "/" in query parameters of URLs called from a page.
            </action>
            <action type="update" dev="mguillem">
                When simulating IE, nodes can now be accessed directly by their name (ex: window.form1).
            </action>
            <action type="update" dev="mguillem" due-to="Daniel Gredler" issue="1085878">
                Improved ElementArray: fix for empty collection and addition of method namedItem().
            </action>
            <action type="update" dev="mguillem">
                Fixed bug with setTimeout: a timeout is now only executed if the page that placed it is always "alive".
            </action>
            <action type="update" dev="mguillem" issue="1085378">
                Fixed html element property access in JS: attributes are case sensitive.
            </action>
            <action type="update" dev="mguillem">
                Improved JS innerHTML to allow complex html code to be set.
            </action>
            <action type="update" dev="mguillem" due-to="Daniel Gredler" issue="1085224">
                Refactored different arrays of html elements in a generic ElementArray. Expressions like "document.all.tags('s').item(y)" can now be evaluated.
            </action>
            <action type="update" dev="mguillem" issue="1082098">
                Upgraded rhino js to 1.6R1.
            </action>
            <action type="update" dev="mguillem" due-to="Mike Bresnahan" issue="1083330">
                Fixed NullPointerException tossed by HtmlSelect.asText() if no option is selected.
            </action>
            <action type="update" dev="mguillem">
                Improved Refresh meta tag support: Take care of enclosing &amp;lt;noscript&amp;gt; tags and correctly interpret quoted urls.
            </action>
            <action type="update" dev="mguillem" due-to="Daniel Gredler" issue="1081544">
                Implemented IE specific behavior related methods as well as default behavior "#default#homePage".
            </action>
            <action type="update" dev="mguillem" due-to="Daniel Gredler" issue="1081544">
                Implemented screen methods.
            </action>
            <action type="update" dev="mguillem" due-to="Daniel Gredler" issue="1082509">
                Added missing (for IE) methods/properties of window.navigator.
            </action>
            <action type="update" dev="mguillem">
                Added support for window.location.replace(...).
            </action>
            <action type="update" dev="mguillem" due-to="Daniel Gredler" issue="1082259">
                Fixed problem with pages where body's onload contains a return statement.
            </action>
            <action type="update" dev="mguillem">
                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.
            </action>
            <action type="update" dev="mguillem" issue="1081557">
                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).
            </action>
            <action type="update" dev="mguillem" due-to="Daniel Gredler" issue="1075526">
                Added support for methods moveBy, scroll, scrollBy, scrollByLines, scrollByPages and scrollTo for JS window object.
            </action>
            <action type="update" dev="bradclarke">
                Fixed bug where encoded "&amp;", "=", "+", ",", and "$" in URLs would be decoded before
                sending to the server.
            </action>
            <action type="update" dev="mguillem">
                getTypeAttribute now returns "text" for input without specified type attribute as it is the default value.
            </action>
            <action type="update" dev="mguillem" issue="1081554">
                Added support for item function in JavaScript like "document.all(...).item(...).
            </action>
            <action type="update" dev="mguillem">
                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.
            </action>
            <action type="update" dev="bradclarke">
                Upgraded nekohtml to version 0.9.4
            </action>
            <action type="add" dev="mguillem">
                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").
            </action>
            <action type="add" dev="mguillem">
                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.
            </action>
            <action type="update" dev="mguillem" due-to="Michael Ottati" issue="1075690">
                Fixed bug for JS location.protocol (was missing a ":", e.g. "http:" and not "http").
            </action>
            <action type="add" dev="mguillem" issue="1072996">
                Added support for getting and setting option.selected in JavaScript.
            </action>
            <action type="update" dev="mguillem">
                Fixed bug where a NullPointerException is thrown when leaving a page containing an iframe without src attribute.
            </action>
            <action type="add" dev="mguillem" due-to="Dierk Koenig" issue="1068672">
                Added support for window.resizeTo.
            </action>
            <action type="update" dev="mguillem" issue="1068667">
                Fixed wrong values of window.opener: now null (instead of undefined) when no opener
                and null when a link opens in "_top".
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-httpclient to version 2.0.2
            </action>
            <action type="update" dev="mbowler" due-to="Marc Guillemot" issue="1067471">
                Added support for function syntax on document.all().
            </action>
            <action type="update" dev="mbowler" due-to="Chris Erskine" issue="1065797">
                Added support for InnerHTML().
            </action>
            <action type="update" dev="mbowler" due-to="Chris Erskine" issue="1065797">
                Added support for enabling the errors from
                NekoHtml by setting a value on the WebClient.
            </action>
            <action type="update" dev="mbowler" due-to="Mike Gallaher" issue="1065797">
                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.
            </action>
        </release>

        <release version="1.3" date="November 12, 2004">
            <action type="update" dev="mbowler">
                Upgraded commons-jelly to version 1.0-beta-4
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-jelly-tags-log to version 1.0
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-jelly-tags-xml to version 1.0
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-jelly-tags-junit to version 1.0
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-jexl to version 1.0
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-cli to version 1.0
            </action>
            <action type="update" dev="mbowler">
                Upgraded dom4j to version 1.5
            </action>
            <action type="add" dev="mbowler">
                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.
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-collections to version 3.1
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-beanutil to version 1.7.0
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-httpclient to version 2.0.1
            </action>
            <action type="update" dev="mbowler">
                Upgraded xercesImpl to version 2.6.2
            </action>
            <action type="update" dev="mbowler">
                Upgraded nekohtml to version 0.9.1
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-logging to version 1.0.4
            </action>
            <action type="update" dev="mbowler">
                Upgraded gsbase to version 2.0.1
            </action>
            <action type="update" dev="mbowler" due-to="Chris Erskine" issue="1033055">
                Updated server names for cvs access.
            </action>
            <action type="update" dev="mbowler" due-to="Chris Erskine" issue="1032913">
                Added support for the JavaScript document.images and also for getting and setting
                the page title.
            </action>
            <action type="update" dev="mbowler" due-to="Marc Guillemot" issue="1006472">
                Patch for JS frames.length.
            </action>
            <action type="update" dev="mbowler" due-to="David D. Kilzer, Mike Bresnahan" issue="975675">
                Fixed inconsistencies in the handling of isDisabled.
            </action>
            <action type="update" dev="mbowler" due-to="Ben Curren" issue="940981">
                Initial support for Active X objects.
            </action>
            <action type="update" dev="mbowler" issue="930539">
                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.
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where calling document.body from JavaScript before the body tag had been
                parsed was causing an exception.
            </action>
            <action type="update" dev="mbowler" due-to="David D. Kilzer" issue="930069">
                Added support for JavaScript table.rows.
            </action>
            <action type="update" dev="mbowler" issue="930531">
                The common browsers always return uppercase values for the JavaScript nodeName property.
                Now HtmlUnit does as well.
            </action>
            <action type="update" dev="mbowler" due-to="Chris Erskine">
                Added support for the IE attribute document.readyState.  Also added the js.log custom
                logger to aid in debugging JavaScript errors.
            </action>
            <action type="update" dev="mbowler" due-to="Marc Guillemot" issue="1045243">
                Added support for onchange handlers in textareas
            </action>
            <action type="update" dev="mbowler" due-to="Marc Guillemot" issue="1049797">
                Stubbed out window.moveTo(x,y)
            </action>
            <action type="update" dev="mbowler" due-to="Marc Guillemot" issue="1053811">
                Added dependency to commons-io
            </action>
            <action type="update" dev="mbowler" due-to="Marc Guillemot" issue="1053811">
                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
            </action>
            <action type="update" dev="mbowler" due-to="Mike Williams" issue="1051885">
                Fixes for buggy link management in DomNode.basicRemove()
            </action>
            <action type="update" dev="mbowler" due-to="David D. Kilzer" issue="1028314">
                Fix for bug where HttpWebConnection.getStateForUrl() fails with localhost URL
            </action>
            <action type="update" dev="mbowler" due-to="Chris Erskine" issue="1056744">
                Added IE specific behaviour for getElementById()
            </action>
            <action type="update" dev="mbowler" due-to="David D. Kilzer" issue="1056376">
                Made WebTestCase abstract
            </action>
            <action type="update" dev="mbowler" issue="1044768">
                Changed HtmlElement.getOneHtmlElement() to match the documented behaviour
                in the case where multiple matches were found.
            </action>
            <action type="add" dev="mbowler" due-to="Chris Erskine" issue="1058238">
                Added getElementsByTagName(), getClassName() and setClassName() to HTMLElement
            </action>
            <action type="update" dev="mbowler" due-to="David D. Kilzer" issue="930546">
                getAttribute() and setAttribute() missing on HTMLElement.
            </action>
            <action type="update" dev="mbowler" due-to="David D. Kilzer" issue="1058846">
                Mimic browser kludge for non-RFC2019-compliant cookies.
            </action>
            <action type="update" dev="mbowler" due-to="David D. Kilzer" issue="939639">
                Fixed bug where the getAttribute() and setAttribute() methods were not
                ignoring the case of the attribute name when getting and
                setting.
            </action>
            <action type="update" dev="mbowler" issue="1009817">
                Fixed bug where a colon in a relative URL causes MalformedURLException in WebClient.expandUrl()
            </action>
            <action type="update" dev="mbowler" issue="1050643">
                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..
            </action>
            <action type="update" dev="mbowler" due-to="Mike Bresnahan" issue="974447">
                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.
            </action>
            <action type="update" dev="mbowler" due-to="Mike Bresnahan" issue="977759">
                Fixed bug where  HtmlImageInput.click() was not including the name.x and
                name.y attributes in the submitted request.
            </action>
            <action type="update" dev="mbowler" issue="1008707">
                If form.submit() is called from JavaScript then the forms onsubmit handler should
                not get executed.
            </action>
            <action type="update" dev="mbowler" due-to="David D. Kilzer" issue="1061234">
                Fixed OutOfMemoryError when submitting a form many times from the same HtmlPage
            </action>
            <action type="update" dev="mbowler" due-to="David D. Kilzer" issue="1062388">
                Clean up memory use in HttpWebConnection.makeWebResponse().
            </action>
        </release>

        <release version="1.3-pre2" date="September 26, 2004">
            <action type="update" dev="bradclarke">
                Added support for setting input.name in JavaScript
            </action>
            <action type="update" dev="bradclarke">
                Added support for JavaScript document.body
            </action>
            <action type="update" dev="bradclarke" due-to="Mike Bresnahan" issue="972822">
                Changed HtmlSelect.getSelectedOptions() to not auto-select the first
                option if the list size > 1.
            </action>
            <action type="update" dev="bradclarke" due-to="David D. Kilzer" issue="974966">
                Refactored HtmlFileInput submission to include the filename even when
                there is no file submitted.
            </action>
            <action type="update" dev="bradclarke" due-to="David D. Kilzer" issue="956964">
                Added support for JavaScript Window.close()
            </action>
            <action type="update" dev="bradclarke" due-to="David D. Kilzer" issue="913740">
                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.
            </action>
            <action type="update" dev="bradclarke">
                Added support for JavaScript Element.setAttribute()
            </action>
            <action type="update" dev="bradclarke">
                Added support for JavaScript Node.hasChildNodes()
            </action>
            <action type="update" dev="bradclarke">
                Fix for Bug 916316 - this.form inside onclick should work now
            </action>
            <action type="update" dev="bradclarke">
                Implemented JavaScript document.getElementsByName()
            </action>
            <action type="update" dev="bradclarke">
                Added support for setting select.selectedIndex from JavaScript
            </action>
            <action type="update" dev="bradclarke">
                Changed HtmlSelect.fakeSelectedAttribute() to use an empty string
                as no value at all (nothing submitted)
            </action>
            <action type="update" dev="bradclarke">
                Fixed bug where a select option with no value attribute was not
                submitted with it's contents
            </action>
            <action type="update" dev="bradclarke">
                DefaultPageCreator can now be easily extended to add custom
                content type handling without affecting the default handlers.
            </action>
            <action type="update" dev="bradclarke">
                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.
            </action>
            <action type="update" dev="bradclarke">
                Deprecated HtmlPage(WebClient, URL, WebResponse, webWindow) in favor of
                HtmlPage(URL, WebResponse, webWindow)
            </action>
            <action type="update" dev="bradclarke">
                Deprecated HTMLParser() as you should never need an instance
            </action>
            <action type="update" dev="bradclarke">
                Deprecated HTMLParser.parse(WebClient, WebRespose, WebWindow) in favor of
                static HTMLParser.parse(WebRespose, WebWindow).
            </action>
            <action type="update" dev="bradclarke">
                Updated HtmlRadioButtonInput.click() to select the clicked radio button
            </action>
            <action type="update" dev="bradclarke">
                Fixed bug where the JavaScript value of a select list was always empty.
                It should now correctly be the value of the selected option.
            </action>
            <action type="update" dev="bradclarke">
                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.
            </action>
            <action type="update" dev="bradclarke">
                Added HtmlOption.getValue() that returns the value of the option as
                it should be submitted
            </action>
            <action type="update" dev="bradclarke">
                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
            </action>
            <action type="update" dev="bradclarke">
                Fixed bug where submitting a form containing a select that had no options
                caused a NullPointerException.
            </action>
            <action type="update" dev="dktaylor">
                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.
            </action>
            <action type="add" dev="dktaylor">
                Add HtmlPage.getDocumentElement() and Document.documentElement in JavaScript.
            </action>
            <action type="update" dev="dktaylor">
                Improved speed of getElementById().
            </action>
            <action type="update" dev="dktaylor">
                Change the node type and node name for HtmlPage and Document in JavaScript.
            </action>
            <action type="update" dev="mbowler" due-to="Christian Sell">
                Nested input elements, i.e. those that were not
                immediate children of the enclosing form, were not handled.
            </action>
            <action type="update" dev="mbowler" due-to="Christian Sell">
                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.
            </action>
            <action type="update" dev="mbowler">
                Deprecated MockWebConnection.setContent() in favour of setDefaultResponse()
                which is more descriptive.  Changed all tests to use the new method.
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="update" dev="mbowler" issue="831453">
                Fixed bug where forms without names were not being returned by
                document.forms
            </action>
            <action type="add" dev="mbowler" issue="831456">
                Added support for the following attributes on Document.Location:
                hash, host, hostname, href, pathname, port, protocol and search.
            </action>
            <action type="add" dev="mbowler" due-to="Alexei Goussev" issue="856885">
                Added support for Anchor.href and Anchor.getAttribute().
            </action>
            <action type="update" dev="mbowler" due-to="Alexei Goussev" issue="871620">
                Fixed bug where getting the style attribute should return an empty
                string instead of NOT_FOUND.
            </action>
            <action type="update" dev="bradclarke">
                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)
            </action>
            <action type="update" dev="mbowler">
                Added initial support for refresh handlers.  They will be invoked from meta
                tag refreshes and response header refreshes but not currently from JavaScript
                refreshes
            </action>
            <action type="update" dev="mbowler">
                Added serialVersionUID to all classes that are Serializable but didn't already
                have one of these.
            </action>
            <action type="update" dev="mbowler" due-to="Darrell DeBoer" issue="1034897">
                Fix for performance problem in JavaScript handling.
            </action>
            <action type="update" dev="mbowler" issue="856797">
                If the server returns an unsupported encoding type then the browsers assume
                ISO-8859-1.  Now HtmlUnit does the same.
            </action>
        </release>

        <release version="1.3-pre1" date="November 7, 2003">
            <action type="update" dev="mbowler">
                INCOMPATIBLE CHANGE: Added method to interface WebWindowListener for
                window closing events.
            </action>
            <action type="update" dev="mbowler" due-to="Christian Sell">
                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.
            </action>
            <action type="update" dev="mbowler">
                Continued migration of the build process from ant to maven.
            </action>
            <action type="update" dev="mbowler" issue="713646">
                Patch for bug in onload handler submitted by Andreas Hangler
            </action>
            <action type="update" dev="mbowler" issue="797144">
                Added support for the about: protocol - patch from Jun Chen
            </action>
            <action type="update" dev="mbowler" issue="797144">
                Added support for window frames - patch from Jun Chen
            </action>
            <action type="update" dev="mbowler" issue="803233" due-to="Brad Clarke">
                an update of the version number in build.xml and outputting of
                a src jar for the current build. Patch submitted by Brad Clarke
            </action>
            <action type="update" dev="mbowler" issue="803229" due-to="Brad Clarke">
                Added HtmlFileInput support. Patch submitted by Brad Clarke
            </action>
            <action type="update" dev="mbowler" issue="803237" due-to="Brad Clarke">
                Upgraded junit.jar to 3.8.1
            </action>
            <action type="update" dev="mbowler" issue="802285">
                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.
            </action>
            <action type="update" dev="mbowler" issue="805332" due-to="Brad Clarke">
                Fixed bug where form elements without names were being submitted anyway.  Patch
                supplied by Brad Clarke
            </action>
            <action type="update" dev="mbowler" issue="808776" due-to="Brad Clarke">
                Fixed bug where disabled elements were being submitted anyway.
                Patch supplied by Brad Clarke
            </action>
            <action type="update" dev="mbowler" issue="800993">
                Navigator.javaEnabled should be method not property
            </action>
            <action type="add" dev="mbowler" issue="799760">
                Added WebClient.getWebWindows()
            </action>
            <action type="update" dev="mbowler" issue="812749" due-to="Brad Clarke">
                Fixed bug where radio button and checkbox logic was case sensitive.
                Patch supplied by Brad Clarke
            </action>
            <action type="update" dev="mbowler" issue="814741" due-to="Brad Clarke">
                Added support for Window.focus().  Patch supplied by Brad Clarke
            </action>
            <action type="update" dev="dktaylor">
                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).
            </action>
            <action type="update" dev="dktaylor">
                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.
            </action>
            <action type="update" dev="dktaylor" issue="805051">
                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.
            </action>
            <action type="add" dev="mbowler">
                Added method HtmlArea.click()
            </action>
            <action type="add" dev="dktaylor" issue="799865">
                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.
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                Stubbed out Window.onerror
            </action>
            <action type="update" dev="mbowler" issue="799839">
                Fixed bug where an option without a value could not be selected.
            </action>
            <action type="update" dev="mbowler" issue="799752">
                Fixed bug where Select[index] wasn't returning options.
            </action>
            <action type="update" dev="mbowler" issue="824145" due-to="Brad Clarke">
                Fixed bug where button names would get submitted twice.  Patch
                submitted by Brad Clarke.
            </action>
            <action type="add" dev="mbowler" issue="772233">
                Added support for auto-refresh both from a Meta tag and from an
                HTTP response header.
            </action>
            <action type="update" dev="mbowler" issue="824842" due-to="Jun Chen">
                Added support for the format of &amp;lt;script&amp;gt; defined by DOM Level 2.
                Patch submitted by Jun Chen
            </action>
            <action type="update" dev="mbowler" issue="825003" due-to="Brad Clarke">
                An HtmlTextArea should not contain anything but preformatted text,
                so doing things such as converting &amp;lt;br&amp;gt; to line breaks and removing
                extra white space should not happen. Patch supplied by Brad Clarke.
            </action>
            <action type="update" dev="mbowler" issue="824069">
                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.
            </action>
            <action type="update" dev="mbowler" issue="793340">
                Fixed exception when specifying an empty string for src on an a frame.
            </action>
            <action type="update" dev="dktaylor" issue="753776">
                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.
            </action>
            <action type="update" dev="dktaylor">
                Fixed a bug where windows that were overwritten were not
                cleaned up so they would be returned from getWebWindowByName.
            </action>
            <action type="add" dev="dktaylor">
                Added WebWindow.getTopWindow() and getParentWindow().
            </action>
            <action type="add" dev="dktaylor">
                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.
            </action>
            <action type="add" dev="dktaylor">
                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.
            </action>
            <action type="add" dev="dktaylor">
                Added support for base elements to set a default target
                using the target attribute.  This affects a, area and form
                elements.
            </action>
            <action type="update" dev="dktaylor">
                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.)
            </action>
            <action type="update" dev="mbowler" issue="824730" due-to="Jun Chen">
                Changed the behaviour of HtmlCheckBoxInput.click() to be consistent
                with IE and Mozilla.  Patch submitted by Jun Chen.
            </action>
            <action type="update" dev="dktaylor">
                Fix return type from DomCharacterData.getData to be String.
            </action>
            <action type="update" dev="dktaylor">
                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.
            </action>
            <action type="add" dev="mbowler">
                Added support for onload handlers on frames.  This isn't supported
                by the HTML specification but is supported by the popular browsers.
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-httpclient.jar to 2.0-rc2
            </action>
            <action type="add" dev="mbowler">
                New method WebClient.loadWebResponseInto() which can be used to create
                pages that were not loaded via HTTP.
            </action>
            <action type="add" dev="mbowler">
                New method StringWebResponse which can be used to easily create a
                WebResponse based on a string containing html.
            </action>
            <action type="add" dev="mbowler" issue="614045">
                Finished the second variation of document.write(), writing to frames
                other than the one that is loading.
            </action>
            <action type="add" dev="mbowler" issue="799757">
                New method TopLevelWindow.close()
            </action>
            <action type="add" dev="mbowler">
                Added "type" attribute to WebWindowEvent to make testing easier
            </action>
            <action type="update" dev="mbowler">
                Refactored test for window opening using the new type attribute.
            </action>
            <action type="add" dev="mbowler" issue="650924">
                Added support for window.status
            </action>
            <action type="add" dev="mbowler" issue="742519">
                New method HtmlForm.getInputByValue() to get a single input
            </action>
            <action type="add" dev="mbowler" issue="742519">
                New method HtmlForm.getInputsByValue() to get multiple inputs
            </action>
            <action type="update" dev="dktaylor">
                Raise more specific exception from HtmlForm.getRadioButtonInput
                if there is no radio button to match the name.
            </action>
            <action type="add" dev="dktaylor">
                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.
            </action>
            <action type="update" dev="dktaylor">
                Fixed support for option label attribute so label value is
                returned as text if label is set.
            </action>
            <action type="add" dev="dktaylor">
                Add support for the id attribute of HTMLElement in JavaScript.
                This partly fixes bug 757225.
            </action>
            <action type="add" dev="dktaylor">
                Add HtmlElement.getId and setId.
            </action>
            <action type="update" dev="dktaylor">
                Fix Document.getElementById in JavaScript so it returns null
                when there is no element with the given ID.
            </action>
            <action type="update" dev="mbowler">
                Added support for jelly wrappers
            </action>
            <action type="update" dev="mbowler">
                Fixed bug with expansion of URLs that contain pound signs.
            </action>
            <action type="update" dev="mbowler">
                Upgraded NekoHTML to 0.8.1
            </action>
            <action type="update" dev="mbowler">
                Added MockWebConnection in the deployable tree and changed FakeWebConnection
                (in the test tree) to subclass that.
            </action>
        </release>

        <release version="1.2.3" date="July 31, 2003">
            <action type="add" dev="mbowler">
                Initial support for Maven
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                Refactored some logic out of Form into FormElementsArray for easier maintenance
            </action>
            <action type="update" dev="mbowler">
                Many classes had their own assertNotNull() method.  Created an assert class and
                changed all classes to use Assert.notNull() rather than separate methods.
            </action>
            <action type="update" dev="mbowler" due-to="Noboru Sinohara" issue="716568">
                Fixed bug in character encoding.  Patch supplied by Noboru Sinohara.
            </action>
            <action type="update" dev="mbowler" due-to="Mike J. Bresnahan">
                Enhanced HtmlElement.asText() to behave more like a browser.  Patch supplied
                by Mike J. Bresnahan.
            </action>
            <action type="update" dev="mbowler">
                Updated NekoHTML to 0.7.7
            </action>
            <action type="update" dev="mbowler" due-to="Noboru Sinohara" issue="721008">
                Changed the JavaScriptEngine to use weak references for HtmlPage objects.  Previously
                HtmlPage objects were never being garbage collected resulting in excessive memory
                usage.
            </action>
            <action type="update" dev="mbowler" issue="729266">
                Fixed bug where the JavaScript textarea object was not properly getting and setting the 'value'.
            </action>
            <action type="update" dev="mbowler" issue="717021" due-to="XuefengHe">
                Fixed bug where URL expansion wasn't obeying the base element as defined in the html.
            </action>
            <action type="update" dev="mbowler" issue="727718" due-to="jin kim">
                Fixed bug where JavaScript form elements were not always being initialized correctly..
            </action>
            <action type="update" dev="mbowler" issue="732952" due-to="Matt Ho">
                Fixed typo in two of the samples in the getting started document.
            </action>
            <action type="update" dev="mbowler">
                Moved all tests under src/test/java
            </action>
            <action type="update" dev="mbowler" issue="713646" due-to="David K. Taylor">
                Fixed bug where onload handler would not execute a function if the brackets
                weren't specified. Patch submitted by David K. Taylor.
            </action>
            <action type="update" dev="mbowler" issue="715379" due-to="David K. Taylor">
                Fixed bug "document.write of script element does not load script".  Patch submitted
                by David K. Taylor.
            </action>
            <action type="update" dev="mbowler" issue="740636" due-to="David K. Taylor">
                Fix for bug 740636 "getElementsByTagName should be case insensitive".
                Patch submitted by David K. Taylor
            </action>
            <action type="update" dev="mbowler" issue="740605 " due-to="David K. Taylor">
                Fix for bug 740605 "External script is executed before script element added".
                Patch submitted by David K. Taylor
            </action>
            <action type="update" dev="mbowler" issue="740665 " due-to="David K. Taylor">
                Fix for bug 740665 "Script attributes undefined when script executes".
                Patch submitted by David K. Taylor
            </action>
            <action type="update" dev="mbowler" issue="742902 " due-to="David K. Taylor">
                Fix for bug 742902 "document.location prints as object reference instead of URL".
                Patch submitted by David K. Taylor
            </action>
            <action type="update" dev="mbowler" issue="743241 " due-to="David K. Taylor">
                Fix for bug 743241 "document.write from external script is not added to document".
                Patch submitted by David K. Taylor
            </action>
            <action type="update" dev="dktaylor" issue="741930">
                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.
            </action>
            <action type="update" dev="dktaylor">
                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;
            </action>
            <action type="update" dev="dktaylor" issue="741930" due-to="Barnaby Court">
                Partial fix for RFE 741930 "document.createElement(...) and form.appendChild(...)".
                This fix adds HTMLElement.appendChild.
            </action>
            <action type="update" dev="dktaylor">
                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).
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="update" dev="mbowler" due-to="Barnaby Court">
                Moved all logic from the HtmlInput subclasses up into HtmlInput itself.
                Patch provided by Barnaby Court.
            </action>
            <action type="update" dev="mbowler" due-to="Barnaby Court">
                Added instructions for the "how to compile from cvs" document.
                Patch provided by Barnaby Court.
            </action>
            <action type="update" dev="mbowler" due-to="Barnaby Court" issue="759217">
                Changed HtmlTextArea.setText() to actually modify the DOM
                Patch provided by Barnaby Court.
            </action>
            <action type="update" dev="mbowler" issue="738548">
                Fix for bug 738548 - "Form values are not Posted Properly to Server"
            </action>
            <action type="add" dev="mbowler">
                Added support for the property Window.name
            </action>
            <action type="add" dev="mbowler">
                Added read-only support for Document.cookie.
            </action>
            <action type="add" dev="mbowler" issue="675597">
                Added support for the JavaScript method Window.setTimeout()
            </action>
            <action type="update" dev="mbowler">
                Upgraded the rhino engine to 1.5R4.1
            </action>
            <action type="update" dev="mbowler">
                Upgraded the xerces to 2.4
            </action>
            <action type="add" dev="mbowler" issue="742515">
                New method HtmlPage.getAllForms()
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where inputs would not submit properly if the type attribute
                wasn't lowercase.
            </action>
            <action type="update" dev="mbowler" issue="744381">
                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.
            </action>
            <action type="add" dev="mbowler">
                Added docs on configuring JSSE - contributed by Tom Hamilton
            </action>
        </release>

        <release version="1.2.2" date="March 29, 2003">
            <action type="add" dev="mbowler">
                Started tracking more information about changes
            </action>
            <action type="update" due-to="Jean-Luc Vaillant" issue="705703" dev="mbowler">
                Fixed bug where the checked attribute wasn't always returning the correct value.
            </action>
            <action type="update" due-to="Jean-Luc Vaillant" issue="705693" dev="mbowler">
                Fixed bug where checkboxes were returning the wrong value if they hadn't explicitly
                been set by the server.
            </action>
            <action type="add" issue="705951" dev="mbowler">
                Added support for JavaScript Document.getElementsByTagName()
            </action>
            <action type="update" issue="707750" due-to="Mabel Chow" dev="mbowler">
                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.
            </action>
            <action type="add" due-to="Teo Kian Lee" dev="mbowler">
                Added support for location.hostname which fixed all but one of the tests in the sanity check.
            </action>
            <action type="add" dev="mbowler">
                Added support for document.all[index]
            </action>
            <action type="update" dev="mbowler">
                Changed the JavaScript tagName attribute to return uppercase values according to spec
            </action>
            <action type="update" dev="mbowler">
                Updated configuration file with more functions/properties
            </action>
            <action type="add" due-to="Mabel Chow" dev="mbowler">
                Added support for document.all.tags()
            </action>
            <action type="update" due-to="Dominique Broeglin" patch-author="Dominique Broeglin" dev="mbowler">
                Fixed bug in expansion of relative URLs
            </action>
            <action type="add" issue="709740" due-to="David K. Taylor" dev="mbowler">
                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.
            </action>
            <action type="update" issue="707343" dev="mbowler">
                Improved the documentation for WebWindowEvent handling as the behaviour wasn't really
                self explanatory.
            </action>
        </release>

        <release version="1.2.1" date="March 20, 2003">
            <action type="add" dev="mbowler">
                Added method HtmlButtonInput#click().
            </action>
            <action type="update" dev="mbowler">
                Fixed a bug in JavaScript loading where external scripts were being loaded after the page was fully
                parsed rather than as each &amp;lt;script&amp;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.
            </action>
            <action type="update" dev="mbowler">
                Fixed bug in HtmlForm.getRadioButtonsByName() where it would not match elements with an
                uppercase value for "radio"
            </action>
            <action type="update" dev="mbowler">
                Fixed a bunch of places that were declared to throw ElementNotFoundException but never actually did.
            </action>
        </release>

        <release version="1.2" date="March 10, 2003">
            <action type="update" dev="mbowler">
                Fixed bug where redirection didn't happen correctly if the location header contained
                multiple entries separated by commas
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where some success status codes (not 200) were being reported as errors
            </action>
            <action type="update" dev="mbowler">
                Upgraded NekoHTML to version 0.7.4
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-httpclient to 2.0beta3
            </action>
            <action type="update" dev="mbowler">
                Upgraded xerces to 2.2.1
            </action>
            <action type="update" dev="mbowler">
                Upgraded the rhino JavaScript engine to version 1.5b3
            </action>
            <action type="add" dev="mbowler">
                Added support for the Window.opener property
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where JavaScript that was enclosed in html comment tags would blow up
            </action>
            <action type="add" dev="mbowler">
                Initial support for keyboard navigation
            </action>
            <action type="add" dev="mbowler">
                Initial draft of a howto for keyboard navigation
            </action>
            <action type="add" dev="mbowler">
                New method: HtmlButton#isDisabled()
            </action>
            <action type="update" dev="mbowler">
                The click() method on buttons now do nothing if that element is disabled
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where JavaScript Form.elements was not returning radio buttons
            </action>
            <action type="update" dev="mbowler">
                Refactored the interface between WebClient and WebConnection to make it easier to
                add custom implementations of WebConnection.
            </action>
            <action type="add" dev="mbowler">
                Added support for the JavaScript Style object
            </action>
            <action type="update" dev="mbowler">
                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
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where clicking on a checkbox would submit the form.
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where form.submit() was always loading into the default WebWindow, not the
                current one.
            </action>
            <action type="add" dev="mbowler">
                Added support for indexed properties in JavaScript forms
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                New method WebResponse#getLoadTimeInMilliSeconds()
                to measure load times of specific pages.  This is intended for performance tuning of
                web applications
            </action>
            <action type="update" dev="mbowler">
                Moved submission guidelines into their own document (submittingPatches.html).
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where the variable "this" in an onclick handler was a Window rather than the
                appropriate component.
            </action>
            <action type="add" dev="mbowler">
                Added support for onchange handlers in input tags
            </action>
            <action type="add" dev="mbowler">
                Added support for JavaScript document.referrer
            </action>
            <action type="add" dev="mbowler">
                Added support for JavaScript document.URL
            </action>
            <action type="add" dev="mbowler">
                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.
            </action>
        </release>

        <release version="1.1" date="November 25, 2002">
            <action type="update" dev="mbowler">
                Fixed bug where loading of external JavaScript files would not follow redirects.
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where accessing radio buttons by name wasn't working correctly
            </action>
            <action type="update" dev="mbowler">
                Stubbed out Window.close()
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where the JavaScript Option.text was returning the wrong value
            </action>
        </release>

        <release version="1.1-rc2" date="November 16, 2002">
            <action type="update" dev="mbowler">
                Fixed bug where calling WebClient.open() would open a new top level window every time.
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where javascript:Window.open() was not returning the new window object
            </action>
            <action type="add" developer="Mike J. Bresnahan" dev="mbowler">
                Added support for onchange handler in HtmlSelect
            </action>
            <action type="update" dev="mbowler">
                Cleaned up some javadoc warnings
            </action>
            <action type="add" dev="mbowler">
                New method WebClient#loadWebResponse(URL, SubmitMethod, List)
            </action>
            <action type="update" dev="mbowler">
                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"
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where javascript:option.getValue() was returning the text, not the value
            </action>
            <action type="update" dev="mbowler">
                Improved some error handling when secondary pages are being loaded by frames
            </action>
        </release>

        <release version="1.1-rc1" date="October 29, 2002">
            <action type="update" dev="mbowler">
                Upgraded commons-logging.jar to 1.0.2
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-httpclient.jar to Oct 20/2002 gump build
            </action>
            <action type="add" dev="mbowler">
                Added support for javascript:Input.disabled
            </action>
            <action type="update" dev="mbowler">
                Upgraded NekoHTML to version 0.6.8 + patches from the author
            </action>
            <action type="update" dev="mbowler">
                Changed window.open() to understand the magic name _self
            </action>
            <action type="add" dev="mbowler">
                Added HtmlOption#setSelected(boolean)
            </action>
            <action type="add" dev="mbowler">
                Completed support for reset buttons
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                Added support for the JavaScript method Window.confirm()
            </action>
            <action type="add" dev="mbowler">
                New interface ConfirmHandler
            </action>
            <action type="add" dev="mbowler">
                New method WebClient#setConfirmHandler(ConfirmHandler) and WebClient#getConfirmHandler()
            </action>
            <action type="add" dev="mbowler">
                Added support for the JavaScript method Window.prompt()
            </action>
            <action type="add" dev="mbowler">
                New interface PromptHandler
            </action>
            <action type="add" dev="mbowler">
                New method
                WebClient#setPromptHandler(PromptHandler) and
                WebClient#getPromptHandler()
            </action>
            <action type="add" dev="mbowler">
                New method HtmlForm#getParameterListForSubmit().
                This method is intended as a debugging aid.
            </action>
            <action type="update" dev="mbowler">
                Page load would blow up if no body tag found.  Framesets aren't required to
                have body tags
            </action>
            <action type="add" dev="mbowler">
                Added support for JavaScript URLs in Frame and IFrame src tags
            </action>
            <action type="update" dev="mbowler">
                Improved some error messages during initialization
            </action>
            <action type="add" dev="mbowler">
                New class ObjectInstantiationException
            </action>
            <action type="add" dev="mbowler">
                Added protocol package for URL protocols and added protocol/javascript package for
                code that supports JavaScript URLs
            </action>
            <action type="update" dev="mbowler">
                Removed deprecated method WebClient.setBrowserVersion(BrowserVersion).  No replacement
                for this method - browser versions must be set in the constructor of the WebClient.
            </action>
            <action type="update" dev="mbowler">
                Removed deprecated method HtmlPage.executeJavascriptIfPossible(String,String). Use
                HtmlPage.executeJavaScriptIfPossible(String,String,boolean) instead.
            </action>
            <action type="update" dev="mbowler">
                Removed deprecated method HtmlPage.getTitle().  Use HtmlPage.getTitleText() instead.
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where script tags that loaded external files would cause the new script
                to overwrite the existing page in the window
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where a redirect called from JavaScript in the page load would not replace
                the page.
            </action>
        </release>

        <release version="1.1-pre5" date="September 24, 2002">
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="update" dev="mbowler">
                Upgraded checkstyle to version 2.4
            </action>
            <action type="add" dev="mbowler">
                Added support for document.location (an alias for window.location)
            </action>
            <action type="update" dev="mbowler">
                Changed initialization order in HtmlPage so that the enclosing window
                is initialized before the JavaScript is run
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                Added method HtmlPage#getFirstAnchorByText(java.lang.String)
            </action>
            <action type="update" dev="mbowler">
                First steps towards having property/function information in a configuration file
            </action>
            <action type="add" dev="mbowler">
                Added method HtmlPage#getHtmlElementsByAccessKey(char)
            </action>
            <action type="add" dev="mbowler">
                Added support for javascript:document.getElementById()
            </action>
            <action type="add" dev="mbowler">
                Added support for javascript:document.all[string]
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where relative URLs were not being expanded in certain situations
            </action>
            <action type="update" dev="mbowler">
                Fixed bug in relative URL expansion that was blowing up on URLs like //foo.com
            </action>
            <action type="update" dev="mbowler">
                Upgraded commons-httpclient.jar and commons-logging.jar to the Aug 30 gump build
            </action>
            <action type="add" dev="mbowler">
                Added HtmlElement#asXml()
            </action>
            <action type="add" dev="mbowler">
                Added WebClient#expandUrl(URL, String)
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where relative URLs in redirects were not being expanded.
            </action>
            <action type="update" dev="mbowler">
                Fixed bug in HtmlSelect#getOptionByValue(String)
                where searching for the option would start at the top of the page instead of at the select.
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                Added support for HtmlImageInput#click() and HtmlImageInput#click(int, int)
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                Added the constant BrowserVersion.NETSCAPE_6_2_3
            </action>
        </release>

        <release version="1.1-pre4" date="August 23, 2002">
            <action type="update" dev="mbowler">
                Changed the license used by HtmlUnit to an apache style one
            </action>
            <action type="update" dev="mbowler">
                Changed default value of WebClient.isRedirectEnabled() to false to be
                consistent with pre2
            </action>
            <action type="update" dev="mbowler">
                Updated look of documentation
            </action>
            <action type="add" dev="mbowler">
                Started migrating System.out.println calls over to commons-logging.  Refer
                to the logging tutorial (logging.html) for information on customizing this.
            </action>
            <action type="add" dev="mbowler">
                Support for onClick handlers in HtmlSubmitInput
            </action>
            <action type="update" dev="mbowler">
                Support for onClick handlers in HtmlButton
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where NullPointerException would be thrown if window.alert() was
                called and no AlertHandler had been registered
            </action>
            <action type="add" dev="mbowler">
                Support for onload handler on the body tag
            </action>
            <action type="add" dev="mbowler">
                Support for customizing the page types.  See WebClient.setPageCreator()
            </action>
            <action type="add" dev="mbowler">
                Added HtmlElement.hasHtmlElementWithId()
            </action>
            <action type="update" dev="mbowler">
                Renamed DefaultAlertHandler to CollectingAlertHandler
            </action>
            <action type="update" dev="mbowler">
                Fixed NullPointerException in HtmlForm during submission of a form containing
                a radio button
            </action>
            <action type="add" dev="mbowler">
                Stubbed out the following methods on Input: click(), focus(), blur(), select()
            </action>
            <action type="add" dev="mbowler">
                Added support for inherited functions to SimpleScriptable.  Previously only getters
                and setters were supported.
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                Added a JavaScript style object
            </action>
            <action type="add" dev="mbowler">
                Added new method HtmlElement.isAttributeDefined()
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                Added a tutorial section on the main page and added a link to the table tutorial
            </action>
            <action type="add" dev="mbowler">
                Started writing the table tutorial - still needs a lot of work
            </action>
            <action type="add" dev="mbowler">
                Added support for the JavaScript function Form.submit()
            </action>
            <action type="update" dev="mbowler">
                Fixed bug where javascript:document.forms[formName] was blowing up
            </action>
            <action type="update" dev="mbowler">
                Changed logic behind anchor onClick() handler to abort the click if JavaScript returns false
            </action>
            <action type="update" dev="mbowler">
                Changed logic behind form onSubmit() handler to abort the submit if JavaScript returns false
            </action>
            <action type="update" dev="mbowler">
                Fixed WebConnection so that it now passes the query string through on post requests
            </action>
            <action type="add" dev="mbowler">
                Added HtmlFrame class.  Loading a page containing frames will cause those frames to be
                automatically loaded as well.
            </action>
            <action type="update" dev="mbowler">
                Added support for loading iframes
            </action>
            <action type="add" dev="mbowler">
                Added HtmlFrameSet class
            </action>
            <action type="add" dev="mbowler">
                Added a coding conventions document (codingConventions.html)
            </action>
            <action type="add" dev="mbowler">
                Added a "how to get the latest code from cvs" document (buildingFromCvs.html)
            </action>
            <action type="update" dev="mbowler">
                Renamed WebWindow.getPage() and setPage() to getEnclosedPage() and setEnclosedPage() to
                avoid conflict with getPage in HtmlElement
            </action>
            <action type="add" dev="mbowler">
                Added WebClient.getWebWindowByName()
            </action>
            <action type="add" dev="mbowler">
                New class WebWindowNotFoundException
            </action>
            <action type="update" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                New method HtmlPage.getFrames()
            </action>
            <action type="add" dev="mbowler">
                Initial support for resetting forms.  None of the elements actually revert to
                their previous values yet but onReset handlers will be run if specified.
            </action>
            <action type="add" dev="mbowler">
                New method HtmlTable.getCaptionText()
            </action>
            <action type="update" dev="mbowler">
                Deprecated HtmlPage.getTitle() to be replaced with HtmlPage.getTitleText().  This
                will be removed before the final release of 1.1
            </action>
            <action type="add" dev="mbowler">
                Added support for the JavaScript properties: Select.options, Select.selectedIndex,
                Select.length and Option.value
            </action>
        </release>

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

        <release version="1.1-pre2" date="July 10, 2002">
            <action type="update" dev="mbowler">
                Fixed NullPointerException due to a bug in JTidy - thanks to
                Mike J Bresnahan for tracking this one right into the JTidy source.
            </action>
            <action type="add" dev="mbowler">
                HtmlAnchor now supports JavaScript URLs and onClick handlers
            </action>
            <action type="add" dev="mbowler">
                Ability to set the emulated browser via WebClient.setBrowserVersion(BrowserVersion)
            </action>
            <action type="add" dev="mbowler">
                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.
            </action>
            <action type="add" dev="mbowler">
                Added WebWindow
            </action>
            <action type="add" dev="mbowler">
                Added TopLevelWindow
            </action>
            <action type="add" dev="mbowler">
                Added WebWindowListener
            </action>
            <action type="add" dev="mbowler">
                Added WebWindowEvent
            </action>
            <action type="add" dev="mbowler">
                Added WebWindowAdapter
            </action>
            <action type="add" dev="mbowler">
                Added initial support for javascript:open().  Does not currently support
                features or browser history
            </action>
            <action type="update" dev="mbowler">
                Fixed some cases in HtmlPage.getFullyQualifiedUrl() that weren't expanding properly
            </action>
            <action type="add" dev="mbowler">
                Added HtmlTitle
            </action>
            <action type="add" dev="mbowler">
                Added HtmlPage.getTitle()
            </action>
            <action type="add" dev="mbowler">
                Added JavaScript window.location="some url"
            </action>
            <action type="add" dev="mbowler">
                Stubbed out the JavaScript history object
            </action>
            <action type="add" dev="mbowler">
                Added support JavaScript URLs in HtmlForm submission
            </action>
            <action type="add" dev="mbowler">
                Added support for HtmlForm.onSubmit()
            </action>
            <action type="update" dev="mbowler">
                Rewrote logic for handling relative URLs
            </action>
            <action type="update" dev="mbowler">
                Fixed bug in HtmlRadioButtonInput that was causing isChecked() to return false
                in some cases even if the checked attribute was there.
            </action>
        </release>

        <release version="1.1-pre1" date="July 2, 2002">
            <action type="add" dev="mbowler">
                Added initial JavaScript support
            </action>
            <action type="update" dev="mbowler">
                Lots of bug fixes
            </action>
        </release>

        <release version="1.0" date="May 22, 2002">
            <action type="add" dev="mbowler">
                Initial release
            </action>
        </release>
    </body>
</document>
