Release History
| Version |
Date |
Description |
| 5.5.0 |
August 30, 2026 |
Firefox 154, Chrome/Edge 151, Bugfixes |
| 5.4.0 |
August 07, 2026 |
Firefox 153, neko, input validation, Bugfixes |
| 5.3.0 |
July 15, 2026 |
Chrome/Edge 150, Bugfixes |
| 5.2.0 |
June 20, 2026 |
Chrome/Edge 149, Firefox 152, Bugfixes |
| 5.1.0 |
May 31, 2026 |
Firefox 151, Bugfixes |
| 5.0.0 |
May 24, 2026 |
jdk17, Firefox 150, Chrome/Edge 148, Bugfixes |
| 4.21.0 |
December 28, 2025 |
Firefox 146, core-js, Bugfixes |
| 4.20.0 |
December 07, 2025 |
Chrome/Edge 143, core-js, Bugfixes |
| 4.19.0 |
November 23, 2025 |
Chrome/Edge 142, Firefox 145, support spread in arrays, neko improvements, Bugfixes |
| 4.18.0 |
October 30, 2025 |
Chrome/Edge 141, Firefox 144, FirefoxESR 140, javascript, Bugfixes |
| 4.17.0 |
October 05, 2025 |
Chrome/Edge 140, Firefox 142, css :has(), :is(), :where(), BroadcastChannel, Bugfixes |
| 4.16.0 |
August 29, 2025 |
StringUtils, Brotli, spread for object literals, Bugfixes |
| 4.15.0 |
August 17, 2025 |
Chrome/Edge 139, Firefox 141, core-js, Bugfixes |
| 4.14.0 |
July 30, 2025 |
Chrome/Edge 138, Firefox 140, core-js, junit 5, jsoup-bridge, Bugfixes |
| 4.13.0 |
June 03, 2025 |
Chrome/Edge 136, Firefox 138, js prototypes, Bugfixes |
| 4.12.0 |
May 17, 2025 |
Chrome/Edge 135, Firefox 137, Rhino RegExp, Bugfixes |
| 4.11.1 |
March 26, 2025 |
Bugfixes |
| 4.11.0 |
March 25, 2025 |
Chrome/Edge 134, Firefox 136, Rhino RegExp, less dependencies, Bugfixes |
| 4.10.0 |
February 22, 2025 |
Chrome/Edge 133, Firefox 135, Javascript Errors, Bugfixes |
| 4.9.0 |
January 22, 2025 |
Chrome/Edge 132, Firefox 134, BigInt, Bugfixes |
| 4.8.0 |
January 12, 2025 |
Bugfixes, css colors, less dependencies, improved javascript support |
| 4.7.0 |
November 29, 2024 |
Chrome/Edge 131, Firefox 133, String.matchAll, Bugfixes |
| 4.6.0 |
November 06, 2024 |
Chrome/Edge 130, Firefox 132, Bugfixes |
| 4.5.0 |
October 20, 2024 |
Chrome/Edge 129, Firefox 131, FirefoxESR 128, WebWorker, Javascript, Bugfixes |
| 4.4.0 |
July 28, 2024 |
Chrome/Edge 127, Firefox 128, core-js, XMLHttprequest, Bugfixes |
| 4.3.0 |
June 27, 2024 |
Chrome/Edge 126, Firefox 127, Bugfixes |
| 4.2.0 |
June 05, 2024 |
Chrome/Edge 125, Firefox 126, neko fragment parsing, Bugfixes |
| 4.1.0 |
April 28, 2024 |
Chrome/Edge 124, Firefox 125, Encodings, Bugfixes |
| 4.0.0 |
April 01, 2024 |
IE support removed, htmlunit-websocket-client, Chrome/Edge 123, Firefox 124, Bugfixes |
| 3.11.0 |
February 10, 2024 |
Chrome/Edge 121, Firefox 122, many Neko improvements, Bugfixes |
| 3.10.0 |
January 14, 2024 |
Chrome/Edge 120, Firefox 120, neko script parsing, Bugfixes |
| 3.9.0 |
December 03, 2023 |
Bugfixes, htmlunit-csp, CVE-2023-49093, improved neko |
| 3.8.0 |
November 18, 2023 |
Chrome/Edge 119, Bugfixes |
| 3.7.0 |
October 30, 2023 |
Firefox 119, Firefox ESR 115, Chrome/Edge 118, Bugfixes, Documentation updates |
| 3.6.0 |
October 03, 2023 |
Firefox 116, Chrome/Edge 116, htmx 1.9.5, htmx 1.9.6, Bugfixes |
| 3.5.0 |
August 20, 2023 |
Proxy support, Android compatibility, Chrome/Edge 115, Firefox 115, htmx 1.9.4, Bugfixes |
| 3.4.0 |
July 27, 2023 |
Chrome/Edge 114, Firefox 114, htmx 1.9.3, Bugfixes |
| 3.3.0 |
June 04, 2023 |
Reflect, Dialog, Bugfixes |
| 3.2.0 |
May 15, 2023 |
Chrome/Edge 113, Firefox 113, SubmitEvent, Bugfixes |
| 3.1.0 |
April 16, 2023 |
Chrome/Edge 111, Firefox 111, Html parser improved, for..of loops for HTMLCollections, Bugfixes |
| 3.0.0 |
March 19, 2023 |
htmlunit.org, Chrome/Edge 110, Firefox 110, HTML parser improved, Bugfixes |
| 2.70.0 |
January 22, 2023 |
Chrome/Edge 109, Firefox 109, improved CSS :not() handling, Bugfixes |
| 2.69.0 |
January 05, 2023 |
Bugfixes |
| 2.68.0 |
Dezember 28, 2022 |
Chrome/Edge 108, Firefox 108, Bugfixes, neko-html without xerces |
| 2.67.0 |
November 20, 2022 |
Chrome/Edge 107, Firefox 107, Bugfixes |
| 2.66.0 |
October 22, 2022 |
Chrome/Edge 106, Firefox 106, Bugfixes, NumberFormat, HTMLMediaElement |
| 2.65.1 |
October 03, 2022 |
Bugfixes |
| 2.65.0 |
October 03, 2022 |
Chrome/Edge 105, Firefox 105 |
| 2.64.0 |
August 18, 2022 |
Chrome/Edge 104, Firefox 103, client side validation |
| 2.63.0 |
July 10, 2022 |
Chrome/Edge 103, Firefox 102 |
| 2.62.0 |
June 02, 2022 |
Chrome/Edge 102, Firefox 101, Bugfixes |
| 2.61.0 |
April 25, 2022 |
Chrome/Edge 100, Firefox 99, Bugfixes |
| 2.60.0 |
March 20, 2022 |
Chrome/Edge 99, Bugfixes |
| 2.59.0 |
March 5, 2022 |
Chrome/Edge 98, Firefox 97, Polyfills, Bugfixes |
| 2.58.0 |
February 4, 2022 |
Bugfixes |
| 2.57.0 |
January 23, 2022 |
Bugfixes, Chrome/Edge 97, Firefox 96, ValidityState, htmx support |
| 2.56.0 |
December 12, 2021 |
Bugfixes, Chrome/Edge 96, Firefox 95, FF78 deprecated |
| 2.55.0 |
November 14, 2021 |
Bugfixes, Chrome/Edge 95, Firefox 94 |
| 2.54.0 |
October 17, 2021 |
Bugfixes, Chrome/Edge 94, Firefox 93 |
| 2.53.0 |
September 18, 2021 |
Bugfixes, Chrome/Edge 93, Firefox 92 |
| 2.52.0 |
July 25, 2021 |
Bugfixes, Firefox 90 |
| 2.51.0 |
July 04, 2021 |
Bugfixes, Firefox 89, Chrome/Edge 91, JS Template support |
| 2.50.0 |
May 16, 2021 |
Bugfixes, Firefox 88, Chrome/Edge 90 |
| 2.49.1 |
April 11, 2021 |
Hotfix |
| 2.49.0 |
April 11, 2021 |
Bugfixes, Firefox 87 |
| 2.48.0 |
March 20, 2021 |
Bugfixes, Chrome/Edge 89, Firefox 86 |
| 2.47.1 |
February 7, 2021 |
Hotfix |
| 2.47.0 |
February 7, 2021 |
Bugfixes, Chrome/Edge 88, Firefox 85 |
| 2.46.0 |
January 2, 2021 |
Bugfixes, Chrome/Edge 87, Firefox 84 |
| 2.45.0 |
November 12, 2020 |
Bugfixes, switch from FF68 to FF78 ESR; Chrome/Edge 86, FF82 |
| 2.44.0 |
October 3, 2020 |
Bugfixes, Chrome/Edge 85, FF80, XMLHttpRequest event handling |
| 2.43.0 |
August 8, 2020 |
Bugfixes, Rhino fixes, Chrome 84, FF79, Edge added, FF60 removed |
| 2.42.0 |
July 11, 2020 |
Bugfixes, many Rhino fixes |
| 2.41.0 |
June 6, 2020 |
Bugfixes, Chrome 83, Firefox 77 |
| 2.40.0 |
May 2, 2020 |
Bugfixes, Chrome 81, Firefox 75 |
| 2.39.0 |
April 5, 2020 |
Bugfixes, Firefox 74 |
| 2.38.0 |
March 8, 2020 |
Bugfixes, CHROME 80 |
| 2.37.0 |
January 28, 2020 |
Bugfixes, CHROME 79, FF52 removed, FF68 added |
| 2.36.0 |
August 24, 2019 |
Bugfixes, CHROME 76, Brotli, FF52 deprecated |
| 2.35.0 |
April 15, 2019 |
Bugfixes, CHROME 73, reworked javascript logging |
| 2.34.1 |
March 4, 2019 |
Bugfixes |
| 2.34.0 |
Feb 28, 2019 |
Bugfixes, CHROME 72, CSSParser cleanup |
| 2.33 |
Sep 12, 2018 |
Source moved to GitHub, Reworked JS event listeners, Bugfixes |
| 2.32 |
July 29, 2018 |
Bugfixes, FIREFOX_45 removed, FIREFOX_60 added, CHROME 68 |
| 2.31 |
May 22, 2018 |
Bugfixes, sync with Rhino, FIREFOX_45 is deprecated, special GAE handlings removed |
| 2.30 |
March 25, 2018 |
Bugfixes, using or own CSSParser for improved performance, URLSearchParams implemented, start adding support of user defined iterators, CHROME 66 |
| 2.29 |
December 28, 2017 |
Bugfixes, Chrome 63, WebStart support |
| 2.28 |
November 12, 2017 |
Bugfixes, Chrome 62, improved Promise |
| 2.27 |
June 4, 2017 |
FF52, Bugfixes |
| 2.26 |
April 4, 2017 |
Bugfixes |
| 2.25 |
February 23, 2017 |
Java 8, InteractivePage and SvgPage removed, PromptHandler, WebRequest.getCharset, ScriptPreProcessor, Bugfixes |
| 2.24 |
January 9, 2017 |
Bugfixes |
| 2.23 |
July 27, 2016 |
Bugfixes, hover styles are supported, various layout calculation improvements, DefaultJavaScriptErrorListener added |
| 2.22 |
May 27, 2016 |
Bugfixes, Chrome is best supported |
| 2.21 |
Apr 6, 2016 |
FF45, Bugfixes |
| 2.20 |
Feb 28, 2016 |
IE8 is no longer supported, Bugfixes |
| 2.19 |
Nov 12, 2015 |
Bugfixes, Media query support |
| 2.18 |
Jul 26, 2015 |
Bugfixes, SvgPage, .type(Keyboard), PATCH method for HTTP |
| 2.17 |
Jun 3, 2015 |
FF38, Bugfixes |
| 2.16 |
Apr 20, 2015 |
Java 7, WebClient.close(), FF31, IE11 progress, Chrome progress, Bugfixes |
| 2.15 |
Jun 2, 2014 |
Bugfixes, IE11 progress |
| 2.14 |
Feb 17, 2014 |
FF24, Bugfixes, initial work on IE11 |
| 2.13 |
Oct 11, 2013 |
Bugfixes |
| 2.12 |
Mar 6, 2013 |
Bugfixes, CSS3 Selectors |
| 2.11 |
Nov 6, 2012 |
Bugfixes, Java 6, HtmlPage.getElementById(), .type() special keys, initial WebSocket support, initial SVG support, primitive Geolocation support, SOCKS proxy for https, CORS |
| 2.10 |
Jul 21, 2012 |
Bugfixes, SSL client certificate |
| 2.9 |
Aug 9, 2011 |
Bugfixes, performance improvements |
| 2.8 |
Aug 5, 2010 |
Bugfixes, (large) binary download, single thread for JavaScript background tasks, HttpClient 4, SOCKS proxy, initial support for FF 3.6, support for GoogleAppEngine |
| 2.7 |
Feb 9, 2010 |
Bugfixes, initial IE8 support, HttpClient 4 migration preparation |
| 2.6 |
Sep 2, 2009 |
Bugfixes, add HtmlPage.save(), better XHTML support, Proxy Auto-Config, improved cache |
| 2.5 |
Apr 21, 2009 |
Bugfixes, MooTools support, support all HTML elements and various JavaScript properties |
| 2.4 |
Dec 30, 2008 |
Bugfixes, ActiveX support, JQuery & MochiKit support, minimal applet support, IE conditional comments |
| 2.3 |
Sept 16, 2008 |
Bugfixes, better generics, add Firefox 3 emulation, GWT 1.5 support |
| 2.2 |
Jul 24, 2008 |
Numerous bugfixes (handling of ill formed HTML code, document.write, ...), speed improvements, and move to HtmlUnit-core-js (Rhino fork) |
| 2.1 |
Apr 15, 2008 |
Performance improvements in CSS processing and a few bug fixes |
| 2.0 |
Apr 7, 2008 |
Migration to Java 5, implementation of org.w3c.dom.*, better support for incorrect html code, large improvements in JavaScript support (GWT 1.4 tests now pass, ...) |
| 1.14 |
Jan 9, 2008 |
Enormous improvements particularly in JavaScript support and execution speed |
| 1.13 |
Aug 17, 2007 |
Fixes bad maven packaging of version 1.12 + different improvements |
| 1.12 |
Aug 10, 2007 |
Enormous improvements particularly in JavaScript support and execution speed |
| 1.11 |
Mar 15, 2007 |
|
| 1.10 |
Nov 03, 2006 |
|
| 1.9 |
Jun 27, 2006 |
|
| 1.8 |
Feb 17, 2006 |
|
| 1.7 |
Aug 23, 2005 |
|
| 1.6 |
May 10, 2005 |
|
| 1.5 |
March 13, 2005 |
|
| 1.4 |
January 9, 2005 |
|
| 1.3 |
November 12, 2004 |
|
| 1.3-pre2 |
September 26, 2004 |
|
| 1.3-pre1 |
November 7, 2003 |
|
| 1.2.3 |
July 31, 2003 |
|
| 1.2.2 |
March 29, 2003 |
|
| 1.2.1 |
March 20, 2003 |
|
| 1.2 |
March 10, 2003 |
|
| 1.1 |
November 25, 2002 |
|
| 1.1-rc2 |
November 16, 2002 |
|
| 1.1-rc1 |
October 29, 2002 |
|
| 1.1-pre5 |
September 24, 2002 |
|
| 1.1-pre4 |
August 23, 2002 |
|
| 1.1-pre3 |
July 23, 2002 |
|
| 1.1-pre2 |
July 10, 2002 |
|
| 1.1-pre1 |
July 2, 2002 |
|
| 1.0 |
May 22, 2002 |
|
Release 5.5.0 – August 30, 2026
| Type |
Changes |
By |
 |
MockWebConnection: requestCount_ changed from a plain int to AtomicInteger and
lastRequest_ declared volatile to correct non-atomic increment and unsynchronised write under concurrent access. |
rbri |
 |
MockWebConnection: getLastWebRequest, getLastAdditionalHeaders, getLastMethod, and getLastParameters
now throw a clear IllegalStateException instead of a NullPointerException when called before any request has been made. |
rbri |
 |
MockWebConnection: the stored IOException in getRawResponse is now wrapped at throw time so the stack trace
points to the actual call site rather than where the exception was constructed. |
rbri |
 |
MockWebConnection: Improved Javadoc. |
rbri |
 |
WebAssert: assertTextNotPresentInElement now chains the ElementNotFoundException cause instead of dropping it. |
rbri |
 |
WebAssert: assertAllTabIndexAttributesSet now produces distinct error messages for a missing tabindex attribute
versus an out-of-bounds value. Error message itself is also fixed to point to the exact element. |
rbri |
 |
WebAssert: Improved Javadoc. |
rbri |
 |
DefaultCredentialsProvider: removeCredentials now tries an exact AuthScope match before
falling back to best-match scoring. |
rbri |
 |
DefaultCredentialsProvider: setCredentials now throws a clear IllegalArgumentException for null credentials. |
rbri |
 |
DefaultCredentialsProvider: SocksAuthenticator_ declared volatile to guard against unsynchronized reads. |
rbri |
 |
DefaultCredentialsProvider: Improved Javadoc. |
rbri |
 |
BlobUrlStore: remove() no longer strips the fragment from the url. |
rbri |
 |
BlobUrlStore: Improved Javadoc. |
rbri |
 |
CookieManager: Simplify clearExpired using Collection.removeIf(). |
rbri |
 |
CookieManager: Replace method-level synchronization with ReentrantReadWriteLock. |
rbri |
 |
WebResponseData: Ensure BOM processing is applied consistently across Brotli and deflate decompressed streams. |
rbri |
 |
WebResponseData: Support all standard zlib headers during deflate stream decompression. |
rbri |
 |
Improved case-insensitive HTTP header handling in WebRequest. |
rbri |
 |
Cleaned up Javadoc in WebRequest. |
rbri |
 |
Moved dot-segment normalization to StringUtils.removeDots(). The new implementation is compliant
with RFC 3986 section 5.2.4 and fixes two edge cases missed by the previous regex approach |
rbri |
 |
SubtleCrypto now strictly validates keyUsages against the specified algorithm and rejects with a SyntaxError when unsupported usages are provided. |
rbri |
 |
SubtleCrypto promise rejections now returns a properly initialized DOMException instance with valid properties (e.g., name). |
rbri |
 |
core-js: 'new.target' support implemented. |
rhino |
 |
core-js: parameter forwarding when the Proxy 'construct' trap forwards its argument list to Reflect.construct fixed. |
rbri |
 |
core-js: Small optimization for context handling. |
rbri |
 |
CSS: Replace unbounded unsynchronized HashMap static cache for media queries with a thread-safe. |
rbri |
 |
CSS: Fix selector validation for nth-last-child, nth-of-type, and nth-last-of-type pseudo-classes. |
rbri |
 |
CSS: Optimize nth-child calculations by replacing floating-point division with exact integer modulo arithmetic. |
rbri |
 |
CSS: Fix whitespace handling in one-of attribute selector (~=) to support tabs, newlines, and other whitespace characters. |
rbri |
 |
CSS: Fix centimeter unit conversion in media queries and CSS values. |
rbri |
 |
CSS: Fix height-based media queries (min-height, max-height, min-device-height, max-device-height)
to evaluate against height instead of width. |
rbri |
 |
CSS: Fix NullPointerException when evaluating relative selector with next sibling combinator (+)
on an element without a next sibling element. |
rbri |
 |
SimpleRange: surroundContents() now correctly throws an InvalidStateError DOMException when
any non-Text node is only partially contained by the range. |
rbri |
 |
SimpleRange: insertNode() now uses DomText.splitText() when inserting within text nodes for proper DOM specification compliance. |
rbri |
 |
SimpleRange: fix deleteContents() and containedNodes() boundary node resolution to prevent illegal deletion
of end container elements when offset equals child count. |
rbri |
 |
SimpleRange: fix deleteContents() text truncation off-by-one bug when endOffset equals the end container text length. |
rbri |
 |
SimpleRange: fix cloneContents() to return an empty fragment when the range is collapsed inside an element container. |
rbri |
 |
SimpleRange: fix cloneContents() node matching logic to prevent IllegalStateException when start and end containers are the same node. |
rbri |
 |
SimpleRange: cloneContents() now appends selected child nodes to the DocumentFragment instead of appending
the container element itself when startContainer equals endContainer. |
rbri |
 |
SimpleRange: selectNode() selects the node itself (so the container is the parent of the node
and the offsets are the node's position among siblings). This makes this spec conformant. |
rbri |
 |
SimpleRange: fix deleteContents() if start and and are the same. |
rbri |
 |
cssparser: 'not' and 'and' are valid identifiers and valid media (featrue) names. |
rbri |
 |
cssparser: locator for the selector list now points to the first selector in that list
instead of the last one. |
rbri |
 |
cssparser: type QUATER renamed to QUARTER (including enum and method names). |
rbri |
 |
cssparser: @charset does not require whitespace before the charset name. |
rbri |
 |
cssparser: improved parser robustness. |
rbri |
 |
cssparser: error skipping code now handles all units. |
rbri |
 |
cssparser: beginColumn/endLine values are wrong in some cases. |
rbri |
 |
cssparser: simplified/improved color parsing. |
rbri |
 |
DomNodeIterator traverse() simplified and optimized. |
rbri |
 |
Replace a recursive impl in DomNodeIterator with a loop. |
rbri |
 |
DomDocumentType.getInternalSubset() now returns null instead of an empty string. |
rbri |
 |
DomDocumentFragment and DomDocumentType now providing a default impl of getCanonicalXPath() returning an empty string. |
rbri |
 |
Docu: Added comprehensive Content Extraction guide covering asNormalizedText(), CSS visibility handling,
click-based link navigation over manual href extraction, form controls (inputs, textareas, buttons, toggles, select lists),
tables, lists, and advanced serializer formatting rules. |
rbri |
 |
HtmlTextArea.getNormalizedText() no longer right trims the content. |
rbri |
 |
core-js: Improved slot implementation to reduce memory used by function objects. |
rhino |
 |
Small optimizations for ComputedCssStyleDeclaration. |
rbri |
 |
Fixed getBoundingClientRect()/height calculation: the height property from style is now
used if available. |
rbri |
 |
AttachmentHandler, PrintHandler, PromptHandler, RefreshHandler, ScriptPreProcessor, StatusHandler,
and WebStartHandler marked as @FunctionalInterface. |
rbri |
 |
Simplified EncodingSniffer.translateEncodingLabel(): now always returns the translator's
normalized encoding name instead of sometimes returning the original (possibly mixed-case) input. |
rbri |
 |
Fixed EncodingSniffer.sniffEncodingFromCssDeclaration(): a missing closing quote after the
@charset declaration's opening quote is now explicitly detected and handled. |
rbri |
 |
Fixed EncodingSniffer.sniffEncodingFromXmlDeclaration(): a malformed XML declaration containing the
word "encoding" not followed by a quoted value no longer throws a StringIndexOutOfBoundsException;
the encoding is now correctly reported as undetermined instead. |
rbri |
 |
Fixed UrlUtils.resolveUrl(): an absolute-path relative reference (e.g. resolving "/a/./b" against
a base URL) now has its dot-segments ("." and "..") normalized the same way a merged relative path
already was. |
rbri |
 |
Fixed getBoundingClientRect()/width calculation: a block-level element sized via a shrink-to-fit
CSS width keyword (max-content, min-content) or containing only text (no child element boxes) no
longer incorrectly resolves to a width of 0. |
rbri |
 |
Fixed getBoundingClientRect()/width calculation: an inline-block element with an explicit
width: auto now correctly shrink-wraps to its content, instead of incorrectly filling the full
window width the same way an ordinary block element does. |
rbri |
 |
Fixed getBoundingClientRect()/width calculation: an ordinary block-level element with no explicit
width no longer incorrectly resolves to a content-based (shrink-wrapped) width; it now correctly
fills the full width of its containing block, as normal CSS block flow requires.
(regression from 5.2.0) |
rbri |
 |
Default display of 'track' elements is the empty string. |
rbri |
 |
Default display of 'source' elements is the empty string. |
rbri |
 |
NSResolver.lookupNamespaceURI() now returns null for unkown namespaces. |
rbri |
 |
TrackBlankContentAndSkipLeadingWhitespaceReader.read() wrong array indices in the whitespace-skip arraycopy
codebranch fixed. |
rbri |
 |
Chrome/Edge: FontFaceSet is now supported. |
rbri |
Release 5.4.0 – August 07, 2026
| Type |
Changes |
By |
 |
docu: Detailed description about input html elements usage. |
rhino |
 |
core-js: ES2021 WeakRef and FinalizationRegistry with full standard compliance added. |
rhino |
 |
websocket-client: jetty updated to 12.1.12. |
rbri |
 |
HtmlSelect methods removeOption() and replaceOption() support for optgroups fixed. |
rbri |
 |
HTMLNumberInput the different validation methods using a relaxed version of the number parser. |
rbri |
 |
HTMLNumberInput value property getter still does some cleanup on the raw value (e.g. removes a trailing dot). |
rbri |
 |
HTMLNumberInput value property getter no longer uses a format that matches the browser locale. |
rbri |
 |
HTMLNumberInput now sanitizes the value in the setter, not in the getter as before. |
rbri |
 |
Add a new Html spec conform number parser - HtmlNumberParser and use it from HtmlNumberInput. |
rbri |
 |
Implemented the validationMessage property for HtmlButton, HtmlTextArea, HtmlInput, HtmlObject, HtmlOutput, and HtmlSelect. |
rbri |
 |
Fixed HTMLFormElement.checkValidity()/reportValidity(): the aggregate check over a form's controls
now correctly fires on every failing control. |
rbri |
 |
Fixed checkValidity()/reportValidity(): a failing control now correctly fires a cancelable 'invalid'
event (and reportValidity() additionally focuses the first invalid control). |
rbri |
 |
INCOMPATIBLE CHANGE: org.htmlunit.html.ValidatableElement renamed to ValidatableHtmlElement. |
rbri |
 |
neko: section no longer closes select. |
rbri |
 |
Added HTMLFieldSetElement.type property. |
rbri |
 |
Property HTMLFieldSetElement.elements added. |
rbri |
 |
Fixed DisabledElement.isDisabled(): a disabled fieldset no longer disables descendants of its
first legend element, matching the spec's exemption for controls placed inside a fieldset's legend. |
rbri |
 |
Fixed checkValidity()/reportValidity() and the CSS :valid/:invalid pseudo-classes
for HtmlButton, HtmlTextarea, HtmlInput, HtmlObject, HtmlOutput, and HtmlSelect. |
rbri |
 |
HtmlFileInput.reset(): a form reset no longer tries to reconstruct a fake File from the
'value' attribute; it now simply clears the selected files, without firing a change event. |
rbri |
 |
HtmlFileInput.isValid(): a disabled file input is no longer incorrectly reported as invalid
by checkValidity() when 'required' is set and no file is selected. |
rbri |
 |
Method reportValidity() support to various form controls added. |
rbri |
 |
Various fixes to HtmlButton validation processing. |
rbri |
 |
Document HtmlButton's no-op implementations for reset and default value handling, and remove extraneous debug logging. |
rbri |
 |
Method isReadonly() removed from HtmlButton because there is no readonly support for this control. |
rbri |
 |
DisabledElement now implements Element and provides a default implementation of isDisabled(). |
rbri |
 |
Fixed HtmlTextArea.reset(): the text entry cursor/selection is now only moved to the end of the restored
value when that value actually differs from the current one, instead of always being forced to the end. |
rbri |
 |
Fixed HtmlInput/HtmlSelectableTextInput: setting the value to the value it already holds no longer moves
the text entry cursor/selection to the end, mirroring the same fix applied to HtmlTextArea. |
rbri |
 |
Fixed HtmlSelectableTextInput.reset(): removed a leftover selection reset that left selectionStart and
selectionEnd in an inconsistent state after a form reset. |
rbri |
 |
Major refactoring of the value handling for textarea; setting the value no longer manipulates the DOM,
instead a separate value and dirty flag are maintained (this is now in sync with the spec and the input element). |
rbri |
 |
Method isReadonly() removed from HtmlSelect; because there is no readonly support for this control. |
rbri |
 |
HtmlSelect should not drop invalid size attributes on page attachment. |
rbri |
 |
Fixed reset of the isValueDirty flag for HtmlInput. |
rbri |
 |
Corrected and improved value caching in ComputedCssStyleDeclaration. |
rbri |
 |
Fixed line count determination. |
rbri |
 |
neko: HTMLElement hashCode and equals fixed. |
rbri |
 |
neko: Remove the <SOUND>, <ILAYER>, <LAYER>, <NOLAYER>, <NEXTID>, <MULTICOL>,
<BLINK>, <SPACER>, and <XML> tag suport. |
rbri |
 |
neko: HTMLWriterFilter now serializes <textarea> and <title> element content with entity encoding
(https://github.com/HtmlUnit/htmlunit-neko/issues/173). |
rbri |
 |
neko: Remove the <comment> tag suport (https://github.com/HtmlUnit/htmlunit-neko/issues/173). |
rbri |
 |
neko: A new <nobr> start tag closes an <nobr> that is still open, even across intervening block elements. |
rbri |
 |
neko: A new <a> start tag closes an <a> that is still open, even across intervening block elements. |
rbri |
 |
csp: Multi-policy AND query APIs added. |
Rick Mitchell |
 |
neko: Some performance optimizations and code cleanup. |
rbri |
 |
Fix a possible resource leak by making sure ImageIOImageData closes the base stream. |
rbri |
 |
DownloadedContent.OnFile and ImageIOImageData now use Cleaner instead of finalize(). |
rbri |
 |
Improved headers for XHR preflight requests. Fixes #1152. |
rbri |
 |
The innerText() method for select elements now generates the same output as real browsers. |
rbri |
 |
The java.net.http module is now required. |
rbri |
 |
neko: Major update - the select element now allows arbitrary tags.
https://github.com/whatwg/html/pull/10557
(https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/select) |
rbri |
 |
neko: The input element closes select elements. |
rbri |
 |
Navigator.sendBeacon() method added. |
rbri |
 |
The area element supports the 'type' property in Firefox 153. |
rbri |
 |
Error.stackTraceLimit is available in Firefox 153. |
rbri |
 |
(I)frame requests now also send the Accept header. Fixes #1152. |
rbri |
 |
Area link handling is now in sync with anchor handling (implementation shared via the new
HyperlinkElementSupport class and the new HyperlinkElement interface). This adds support
for the 'ping' and 'download' attributes, among others. Fixes #1152. |
rbri |
 |
Script web requests now respect the 'crossorigin' attribute. Fixes #1152. |
rbri |
 |
Anchor ping requests now also send the Accept-Encoding and Cache-Control headers. Fixes #1152. |
rbri |
 |
Anchor web requests now respect the 'crossorigin' attribute. Fixes #1152. |
rbri |
 |
Major update to WebRequest to improve support for the Sec-Fetch-* HTTP headers. Fixes #1152. |
rbri |
 |
The URL/anchor hostname setter received several fixes. |
rhino |
 |
core-js: Added support for a common workaround for subclassing built-in objects (such as Set)
without using ES6 class/extends syntax, by using Reflect.construct() with a newTarget argument. Thanks to Lai Quang Duong. |
rbri |
 |
core-js: Improved strict mode handling for direct eval() calls. |
rhino |
 |
Range.getClientRects() and Range.getBoundingClientRect() now ignore whitespace-only text nodes
and block-level siblings when calculating the horizontal offset of a text node. |
rbri |
 |
Range.getClientRects() and Range.getBoundingClientRect() now handle DomText nodes correctly. |
rbri |
 |
Range.getBoundingClientRect() now uses shrink-wrap width calculation for block elements,
returning a tight bounding box around the actual content rather than the full
containing block width. |
rbri |
 |
Range.getTextNodeRect() now correctly determines character offsets when the range
boundaries are set on a parent element rather than directly on the text node,
returning the full text width instead of a single-character width. |
rbri |
Release 5.3.0 – July 15, 2026
| Type |
Changes |
By |
 |
Make XMLHttpRequest check blob url's origin properly instead of
throwing No permitted "Access-Control-Allow-Origin" header everytime |
Lai Quang Duong |
 |
Reworked URL.createObjectURL() / URL.revokeObjectURL() to back blob URLs with
a user-agent-wide blob URL store on WebClient, replacing the previous per-Document store.
This matches W3C specification where a blob: URL minted in one document is
resolvable from any same-client browsing context. |
Lai Quang Duong |
 |
asXml(): emit formatting line breaks only where the document contains whitespace;
adjacent elements no longer gain a fabricated line break that renders as a space. |
Ronny Shapiro |
 |
Many, many javadoc improvements. |
rbri |
 |
MDN links added to all js classes. |
rbri |
 |
CanvasRenderingContext2D lineCap property support added. |
rbri |
 |
CanvasRenderingContext2D lineJoin property support added. |
rbri |
 |
Checkstyle rule set updated: JavadocStyle -> SummaryJavadoc. Fixes #1149. |
rbri |
 |
Missing getter/setter for src and type property of HTMLEmbedElement added. |
Lai Quang Duong |
 |
Various additions to the web site content. |
rbri |
 |
The document 'Details about HtmlUnit Security' added to the documentation pages. |
rbri |
 |
Update TransformerFactory and DocumentBuilderFactory configuration with FEATURE_SECURE_PROCESSING
and restrict external DTD and stylesheet references to mitigate remote resource loading during XSLT transformation. Thanks to MatrixNeoKozak. |
rbri |
 |
websocket-client: jetty updated to 12.1.11. |
rbri |
 |
PointerEvent simulation of altitudeAngle/azimuthAngle improved. |
rbri |
 |
XMLHttpRequest responseXML() has to check the responseType as first step. |
rbri |
 |
XMLHttpRequest responseXML shold thow if the response type is not document or blank. |
rbri |
 |
BrowserVersion getPixesPerChar() is deprecated, use getPixelsPerChar() instead (typo in method name fix). |
rbri |
 |
Initial support for the 'plaintext-only' value of the contentEditable attribute. |
rbri |
 |
Chrome/Edge: Screen colorDepth/pixelDepth are 24 now. |
rbri |
 |
XMLHttpRequest error handling when accessing to a local resource is forbidden for
security reason fixed including the correct values for allResponseHeaders and statusText. |
rbri |
 |
XMLHttpRequest upload property must return the same object for repeated calls. |
rbri |
 |
Option index property fixed for selects using optgroups. |
rbri |
 |
Making a textarea element readonly sets the readonly attribute to '' instead of 'readOnly'. |
rbri |
 |
Making an input element readonly sets the readonly attribute to '' instead of 'readOnly'. |
rbri |
 |
Minor fixes for the replacement of select options. |
rbri |
 |
MouseEvent clientY calculation in HtmlImage fireEvent() fixed. |
rbri |
 |
Apache ECharts test case added. |
rbri |
 |
window.crypto.subtle always returns the same object. |
rbri |
 |
Crypto randomUUID() fixed. |
rbri |
 |
Improved index checking for the SiblingListIterator ctor. |
rbri |
 |
DomElement.setAttributeNode(Attr) returns the previously set Attr with the same name if one existed;
instead of always returning null. |
rbri |
 |
DomElement.ChildElementsIterator#remove() now works also for the last element of the iterator. |
rbri |
 |
Make DomNode.normalize() recurse into the full subtree, not just direct children. |
rbri |
 |
xpath: code cleanup. |
rbri |
 |
xpath: use getDeclaredConstructor().newInstance() as we on JDK 17 now. |
rbri |
 |
core-js: WeakRef support added. |
RhinoTeam |
 |
core-js: work on a new faster interpreter was started. |
RhinoTeam |
 |
Range getBoundingClientRect() x and y calculation fixed. |
rbri |
 |
Improved Range getClientRects() implementation. |
rbri |
 |
Range setEndBefore() now really updates the end. |
rbri |
 |
SimpleRange containedNodes() now works also if startNode and endNode are the same. |
rbri |
 |
SimpleRange containedNodes() no longer changes the node's text (stupid c&p from delete). |
rbri |
 |
Range getBoundingClientRect() and getClientRects() supporting DomText node's also. |
rbri |
 |
Range getBoundingClientRect() now sets the X and Y value of the rect instead of setting the Y value twice. |
rbri |
 |
DomNode cloneNode() fixed to ensure isBodyParsed() returns true for the clone. Fixes #1141. |
rbri |
 |
Document adoptNode() should not clone the node. Fixes #1141. |
rbri |
 |
JS functions clearTimeout() and clearInterval() checking for positive jobId's before trying
to find the job (job id's are always positive). |
rbri |
 |
Remove the 'cancelledJobs_' list from JavaScriptJobManagerImpl; this is not needed at all and
the root of a memory leak for some web pages. Fixes #1141. |
rbri |
 |
All colors form the recet css specs added to CssColors. |
rbri |
 |
CanvasRenderingContext2D clip() does no longer close the current subpath. |
rbri |
 |
AwtRenderingBackend consecutive moveTo() calls no longer accumulating orphan subpaths. |
rbri |
 |
CanvasRenderingContext2D fillRect() now uses double coordinates. |
rbri |
 |
Improved AwtRenderingBackend arc() now forwards to ellipse() as suggested by the spec. |
rbri |
 |
Improved AwtRenderingBackend ellipse() angle conversation from canvas to AWT. |
rbri |
 |
CanvasRenderingContext2D fill() supports the winding rule parameter. |
rbri |
 |
AwtRenderingBackend more robust clip handling in the SaveState. |
rbri |
 |
AwtRenderingBackend font is now part of the SaveState. |
rbri |
 |
CanvasRenderingContext2D close() creates a new subpath according to the spec. |
rbri |
 |
AwtRenderingBackend stroke() only drwas if th path is not empty. |
rbri |
 |
Improved AwtRenderingBackend stroke handling by setting the lineCap, lineJoin,
and miterLimit properties of BasicStroke. |
rbri |
 |
CanvasRenderingContext2D rect() creates a separate subpath. |
rbri |
 |
CanvasRenderingContext2D rect()/strokeRect()/fillRect()/clearRect() supporting negative width/hight. |
rbri |
 |
CanvasRenderingContext2D lineTo() is a moveTo() if currentPath is empty. |
rbri |
 |
CanvasRenderingContext2D arc() and ellipse() start point handling fixed. |
rbri |
 |
Improved image comparison for our test cases; this shows a bunch of problems that are hard to identify. |
rbri |
 |
CanvasRenderingContext2D strokeRect() has to respect the lineWidth. |
rbri |
 |
CanvasRenderingContext2D strokeRect() now uses double coordinates. |
rbri |
 |
AwtRenderingBackend has to set the RenderingHints.VALUE_STROKE_PURE to correct draw at the right/bottom. |
rbri |
 |
CanvasRenderingContext2D implicitly created subpath's do a moveTo to their start point. |
rbri |
 |
AwtRenderingBackend putImageData() now uses a BufferedImage for performance. |
rbri |
 |
CanvasRenderingContext2D translate() now uses float coordinates. |
rbri |
 |
CanvasRenderingContext2D putImageData() parameter handling fixed. |
rbri |
 |
CanvasRenderingContext2D createLinearGradient() parameters fixed. |
rbri |
 |
CanvasRenderingContext2D lineWidth is now a float. |
rbri |
Release 5.0.0 – May 24, 2026
| Type |
Changes |
By |
 |
Tests for htmx 2.0.10 added. |
rbri |
 |
InnerOuterTextSerializer handles dt tags like li. |
rbri |
 |
Support start attribute when creating the text representation of an UnorderedList. |
rbri |
 |
HtmlHeadingGroup introduced. |
rbri |
 |
HtmxTwoZeroSevenScriptPreProcessor updated to support htmx 2.0.10 also. |
rbri |
 |
Simple first impl of Document parseHTMLUnsafe() added. |
rbri |
 |
moveBefore() fixed to not create double id/name index entries. |
rbri |
 |
Make sure elements not added twice to the id/name index. |
rbri |
 |
core-js: 'BaseFunction' and 'NativeString' converted to descriptor. |
RhinoTeam |
 |
core-js: typed array constructor improved to be closer to spec. |
RhinoTeam |
 |
INCOMPATIBLE CHANGE: WebClientOptions.getWebSocketMaxTextMessageBufferSize() / setWebSocketMaxTextMessageBufferSize() removed. |
rbri |
 |
INCOMPATIBLE CHANGE: WebClientOptions.getWebSocketMaxBinaryMessageBufferSize() / setWebSocketMaxBinaryMessageBufferSize() removed. |
rbri |
 |
WebSocket close() check for null web socket impl. |
rbri |
 |
WebSocket close event - set the was clean flag only if statusCode is 1000. |
rbri |
 |
WebSocket constructor improved, better checking/handling of the url and throw the correct error types. |
rbri |
 |
WebSocket should handle the socket connect error by setting the status and triggering the listeners. |
rbri |
 |
INCOMPATIBLE CHANGE: WebSocketListener.onWebSocketBinary(byte[] data, int offset, int length) changed to onWebSocketBinary(ByteBuffer payload). |
rbri |
 |
INCOMPATIBLE CHANGE: WebSocketListener.onWebSocketBinary(byte[] data, int offset, int length) changed to onWebSocketBinary(ByteBuffer payload). |
rbri |
 |
INCOMPATIBLE CHANGE: WebSocketAdapter.closeIncommingSession() renamed to closeIncomingSession(). |
rbri |
 |
websocket-client: jetty updated to 12.1.8. |
rbri |
 |
core-js: Fix Object.assign with array target losing length update. |
RhinoTeam |
 |
core-js: Introduce ClassSizeException (extends ClassFileFormatException) and tighten up
exceptions related to class compilation. |
RhinoTeam |
 |
core-js: Fix for ignored spreads in array construction. |
rbri |
 |
core-js: Fix uint8 overflow in array literal skipIndexesId and sourcePositions. |
rbri |
 |
core-js: Tidy up serial version ids; applied openrewrite to add `@Serial` annotations. |
RhinoTeam |
 |
Introduce SpeechRecognitionEvent and SpeechRecognitionErrorEvent and make them also available as
webkitSpeechRecognitionEvent and webkitSpeechRecognitionError. |
rbri |
 |
Introduce SpeechGrammar, SpeechGrammarList, and SpeechRecognition and make them also available as
webkitSpeechGrammar, webkitSpeechGrammarList, and webkitSpeechRecognition. |
rbri |
 |
SVGSymbolElement is a child of SVGGraphicsElement. |
rbri |
 |
Bunch of event constructor fixes. |
rbri |
 |
Unified and enhanced test for all the js event objects, many missing test classes added. |
rbri |
 |
ChromeEdge: The <command> html tag is no longer supported. |
rbri |
 |
ChromeEdge: document.createEvent('WheelEvent') throws. |
rbri |
 |
ChromeEdge: document.createEvent('CloseEvent') throws. |
rbri |
 |
ChromeEdge: document.createEvent('AnimationEvent') throws. |
rbri |
 |
ChromeEdge: document.createEvent('PopStateEvent') throws. |
rbri |
 |
ChromeEdge: NumberFormat for de-CH and it-CH updated. |
rbri |
 |
neko: invalid numeric entity handling improved |
rbri |
 |
neko: hgroup support added |
rbri |
 |
neko: null character handling in script content fixed |
rbri |
 |
neko: update translation of 0x98 to \u02DC |
rbri |
 |
neko: fix surrogate-character-reference parse error handling |
rbri |
 |
neko: fix consecutive ampersands before named entity parsing |
rbri |
 |
neko: include tests from https://github.com/html5lib/html5lib-tests.git |
rbri |
 |
neko: more fuzzer tests and fixes |
rbri |
 |
neko: HTMLScanner.scanName: ASCII fast-path for the per-char inner loop |
rbri |
 |
neko: javadoc fixes |
rbri |
 |
neko: handle empty attributes always the same way |
rbri |
 |
neko: more robust collection handling, missing forcedEndElement_ reset fixed |
rbri |
 |
neko: add missing methods to EmptyXMLAttributesImpl to make it more robust |
rbri |
 |
neko: introduce and use immutable EmptyXMLAttributesImpl |
rbri |
 |
neko: reuse the plaintext scanner (like the other scanners) and avoid toLowerCase if not needed |
rbri |
 |
neko: use the correct property (http://cyberneko.org/html/properties/names/attrs) in case of the error handling for strange attributes |
rbri |
 |
neko: adjust column now also when skipping |
rbri |
 |
neko: modernize by using Arrays.mismatch() |
rbri |
 |
neko: reuse the HTMLUnicodeEntitiesParser (like we do for many other things) and simplify the code a bit |
rbri |
 |
Defer building the HtmlPage id/name lookup index until first read. |
Ronny Shapiro |
 |
Input type image returns false for willValidate. |
rbri |
 |
XMLHttpRequest adds the origin header to patch requests. |
rbri |
 |
ChromeEdgeFF: document.createElement tagName character validation adjusted. |
rbri |
 |
ChromeEdge: willValidate returns true for readonly buttons. |
rbri |
 |
Fix toString result for Intl.Collator, Intl.DateTimeFormat, Intl.NumberFormat, and Intl.v8BreakIterator. |
rbri |
 |
Fix v8BreakIterator ctor to accept language-region. |
rbri |
 |
Fix DomNode.insertBefore(DomNode) to dissolve DocumentFragment into its children before insertion. |
Lai Quang Duong |
 |
cssparser: support for unicode characters in keywords removed, this is not used in real world
and the parser is much simpler without |
rbri |
 |
core-js: Make NativeDate.toLocaleString() behave more like real browsers. |
Lai Quang Duong |
 |
core-js: Major refactoring to separate top level scope and 'globalThis'. |
RhinoTeam |
 |
core-js: Improve 'caller' handling depending on strict mode. |
rbri |
 |
core-js: Clean up tracking of strict mode in general. |
RhinoTeam |
 |
core-js: Support for resizable ArrayBuffers as specified in ES2024 added. |
RhinoTeam |
 |
core-js: Fixed automatic semicolon insertion for 'let' |
RhinoTeam |
 |
core-js: Ensure that construction is wrapped in a top-level call when none is present, preventing assertion failures in interpreted mode |
RhinoTeam |
 |
FunctionWrapper implements SymbolScriptable - solves e.g. Function.prototype.toString instanceof Function
of Object.prototype.toString.call(Function.prototype.toString). |
Lai Quang Duong |
 |
xpath: Add missing entry for ER_XPATH_ERROR in XPATHErrorResources. |
Ryuhei Ishizuka |
 |
Force content sniffing for '*/*' content type to be in sync with the browsers. |
Lai Quang Duong |
 |
SubtleCrypto: digest() - SHA-1, SHA-256, SHA-384, SHA-512. |
Lai Quang Duong |
 |
SubtleCrypto: generateKey() - RSASSA-PKCS1-v1_5, RSA-PSS, RSA-OAEP, ECDSA, ECDH, AES-CBC, AES-CTR, AES-GCM, AES-KW, HMAC |
Lai Quang Duong |
 |
SubtleCrypto: importKey("raw") - HMAC, AES-CBC, AES-CTR, AES-GCM, AES-KW |
Lai Quang Duong |
 |
SubtleCrypto: exportKey("raw") - HMAC, AES-CBC, AES-CTR, AES-GCM, AES-KW |
Lai Quang Duong |
 |
SubtleCrypto: sign() - HMAC, RSASSA-PKCS1-v1_5, RSA-PSS, ECDSA |
Lai Quang Duong |
 |
SubtleCrypto: verify() - HMAC, RSASSA-PKCS1-v1_5, RSA-PSS, ECDSA |
Lai Quang Duong |
 |
SubtleCrypto: encrypt() - AES-CBC, AES-GCM, AES-CTR, RSA-OAEP |
Lai Quang Duong |
 |
SubtleCrypto: decrypt() - AES-CBC, AES-GCM, AES-CTR, RSA-OAEP |
Lai Quang Duong |
 |
Area: properties hash,host,hostname,href,origin,password,pathname,port,protocol,search, and username added. |
Lai Quang Duong |
 |
Extract shared HTMLHyperlinkElementUtils for URL decomposition and use it from HTMLAnchorElement and HTMLAreaElement. |
Lai Quang Duong |
 |
HTMLAnchorElement: strip default port from host/port/origin. |
Lai Quang Duong |
 |
HtmlPage: fix a bug where async script may not be executed. |
Lai Quang Duong |
 |
ProgressEvent: properties loaded and total are numeric. |
rbri |
 |
Intl: getCanonicalLocales() processes arguments as array-likes in sync with the spec. |
rbri |
 |
FileReader: fire ProgressEvent and add missing event handlers |
Lai Quang Duong |
 |
HtmlInputElement's of type email/url/date/time have to fire the input event. |
Lai Quang Duong |
 |
Align cookie max-age handling for huge values with the spec. |
Lai Quang Duong |
 |
Intl: fix toStringSymbol for Intl, Collator, DateTimeFormat, Locale, and NumberFormat. |
rbri |
 |
Intl: supportedLocalesOf() implementation added to DateTimeFormat and NumberFormat. |
Lai Quang Duong |
 |
window.queueMicrotask() added. |
Lai Quang Duong |
 |
Intl: supportedLocalesOf() implementation added to DateTimeFormat and NumberFormat. |
Lai Quang Duong |
 |
Intl: getCanonicalLocales() implementation added |
Lai Quang Duong |
 |
Intl.Locale implementation added. |
Lai Quang Duong |
 |
Storage: fix storeSize calculation when overwriting existing key |
Kanoko Yamamoto |
 |
In sync with the spec, a form now maintains a past names map at the form level, not on individual elements.
The map is populated only when form.xyz resolves to a single element, and entries are invalidated when the element's form owner changes. |
Lai Quang Duong |
 |
Upgrade commons-logging to 1.3.6. |
rbri |
 |
core-js: Syntax error when multiple comments in braceless IF. |
RhinoTeam |
 |
core-js: iCode debug printing refactored. |
RhinoTeam |
 |
core-js: Convert XML objects from 'IdScriptableObject's to descriptors. |
RhinoTeam |
 |
select.remove() with no arguments now removes itself from the DOM. Fixes #1092. |
rbri |
 |
core-js: Enforce 'WrapFactory' users to override new `wrap(...)` and `wrapAsJavaObject(...)` methods. |
RhinoTeam |
 |
core-js: use 'ClassValue' for caching class-based TypeInfo. |
RhinoTeam |
 |
core-js: a problem in dumpICode fixed and test coverage increased. |
RhinoTeam |
 |
core-js: fix generator .return() to include value when in completed state. |
RhinoTeam |
 |
core-js: Avoid compiling `a.eval()` as a direct eval call so all the prototypes are set up correctly. |
RhinoTeam |
 |
Better separation of the scope and the global this object. |
rbri |
 |
core-js: Support for rest parameters in destructuring. |
RhinoTeam |
 |
core-js: Respect custom [Symbol.hasInstance] implementations; look up of hasInstance walks prototype chain. |
RhinoTeam |
 |
core-js: NativeError and RegExp setup modernized. |
RhinoTeam |
 |
core-js: Fix for setting of prototype and parent scopes on some new objects. |
RhinoTeam |
 |
core-js: Fix scope used in iterator creation. |
RhinoTeam |
 |
core-js: IdFunctionObject.isConstructor() to return useCallAsConstructor; now methods
like Date.prototype.getDate, RegExp.prototype.exec, etc. no longer incorrectly
reported as constructors. |
RhinoTeam |
 |
Test suite updated to junit 6 and cleaned up. |
rbri |
 |
Simplify logging configuration for our test by switching from log4j to logback-classic. |
rbri |
 |
core-js: Add delete support to DOMStringMap. |
RhinoTeam |
 |
core-js: Remove direct dependency to ScriptableObject from DOMStringMap and improve get/set impl. |
RhinoTeam |
 |
core-js: migrate NativeDate away from IdScriptable. |
RhinoTeam |
 |
core-js: internal code cleanup - drop support for version 1.0 - 1.4 |
RhinoTeam |
 |
core-js: add a method to temporarily suspend microtask processing |
RhinoTeam |
 |
core-js: Optimize regex backtracking for quantifiers before end-of-line anchor |
RhinoTeam |
 |
core-js: JSON.parse fixed to preserve negative zero |
RhinoTeam |
 |
core-js: use ThrowTypeError at all relevant places. |
rbri |
 |
core-js: debugger eval for scripts and eval scope for top-level scripts fixed. |
RhinoTeam |
 |
core-js: DataView Float16 support added. |
RhinoTeam |
 |
Improved HttpMethod validation in XMLHttpRequest open('trace', ...). |
rbri |
 |
XMLHttpRequest open('trace', ...) throws a security error. |
rbri |
 |
The test suite now uses Jetty 12.1. |
RhinoTeam |
 |
INCOMPATIBLE CHANGE: Cookie moved from package 'org.htmlunit.util' to 'org.htmlunit.http' |
rbri |
 |
core-js: DataView BigInt64 and BigUInt64 support added |
RhinoTeam |
 |
core-js: isConstructor check fixed and improved |
RhinoTeam |
 |
core-js: major performance improvement for RegExp.prototype[Symbol.split] and RegExp.prototype[Symbol.replace] |
RhinoTeam |
 |
core-js: improve the Number.toLocaleString() implementation; drop our own version |
rbri |
 |
Use java.util.Objects.hash() instead org.apache.commons.lang3.builder.HashCodeBuilder. |
rbri |
 |
Use java.util.Objects.hash() instead org.apache.commons.lang3.builder.HashCodeBuilder. |
rbri |
 |
module-info.java added to all projects. |
rbri |
 |
INCOMPATIBLE CHANGE: XmlUtilsXercesHelper and XmlUtilsSunXercesHelper removed (and the class XmlUtilsHelperAPI). |
rbri |
 |
INCOMPATIBLE CHANGE: dependency to xercesImpl removed. |
rbri |
 |
INCOMPATIBLE CHANGE: htmlunit-csp updated to Java 17. |
rbri |
 |
INCOMPATIBLE CHANGE: htmlunit-cssparser updated to Java 17. |
rbri |
 |
INCOMPATIBLE CHANGE: htmlunit-corejs updated to Java 17. |
rbri |
 |
INCOMPATIBLE CHANGE: htmlunit-neko updated to Java 17. |
rbri |
 |
INCOMPATIBLE CHANGE: htmlunit-xpath updated to Java 17. |
rbri |
Release 4.17.0 – October 05, 2025
| Type |
Changes |
By |
 |
core-js: duplicate function keys in object literal now allowed. |
RhinoTeam |
 |
Empty implementation of MessagePort.start() and MessagePort.close() added. |
rbri |
 |
Detection of the window.postMessage() transfer parameter improved. |
rbri |
 |
Deprecated methods HTMLParser.parse(WebResponse, HtmlPage, boolean, boolean),
HTMLParser.parseFragment(DomNode, DomNode, String, boolean),
and HTMLParser.parseFragment(DomNode, String) removed. |
rbri |
 |
Deprecated method UrlUtils.decodeDataUrl(byte[]) removed. |
rbri |
 |
Deprecated method AbstractJavaScriptConfiguration.isCompatible(SupportedBrowser, SupportedBrowser) removed. |
rbri |
 |
Deprecated class org.htmlunit.html.DomNode.DescendantElementsIterator removed. |
rbri |
 |
Use a new HTMLElementsWithCache object for each neko parser run to avoid race conditions under load. |
Rene Schwietzke |
 |
neko: some optimizations for HTMLElementsProvider/HTMLElements/HTMLElementsWithCache. |
Rene Schwietzke |
 |
neko: introduce HTMLElementsProvider and HTMLElementsWithCache. |
rbri |
 |
core-js: 'eval'of a function is now undefined. |
RhinoTeam |
 |
core-js: duplicate properties in object literal now allowed. |
RhinoTeam |
 |
Window.top has no setter. |
rbri |
 |
Upgrade Apache commons-lang3 to 3.19.0. |
rbri |
 |
Initial support for the :has() pseudo selector added. |
rbri |
 |
Initial support for the :where() pseudo selector added. |
rbri |
 |
Initial support for the :is() pseudo selector added. |
rbri |
 |
XMLHttpRequest now supports data url's. |
rbri |
 |
Head request for a data url now returning an empty response. |
rbri |
 |
HtmxTwoZeroSevenScriptPreProcessor added; this is required for htmx 2.0.3-2.0.7. |
rbri |
 |
Tests for htmx 2.0.4-2.0.7 added. |
rbri |
 |
core-js: fix template literal string conversion for ECMAScript compliance |
RhinoTeam |
 |
core-js: fix Array.from to prioritize iterable over array-like objects |
RhinoTeam |
 |
CSS.escape() javascript method added. |
rbri |
 |
Fix URL constructor to support also the data scheme. |
rbri |
 |
DOMMatrix and DOMMatrixReadOnly stubs replaced by a real implementation (incomplete). Fixes #371. |
rbri |
 |
Properly synchronize access to httpClientBuilder_ in class HttpWebConnection. Fixes #1014. |
René Schwietzke |
 |
core-js: fix error stack generation in interpreted mode and report the correct line number |
RhinoTeam |
 |
core-js: don't propagate strict flag when compiling scripts and we already
have an active context in strict mode |
RhinoTeam |
 |
core-js: a problem with toString() on arrow functions fixed |
RhinoTeam |
 |
core-js: ES2025 Error.isError static method implemented |
RhinoTeam |
 |
core-js: ES2025 Math.f16round method implemented |
RhinoTeam |
 |
HtmlLink.getWebResponse(...) now also works when the JavaScript engine is disabled. |
rbri |
 |
BroadcastChannel stub replaced by a real implementation. Fixes #978. |
rbri |
 |
UrlUtils.isSameOrigin(URL, URL) added and used by XMLHttpRequest |
rbri |
 |
SameOrigin check has to check the protocol also. |
rbri |
Release 4.14.0 – July 30, 2025
| Type |
Changes |
By |
 |
New sister project 'jsoup-bridge' (https://github.com/HtmlUnit/htmlunit?tab=readme-ov-file#jsoup-bridge). |
rbri |
 |
Switched to sonatype central-publishing for snapshots and release builds. |
rbri |
 |
New method WebClinet.waitForBackgroundJavaScriptStartingBefore(final long delayMillis, final long timeoutMillis)
that combines a overall timeout with waiting for js tasks starting before. |
rbri |
 |
Avoid ConcurrentModificationException in HtmlPage.deregisterFramesIfNeeded() |
rbri |
 |
Separate developer documentation to help people start working on this project |
rbri |
 |
MutationEvent is still available in FF but not as global |
rbri |
 |
Some fixes for the ctor prototype setup |
rbri |
 |
code cleanup based on PMD - use isEmpty() in more places |
rbri |
 |
core-js: Infer function name when declared in a var/let statement implemented |
RhinoTeam |
 |
core-js: Promise.withResolvers() added |
RhinoTeam |
 |
core-js: assigning values to super got some improvements |
rbri |
 |
core-js: BigInt.asUintN and BigInt.asIntN implementation fixed |
RhinoTeam |
 |
core-js: code simplification for support of different JDKs |
RhinoTeam |
 |
core-js: huge refactoring of the interpreter for more speed and easier maintenance |
RhinoTeam |
 |
core-js: '__parent__' property is no longer available |
rbri |
 |
core-js: refactored exception and stack handling |
RhinoTeam |
 |
core-js: The Builtins and the Regexp initializer migrated from reflection to lambda |
RhinoTeam |
 |
core-js: major '__proto__' support update bringing the '__proto__' support in line
with the spec and with real browsers. This also includes support for
the strange function 'shorthand' case for __proto_. |
rbri |
 |
core-js: refactored CallFrame to keep stack as immutable linked list. |
RhinoTeam |
 |
core-js: fix how 'this' is handled when calling `Array.from` in some edge cases,
when `null` or 'undefined' were passed as the `this` argument |
RhinoTeam |
 |
SBOM (CycloneDX format) added. |
rbri |
 |
core-js: minor code optimization. |
rbri |
 |
core-js: typo in prototype detection fixed. |
rbri |
 |
core-js: Code cleanup. |
RhinoTeam |
 |
neko: fix ParentNode#getTextContent() |
rbri |
 |
neko: introduce Element.SCRIPT_SUPPORTING flag for HTMLElements |
rbri |
 |
Upgrade Apache commons-io to 2.20.0. |
rbri |
 |
Upgrade Apache commons-lang3 to 3.18.0. |
rbri |
 |
core-js: UnicodeMode support for regexp added. |
RhinoTeam |
 |
core-js: ArrayBuffer detach() support added. |
RhinoTeam |
 |
Major improvements for the asXML() function. Fixes #982. |
rbri |
 |
Test suite updated to junit 5 and cleaned up. |
rbri |
 |
The hidden attribute now supports the 'until-found' value. |
rbri |
 |
INCOMPATIBLE CHANGE: To add support for the 'until-found' hidden attribute value, the parameter
handling of method HtmlElement.setHidden(String) was changed. Please have a look at the javadoc for
details about the current implementation. |
rbri |
 |
jQuery 1.12.4 test suite added. |
rbri |
 |
jQuery 1.8.2, 1.11.3, and 3.3.1 test suite refreshed. |
rbri |
 |
FF139: SVGDiscardElement is gone (again). |
rbri |
 |
getClientRects() returns an empty list for hidden inputs. This fixes also a problem with
the :hidden jQuery selector. |
rbri |
Release 4.13.0 – June 03, 2025
| Type |
Changes |
By |
 |
The prototype for DOMRect is now DOMRectReadOnly. |
rbri |
 |
Internal javascript class ClientRect renamed to DOMRect (the old name was a leftover from IE). |
rbri |
 |
Internal javascript class ClientRectList renamed to DOMRectList (the old name was a leftover from IE). |
rbri |
 |
core-js: Adjust order of evaluation of function arguments to match the spec. |
RhinoTeam |
 |
core-js: Major tidy up of 'NativeTypedArrayView' to better match spec. |
RhinoTeam |
 |
core-js: Refactor functions to be lambdas rather than IdScriptableObject's. |
RhinoTeam |
 |
The prototype for HTMLAllCollectionis no longer the HTMLCollection, it is now object. |
rbri |
 |
HTMLTableCellElement now supports the 'align', 'ch', 'chOff', 'headers', 'height', 'noWrap',
'rowSpan', 'scope', 'vAlign', 'width' properties. |
rbri |
 |
HTMLTableColElement now supports the 'align', 'ch', 'chOff', and 'vAlign' properties. |
rbri |
 |
Internal javascript class HTMLTableComponent removed. The prototype for HTMLTableCellElement,
HTMLTableColElement, and HTMLTableRowElement is now the correct HTMLElement. |
rbri |
 |
HTMLTableSectionElement now supports the deleteRow() and insertRow() functions. |
rbri |
 |
HTMLTableSectionElement now supports the 'align' and 'rows' properties. |
rbri |
 |
HTMLTableElement now supports the deleteRow() and insertRow() functions. |
rbri |
 |
HTMLTableElement now supports the 'align' and 'rows' properties. |
rbri |
 |
Internal javascript class RowContainer removed. The prototype for HTMLTableElement, and
HTMLTableSectionElement is now the correct HTMLElement. |
rbri |
 |
HTMLUListElement now supports the 'compact' property. |
rbri |
 |
HTMLOListElement now supports the 'compact' property. |
rbri |
 |
HTMLMenuElement now supports the 'compact' property. |
rbri |
 |
HTMLLIElement now supports the 'type' property. |
rbri |
 |
HTMLDListElement now supports the 'compact' property. |
rbri |
 |
HTMLDListElement now supports the 'compact' property. |
rbri |
 |
Internal javascript class HTMLListElement removed. The prototype for HTMLDListElement,
HTMLDirectoryElement, HTMLLIElement, HTMLMenuElement, HTMLOListElement, and HTMLUListElement
is now the correct HTMLElement. |
rbri |
 |
Internal javascript class HTMLListElement removed. The prototype for HTMLDListElement,
HTMLDirectoryElement, HTMLLIElement, HTMLMenuElement, HTMLOListElement, andHTMLUListElement
is now the correct HTMLElement. |
rbri |
 |
Javascript class configuration reworked, this allows some optimizations in the furture. |
rbri |
 |
Constructor prototype fixes, now we have the correct prototypes for most classes.
The RecursiveFunctionObject workaround is no longer required. |
rbri |
 |
DomNodeIterator is now serializable. |
rbri |
 |
FF138: adjust datetimeformat for several locales. |
rbri |
 |
Chrome/Edge 136: Clicking an image input no longer submits the value as param. |
rbri |
 |
FF138: Frame elements are accessible by name. |
rbri |
 |
FF138: Error.captureStackTrace() is supported. |
rbri |
 |
FF138: js constant maxActions added to Notification. |
rbri |
 |
FF138: stylesheet links checking the content type for 'text/css'. |
rbri |
Release 4.12.0 – May 17, 2025
| Type |
Changes |
By |
 |
WebClient option NekoReaderBufferSize added. You can use this to increase the buffer size used by
the Neko Html parser to optimize parsing performance. |
rbri |
 |
HTMLParser parseFragment(DomNode, String), parse(WebResponse, HtmlPage, boolean, boolean), and
parseFragment(DomNode, DomNode, String, boolean) are deprecated. |
rbri |
 |
neko: HTMLScanner always requires a document handler; the null check is moved to the setter
and all the others are removed. |
rbri |
 |
neko: avoid HTML1011 error for self closing tags. |
rbri |
 |
neko: ignore whitespace before the closing > when parsing special tags. |
rbri |
 |
neko: remove two superfluous conversions from the code. |
rbri |
 |
core-js: NativeArray impl is now lambda based. |
RhinoTeam |
 |
core-js: improved date string parser; support optional ms digits,
skip ms digits, extended year support is not available in es6 |
rbri |
 |
core-js: detailed message added to IndexOutOfBoundsExceptions |
RhinoTeam |
 |
core-js: add double null check pattern when initializing cache values. |
RhinoTeam |
 |
DomTokenList.forEach() now takes care of the current state of the list
(e.g. the forEach function might add/remove elements to the list itself). |
rbri |
 |
NodeList.forEach() now takes care of the current state of the list
(e.g. the forEach function might add/remove elements to the list itself). |
rbri |
 |
AlertHandler, ConfirmHandler, FrameContentHandler, CharacterDataChangeListener, and IncorrectnessListener
marked as @FunctionalInterface. |
rbri |
 |
Upgrade Apache commons-io to 2.19.0. |
rbri |
 |
Element.scrollIntoView() now triggers scroll events on all parents. |
rbri |
 |
For FF scroll events are of type UIEvent. |
rbri |
 |
Scroll events are not bubbling and not cancelable. |
rbri |
 |
core-js: Function.prototype[Symbol.hasInstance] fixed. |
RhinoTeam |
 |
core-js: regression in hex and unicode hex parsing or regexp fixed |
RhinoTeam |
 |
CSS blockSize support improved. |
rbri |
 |
core-js: Complete reimplementation of 'String.prototype.search', 'String.prototype.replace',
'String.prototype.replaceAll', and 'String.prototype.split'. The new impl is much closer to the spec. |
RhinoTeam |
 |
core-js: Fix a character class parsing regression for regexp. |
RhinoTeam |
 |
core-js: Fix handling of \x and \u in regexp. |
RhinoTeam |
 |
FF137: SVGDiscardElement added. |
rbri |
 |
Chrome/Edge 135, FF137: Setter validation for length style properties adjusted. |
rbri |
 |
Chrome/Edge 135: Style properties 'interactivity', 'overflowBlock', 'overflowInline', and 'scrollMarkerGroup' added. |
rbri |
 |
FF137: Adjust clientHeight for some ruby related tags. |
rbri |
 |
Chrome/Edge 135, FF137: Improved namespace handling when sending an html document via XMLHttpRequest. |
rbri |
 |
Chrome/Edge 135: Improved <br> handling in options tags. |
rbri |
 |
Chrome/Edge 135, FF137: Fixed font sizes for smaller/larger CSS property value. |
rbri |
 |
FF137: Set span for table cells to zero if provided value is invalid. |
rbri |
 |
core-js: Some fixes for strict handling. |
RhinoTeam |
 |
core-js: Several code improvements for the RegExp implementation. |
RhinoTeam |
 |
WebClient.setWebSocketAdapter(WebSocketAdapterFactory) added. This should
help to use a different WebSocket implementation. Fixes #946. |
rbri |
 |
WebSocketAdapter splitted into WebSocketAdapter and WebSocketListener.
New interface WebSocketAdapterFactory introduced. This should help to
make it simpler to use a different WebSocket implementation. Fixes #946. |
rbri |
 |
core-js: Named capture groups in RegularExpressions now supported. |
RhinoTeam |
 |
Deprecated method CssStyleSheet.validateSelectors(SelectorList, int, DomNode) removed. |
rbri |
 |
Deprecated method HtmlForm.getElements() removed. |
rbri |
 |
Deprecated method WebRequest.setRefererlHeader(URL) removed. |
rbri |
Release 4.10.0 – February 22, 2025
| Type |
Changes |
By |
 |
core-js: NativeGlobal now based on lambda functions. |
RhinoTeam |
 |
Avoid using XPath for implementing form submit on enter key pressed. |
rbri |
 |
Implement Document.getElementById() without using XPath. |
rbri |
 |
NPE in org.htmlunit.javascript.JavaScriptEngine.asJavaScriptException(). |
rbri |
 |
Upgrade commons-logging to 1.3.5. |
rbri |
 |
StyleElement implements no longer the Comparable interface. For our special needs we now using the
static method compareToByImportanceAndSpecificity(StyleElement, StyleElement). |
RhinoTeam |
 |
core-js: load more classes lazily. |
RhinoTeam |
 |
HtmlUrlInput value trimming fixed. |
rbri |
 |
Replace the deprecated WebElement.getAttribute(String) with getDomAttribute(String) and getDomProperty(String)
at many places in the test suite. |
rbri |
 |
Use StandardCharsets.UTF_8 instead of Charsets.UTF_8 for the sample code. |
rbri |
 |
HtmlTextArea - several fixes to throw the correct error. |
rbri |
 |
AudioContext/OfflineAudioContext - several fixes to throw the correct error. |
rbri |
 |
'Illegal constructor' is a type error. |
rbri |
 |
Firefox ESR accept header no longer contains 'image/avif,image/webp,image/png,image/svg+xml'. |
rbri |
 |
core-js: BigInt, Boolean and Number converted to use lambdas. |
RhinoTeam |
 |
core-js: Function hoisting inside blocks is now a core Rhino feature, our own hack is gone. |
RhinoTeam |
 |
core-js: Map and Set converted to use lambdas. |
RhinoTeam |
 |
core-js: lambda-based classes serializable are serializable. |
RhinoTeam |
 |
core-js: bunch of changes to make the SlotMap handling faster. |
RhinoTeam |
 |
CSSStyleSheet - several fixes to throw the correct error. |
rbri |
 |
XPath.evaluate() throws a TypeError. |
rbri |
 |
Document - several fixes to throw the correct error. |
rbri |
 |
XMLHttpRequest - several fixes to throw the correct error. |
rbri |
 |
Geolocation.ctor() throws a TypeError. |
rbri |
 |
TreeWalker.ctor() throws a TypeError. |
rbri |
 |
MutationObserver.observe() throws a TypeError. |
rbri |
 |
DOMParser.parseFromString() throws a TypeError. |
rbri |
 |
Window.postMessage() throws a SyntaxError. |
rbri |
 |
Window.atob()/btoa() throws an InvalidCharacterError. |
rbri |
 |
DomNode.appendChild() throws a HierarchyRequestError. |
rbri |
 |
AbstractRange.ctor() throws a TypeError. |
rbri |
 |
DOMTokenList - several fixes to throw the correct error. |
rbri |
 |
CSSGroupingRule - several fixes to throw the correct error. |
rbri |
 |
HTMLInputElement value/selectionStart/selectionEnd properties throws the correct error (InvalidStateError). |
rbri |
 |
SVGMatrix.rotateFromVector()/inverse() throws the correct error (InvalidAccessError/InvalidStateError). |
rbri |
 |
Crypto.getRandomValues() throws a QuotaExceededError. |
rbri |
 |
CanvasRenderingContext2D.measureText() throws a TypeError. |
rbri |
 |
HTMLTableElement/HTMLTableRowElement - several fixes to throw the correct error. |
rbri |
 |
Element.querySelectorAll()/querySelector() throws a SyntaxError. |
rbri |
 |
HTMLOptionsCollection.add() throws a NotFoundError. |
rbri |
 |
Accessing a HTMLDocument without a js peer throws a TypeError. |
rbri |
 |
Document.createElementNS() throws a TypeError. |
rbri |
 |
Document.createElementNS() throws a TypeError. |
rbri |
 |
Selection.getRangeAt() throws an IndexSizeError. |
rbri |
 |
Node.replaceChild()/removeChild()/insertBefore() several fixes to throw the correct error. |
rbri |
 |
HTMLDocument.appendChild() throws HierarchyRequestError. |
rbri |
 |
Document.createElement() throws InvalidCharacterError. |
rbri |
 |
ImageData.ctor() various fixes to throw the correct error in different situations. |
rbri |
 |
CharacterData.deleteData() throws an IndexSizeError. |
rbri |
 |
Document.querySelectorAll() throws a SyntaxError if the selector is invalid. |
rbri |
 |
Document.createEvent() creates the correct exception when the event type is not supported. |
rbri |
 |
DOMException name property was missing. |
rbri |
 |
Handling of the error code when construction DOMException is fixed. |
rbri |
 |
Document.evaluate() now throws a SyntaxError instead of an InternalError. |
rbri |
 |
Upgrade commons-codec to 1.18.0. |
rbri |
 |
WebClientOptions sslClientCertificateStore is transient. |
rbri |
Release 4.5.0 – October 20, 2024
| Type |
Changes |
By |
 |
INCOMPATIBLE CHANGE: Return type of AbstractCssStyleDeclaration.item(int) has changed from Object to String. |
rbri |
 |
INCOMPATIBLE CHANGE: Classes HtmlBlink, HtmlCommand, HtmlIsIndex, HtmlMenuItem, HtmlMultiColumn, and HtmlNextId removed. |
rbri |
 |
Next round to remove the 'keygen' tag support. |
rbri |
 |
Bunch of fixes for the various ruby supprt tags. |
rbri |
 |
Cleanup of the ElementFactory/DefaultElementFactory to simplify the code and improve the performance. |
rbri |
 |
Small performance and memory optimization for the creation of our DOM tree. |
rbri |
 |
AbstractDomNodeList access might throw a NPE due to a race condition in the DomHtmlAttributeChangeListenerImpl
clearing of cachedElements processing. Fixes #882. |
rbri |
 |
Special handling of the bgsound tag in FF removed. BGSound is now handled as unknown tag in all browsers.
Looks like this was a leftover from the IE days. |
rbri |
 |
Function initHashChangeEvent() is no longer available in FF_ESR. |
rbri |
 |
Location.query property always returns an empty string if the location has the about protocol and
the browser is FF/FF_ESR. |
rbri |
 |
Property window.clientInformation is settable in FF too. |
rbri |
 |
The WebSocket ctor in FF_ESR now accepts also undefined/null. |
rbri |
 |
FF_ESR right clicking for the context menu triggers a mouse event with a detail of 1 instead of 2. |
rbri |
 |
HtmlDetailElement 'name' property added for FF. |
rbri |
 |
JS class DomRequest removed (was only used by FF_ESR). |
rbri |
 |
PointerEvent properties altitudeAngle and azimuthAngle supported in FF. |
rbri |
 |
Javascript return type of some methods changed from Object to String. |
rbri |
 |
Javascript Cssstyledeclaration#item() now returns a String. |
rbri |
 |
core-js: code cleanup; remove the unused javascript/optimizer package. |
RhinoTeam |
 |
core-js: bunch of code optimizations. |
RhinoTeam |
 |
core-js: remove '__exception__' property from global context. |
RhinoTeam |
 |
core-js: improve ScriptRuntime.toPrimitive() and use it at many places. |
RhinoTeam |
 |
core-js: optimize initializion of error objects. |
RhinoTeam |
 |
core-js: Support the standard "toStringTag" symbol when converting objects to strings. |
RhinoTeam |
 |
core-js: optional chaining operator '?.' support added. |
RhinoTeam |
 |
core-js: Some byte code generation fixes for Android. |
RhinoTeam |
 |
core-js: Symbol.prototype.description support added. |
RhinoTeam |
 |
core-js: some minor fixes for the Reflect/Proxy support. |
rbri |
 |
New (transient) configuration option SSLContext added. |
rbri |
 |
Class org.htmlunit.javascript.preprocessor.HtmxOneNineTenScriptPreProcessor removed.
This class is no longer required because default parameter support was added to core-js. |
rbri |
 |
core-js: Support for default parameters added. |
RhinoTeam |
 |
core-js: String.isWellFormed() and String.toWellFormed() added. |
RhinoTeam |
 |
core-js: Support surrogate chars in JSON.stringify(). |
RhinoTeam |
 |
Upgrade Apache commons-io to 2.17.0. |
rbri |
 |
core-js: Support for Promise.any added. |
RhinoTeam |
 |
core-js: Support for nullish coalescing operator '??' added. |
RhinoTeam |
 |
core-js: Support for logical assigment operators '||=' and '&&=' added. |
RhinoTeam |
 |
core-js: Stacktrace line number fixed. |
RhinoTeam |
 |
websocket-client: jetty updated to 9.4.56.v20240826. |
rbri |
 |
Upgrade Apache commons-lang3 to 3.17.0. |
rbri |
 |
core-js: Map groupBy added. |
RhinoTeam |
 |
TextDecoder.decode() decodes now only the TypedArray view's range. |
Lai Quang Duong |
 |
CaretPosition is now available in all supported browsers. |
rbri |
 |
core-js: 'cause' property added to NativeError and some toString() improvements. |
RhinoTeam |
 |
core-js: New methods toReversed, toSorted, toSpliced, and with added to Array and TypedArray. |
RhinoTeam |
 |
core-js: Make sure to use only the RegExpProxy interface instead of some hardcoded instanceof
call. This opens the door to integrate a much more standard complient regexp suppor. |
rbri |
 |
core-js: When doing math, try to do integer arithmetic when the arguments passed
are Integer objects, rather than always falling back to floating-point math.
This speeds up some benchmarks that rely heavily on integer arithmetic. |
RhinoTeam |
 |
Upgrade commons-logging to 1.3.4 |
rbri |
 |
Click action now uses the PointerEvent instead of the MouseEvent in Firefox. |
rbri |
 |
TextEvent is available Firefox also. |
rbri |
 |
core-js: Ensure that generator functions always pass parameters properly. |
RhinoTeam |
 |
Some missing index verification added in FileList. |
rbri |
 |
Initial incomplete implementation of file handling for DataTransfer. |
rbri |
 |
Complete implementation of DataTransferItem, and DataTransferItemList. |
rbri |
 |
Package org.htmlunit.javascript.host.draganddrop added. DataTransfer, DataTransferItem,
and DataTransferItemList moved into this package. |
rbri |
 |
FileList is now iterable. |
rbri |
 |
core-js: Obsolete classes ObjToIntMap and UintMap removed; depending on context, classes replaced
with either HashMap or sometimes HashSet. |
RhinoTeam |
 |
core-js: Support for Array/TypedArray findLast() and findLastIndex() added. |
RhinoTeam |
 |
Fix FileReader handling of in memory File's. |
rbri |
 |
Fix FormData.append()/set() handling of in memory File's. |
rbri |
 |
Fix FormData.append()/set() handling of Blob's. |
rbri |
 |
MutationObserver now fires also when attributes added/removed. |
rbri |
 |
core-js: Obsolete class ObjArray removed; depending on context, class replaced
with either ArrayList or ArrayDeque. |
RhinoTeam |
 |
core-js: Symbol.unscopables for arrays implemented. |
RhinoTeam |
 |
DOMTokenList toggle() method got some fixes. |
rbri |
 |
DOMTokenList value property added. |
rbri |
 |
DOMTokenList simplify impl and fix removal of duplicate entries. |
rbri |
 |
DOMTokenList is now iterable, keys(), entries(), and replace() method implemented. |
rbri |
 |
Implementation of DOMTokenList.forEach() added. Fixes #848. |
Markus Winter |
 |
Deprecated method CssStyleSheet.parseMedia(CSSErrorHandler, String) removed.
Deprecated method CSSStyleSheet.validateSelectors(SelectorList, int, DomNode) removed.
Deprecated method HtmlFileInput.setValueAttribute(String) removed.
Deprecated ctor HtmlUnitUsernamePasswordCredentials.HtmlUnitUsernamePasswordCredentials(String, String) removed. |
rbri |
 |
Deprecated methods compile(HtmlPage, String, String, int), execute(HtmlPage, SCRIPT), and
execute(HtmlPage, String, String, int) removed from AbstractJavaScriptEngine. |
rbri |
 |
Deprecated methods setSSLClientCertificate(URL, String, String), and
setSSLClientCertificate(InputStream, String, String) removed from WebClientOptions. |
rbri |
 |
Deprecated methods addCredentials(String, String), .addCredentials(String, String, String, int, String),
addNTLMCredentials(String, String, String, int, String, String), and
addSocksCredentials(String, String, String, int) removed from DefaultCredentialsProvider. |
rbri |
 |
Method CSSStyleSheet.validateSelectors(SelectorList, int, DomNode) is deprecated; please use method
CSSStyleSheet.validateSelectors(SelectorList, DomNode) instead. |
rbri |
 |
core-js: Error with yield in ComputedPropertyName fixed. |
RhinoTeam |
 |
core-js: Support ctor for regex that takes an existing regex and a different set of flags. |
RhinoTeam |
 |
FF implements a special handling for the return value of the compareFn function
used to custom sort arrays. If the result is a boolean the value false will not
be converted to 0 - it will be converted to -1. Fixes #844. |
rbri |
 |
Upgrade Apache commons-lang3 to 3.16.0. |
rbri |
 |
One no loger required thread local variable removed. |
rbri |
 |
Method WebRequest.setRefererlHeader(URL) is deprecated; please use Method WebRequest.setRefererHeader(URL) instead. |
rbri |
 |
core-js: exception when calling apply with emptyArgs. |
rbri |
 |
Window.performance is setable. |
rbri |
 |
AbortController and AbortSignal stubs implemented. |
rbri |
 |
Worker ctor no longer failes when called with undefined as options. |
rbri |
 |
HTMLFormControlsCollection is now iterable. |
rbri |
 |
RadioNodeList is now iterable. |
rbri |
 |
HTMLFormControlsCollection namedItem() implemented. |
Lai Quang Duong |
 |
RadioNodeList getter and setter for value attribute implemented. |
Lai Quang Duong |
 |
WebRequest.getParameters() updated again to be more compatible with Spring. Fixes #851. |
rbri |
 |
WebRequest.getParameters() updated to deliver the same results as the servlet API
will report if this request reaches a servlet. This implies several changes: For url-encoded and
plain text encoded post requests, the query parameters are part of the result.
For multipart requests only the query parameters forming the result. Please check also the
javadoc of the method for more details. Fixes #836. |
rbri |
 |
WorkerNavigator and WorkerLocation implemented. Fixes #816. |
rbri |
 |
WebWorker context setup fixed, all API's now available. Fixes #816. |
rbri |
Release 4.4.0 – July 28, 2024
| Type |
Changes |
By |
 |
core-js: Various missing methods in TypedArray added. |
RhinoTeam |
 |
XMLHttprequest 'responseXML' and 'response' (responseType document) results are identical. |
rbri |
 |
XMLHttprequest 'responseXML' bom headers are overruling the content encoding. |
rbri |
 |
XMLHttprequest 'responseXML' reads the plain response without converting to a string internally. |
rbri |
 |
XMLHttprequest 'responseXML' some fixes for handling of empty content. |
rbri |
 |
XMLHttprequest 'responseXML' - if the responseType is set to 'document' and the request
was made asynchronously then support 'text/html' content type. |
rbri |
 |
XMLHttprequest 'response'' property now handles the XMLDocument generation the same way
as the property 'responseXML'. |
rbri |
 |
The response encoding determination for XMLHttprequest fixed. If the content type header does not contain
a content type (but a charset) then the charset info is ignored. |
rbri |
 |
DomNode.compareDocumentPosition now returns correct results if both nodes do not share the
same root (eg. different document fragments). |
rbri |
 |
Small sample for changing the browsers user agent addet to the docs. |
rbri |
 |
Upgrade Apache commons-lang3 to 3.15.0. |
rbri |
 |
core-js: Array.prototype.sort is now stable. |
RhinoTeam |
 |
core-js: Function.prototype.toString/toSource now uses the source. This superceeds a fix
we made in version 3.0.0. |
RhinoTeam |
 |
Logging of a notifications about calling js functionality while the WebClient and the JS Engine
are already going down is removed. Fixes #818. |
rbri |
 |
core-js: Improved position reporting in case of syntax errors. |
RhinoTeam |
 |
core-js: Improved support for continuations. |
RhinoTeam |
 |
core-js: Computed properties support added. |
RhinoTeam |
 |
Upgrade commons-codec to 1.17.1. |
rbri |
 |
Fix wrong impl of polyfill cache. Thanks to xuxiaocheng0201. |
rbri |
 |
When an element is clicked, the postponed actions are executed too early - only
the processing of the downloaded pages may take place at this time. |
rbri |
 |
A FormData object constructed from a form only enumerates not disabled elements
by taking care of elements inside disabled fieldsets. |
rbri |
 |
DisabledElement.isDisabled() now checks also for the parent elements.
This fixes problems with elements inside a disabled fieldset. |
rbri |
 |
Function Element.getHTML() added for FF. |
rbri |
 |
Changed accept header for images and documents to be in sync with FF 128. |
rbri |
 |
DedicatedWorkerGlobalScope 'name' property added. Fixes #787. |
rbri |
 |
DedicatedWorkerGlobalScope 'constructor' property was missing. |
rbri |
 |
Option 'fileProtocolForXMLHttpRequestsAllowed' to allow XMLHttpRequest for local files
from the same directory and subdirectories. Fixes #808. |
rbri |
 |
FieldSets and Outputs are also accessible by there old names. |
rbri |
 |
Upgrade commons-logging to 1.3.3 |
rbri |
 |
websocket-client: jetty updated to 9.4.55.v20240627. |
rbri |
 |
Method HtmlForm.getElements() is now deprecated; please use HtmlForm.getElements(Predicate<HtmlElement>)
or HtmlForm.getFromElements() instead. Please read the jdoc of the new methods, they return
slightly different results. |
rbri |
 |
FieldSets are part of the Form.elements collection. |
rbri |
 |
Inputs of type image are not part of the Form.elements collection. |
rbri |
 |
Window length/self/parent/frames are defined as [Replaceable]. HtmlUnit now mimics the browsers regarding this. Fixes #787. |
rbri |
 |
ComputedCSSStyleDeclaration.display takes care of the hidden attribute. |
rbri |
 |
Move the 'cookie' property from HTMLDocument to Document. Fixes #805. |
rbri |
Release 4.0.0 – April 01, 2024
| Type |
Changes |
By |
 |
IE is no longer supported. This implies the largest change of the code base during the last > 10 years.
More than 200 flags removed from the code and about 6.000 test case expectations adjusted.
And also many IE specifc classes are gone. |
rbri |
 |
The removal of the IE support also implies that the ActiveX support is also gone. |
rbri |
 |
Applets are no longer supported. This implies the AppletConfirmHandler and the applet related configuration
settings are also removed. |
rbri |
 |
New subproject htmlunit-websocket-client. For the start this is a shaded version of the latest
Jetty 9 websocket-client. |
rbri |
 |
Chrome/Edge 123. |
rbri |
 |
Firefox 124. |
rbri |
 |
Upgrade Apache commons-io to 2.16.0. |
rbri |
 |
Refactor pac file support and add missing convert_addr() function support. |
rbri |
 |
The EncodingSniffer now uses the StandardEncodingTranslator from neko. |
rbri |
 |
neko: Introduce property http://cyberneko.org/html/properties/encoding-translator to set the translator from
parsers. |
rbri |
 |
neko: Introduce EncodingTranslator interface and switch the default encoding translator to the StandardEncodingTranslator. |
rbri |
 |
Upgrade commons-logging to 1.3.1 |
rbri |
 |
Fix <iframe> so that the parent charset is used when no charset could otherwise be found. |
Lai Quang Duong |
 |
The number of prescan bytes of an HTML document is changed from 4096 to 1024 bytes to be in line with specs. |
Lai Quang Duong |
 |
CSS @charset definition support added. |
Lai Quang Duong |
 |
Treat 'x-user-defined'' in meta tag as windows-1252. |
Lai Quang Duong |
 |
Fix the priority of BOM by moving it to the highest priority charset to be in line with html/xml/js/css etc. specifications. |
Lai Quang Duong |
 |
Huge refactoring of the encoding handling. some methods of the EncodingSniffer are now deprecates; please have a look at the
javadoc for hints about possible replacements. |
Lai Quang Duong |
 |
Fix for a ClassCastException in HtmlUnitNekoDOMBuilder (oss-fuzz). |
rbri |
 |
Execution of script tags included in template tags parsed from js is different in chrome. |
rbri |
 |
Template.content always returns the same object. |
rbri |
 |
Ensure that reading more characters at the end of the buffer is not stopped due to the buffer appearing
being at the end with reading, rather we read till we get a -1.
Streams can deliver less than requested size and hence the buffer looks like it it almost finished, but it is technically not. Fixes #714. |
René Schwietzke |
 |
neko: XMLDocumentSource chaining is back. |
rbri |
 |
neko: new feature http://cyberneko.org/html/features/scanner/plain-attr-values added. |
rbri |
 |
neko: HTMLWriterFilter methods getPrintWriter(), hasSeenRootElement(), getElementDepth(),
and getNormalize() added. |
rbri |
 |
core-js: fix return value when assigning to Symbol.__proto__. |
Lai Quang Duong |
 |
core-js: [Symbol.species] support added to typed arrays |
rbri |
 |
Update EncodingSniffer.ENCODING_FROM_LABEL with the latest at https://encoding.spec.whatwg.org/#names-and-labels |
Lai Quang Duong |
 |
Fix the encoding detection for xslt transformations. |
rbri |
 |
Image.onload() must be processed as postponed action. |
Lai Quang Duong |
 |
core-js: [Symbol.species] for Promise fixed'. |
RhinoTeam |
 |
core-js: [Symbol.species] support improved. |
RhinoTeam |
 |
Stubs for element.scroll()/scrollBy()/scrollTo() added. Fixes #742. |
rbri |
 |
Invalid numbers are processed correct now when using the rowSpan/colSpan properties. |
Lai Quang Duong |
 |
Whitespace gets removed from rowspan/colspan attributes when using rowSpan/colSpan properties. |
Lai Quang Duong |
 |
Restore the ability to specify null as password value (regression in 3.4.0). |
Lai Quang Duong |
 |
neko: infinity loop problem fixed while processing <plaintext> using document.write(). Fixes https://github.com/HtmlUnit/htmlunit-neko/pull/92. |
Lai Quang Duong |
 |
Form elements available also when the form is detached from DOM (regression in 3.6.0). Fixes #740. |
rbri |
 |
Geoloction implementation changed, the location is now part of the WebClientOptions, means you can set the
location to an arbitrary position. |
rbri |
 |
Upgrade Apache log4j-api to 2.23.0. |
rbri |
 |
Fix a NPE when closing a top level window after the js engine was already stopped. Fixes #730. |
rbri |
 |
neko: Html elements inside and svg titles element do not close this title element. |
rbri |
 |
neko: Parsing of self closing title tags inside a svg tag fixed. |
rbri |
 |
websocket-client: jetty updated to 9.4.54.v20240208. |
rbri |
 |
Spotbugs annotations removed - there was no real benefit from having them in the code. |
rbri |
Release 3.11.0 – February 10, 2024
| Type |
Changes |
By |
 |
Fix NPE when defining a javascript constructor alias for a non existing constructor. |
rbri |
 |
Method org.htmlunit.javascript.host.css.CSSStyleSheet.validateSelectors(SelectorList, int, DomNode) does not
forward the SelectorList to the implementation (regression from version 3.7.0). |
rbri |
 |
Upgrade commons-codec to 1.16.1. |
rbri |
 |
OrderedFastHashMap is now serializable. |
René Schwietzke |
 |
neko: FastHashMap is now serializable. |
René Schwietzke |
 |
neko: Fix the parsing of special tags (eg. title) - they consume all content until the matching
end tag is reached. |
rbri |
 |
neko: Optimize the attribute handling a bit for faster processing. |
rbri |
 |
neko: Deprecated feature "http://cyberneko.org/html/features/document-fragment" removed.
Please use "http://cyberneko.org/html/features/balance-tags/document-fragment" instead. |
rbri |
 |
Avoid a NPE if an XmlHttpRequest response arrives while the client already shouts down. |
rbri |
 |
Firefox 122: The MouseEvent provided to the oncontextmenu handler has an detail of 1. |
rbri |
 |
Firefox 122: HtmlButton no longer ignores disabled state set at the beginning of the action. |
rbri |
 |
Firefox 122: anchor pathname property adjusted. |
rbri |
 |
Firefox 122: 'offsetPosition'/'offset-position' and 'textWrap'/'text-wrap' are supported. |
rbri |
 |
Firefox 122: 'offset' default value is 'normal'. |
rbri |
 |
neko: fix a regression in neko 3.11.0 regarding the handling of self closing unknown tags. Thanks to Ronny Shapiro. |
rbri |
 |
Fix potential NPE in HtmlPage.getElementById(String), HtmlPage.getElementsById(String),
HtmlPage.getElementByName(String), HtmlPage.getElementsByName(String), and HtmlPage.getElementsByIdAndOrName(String). |
Ronny Shapiro |
 |
Chrome/Edge 121: The properties 'width' and 'offsetWith' returning correct results for the 'rt' tag. |
rbri |
 |
Chrome/Edge 121: Default display style for the 'rt' tag is 'ruby-text'. |
rbri |
 |
Chrome/Edge 121: Default display style for the 'ruby' tag is 'ruby'. |
rbri |
 |
Edge 121: html/image accept-header mentions 'image/avif'. |
rbri |
 |
Chrome/Edge 121: SpeechSynthesis/SpeechSynthesisVoice are available as globals. |
rbri |
 |
Chrome/Edge 121: CSSMediaRule.insertRule() the second argument 'position' is optional. |
rbri |
 |
Chrome/Edge 121: scrollbarColor/ scrollbarWidth style property added. |
rbri |
 |
Bunch of dom performance updates. |
René Schwietzke |
 |
Changing the input type when Javascript engine is disabled should not throw. |
Ronny Shapiro |
 |
core-js: Correct implementation of Math.atanh. |
RhinoTeam |
 |
core-js: BigIntLiteral.toSource includes suffix. |
RhinoTeam |
 |
core-js: Limit the length of the string to be used for source code indentation to avoid
protect memory from overflow. |
rbri |
 |
core-js: When an Array object's prototype is changed, disable the "dense only" optimization
to ensure that prototype properties are considered by standard operations. |
RhinoTeam |
 |
"
Detection and reporting of obsolete mime types for javascript files has changed to be in
sync with the spec and the current practice.
"text/javascript" is the correct; "application/javascript" is reported as obsolete. Fixes #710. |
rbri |
 |
neko: AbstractDOMParser fix an old bug in the (optimized) handling of text nodes
during dom construction - in some cases parts of the text got lost. |
rbri |
 |
neko: HTMLScanner make sure endDocument() is called even if the <plaintext> node
is at the end of the document - otherwise the endElement calls for the parents are missing. |
rbri |
 |
neko: DOMMessageFormatter possible NPE fixed. |
rbri |
 |
neko: more performance updates. |
René Schwietzke |
 |
neko: tag name scanner updated to match the real browsers. |
rbri |
 |
HtmxOneNineTenScriptPreprozessor renamed to HtmxOneNineTenScriptPreProcessor. |
rbri |
Release 3.10.0 – January 14, 2024
| Type |
Changes |
By |
 |
Htmx 1.9.10 support when using the org.htmlunit.javascript.preprocessor.HtmxOneNineTenScriptPreprozessor. |
rbri |
 |
core-js: arguments[Symbol.iterator] points to Array Array.prototype[Symbol.iterator]. |
Lai Quang Duong |
 |
core-js: Array.prototype[Symbol.iterator] points to the 'values' functions. |
rbri |
 |
neko: many test cases added to the parser. |
rbri |
 |
neko: rewritten script tag content parsing to be in sync with the spec. |
Lai Quang Duong |
 |
Make the output file handling of XmlSerializer.save(SgmlPage, File) more robust. |
rbri |
 |
Suspicious code in WebResponseDate fixed. |
rbri |
 |
BrowserVersionFeatures JS_OBJECT_ASSIGN and JS_WEAK_SET added. |
rbri |
 |
Some BrowserVersionFeatures renamed:
STRING_INCLUDES -> JS_STRING_INCLUDES, STRING_REPEAT -> JS_STRING_REPEAT,
STRING_STARTS_ENDS_WITH -> JS_STRING_STARTS_ENDS_WITH, and STRING_TRIM_LEFT_RIGHT -> JS_STRING_TRIM_LEFT_RIGHT. |
rbri |
 |
String.includes/startsWith/endsWith no longer throws a TypeError when the first argument is a regex
and Symbol.match of that regex has been set to false. |
Lai Quang Duong |
 |
String.prototype.replaceAll implemented. |
Lai Quang Duong |
 |
RegExp.dotAll flag implemented. |
Lai Quang Duong |
 |
No longer throw an TypeError when RegExp.prototype.toString is called on a NativeObject. |
Lai Quang Duong |
 |
Symbol.iterator property is now available on CSSStyleDeclaration/ComputedCSSStyleDeclaration. |
rbri |
 |
SymbolConstants are readonly. |
rbri |
 |
neko: frameset tags ignored in some more cases, handling of text before the frameset also fixed. |
rbri |
 |
neko: frameset tags closing the head. |
rbri |
 |
WebClientOptions.setMaxInMemory(int) should not create temp files if the limit is set to something <= 0. |
rbri |
 |
core-js: Fix Math.clz23() rounding errors. |
Lai Quang Duong |
 |
core-js: Reflect.construct() uses the wrong set of arguments if newTarget is set. |
Lai Quang Duong |
 |
core-js: Receiver argument support added for Reflect.set(). |
Lai Quang Duong |
 |
core-js: Reflect.construct() uses the wrong set of arguments if newTarget is set. |
Lai Quang Duong |
 |
Improve content type detection for '.php' content. |
rbri |
 |
neko: frames tags without a frameset parent are ignored. |
rbri |
 |
neko: hr tag is allowed inside select's. |
rbri |
 |
neko: unknown elements are always moved to the body. |
rbri |
 |
Upgrade Apache log4j-api to 2.22.1. |
rbri |
 |
Node.isEqualNode() implemented. |
Lai Quang Duong |
 |
WebKitCSSMatrix aliases to DOMMatrix. |
rbri |
 |
neko: RTC is an inline element. |
rbri |
 |
neko: support early closing of cdata sections by >. |
rbri |
 |
neko: support bang comments (--!> as closing sequence). |
rbri |
![]() |
csp: Address deprecation of 'referrer'. |
kingthorin |
![]() |
csp: Address deprecation of 'plugin-types' and 'prefetch-src'. |
kingthorin |
 |
ScriptPreProcessor documentation added to the FAQ. |
rbri |
 |
Bunch of refactorings to reduce the overall source code dependencies from core-js. |
rbri |
 |
Make closing of windows more robust by making sure the deregistration is done also in case of errors.
This should fix some more memory leaks. |
rbri |
 |
The return value of the (internal) method DomNode.getScriptableObject() was changed from
<T> to <T extends HtmlUnitScriptable>. This should remove some casts and
makes the code a bit more clean. |
rbri |
 |
URL and anchor tag 'protocol' setter accepts also complete urls as parameter. |
rbri |
 |
URL 'protocol' setter validates (FF, Chrome, Edge). |
rbri |
 |
Details 'name' property support added (Chrome/Edge). |
rbri |
 |
Because the naming of the method and parametes is misleading, the method
WebClientOptions.setSSLClientCertificate(InputStream, String, String) is deprecated. Please use
WebClientOptions.setSSLClientCertificateKeyStore(InputStream, String, String) instead. |
rbri |
 |
Because the naming of the method and parametes is misleading, the method
WebClientOptions.setSSLClientCertificate(URL, String, String) is deprecated. Please use
WebClientOptions.setSSLClientCertificateKeyStore(URL, String, String) instead. |
rbri |
Release 3.0.0 – March 19, 2023
| Type |
Changes |
By |
 |
INCOMPATIBLE CHANGE: Value processing for input controls changed; typing now ONLY changes the value
but not the value attribute. As consequence all calls to setValueAttribute(..) have to be replaced by setValue() or type(). |
rbri |
 |
INCOMPATIBLE CHANGE: HtmlButton.getAttribute() now returns the plain attribute value also for 'type' attribute
instead of returning 'submit' in case the attribute is not set. |
rbri |
 |
INCOMPATIBLE CHANGE: xpath: All packages renamed from net.sourceforge.htmlunit.xpath to org.htmlunit.xpath. |
rbri |
 |
INCOMPATIBLE CHANGE: neko: All packages renamed from net.sourceforge.htmlunit.cyberneko to org.htmlunit.cyberneko
and net.sourceforge.htmlunit.xerces to org.htmlunit.xerces. |
rbri |
 |
INCOMPATIBLE CHANGE: cssparser: All packages renamed from net.sourceforge.htmlunit.cssparser to org.htmlunit.cssparser. |
rbri |
 |
INCOMPATIBLE CHANGE: core-js: All packages renamed from net.sourceforge.htmlunit.corejs to org.htmlunit.corejs. |
rbri |
 |
INTERNET_EXPLORER is deprecated. |
rbri |
 |
core-js: Function.toString() now returns the source of the function without any reformating. Fixes 552. |
rbri |
 |
DocumentFragment methods childElementCount(), firstElementChild(), and lastElementChild()
are ignoring non element nodes. |
rbri |
 |
Document readystatechange event was not triggered on page loading. Fixes 561. |
rbri |
 |
Style.item() function fixed. |
rbri |
 |
Prevent sending cookies with preflight and cross-origin requests. |
Lai Quang Duong |
 |
Remove well known ports from the WebRequest url. |
Lai Quang Duong |
 |
Fix incorrect splitting of URLSeachParams when parameters contain url-encoded required characters like "&". |
Lai Quang Duong |
 |
Implementation of URLSeachParams.forEach() added. |
Lai Quang Duong |
 |
Implementation of Blob.stream() stub added; just throws UnsupportedOperationException. |
Lai Quang Duong |
 |
Implementation of Blob.arrayBuffer() added. |
Lai Quang Duong |
 |
xpath: again some unused code removed. |
rbri |
 |
Always throw an UnsupportedEncodingException from all DataUrlDecoder methods to not bypass the general exeption handling. |
rbri |
 |
StringIndexOutOfBoundsException when parsing invalid data url's (oss-fuzz). |
rbri |
 |
Style and template tags are valid table childs. |
rbri |
 |
Implement handling of the Cache-Control: no-cache directive. |
Lai Quang Duong |
 |
Upgrade Jetty to 9.4.51.v20230217. |
rbri |
 |
CSS selectors filtering the type attribute like button[type='submit'] fixed. Fixes 555. |
rbri |
 |
Fix NullPointerException when parsing using html with ignored head tags (oss-fuzz). |
rbri |
 |
core-js: Setter function from property descriptor has to convert the args. Fixes 550. |
rbri |
 |
core-js: Preserving cause, when a JavaException is rethrown in JavaScript. |
RhinoTeam |
 |
core-js: Fix name property for bound functions. |
rbri |
 |
Document.evaluate() and XPathEvaluator.evaluate() now failing with a js exception
if something is wrong with the xpath. |
rbri |
 |
Remove support for xpath function lower-case as this is not available in real browsers. |
rbri |
 |
Take all Access-Control-Allow-Headers into account during XMLHttpRequest preflight auth. Fixes 549. |
rbri |
 |
neko: source/param/track are body tags. |
rbri |
 |
neko: noscript can be part of the header also. |
rbri |
 |
neko: Add audio/bdi/canvas/data/datalist/dialog/mark/meter/picture/progress/slot/time/output/video tag support. |
rbri |
 |
neko: Select tags can only contain option/optgroup/template tags and text. |
rbri |
 |
neko: Content inside the noembed tag is handled as text. |
rbri |
 |
Fix ClassCastExceptions while parsing wrong html tags inside svg elements (e.g. <form>) (oss-fuzz). |
rbri |
 |
Class com.gargoylesoftware.htmlunit.html.XmlSerializer is now public. |
rbri |
 |
Bunch of fixes to attach input controls to the correct form during dom creation. |
Atsushi Nakagawa |
 |
Many corrections for the dom generation for misplaced form or form controls inside tables. |
rbri |
 |
neko: Close forms directly if they are at the wrong place inside a table. |
rbri |
 |
neko: Augmentations converted into a tagging interface. |
rbri |
 |
neko: code cleanup and unused features removed. |
rbri |
 |
Enable FEATURE_SECURE_PROCESSING for the XSLT processor. |
rbri |
 |
Document disabling of website certificate check in the FAQ. |
rbri |
Release 2.51.0 – July 04, 2021
| Type |
Changes |
By |
 |
XMLHttpRequest-abort() sets the state back to 0 and the webResponse to a network error. Fixes 365. |
rbri |
 |
core-js: Various fixes for undefined. |
RhinoTeam |
 |
core-js: Support ES2019 JSON superset. |
RhinoTeam |
 |
core-js: globalThis implemented. |
RhinoTeam |
 |
core-js: Fix bug when calling function on custom global object. |
RhinoTeam |
 |
CSSConditionRule.conditionText added (for CSSMediaRule). Fixes 360. Thanks to Frank Danek. |
rbri |
 |
CSSGroupingRule.cssRules, .insertRule() and .deleteRule() added (for CSSMediaRule). Fixes 360. Thanks to Frank Danek. |
rbri |
 |
CssParser: bring formatting closer to the browser. |
rbri |
 |
MediaList default toString() now prints the media text. Fixes 360. Thanks to Frank Danek. |
rbri |
 |
Assigning a value to CSSRule.cssText is a no op. Fixes 360. Thanks to Frank Danek. |
rbri |
 |
HtmlImage.getSrc() added. Thanks to Frank Danek. |
rbri |
 |
HtmlInput.getSrc() and HtmlImageInput.getSrc() added. Thanks to Frank Danek. |
rbri |
 |
INCOMPATIBLE CHANGE: HtmlImageInput.getSrcAttribute() returns the plain value of the source attribute.
Use HtmlImageInput.getSrc() if you need the full qualified url.
If your code uses HtmlImageInput.getSrcAttribute() you have to
replace this with HtmlImageInput.getSrc(). Thanks to Frank Danek. |
rbri |
 |
XMLHttpRequest preserves the content type header if sending a file an the header was set from the javascript. Fixes 359. |
rbri |
 |
Improved ComputedCSSStyleDeclaration regarding height and width for empty span's. Thanks to Alex Gorbatovsky. |
rbri |
 |
Improved ComputedCSSStyleDeclaration regarding image height and width. Thanks to Alex Gorbatovsky. |
rbri |
 |
Improved ComputedCSSStyleDeclaration regarding image height and width. Thanks to Alex Gorbatovsky. |
rbri |
 |
HtmlImage.getWidthOrDefault() and HtmlImage.getHeightOrDefault() added. |
rbri |
 |
Frameset/HTMLTableSectionElement/HTMLTableCaptionElement outerHTML property is setable. |
rbri |
 |
Translate response charset GB2312 to GBK like browsers do. Fixes 358. Thanks to tyuxue. |
rbri |
 |
Setting window.clientInformation now works correct for Chrome/Edge and IE. |
rbri |
 |
Setting window.innerHeight was broken because of an typo for a long time. |
rbri |
 |
Properties without a setter defined are no longer setable - this was a hack introduced for IE6
and is no longer valid. |
rbri |
 |
Document.body is setable. |
rbri |
 |
AudioParam value property is writable. |
rbri |
 |
core-js: All "new Error" instances have a "stack" even if they are not thrown. |
RhinoTeam |
 |
core-js: A number of small spec compliance issues with all the Error classes are fixed. |
RhinoTeam |
 |
core-js: Make sure that the "name" and "length" properties of BaseFunction can have
their attributes be modified and be deleted if so configured. |
RhinoTeam |
 |
core-js: Template support added. Fixes 296. |
RhinoTeam |
 |
core-js: Object.seal/freeze/isSealed/isFrozen logic got a few fixes. |
RhinoTeam |
 |
core-js: Support indexed accessor properties. |
RhinoTeam |
 |
core-js: Object.values / Object.entries / Object.fromEntries added. |
RhinoTeam |
 |
core-js: Refactoring of the slot implementation. |
RhinoTeam |
 |
Upgrade Apache commons-io to 2.10.0. |
rbri |
 |
Page type detection was wrong if no content type header was set and some unicode
chars are present in the first bytes of an document. Fixes 357. Thanks to Antoni Reus. |
rbri |
 |
ComputedCSSStyleDeclaration height property now returns "auto" for
invisible elements. |
rbri |
 |
A simple version of getInnerHTML added for Chrome/Edge. |
rbri |
 |
Console.trace() now prints the call stack. Fixes 179. |
rbri |
 |
Upgrade Jetty to 9.4.41.v20210516. |
rbri |
 |
Fix a possible resource leak if ThreadDeath is thrown when closing the script executor. Thanks to Sergio Moreno. |
rbri |
Release 2.45.0 – November 12, 2020
| Type |
Changes |
By |
 |
INCOMPATIBLE CHANGE: Method signature for AbstractJavaScriptEngine.initialize(WebWindow, Page) changed,
the method requires now the page as second parameter. |
rbri |
 |
Property composed added to Event. |
rbri |
 |
Properties linkColor, aLinkColor, vLinkColor, bgColor, and fgColor moved from HtmlDocument to Document. |
rbri |
 |
CssParser: Generate correct type for rem dimensions. |
rbri |
 |
CssParser: Support for the dimensions 'ch', 'vw', 'vh', 'vmin' and 'vmax' added. |
rbri |
 |
CssParser: Back to JavaCC 7.0.4. |
rbri |
 |
DeviceMotionEvent is available in IE also. |
rbri |
 |
Upgrade Jetty to 9.4.34.v20201102. |
rbri |
 |
Thenable prototypes support added. Thanks to Rural Hunter. |
rbri |
 |
MouseEvent.buttons property added. |
rbri |
 |
UIEvent handling of view property improved. |
rbri |
 |
Event, UIEvent and MouseEvent construction via new now handles the details dictionary more correct. |
rbri |
 |
MouseEvent properties clientX. clientY and button are readonly. |
rbri |
 |
AudioBufferSourceNode.start(), AudioNode.connect(). |
rbri |
 |
AudioContext.createBufferSource() moved up to BaseAudioContext. |
rbri |
 |
BaseAudioContext.createBuffer() added. |
rbri |
 |
GainNode gain property added. |
rbri |
 |
AudioParam value, defaultValue, maxValue and minValued added. |
rbri |
 |
Promise.then() now supports also Thenables. Fixes 260. |
rbri |
 |
Validation pattern has to be ignored for empty values. Fixes 261. |
rbri |
 |
New configuration option AcceptLanguageHeader for the BrowserVersion. |
rbri |
 |
Document.open() does not change the location of about:blank pages in FF. |
rbri |
 |
Function clear() moved from HtmlDocument to Document. |
rbri |
 |
Property all moved from HtmlDocument to Document. |
rbri |
 |
Functions captureEvents() and releaseEvents() moved from HtmlDocument to Document for Chrome/Edge/FF/FF78. |
rbri |
 |
Properties body, designMode, domain, forms, embeds, links, images, plugins, scripts, anchors and applets moved
from HtmlDocument to Document for FF/FF78. |
rbri |
 |
Functions execCommand(), queryCommandEnabled() and queryCommandSupported() moved
from HtmlDocument to Document for FF/FF78. |
rbri |
 |
Property parentWindow moved from HtmlDocument to Document for IE. |
rbri |
 |
Property onreadystatechange and readyState removed from HtmlScript for IE. |
rbri |
 |
Upgrade Apache commons-net to 3.7.2. |
rbri |
 |
Property onshow is not available in Chrome/Edge. |
rbri |
 |
Make sure the js initialization of the new page is finished before the page is
visible as enclosed page to the outside. Fixes #68. |
rbri |
 |
PointerEvent supports altitudeAngle and azimuthAngle property for Chrome/Edge. |
rbri |
 |
Upgrade Apache HttpComponents to 4.5.13. |
rbri |
 |
Method getPage(WebWindow, WebRequest, boolean) has to handle NoHttpResponseException
because this internal call is used by the WebDriver (regression from 2.44.0). |
rbri |
 |
Upgrade Apache log4j-api to 2.14.0. |
rbri |
Release 2.44.0 – October 3, 2020
| Type |
Changes |
By |
 |
Upgrade Apache commons-net to 3.7.1. |
rbri |
 |
Upgrade Jetty to 9.4.32.v20200930. |
rbri |
 |
Fix Rhino setup to avoid placing lazy load references to 'XML', 'XMLList',
'Namespace', and 'QName' in the window scope. |
rbri |
 |
Improved page cleanup when closing the WebClient; there was a leak if the enclosed page has
an onbeforeunload handler in place that avoids page unloading). |
rbri |
 |
Fix some possible NPE when calling toString from js for Range or Location objects. |
rbri |
 |
The console.log() output of Promise objects is now similar to Chrome. Thanks to Rural Hunter. |
rbri |
 |
core-js: Add missing attribute escaping for String.prototype.big and similar calls. |
rbri |
 |
core-js: Make sure the this object is coercible for String.prototype.big and similar calls. |
rbri |
 |
core-js: Object() constructor fix for non extensible functions. |
rbri |
 |
core-js: TypedArray.prototype.subarray() should not throw an exception if called without parameters. |
rbri |
 |
CssParser: JavaCC 7.0.9. |
rbri |
 |
CssParser: JDK 1.8 is now required. |
rbri |
 |
CssParser: var() support added. Thanks to Christian Morgner. |
rbri |
 |
CssParser: calc() support added. Thanks to Christian Morgner. |
rbri |
 |
Take care of the body if a post request is redirected based on a 307/308 response. Thanks to Anton Demydenko. |
rbri |
 |
Setup of the js engine for the DedicatedWorkerGlobalScope improved/fixes. Some strange js errors
for scripts running inside the workers are now hopefully gone. Fixes #233. |
rbri |
 |
Scripts nodes are not moved out of tables. |
rbri |
 |
neko: Fixes for tables inside tables and forms inside tables. |
rbri |
 |
Added validation based on minlength/maxlength for input types password, search, tel, text, url. Thanks to Anton Demydenko. |
rbri |
 |
Added validation based on min/max for input types date, datetime-local, month, number, range, time, week. Thanks to Anton Demydenko. |
rbri |
 |
Added validation based on pattern for input types date, email, password, search, tel, text, url. Thanks to Anton Demydenko. |
rbri |
 |
Event processing for XMLHttpRequest is rewritten.
Events defined using addEventListener are now supported and the triggered events are more correct. Thanks to Thorsten Wendelmuth. |
rbri |
 |
Fix NPE during checkbox/radiobutton event handlers without JS engine. Fixes #227. |
rbri |
 |
Parameter encoding for string representation of URLSearchParams fixed. |
rbri |
 |
core-js: Make __proto__ more closely match the spec. |
rhino |
 |
core-js: NativeArrayBuffer slice() length is 2. |
rbri |
 |
Possible NPE in HtmlPage.setFocusedEvent() fixed. Fixes #217. |
rbri |
 |
DOMParser.parseFromString no longer tries to execute script tags
contained in the given input. Fixes #216. |
rbri |
 |
Support for placeholder-shown / -ms-input-placeholder added. Fixes #212. Thanks to Thorsten Wendelmuth. |
rbri |
 |
Bunch of updates to be back in sync with the IE11 DateTimeFormat handling. |
rbri |
 |
Improved height calculation; for elements having a fixed width
we will do word wrapping to generate a better height values. Fixes #124. |
rbri |
 |
Upgrade salvation lib to salvation2 3.0.0. |
rbri |
 |
Support to send blobs via XMLHttpRequest.send() added. Fixes #209. Thanks to Thorsten Wendelmuth. |
rbri |
 |
FileReader.readAsDataURL() now works for Blob's also. |
rbri |
 |
Blob.slice() supported. |
rbri |
 |
Initial support for new Blob(bits[, options]);. |
rbri |
 |
FormData.entries() support added. Fixes #205. Thanks to Thorsten Wendelmuth. |
rbri |
 |
neko: Setting innerHtml produces sometimes a stack overflow. |
rbri |
Release 2.28 – November 12, 2017
| Type |
Changes |
By |
 |
The link tag now supports the onLoad and the onError handler. Fixes 1927. |
rbri |
 |
The link tags are now loaded at page initialization. Fixes 1927. |
rbri |
 |
Link tags added to the page from javascript are now resolved directly. Fixes 1927. |
rbri |
 |
CSS: cssparser updated to 0.9.24. |
rbri |
 |
JavaScript: document.currentScript added. |
rbri |
 |
Selector specificity calculation fixed for selectors using the general sibling combinator (~). Fixes 1925. |
rbri |
 |
JavaScript: window.onerror provides now a valid error object. Fixes 1924. Thanks to Colin Alworth. |
rbri |
 |
JavaScript: throw a type error if the url property is requested from the WebSocket prototype. |
rbri |
 |
JavaScript: simple impl for CanvasRenderingContext.fillText added. |
rbri |
 |
JavaScript: various fixes for the Promise implementation. |
rbri |
 |
JavaScript: writing to an iFrame triggers the onload event now for chrome also |
rbri |
 |
JavaScript: navigator.productSub now returns the same value as simulated browsers |
rbri |
 |
JavaScript: fix for a strange side effect in Range.getClientRects() and Range.getBoundingClientRect().
Both calls have removed all nodes inside the range from the document. |
rbri |
 |
JavaScript: fix handling of negative buffer sizes for the ArrayBuffer ctor. |
rbri |
 |
JavaScript: getComputedTextLength() support added for svg text elements. |
rbri |
 |
JavaScript: document.createElementNS is now able to create svg elements also. |
rbri |
 |
JavaScript: support NetworkInformation (Chrome only at the moment). |
rbri |
 |
JavaScript: support FileReader.readAsArrayBuffer(). Fixes 1913. |
rbri |
 |
JavaScript: support FileReader.readAsDataURL(). Fixes 1912. |
asashour |
 |
ProxyAutoConfig: fix isInNet(). Fixes 1911. |
asashour |
 |
There is an option for IE that enables/disables the sending of the
complete file path when uploading a file. Starting with this version
we simulate this in disabled state like the default setting for the
internet zone. Fixes 1908. |
rbri |
 |
BrowserVersion.clone now copies the system-timezone attribute. |
rbri |
 |
INCOMPATIBLE CHANGE: BrowserVersion is final now and all constructors are removed.
The only way to create new customized Browser versions is by using the BrowserVersionBuilder. Fixes 1890. |
rbri |
 |
BrowserVersion setter methods are fluent now. Fixes 1890. |
rbri |
 |
DomElement: Fix .getChildElements(). Fixes 1905. |
asashour |
 |
Remove deprecated HtmlFileInput.setValueAttribute(String[]), HtmlInput.click(int,int),
SgmlPage.getPageEncoding(), WebRequest.setCharset(String) and WebResponse.getContentAsString(String). |
asashour |
 |
Fix Location header if it has non-ASCII characters. Fixes 1898. |
asashour |
 |
JavaScript: fix ClassCastException in Array.from. |
rbri |
 |
Support for form attributes formaction, formmethod, formtarget and formenctype added. Fixes 1884. Thanks to Anton Demydenko. |
rbri |
 |
JavaScript: fix ClassCastException when calculating offsetHeight. Fixes 1899. Thanks to Christian Rösch. |
rbri |
 |
Take care of label elements during event bubbling; they have to trigger a click event for the associated element. |
rbri |
 |
JavaScript: fix window.getComputedStyle() pseudo handling if pseudo param starts with double colon. |
rbri |
 |
We are simulating the 64 bit version of Firefox 52 ESR and CHROME now. |
rbri |
 |
More appropriate browser appVersion. |
rbri |
 |
JavaScript: fix Number.toLocaleString(). Fixes 1892. |
asashour |
 |
JavaScript: SVGMatrix operations (flipX, flipY, inverse, multiply, rotate, rotateFromVector,
scale, scaleNonUniform, skewX, skewY, translate) implemented. |
rbri |
Release 2.24 – January 9, 2017
| Type |
Changes |
By |
 |
XmlPage: to ignore ByteOrderMark at the beginning of file. |
asashour |
 |
CSS: cssparser updated to 0.9.21. |
rbri |
 |
Do not trigger mouse events for the associated element when clicking a label. |
rbri |
 |
JavaScript: the Map constructor accepts maps. |
rbri |
 |
JavaScript: the set constructor accepts array buffers, string, sets and maps. |
rbri |
 |
Class JavasScriptPage removed. Real browsers are handling this page as simple HtmlPage
containing only a script tag in the header. |
rbri |
 |
If there is no content type, the browser will look inside the content for a script tag. Fixes 1844. |
rbri |
 |
Conversion of ordered list to text has to take care of all children not only list items. Fixes 1845. Thanks to Rob Kodey. |
rbri |
 |
JavaScript: FF45 triggers mouse events also for disabled buttons and input elements. |
rbri |
 |
DL tag should close containing tags. Fixes 1842. |
rbri |
 |
JavaScript: Missing clear property added for headline, paragraph, and pre tags (IE only). |
rbri |
 |
Ignore the charset when checking the content type header for CORS requests. Fixes 1839. |
rbri |
 |
WebClientOptions: add 'HistoryPageCacheLimit' to allow specifying the number
of page references stored in history. If this value is smaller than the
configured HistorySizeLimit than HtmlUnit will only use soft references
for the first historyPageCacheLimit entries in the history. For older
entries only the url is saved; the page will be (re)retrieved on demand. Fixes 1836. |
rbri |
 |
JavaScript: HTMLElement.getClientRects() returns an empty list for "display: none". Fixes 1834. |
rbri |
 |
HtmlImage.saveAs(File) no longer parses the image. Fixes 1833. |
rbri |
 |
JavaScript: throw JS runtime exception instead of Java IllegalArgumentException when method is called on incorrect objects. |
mguillem |
 |
JavaScript: referrerPolicy property now supported for anchors (Chrome only). |
rbri |
 |
Many minor js class hierarchy fixes and missing constants added for IE. |
rbri |
 |
Upgrade Apache log4j-api to 2.7. |
rbri |
 |
Upgrade Apache commons-lang to 3.5. |
rbri |
 |
JavaScript: missing property content added for template elements. |
rbri |
 |
CSS: Support for css pseudo classes 'required' and 'optional' added. Fixes 1829. |
rbri |
 |
NPE in native arrays if typed array has a null value. Fixes 1828. Thanks to Michael Rimov. |
rbri |
 |
asText() now includes the content of iframe elements. Fixes 1824. |
rbri |
 |
JavaScript: CanvasRenderingContext2D simple implementation for clearRect, fillRect, strokeRect. |
rbri |
 |
JavaScript: CanvasRenderingContext2D support for transparency added. |
rbri |
 |
JavaScript: CanvasRenderingContext2D background color fixed. |
rbri |
 |
JavaScript: simple implementation of CanvasRenderingContext2D.measureText() added |
rbri |
 |
Value of the Script#readyState property (IE only) fixed for nodes created from js. Fixes 1824. |
rbri |
 |
Page#toXML() no longer produces self closing form tags for empty forms. Fixes 1490. |
rbri |
 |
JavaScript: console.timeStamp() added |
rbri |
 |
Parameter processing fixed for our FloatXX/IntXX Array slice. |
rbri |
 |
Value processing fixed for our FloatXX/IntXX Array constructor. The conversion for
the values of the provided array works now; there is no longer a NPE. |
rbri |
 |
XPath attribute query has to take care of case for xml files. Fixes 1820. |
rbri |
 |
Simple impl for SVGMatrix flipX/flipY/scale added. |
rbri |
 |
JavaScript: CSSStyleDeclaration fix handling of null and NaN for length properties. Fixes 1813. |
rbri |
 |
JavaScript: fix element.removeChild() when it is inside XMLDocument. Fixes 1815. |
asashour |
 |
Browsers are accepting arbitrary url's when the scheme is 'about'. Fixes 1813. |
rbri |
 |
WebClientOptions: add 'localAddress' to allow specifying a network interface. |
asashour |
 |
XMLHttpRequest.getAllResponseHeaders() now uses the correct delimiter and more minor fixes. |
rbri |
 |
Implementation of event.stopImmediatePropagation() added. Fixes 1810. |
rbri |
 |
Authentication used for a first site was unnecessary sent to a second web site. Fixes 1729. Thanks to Hartmut Arlt. |
rbri |
 |
JavaScript: Reflect.has() implemented. |
rbri |
 |
Support the special replacement patterns for the replacement string if replace was called for a string like 'abcd'.replace('cd', 'x$&'). |
rbri |
Release 2.21 – Apr 6, 2016
| Type |
Changes |
By |
 |
Use Neko-HtmlUnit fork. |
asashour |
 |
JavaScript: window.getComputedStyle() to handle pseudo element. Fixes 1765. |
asashour |
 |
Malformed HTML: handle unterminated attribute value. Fixes 889. |
asashour |
 |
JavaScript: fix .offsetWidth, .offsetHeight, .clientWidth and .clientHeight of unconnected elements. |
asashour |
 |
WebSocket support for binary data added. Thanks to Madis Pärn. |
rbri |
 |
JavaScript: datetime property added for time elements. |
rbri |
 |
JavaScript: do not execute iframe onload handle if set while the element is attached to page (Chrome). |
asashour |
 |
JavaScript: CSSStyleDeclaration to return lower-case values (Chrome and IE). |
asashour |
 |
WebSocket event handling fixed, open event now fired, tests added. Fixes 1762. Thanks to Madis Pärn. |
rbri |
 |
Improved MessageEvent implementation. |
rbri |
 |
JavaScript: Event.eventPhase is supported by Chrome. |
asashour |
 |
HtmlElement: deprecate .getHtmlElementsByTagName() and .getHtmlElementsByTagNames(). |
asashour |
 |
JavaScript: add .labels property for HTMLButtonElement, HTMLInputElement, HTMLKeygenElement,
HTMLMeterElement, HTMLOutputElement, HTMLProgressElement, HTMLSelectElement and HTMLTextAreaElement. |
asashour |
 |
DomElement: fix .getElementsByTagName(). Fixes 1723. |
asashour |
 |
Improved CloseEvent implementation; properties reason, code and wasClean are available now. Thanks to Madis Pärn. |
rbri |
 |
JavaScript: fix document.all when called with invalid index (Chrome). |
asashour |
 |
JavaScript: fix table.innerText. |
asashour |
 |
Fix XML attributes order. Fixes 1576. |
asashour |
 |
JavaScript: StaticNodeList removed. |
rbri |
 |
JavaScript: HTMLCollection and HTMLAllCollection function like access implementation improved (Chrome). |
rbri |
 |
JavaScript: wordSpacing property support percent values for FF45. |
rbri |
 |
JavaScript: HTMLLabelElement.control property added (FF and Chrome). |
rbri |
 |
JavaScript: FormData delete, get, getAll, set and has functions added. |
rbri |
 |
History processing changed; now HtmlUnit remembers pages instead of requests. |
rbri |
 |
Pages are not loaded after History.pushState call. Fixes 1759. |
rbri |
 |
JavaScript: fix XMLHttpRequest CORS handling (Chrome). |
asashour |
 |
JavaScript: fix setting .innerText to null (Chrome). |
asashour |
 |
Fix handling of empty Cookies (Chrome). |
asashour |
 |
BrowserVersion: remove deprecated FIREFOX_31. |
asashour |
 |
JavaScript: limited support for css @keyframes rules added. |
rbri |
 |
JavaScript: CSSRuleList ignores unsupported rules. |
rbri |
 |
JavaScript: Element.baseURI. |
asashour |
 |
JavaScript: XMLHttpRequest.overrideMimeType(). |
asashour |
 |
JavaScript: fix XMLDocument.getElementsByTagName(). |
asashour |
 |
JavaScript: support window.performace.timing. Fixes 1756. |
rbri |
 |
JavaScript: support HTMLAnchorElement.ping. Fixes 1755. |
asashour |
 |
Firefox 45 ESR support added. |
asashour |
 |
HtmlPage: add setElementFromPointHandler() for manually handling JavaScript document.elementFromPoint(). Fixes 1736. |
asashour |
 |
JavaScript: add value property support for HTMLDataElement (FF only). |
rbri |
 |
JavaScript: add initial support for HTMLStyleElement.scoped. |
rbri |
 |
JavaScript: add support for HTMLStyleElement.disabled. |
asashour |
 |
JavaScript: add support for Node.remove(). |
mguillem |
 |
INCOMPATIBLE CHANGE: change BrowserVersion.INTERNET_EXPLORER nickname to "IE". |
asashour |
 |
JavaScript: update Date.toLocaleDateString() and .toLocaleTimeString() to use en_US locale. |
asashour |
 |
JavaScript: simple implementation of SVGPathElement.getTotalLength() added. |
rbri |
 |
JavaScript: ClassCastException in DOMTokenList#updateAttribute(). Fixes 1752. |
rbri |
 |
JavaScript: HTMLCollection to enumerate children names (Chrome). |
asashour |
 |
XPath: fix attribute case sensitivity (Chrome). |
asashour |
 |
JavaScript: fix PopStateEvent.state to be clone (Chrome and IE). |
asashour |
 |
JavaScript: fix Selection.rangeCount for Chrome. |
asashour |
 |
CSS: Chrome doesn't support 'target' selector or computed 'zIndex' property. |
asashour |
 |
JavaScript: fix location.hash. |
asashour |
 |
JavaScript: HTMLTableElement.innerText should not be read-only (Chrome). |
asashour |
 |
Remove deprecated WebClient.closeAllWindows(), HttpWebConnection.shutdown(),
SgmlPage.createDomDocumentFragment(), XmlPage.getContent(),
XmlPage.createXmlElement(), XmlPage.createXmlElementNS() and XmlPage.getXmlElementDescendants(). |
asashour |
 |
SubmittableElement: rename getSubmitKeyValuePairs() to getSubmitNameValuePairs(). |
asashour |
Release 2.20 – Feb 28, 2016
| Type |
Changes |
By |
 |
JavaScript: correct calculation of clientWidth and .clientHeight styles. |
asashour |
 |
WebSocket: fix duplicate cookies sent with requests. |
rbri |
 |
JavaScript: Doctype properties prefix, localName and namespaceURI returning undefined for Chrome. |
rbri |
 |
JavaScript: Location should change immediately when calling history.pushState. Fixes 1749. Thanks to Adam Afeltowicz. |
rbri |
 |
HtmlPage.asXml(): expand empty I, BUTTON and unknown nodes to make generated XML readable as HTML on browsers. |
mguillem |
 |
JavaScript: FormData.append now supports the optional filename parameter. |
rbri |
 |
BrowserVersion: deprecate INTERNET_EXPLORER_11, use INTERNET_EXPLORER instead. |
asashour |
 |
JavaScript: FormData constructor should support form parameter. Fixes 1751. Thanks to Frank Danek. |
rbri |
 |
JavaScript: XMLHttpRequest.upload is available in IE also. |
rbri |
 |
HtmlImage: to be serializable. Fixes 1750. |
asashour |
 |
JavaScript: HTMLElement.getBoundClientRect throws an error for IE if the element is not connected to a page. |
rbri |
 |
JavaScript: implement ClientRectList methods. |
rbri |
 |
JavaScript: implement Symbol.for. |
asashour |
 |
JavaScript: set prototype for objects constructed without 'new' keyword. |
asashour |
 |
Do not explicitly send the port 443 for HTTPS connections. Fixes 1741. |
rbri |
 |
Use the right keyCode when simulating enter. Fixes 1694. |
rbri |
 |
Setting the text property of an option creates a label attribute if there is no label defined so far. |
rbri |
 |
Origin attribute for anchors now works (FF, Chrome). |
rbri |
 |
SVGElements are supporting querySelector() and querySelectorAll(). Fixes 1742. |
rbri |
 |
id property was missing for SVGElements. |
rbri |
 |
Element.className no longer trims whitespace for Chrome. |
rbri |
 |
HashChangeEvent.initHashChangeEvent() not supported by Chrome. |
rbri |
 |
Applet is no longer supported by Chrome. |
rbri |
 |
Implementation of option.text is now in sync with latest Chrome. |
rbri |
 |
Properties clientLeft and clientTop are available in Chrome also. |
rbri |
 |
Add properties name, value, type, valuetype support to HTMLParamElement. Fixes 1740. |
rbri |
 |
Fix really weird IE behavior when applying a CSS3 pseudo selector to an detached node.
This fixes the 'Invalid selector' output for the :enabled and :checked selector for pages
using jQuery. |
rbri |
 |
Paragraph with style visibility:collapse is invisible in IE11 also. |
rbri |
 |
Document baseURI property is not available for IE. |
rbri |
 |
Improved asynchronously loading of scripts with async attribute. |
mguillem |
 |
Improved simulation of double click. |
rbri |
 |
Improving null handling when setting the value of text areas and input elements. |
rbri |
 |
Setting the width of a table column to null now works correct for FF/Chrome also. |
rbri |
 |
Fix our simulation of setting table caption/tHead/tFoot for Chrome. |
rbri |
 |
For Chrome className returns an empty string if the value of the class attribute is blank. |
rbri |
 |
Fixed document.all.namedItem for Chrome when parameter is a form name. |
rbri |
 |
Chrome ignores the target attribute if the href starts with 'javascript:'. |
rbri |
 |
Fix form processing for urls containing anchors when simulating chrome. |
rbri |
 |
Result of innerText fixed for Chrome. |
rbri |
 |
Fix return value of getAttributeNS when attribute is not defined. |
rbri |
 |
Option.text returns always the label if defined in Chrome. |
rbri |
 |
CSS :lang selector now works correct if the lang was defined at the parent. |
rbri |
 |
Empty form actions are not expanded by FF. |
rbri |
 |
Type attribute is case sensitive for input elements. |
rbri |
 |
Implementation of Performance.now() added. |
rbri |
 |
Improved clientHeight calculation when height is set to auto. |
rbri |
 |
Updates on event handling, mouse-over for option and select elements are more correct now. |
rbri |
 |
IE never triggers a mouseover event for select options. |
rbri |
 |
FF triggers a mouseover event for select options even if the option is disabled. |
rbri |
 |
GAE support is back. |
rbri |
 |
Function document.open(..) returns the opened document. Fixes 1730. |
rbri |
 |
Browsers do not escape double quote and backslash in cookie values. |
rbri |
 |
Fix for possible StringIndexOutOfBoundsException in HtmlUnitBrowserCompatCookieSpec. Fixes 1735. |
rbri |
 |
Fix NPE in FormData#append when calling with null or undefined as value. |
rbri |
 |
Fix redirect handling for status code 301, 302 and 307 (POST); add support for status code 308. Fixes 1733. |
rbri |
 |
Bring the implementation of special key support (e.g. VK_DELETE) for password input and textarea control
in sync with the input text control. |
rbri |
 |
BrowserVersion BEST_SUPPORTED added. This is (for now) a shortcut for FIREFOX_38. Thanks to mguillem. |
rbri |
 |
Area elements are not focusable if no href attribute defined. |
rbri |
 |
Anchors are not focusable if no href attribute defined. |
rbri |
 |
Basic authentication credentials in the URL could get lost. Fixes 1731. Thanks to Joerg Werner. |
rbri |
 |
DefaultCredentialsProvider: to have .removeCredentials(). |
asashour |
 |
Dependency to Commons Collections removed. |
rbri |
 |
HtmlPage: fix base URL with leading whitespace. Fixes 1728. Thanks to Joerg Werner. |
asashour |
Release 2.19 – Nov 12, 2015
| Type |
Changes |
By |
 |
JavaScript: support document.hasFocus(). |
asashour |
 |
INCOMPATIBLE CHANGE: Cache.cacheIfPossible() to return boolean
and rename .isDynamicContent() to isCacheableContent(). |
asashour |
 |
CSSStyleSheet: response is cleaned up when it is not cached. |
asashour |
 |
JavaScript: Support for History.pushState() and History.replaceState(). Fixes 1681. Thanks to Adam Afeltowicz. |
rbri |
 |
SgmlPage: fix .getElementsByTagName(). Fixes 1723. |
asashour |
 |
JavaScript: Empty dummy implementations for MediaQueryList#addListener and
MediaQueryList#removeListener added. |
rbri |
 |
HttpWebConnection: deprecate .shutdown(). |
asashour |
 |
INCOMPATIBLE CHANGE: WebConnection to extend AutoCloseable. Fixes 1727. |
asashour |
 |
JavaScript: Removing the active element from the DOM tree should reset the
activeElement property. |
rbri |
 |
JavaScript: fix HTMLFormElement.action when the attribute is not defined. Fixes 1726. |
asashour |
 |
JavaScript: When an element inside an iframe becomes the active one,
the iframe element also becomes the active one of his enclosing document. |
rbri |
 |
JavaScript: Improved simulation of onfocusin/out events. |
rbri |
 |
HtmlPage: fix synchronization for .addAutoCloseable(). Fixes 1725. |
asashour |
 |
Enhance performance of DomNode.asText(). |
asashour |
 |
WebSocket: to be closed once the window is closed. Fixes 1715. |
asashour |
 |
JavaScript: Missing property HTMLElement.oninput added. Fixes 1702. |
rbri |
 |
Correctly handle redirection with broken gzip content. Fixes 1724. |
asashour |
 |
CSS: support for Media Query feature 'max-resolution', 'min-resolution', and 'resolution' added. |
rbri |
 |
CSS: support for Media Query feature 'max-device-width', 'min-device-width', 'max-height',
'min-height', 'max-device-height' and 'min-device-height' added. |
rbri |
 |
CSS: support for Media Query 'not' operator added. |
rbri |
 |
CSS: support for Media Query feature 'orientation'. |
rbri |
 |
CSS: initial support for Media Query features 'max-width' and 'min-width'. Fixes 1721. |
asashour |
 |
JavaScript: fix Promise.resolve() with empty parameters. |
asashour |
 |
JavaScript: XMLHttpRequest.onerror is available in CHROME too. |
rbri |
 |
JavaScript: XMLHttpRequest.onerror handler will be called with a ProgressEvent as parameter. |
rbri |
 |
JavaScript: support for ProgressEvent properties lengthComputable, loaded, and total added. |
rbri |
 |
JavaScript: add minimal WebWorker support. |
mguillem |
 |
DomNode and WebWindow: deprecate .getScriptObject(). |
asashour |
 |
JavaScript: collections to be iterated using the default Symbol.iterator. Fixes 1699. |
asashour |
 |
ComputedCSSStyleDeclaration: fix StackOverflowError on calculating 'top' value. Fixes 1233. Thanks to Adam Afeltowicz. |
asashour |
 |
JavaScript: XMLHttpRequest.overrideMimeType() is available in IE11 too. |
rbri |
 |
JavaScript: XMLHttpRequest.overrideMimeType() does some state checking for IE11 and CHROME. |
rbri |
 |
Upgrade Apache HttpComponents to 4.5.1. |
asashour |
 |
JavaScript: Event.stopPropagation() is available in Chrome too. |
rbri |
 |
Load asynchronously scripts with async attribute. |
mguillem |
 |
JavaScript: WebSocket to handle insecure SSL. Fixes 1720. |
asashour |
 |
Various fixes for our checkbox and radiobutton simulation. This also fixes
css selectors working with the checked attribute. |
rbri |
 |
Do not click surrounding anchor for 'checkbox' and 'radio' input (Chrome). |
asashour |
 |
JavaScript: fix document.forms.form_name with prefixed forms. |
asashour |
 |
JavaScript: fix result value for title.text property for empty title tags (IE8). |
rbri |
 |
JavaScript: delays execution of Promise.then arguments. |
mguillem |
 |
JavaScript: fix CSSStyleRule.selectorText. |
asashour |
 |
CSS: only FF supports CSSCharsetRule. |
asashour |
 |
JavaScript: fix MediaList.item() and MediaList.mediaText results for media queries. |
rbri |
 |
CSS: cssparser updated to 0.9.18. |
rbri |
 |
JavaScript: Property style.boxSizing is available in Chrome and FF too. |
rbri |
 |
CSS: fix @font-face for Chrome. |
asashour |
 |
Fix base tag for relative URI. Fixes 1718. Thanks to Adam Afeltowicz. |
asashour |
 |
JavaScript: TextArea now works correct if the children are manipulated from js. Fixes 1719. |
rbri |
 |
JavaScript: Window.top property is only writable in IE. |
rbri |
 |
JavaScript: window.onsubmit support added. |
rbri |
 |
Correctly handle script when src attribute is only "://". |
asashour |
 |
JavaScript: process scripts with 'application/javascript' type (add IE11). |
asashour |
 |
JavaScript: Iterating through the .attributes property modifies outerHTML result. Fixes 1716. |
rbri |
 |
Cookies: fix handling of two digits expiry date in Chrome. |
asashour |
 |
JavaScript: add .placeholder property (HTMLInputElement and HTMLTextAreaElement). |
asashour |
 |
JavaScript: textContent property is writable for table elements in Chrome also. |
rbri |
 |
JavaScript: HTMLScriptElement.src should return complete URL if src was defined. |
rbri |
 |
Correct simulation of type handling for input tags without type attribute being set. |
rbri |
 |
Handle typing in inputs of type search like in inputs of type text. |
mguillem |
 |
RegExp: fix translation of \0 when translating a js regexp into a java one. Fixes 1713. |
rbri |
 |
JavaScript: label property implemented for menu element. |
rbri |
 |
JavaScript: type property implemented for menu element. |
rbri |
 |
JavaScript: fix FormData to correctly handle File. |
asashour |
 |
JavaScript: add window.location.origin. |
asashour |
 |
JavaScript: OptionsCollection length setter fix (Chrome). |
rbri |
 |
JavaScript: mouse events fixed when clicking an option (Chrome). |
rbri |
 |
JavaScript: added support for Window.crypto.getRandomValues. |
mguillem |
 |
JavaScript: added dummy implementations of Window.requestAnimationFrame and Window.cancelAnimationFrame. |
mguillem |
 |
Reflect fix done in latest Chrome for Node.compareDocumentPosition. |
rbri |
 |
Node.removeChild now throws a javascript exception if the node to be removed is not
a descendant of the receiver. |
rbri |
 |
Node.insertBefore now throws a javascript exception instead of an DOMException. |
rbri |
 |
Improved width calculation if the style defines the width using a percent value. Fixes 1700. |
rbri |
 |
Index property for HTMLOptionElement added. |
rbri |
 |
Consider base tag even when misplaced within body. |
mguillem |
 |
Added HtmlPage.getBaseURL and HTMLDocument.baseURI. |
mguillem |
 |
INCOMPATIBLE CHANGE: The usual isXxxxEnabled() methods are added to the Interface WebConsole.Logger
for better performance. |
rbri |
 |
String substitution in window.console.log fixed (handing of special chars like $,
escaped percent sign, handling of missing replacement parameters). Fixes 1711. |
rbri |
 |
Window.dump() is available in FF only. |
rbri |
 |
XMLHttpRequest: call onload handler with a ProgressEvent parameter. |
asashour |
 |
Support for text property removed from HTMLTimeElement. |
rbri |
 |
Fix ClassCastException when triggering a click event for SVG elements. Fixes 1495. |
rbri |
 |
Correct handling of file URL's containing encoded character. Fixes 1708. |
rbri |
 |
Simulated Shockwave Flash plugin info updated to current version. |
rbri |
 |
Version property added to plugin. Fixes 1707. |
rbri |
 |
RegExp: there was a mutable 'singleton' shared between different regex results; this introduces
strange side effects. Fixes 1706. Thanks to Carsten Steul. |
rbri |
 |
Return value of CSSStyleDeclaration.removeStyleAttribute() fixed when simulating Chrome. |
rbri |
 |
Dummy implementation for History.state together with some more tests added. |
rbri |
 |
Latest FF versions are no longer defining these methods: History.next, History.current, History.previous. |
rbri |
 |
Cookies: quote only if the cookie was sent with quotes. Fixes 1705. |
rbri |
 |
Stylesheet list contains only active style sheets when simulating Chrome. |
rbri |
 |
File.lastModifiedDate now produces the correct output in all browsers. |
rbri |
 |
File.lastModified is not available in FF31. |
rbri |
Release 2.18 – Jul 26, 2015
| Type |
Changes |
By |
 |
Introduce AbstractPage. |
asashour |
 |
HtmlPage: change return type of .getFocusedElement() to DomElement. |
asashour |
 |
Cache: clean up cached WebResponse only when it moves out of cache. |
asashour |
 |
XmlPage: deprecate .getContent(), .createXmlElement(), .createXmlElementNS()
and .getXmlElementDescendants(). |
asashour |
 |
Add SvgPage. |
asashour |
 |
JavaScript: primitive implementation of XMLHttpRequestUpload. |
asashour |
 |
JavaScript: implement FormData. |
asashour |
 |
Fix detection of standards mode for DocType with empty name (IE8). |
asashour |
 |
JavaScript: DocumentFragment: add .URL property and fix its default value (IE8). |
asashour |
 |
SgmlPage: deprecate createDomDocumentFragment(). |
asashour |
 |
HtmlPage: deprecate getFocusedElement() as its return type will change to DomElement. |
asashour |
 |
JavaScript: do not trigger events if the element is detached from page. |
asashour |
 |
JavaScript: Node.cloneNode() should return a node with a parent (IE8). |
asashour |
 |
DomElement: now handle events (e.g. .click(), .focus()) to support SVG interaction. |
asashour |
 |
SVG: fix SVG element creation. |
asashour |
 |
JavaScript: support HTMLInputElement.files. |
asashour |
 |
JavaScript: WebClient.getPage should trigger hashchange event when called for with the same URL but different hash than the current page. |
mguillem |
 |
DomNode: .setTextContent() should add child only if the text is not empty. |
asashour |
 |
JavaScript: XMLHttpRequest CORS handling for PUT and POST. Fixes 1698. |
asashour |
 |
JavaScript: fix Map, Set, WeakMap and WeakSet with empty constructor. Fixes 1699. |
asashour |
 |
XmlPage: implement getElementsByTagName(). |
asashour |
 |
Support PATCH Method for HTTP. Fixes 222. Thanks to Joerg Werner. |
asashour |
 |
JavaScript: properly handle event handlers as a property of document body. |
asashour |
 |
Typing: support clipboard copy, cut and paste. |
asashour |
 |
ImageData: reuse data property, to preserve setting the values. |
asashour |
 |
Rename SelectionDelegate to SelectableTextSelectionDelegate, and add SimpleSelectionDelegate. |
asashour |
 |
JavaScript: initial implementation of performance.navigation. |
asashour |
 |
Regex: back references to optional groups are corrected (e.g. /(a)?xyz\1/). |
rbri |
 |
HtmlElement: Deprecated type() with shift, control and alt parameters. |
asashour |
 |
Properly handle cookies for unqualified hostname. Fixes 1697. |
asashour |
 |
HtmlElement: add type(Keyboard). |
asashour |
 |
Mocked ActiveX objects have to be able to deal with unknown/unsupported properties. Thanks to Frank Danek. |
rbri |
 |
Regex: back references to enclosing groups are ignored by js regex (e.g. /(a)(b\2)/). |
rbri |
 |
Regex: minor improvements for the octal detection when converting a js regex into java regex. |
rbri |
 |
Fix an IllegalStateException when parsing ajax response containing an object tag. |
rbri |
 |
JavaScript: Limited support for CSSStyleRule.readonly added (property is available in IE only). |
rbri |
 |
JavaScript: fix KeyboardEvent constants. |
asashour |
 |
JavaScript: trigger SHIFT keydown/keyup events when "upper" characters are typed. |
asashour |
 |
JavaScript: implement HTMLElement.contentEditable and isContentEditable. |
asashour |
 |
JavaScript: implement TextRange.compareEndPoints() and .move(). |
asashour |
 |
HtmlTextInput: handle typing arrow keys. |
asashour |
 |
JavaScript: initial support for MutationObserver. Fixes 1691. |
asashour |
 |
DomNode: add/remove CharacterDataChangeListener. |
asashour |
 |
Upgrade Apache HttpComponents to 4.5. |
asashour |
 |
HtmlElement: mark .fireEvent() as internal API. |
asashour |
 |
Remove deprecated BrowserVersion.FIREFOX_24, ProxyAutoConfig, HttpWebConnection.downloadContent(),
Event, KeyboardEvent and MouseEvent. |
asashour |
Release 2.16 – Apr 20, 2015
| Type |
Changes |
By |
 |
CSS selectors checking for an empty attribute (e.g. [data-section='']) are checking now the existence
of the attribute also. |
rbri |
 |
Upgrade NekoHtml to 1.9.22. |
asashour |
 |
HTMLTextAreaElement: maxLength property support added. Fixes 1677. Thanks to Carsten Steul. |
rbri |
 |
JavaScript: Missing setter for style.media added. |
rbri |
 |
JavaScript: implement Promise.resolve(). |
asashour |
 |
An Ajax request running in parallel to a form submit might influence the headers send by the submit. |
rbri |
 |
JavaScript: rename host class CharacterDataImpl to CharacterData,
and ProcessingInstruction to extend CharacterData. |
asashour |
 |
Upgrade Apache commons-lang to 3.4. |
rbri |
 |
JavaScript: type property for anchor elements implemented. Fixes 1675. |
rbri |
 |
Window: fix how events are handled in when a child iframe 'src' is empty. Fixes 1655. |
asashour |
 |
HTMLIFrameElement: once the document is open()ed,
then the location should be the same as the enclosing page. Fixes 1655. |
asashour |
 |
JavaScriptEngine: hasAttribute is available in IE8 also. |
rbri |
 |
HTMLScriptElement: support 'onload' event (Chrome). Fixes 1655. |
asashour |
 |
XMLHttpRequest: handle incorrect HTTP method name. Fixes 1665. |
asashour |
 |
JavaScriptEngine: fix synchronization case. Fixes 1668. Thanks to Carsten Steul. |
asashour |
 |
Upgrade Apache HttpComponents to 4.4.1 |
rbri |
 |
JavaScript: initial support for "Intl" namespace. |
asashour |
 |
CSS: cssparser updated to 0.9.15. |
rbri |
 |
JavaScript: fix the prototype of HTMLQuoteElement and HTMLInlineQuotationElement. Fixes 1671. Thanks to Carsten Steul. |
asashour |
 |
HtmlButton: 'type' attribute defaults to 'button' in quirks mode only (IE8). |
asashour |
 |
JavaScript: fix HTMLImageElement.src attribute. |
asashour |
 |
XSLTProcessor is not available in IE11. |
rbri |
 |
BrowserVersion: deprecate FIREFOX_24 and remove deprecation of INTERNET_EXPLORER_8. |
asashour |
 |
Initial support for HtmlBidirectionalIsolation, HtmlCommand, HtmlDetails, HtmlDialog,
HtmlLayer, HtmlMain, HtmlMenuItem, HtmlNoLayer, HtmlSummary and HtmlTrack elements. |
asashour |
 |
WebClient: deprecate .closeAllWindows(), use .close() or try-with-resources statement. |
asashour |
 |
Avoid exception when handling URLs with unknown protocols. |
mguillem |
 |
JavaScript: added basic support for Notification. |
mguillem |
 |
Package 'httpclient' added for our customizations of HttpClient. |
rbri |
 |
JavaScript: fix many host class names. |
asashour |
 |
Use the same parser for cookies when set from javascript as we use for cookies in the http header. |
rbri |
 |
Use the same parser for cookies when set via meta tag as we use for cookies in the http header.
This fixes the missing support for various cookie attributes when set by meta tag (e.g. domain). |
rbri |
 |
Iterator and StopIteration are only available in FF. |
rbri |
 |
Event.metaKey is available in CHROME also. |
rbri |
 |
MouseEvent.keyCode fixed for IE8 and CHROME. |
rbri |
 |
JavaScript: Window is defined in Standards Mode (IE8). |
asashour |
 |
Upgrade Apache HttpComponents to 4.4 |
asashour |
 |
JavaScriptEngine: consider false jsObject. |
asashour |
 |
JavaScript: XSLTProcessor supported methods (Chrome). |
asashour |
 |
JavaScript: most elements prototype should be functions (Chrome and FF). |
asashour |
 |
INCOMPATIBLE CHANGE: SVG: Rename SvgMpath to SvgMPath. |
asashour |
 |
JavaScript: FunctionObject to also enumerate IDs of the parent objects. |
asashour |
 |
JavaScript: do not set the window.location when triggered by anchor onclick (Chrome and FF). |
asashour |
 |
JavaScript: Node.compareDocumentPosition() to handle argument which is not Node (Chrome). |
asashour |
 |
JavaScript: constants should not be overwritten or deleted. |
asashour |
 |
JavaScript: Node.insertBefore() throw exception for Chrome when second parameter is missing. |
asashour |
 |
JavaScript: handle Node, Element, CSSValue and CSSPrimitiveValue as function not object (Chrome, FF). |
asashour |
 |
Browsers are ignoring line breaks inside the src attribute of script/image/frames tags. Fixes 1663. |
rbri |
 |
JavaScriptJobManager interface enhanced to support filtered access to the jobs. This helps to filter
out heartbeat jobs while waiting for the background jobs to finish. |
rbri |
 |
Mock implementation of element.setCapture(), element.releaseCapture() and document.releaseCapture() added. |
rbri |
 |
JavaScript: DocumentType: support 'publicId' and 'systemId', while 'prefix' is undefined in Chrome. |
asashour |
 |
Upgrade Jetty to 9.2.10.v20150310. Fixes 1656. Thanks to David Ostrovsky. |
asashour |
 |
Wrong encoding used by StringWebReponse if charset placed in content. Fixes 1660. Thanks to Carsten Steul. |
rbri |
 |
Fix handling nameless cookie. |
asashour |
 |
Results for css selectors startsWith/endsWith/contains fixed for IE8 when searching with an empty string. |
rbri |
 |
Result of document.all.namedItem('name') for many hits fixed when simulating IE. |
rbri |
 |
Correct results when accessing window.ActiveXObject in IE11. |
rbri |
 |
Boolean(document.all) fixed for FF and IE11 (core-js fix). |
rbri |
 |
Many fixes for the select option javascript functions and the OptionsCollection. Fixes 1653. |
rbri |
 |
WebResponse used for 'about:blank' was shared between different windows. Because the object
is not immutable this produces strange side effects. Fixes 1652. |
rbri |
 |
Possible NullPointerException in ProxyAutoConfig.isInNet fixed. Fixes 1649. |
rbri |
 |
Wrong activeElement for iFrames and their parents. Fixes 1648. Thanks to Carsten Steul. |
rbri |
 |
CSS pseudo selector ':checked' selects also selected options. |
rbri |
 |
JavaScript: Support event parameter for event handlers created implicit by setAttribute. Fixes 1647. Thanks to Carsten Steul. |
rbri |
 |
AppletConfirmHandler added. It is possible to define this handler for a web client.
This handler is called before an applet code download. By implementing this handler you
can restrict the download per applet (like the confirm dialog in the browser). Fixes 1637. |
rbri |
 |
Method isDisplayed() now works correct for HtmlImage, HtmlMap and HtmlArea. |
rbri |
 |
WebClient.closeAllWindows() now kills the thread, if join does not succeed. This might happen,
if one of the javascript jobs runs in an endless loop. |
rbri |
 |
WebClient.closeAllWindows() now stops the JS thread also of some onunload handler opens new windows or
refreshes iframes. Fixes 1638. |
rbri |
 |
JavaScript: DOMTokenList#remove method remains tail-whitespace when the last token was removed. Fixes 1643. |
rbri |
 |
Mandate Java 7 as a minimum requirement. |
asashour |
 |
JavaScript: document.importNode() is supported in Chrome. |
rbri |
 |
JavaScript: Improved width calculation if style is set to 'auto'. Fixes 1642. Thanks to Carsten Steul. |
rbri |
 |
JavaScript: Simplified synchronization in JavaScriptJobManagerImpl.waitForJobs methods. Fixes 1640. Thanks to Carsten Steul. |
rbri |
 |
Fix asText() of HtmlPreformattedText. |
rbri |
 |
JavaScript: fix Storage prototype properties. Fixes 1639. |
asashour |
 |
BrowserVersion: introduce .setHeaderNamesOrdered() to guide the order of the request HTTP headers. |
asashour |
 |
JavaScript: fix writing to a read-only property in the prototype. Fixes 1633. Thanks to Jake Cobb. |
asashour |
 |
Firefox 31 ESR support added. Fixes 1636. |
rbri |
 |
Upgrade Apache HttpClient to 4.3.5. |
rbri |
 |
JavaScript: HTMLStyleElement.getSheet() is supported in Chrome. |
asashour |
 |
Many minor fixes for implementation.hasFeature (retested with ff24, ff31 and Chrome added). |
rbri |
 |
JavaScript: document.createNSResolver() and .evaluate() are supported in Chrome. |
asashour |
 |
JavaScript: window.atob(), .btoa() and .getSelection() are supported in Chrome. |
asashour |
 |
JavaScript: CSSStyleDeclaration.getPropertyCSSValue() is supported in Chrome. |
asashour |
 |
Many minor fixes for the screen object (setters implemented, more testcases, Chrome support added). |
rbri |
 |
ProxyAutoConfig package fixed (moved from com.gargoylesoftware.htmlunit.javascript to
com.gargoylesoftware.htmlunit). There is still a deprecated class at the original
location for backward compatibility. |
rbri |
 |
Anchor or form did not load a page if the target URL differs from the current URL and ends with "#". Fixes 1628. |
rbri |
 |
HtmlNoScript: expand empty tag. Fixes 1624. |
asashour |
 |
JavaScript: fix class name of unknown elements with hyphen in their tag name. |
asashour |
 |
Upgrade commons-logging to 1.2. |
rbri |
 |
JavaScript: default value for XMLHttpRequest.open's async parameter is true. Fixes 1625. Thanks to Jake Cobb. |
mguillem |
 |
JavaScript: XMLHttpRequest: overrideMimeType() to handle charset (Chrome and FF). |
asashour |
 |
Window.external implementation fixed; the property is available in FF and
Chrome also. Additionally we added stubs for the functions AddSearchProvider
and IsSearchProviderInstalled. |
rbri |
 |
Missing event listener functions addEventListener, removeEventListener
and dispatchEvent added to applicationCache. Fixes 1613. Thanks to Jake Cobb. |
rbri |
 |
Width and height of file inputs should be greater than zero. Fixes 1622. Thanks to Hartmut Arlt. |
rbri |
 |
JavaScript: XMLDocument.getElementById(): to return XML elements (Chrome). Fixes 1618. |
asashour |
 |
JavaScript: XMLHttpRequest: support .onload for Chrome. Fixes 1618. |
asashour |
 |
Methods setExpression and removeExpression are only available in IE8. |
rbri |
 |
Image downloading: try to download only if the src attribute is not empty. |
rbri |
 |
Unexpected POST parameters in case of malformed HTML. Fixes 1619. Thanks to Carsten Steul. |
rbri |
 |
JavaScript: ensure that values returned by __lookupG(S)etter__ are normal JavaScript objects.
Fixed related Rhino warning messages on System.err. (FF) |
mguillem |
 |
JavaScript: Image.complete support added. Fixes 1617. |
rbri |
 |
URISyntaxException thrown while trying to load valid URL (invalid percent sign escaping). Fixes 1587. Thanks to Hartmut Arlt. |
rbri |
 |
Improved processing of malformed html. Fixes 1610. Thanks to Carsten Steul. |
rbri |
 |
JavaScript: button.type result fixed. |
rbri |
 |
JavaScript: function.apply() to handle usual objects. Fixes 1615. |
asashour |
 |
JavaScript: implement .style.length and indexed value. Fixes 1615. |
asashour |
 |
JavaScript: .querySelector() is supported in Chrome. |
asashour |
 |
JavaScript: .addEventListener() to handle native EventListener objects. Fixes 1614. |
asashour |
 |
WebClientOptions: add .get and .setMaxInMemory(). Fixes 219. |
asashour |
 |
WebClientOptions: add .setSSLTrustStore(). Fixes 1611. Thanks to Carsten Steul. |
asashour |
 |
BrowserVersion: remove deprecated INTERNET_EXPLORER_9 and FIREFOX_17. |
asashour |
 |
KeyDataPair: remove deprecated .getContentType(). |
asashour |
 |
HttpWebConnection: Java 7: handle "handshake alert: unrecognized_name" with insecure SSL. Fixes 1612. |
asashour |
 |
Upgrade Apache HttpComponents to 4.3.4. |
asashour |
 |
Fix EOFException when processing responses with broken gzip'ed content. Fixes 1609. |
rbri |
Release 2.15 – Jun 2, 2014
| Type |
Changes |
By |
 |
Upgrade NekoHtml to 1.9.21. |
asashour |
 |
Fix NPE when processing postMessage(). Fixes 1589. |
rbri |
 |
JavaScript: document and element .querySelectorAll() is supported in Chrome. Fixes 1597. |
asashour |
 |
Some changes of the SOCKS proxy settings are ignored for HTTPS. Fixes 1579. |
rbri |
 |
Avoid exception if the content-length provided by the server is not correct. Fixes 1608. Thanks to Carsten Steul. |
rbri |
 |
HtmlUnitRegExpProxy: better performance, as String.substring() implementation was changed in Java 7. |
asashour |
 |
NoSuchElementException when parsing malformed HTML. Fixes 1605. Thanks to Carsten Steul. |
rbri |
 |
JavaScriptEngine: deprecate .shutdownJavaScriptExecutor(). |
asashour |
 |
JavaScriptEngine: removes all postponed actions on webClient.closeAllWindows();. Fixes 1604. |
asashour |
 |
JavaScript: handle RegExp constructed with 'undefined'. Fixes 1599. |
asashour |
 |
WebClientOptions: add .setSSLClientProtocols(), .setSSLClientCipherSuites() and .setSSLInsecureProtocol(). Fixes 1600. |
asashour |
 |
ConcurrentModificationException in WebWindowImpl.destroyChildren(). Fixes 1602. |
rbri |
 |
JavaScript: fix .offsetHeight for empty <div>. |
asashour |
 |
HTML parsing: move illegal content found within a table before the table. Fixes 1598. |
mguillem |
 |
JavaScript: Node.textContent can be set in Chrome. |
asashour |
 |
JavaScript: ComputedCSSStyleDeclaration.getPropertyValue is supported in Chrome. |
asashour |
 |
KeyDataPair: marked as internal API. |
asashour |
 |
HttpWebConnection: set socket timeout also (regression in 2.14). Fixes 1593. |
rbri |
 |
HtmlButton.getAttribute("type") now returns the correct value if no type was specified. |
rbri |
 |
JavaScript: Function evaluate now returns the correct result when
called with XPathResult.BOOLEAN_TYPE as result type. |
rbri |
 |
JavaScript: table.insertRow was broken when trying to insert a row
directly before the last one. |
rbri |
 |
JavaScript: Window.name implementation fixed for IE11. Thanks to Frank Danek. |
rbri |
 |
JavaScript: add support for the bgColor attribute on thead and tfoot element. |
rbri |
 |
CookieManager: deprecate getCookies(URL). |
rbri |
 |
Cookies: Different path interpretation done by IE11 fixed. |
rbri |
 |
JavaScript: Some event definitions ignored when simulating IE11. |
rbri |
 |
HashMap corruption (leads to an endless loop) because of concurrent access. |
rbri |
 |
Cookies: Some fixes for the parsing of the expires date in IE11. |
rbri |
 |
HttpWebConnection: socket reuse (regression in 2.14). Fixes 1577. |
asashour |
 |
JavaScript: allow use of "in" operator with indexes for StaticNodeList and Attr. Fixes 1559. |
mguillem |
 |
File upload content type shouldn't contain charset. Fixes 1585. Thanks to Jakub Kotasek. |
rbri |
 |
JavaScript: setting outerHTML now works also for detached elements. Fixes 1584. |
rbri |
 |
JavaScript: window.navigate(url) for IE browsers added. |
rbri |
 |
Optimized image data handling; the finalizer needed for the ImageInputStream
no longer stops the image node itself from being gc'ed. Fixes 1583. Thanks to Carsten Steul. |
rbri |
 |
INCOMPATIBLE CHANGE: All public methods of CookieManager are taking care of the isCookiesEnabled()
state. Subclasses have to do the same. This was done as part of the migration to the new HttpClient
api. |
rbri |
 |
HTML parsing: unknown closing tags can't close any other unknown tags. Fixes 1562. |
mguillem |
 |
JavaScript: type property now supported by ul and ol tag. |
rbri |
 |
JavaScript: Fix handling of coordinate parameters when clicking on an image input. Fixes 1581. |
rbri |
 |
JavaScript: fix setting value to toString() function. |
asashour |
 |
Upgrade Apache commons-lang to 3.3.2. |
asashour |
 |
JavaScript: Wrong charCode reported by the onKeyPress keyboard event for the space key. Fixes 1578. |
rbri |
 |
JavaScript: Fix our implementation of innerText for table elements. Fixes 1580. |
rbri |
 |
Upgrade Apache HttpComponents to 4.3.3. |
asashour |
 |
JavaScript: The javascript inside the href attrib of an anchor executes in the context
of the anchors target. |
rbri |
Release 2.14 – Feb 17, 2014
| Type |
Changes |
By |
 |
Upgrade NekoHtml to 1.9.20. |
mguillem |
 |
Sanitize filenames constructed from URL's. Fixes 1574. |
rbri |
 |
JavaScript: Use the correct url for checking if the origin header has to be added
to a XMLHttpRequest. Fixes 1575. |
rbri |
 |
JavaScript: Property contentDocument (Frame/iFrame) is available in IE8 also. |
rbri |
 |
GAEJavaScriptExecutor is public again but marked as part of the internal api. Fixes 1503. |
rbri |
 |
JavaScript: Fix encoding of innerHTML result for script content. Fixes 1509. |
rbri |
 |
JavaScript: handle 'arguments' as a parameter. Fixes 1572. |
asashour |
 |
JavaScript: Internal cleanup and some fixes for the innerHTML/outerHTML/insertAdjacentHTML.
Fix appendChild/insertBefore/replaceChild also.
Additionally trigger the correct notifications to inform about dom changes. Thanks to Frank Danek. |
rbri |
 |
HtmlParser fixed for pages with scripts outside the html tag. |
rbri |
 |
HtmlFileInput: ability to upload multiple files using setValueAttribute(String []). Fixes 215. |
asashour |
 |
HTMLObjectElement: classid could be affected by webClient.setActiveXObjectMap(). |
asashour |
 |
Load iframe content when iframe is child of a node added by setting innerHTML. Fixes 1544. |
rbri |
 |
JavaScript: body.background property handling fixed for FF. |
rbri |
 |
JavaScript: Missing enctype property support added to forms. |
rbri |
 |
JavaScript: Attr firstChild/lastChild fixed when no child at all (FF). |
rbri |
 |
JavaScript: CORS handling is different in IE11 for the 'about:' protocol. Thanks to Frank Danek. |
rbri |
 |
JavaScript: Window many property fixes for IE11 and Chrome. Thanks to Frank Danek. |
rbri |
 |
JavaScript: CSSFontFace rule cssText property fixed for IE11. Thanks to Frank Danek. |
rbri |
 |
JavaScript: style zIndex is of type integer in IE11. Thanks to Frank Danek. |
rbri |
 |
JavaScript: DOMParser.parseFromString() type checking fixed. Thanks to Frank Danek. |
rbri |
 |
JavaScript: Function HTMLelement.insertAdjacentText added (IE, Chrome). Thanks to Frank Danek. |
rbri |
 |
BrowserVersion: deprecate INTERNET_EXPLORER_8 and INTERNET_EXPLORER_9. |
asashour |
 |
JavaScript: improved width and height processing for html elements when simulating FF. |
rbri |
 |
Fix IllegalArgumentException occuring for entities with invalid UTF16 code. Fixes 1564. |
mguillem |
 |
Upgrade Apache HttpClient to 4.3.2. |
asashour |
 |
CSS: Parsing of the :not pseudo class fixed, only simple selectors are allowed.
This was a problem with CSSParser and is fixed in version 0.9.13. |
rbri |
 |
JavaScript: ClientRect: add 'width' and 'height' properties. Fixes 1570. |
asashour |
 |
CSSStyleDeclaration: fix serialization of StyleElement. Fixes 1569. |
asashour |
 |
JavaScript: enumerating ordered numbers first (Chrome, FF and IE11). |
asashour |
 |
Do not change the active element when the content of an iframe was changed. Fixes 1568. |
rbri |
 |
JavaScript: conversion of anchor element into strings fixed. |
rbri |
 |
JavaScript: hashChangeEvent processing fixed. Thanks to Frank Danek. |
rbri |
 |
JavaScript: New event class PointerEvent and BeforeUnloadEvent (required for IE11). Thanks to Frank Danek. |
rbri |
 |
CSS: cssparser updated to 0.9.12. |
rbri |
 |
JavaScript: window.getComputedStyle and CSSStyleDeclaration.getPropertyValue()
are supported starting IE9. Fixes 1566. |
asashour |
 |
BrowserVersion: deprecate FIREFOX_17, FIREFOX_24 is our preferred Firefox for the next months. |
rbri |
 |
JavaScript: Document.inputEncoding and Document.characterSet are doing some kind of
normalization on the encoding string starting with FF24. |
rbri |
 |
Upgrade Apache commons-lang to 3.2.1. |
rbri |
 |
JavaScript: Window.opener is settable from javascript (FF24). |
rbri |
 |
JavaScript: Node.attributes is no longer supported (since FF22). |
rbri |
 |
JavaScript: XMLHttpRequest event processing fixed for FF24. |
rbri |
 |
Return value fixed for element.height and element.width when element is not attached to the page. |
rbri |
 |
JavaScript: String.contains() added for FF18 and later. |
rbri |
 |
Return value fixed for element.height and element.width when element is not attached to the page. |
rbri |
 |
Element.currentStyle returns null for elements not attached to the page. |
rbri |
 |
Upgrade commons-codec to 1.9. |
rbri |
 |
Some more tests converted into WebDriverTestCase. Thanks to Frank Danek. |
rbri |
 |
Improved HTML parsing to be more compatible with real browsers. Thanks to Frank Danek. |
rbri |
 |
JavaScript: Processing of events for checkbox, radiobutton and select fixed. Thanks to Frank Danek. |
rbri |
 |
JavaScript: namespaceURI returns the correct value for html elements. Thanks to Frank Danek. |
rbri |
 |
JavaScript: fix parseInt() when the value has a leading 0. Fixes 1563. |
asashour |
 |
JavaScript: node and window.addEventListener() and .removeEventListener() are supported starting IE 9. Fixes 1536. |
asashour |
 |
JavaScript: XMLDocument.firstChild() is now enabled to support more nodes at the
root level like ProcessingInstruction, Comment. Thanks to Frank Danek. |
rbri |
 |
JavaScript: DomCharacterData.deleteData no longer wipes the string when called with an invalid
offset. Also the error handling is fixed. Thanks to Frank Danek. |
rbri |
 |
Use the same accept headers as browsers do. Fixes 1245. |
rbri |
 |
Possible dead lock in CSSStyleDeclaration fixed. Fixes 1530. |
rbri |
 |
JavaScript: Setting the value property of a select element does not trigger
the onfocus event handler. Fixes 1558. |
rbri |
 |
JavaScript: Fixed enctype form property default value. Fixes 1560. |
rbri |
 |
JavaScript: location.hash returns '#' in ie mode if the location url ends with '#'
(e.g. http://localhost/something/#). |
rbri |
 |
CSS: correct behavior of setting a style value to null. |
asashour |
 |
WebClient: .closeAllWindows() to delete all temporary files. |
asashour |
 |
JavaScript: add missing MessageEvent properties. |
asashour |
 |
JavaScript: fix window.postMessage() to verify protocol, port and hostname. |
asashour |
 |
JavaScript: XMLHttpRequest CORS handling fixed, some new tests added and implementation fixed. |
rbri |
 |
JavaScript: Simplified/fixed implementation of the onReadyStateChange handler call. |
rbri |
 |
JavaScript: XMLHttpRequest status and statusText throws an exception in IE8 depending
on the state of the request. |
rbri |
 |
JavaScript: XMLHttpRequest property 'withCredentials' is not setable in sync mode (browsers specific). |
rbri |
 |
JavaScript: XMLHttpRequest property 'withCredentials' is not available in IE8. |
rbri |
 |
JavaScript: element.setAttributeNode() applies to XML as well. Fixes 1553. |
asashour |
 |
JavaScript: HTMLElement.insertAdjacentHTML() is available in FF since version 8. |
rbri |
 |
JavaScript: Embed now supports the width and height property. |
rbri |
 |
JavaScript: send the correct Referer header when changing the location property. Fixes 1551. |
rbri |
 |
SSL: use default algorithm for fetching the KeyManagerFactory. |
asashour |
 |
BrowserVersion: remove deprecated FIREFOX_3_6, FIREFOX_10, CHROME_16, INTERNET_EXPLORER_6
and INTERNET_EXPLORER_7. |
asashour |
 |
HtmlElement: remove deprecated getElementById() and .hasHtmlElementWithId(),
and remove UrlUtils.encodeUrl(). |
asashour |
Release 2.13 – Oct 11, 2013
| Type |
Changes |
By |
 |
HtmlImage: close imageReader in finalize(). Fixes 1541. |
asashour |
 |
Upgrade NekoHtml to 1.9.19. |
mguillem |
 |
CSS: cssparser updated to 0.9.11. |
rbri |
 |
Fixed wrong scripting scope assignment when handling attachments. |
mguillem |
 |
JavaScript: TextRange: add getBookmark() and moveToBookmark(). Fixes 1499. |
asashour |
 |
JavaScript: .outerHTML don't check for correct tag closing in FF mode. |
rbri |
 |
IEConditionalCompilationScriptPreProcessor fix when evaluated to false. Fixes 1502. |
asashour |
 |
JavaScript: add SVGSVGElement.createSVGRect(). Fixes 1538. |
asashour |
 |
JavaScript: .innerHTML to correctly process nested SVG elements. Fixes 1548. |
asashour |
 |
Date.toUTCString and Date.toGMTString now returns the correct format in IE mode. |
rbri |
 |
Date.toLocaleTimeString fixed in IE8 mode. |
rbri |
 |
Some debug log output added if HTMLDocument.canAlreadyBeParsed(String) returns false. Fixes 1524. |
rbri |
 |
Deprecate KeyDataPair. |
asashour |
 |
JavaScript: array.sort() to use Arrays.LegacyMergeSort with Java 7. Fixes 1511. |
asashour |
 |
JavaScript: support click method on any element for FF10+ too. |
mguillem |
 |
JavaScript: window.localStorage and .sessionStorage are supported in Chrome. Fixes 1539. |
asashour |
 |
JavaScript: node and window.addEventListener() and .removeEventListener() are supported in Chrome. Fixes 1545. |
asashour |
 |
CSS: Support selectors with more than one pseudo element (like '#list li:not(#item_1):not(#item_3)').
This was a problem with CSSParser and is fixed in version 0.9.11. |
rbri |
 |
JavaScript: HTMLStyleElement.type is writable. |
asashour |
 |
JavaScript: Missing setter for element.outerHTML in FF17 fixed. |
rbri |
 |
Upgrade Apache HttpClient to 4.3.1. |
asashour |
 |
KeyDataPair: deprecate getContentType(). |
asashour |
 |
JavaScript: fixed ClassCastException on TypedArray creation with start offset specified. Fixes 1542. |
mguillem |
 |
Correct processing of the target window for anchors with hash-only href attribute. Fixes 1537. |
rbri |
 |
JavaScript: added support for the 'type' and 'media' property of style elements. |
rbri |
 |
WebClient.getTopLevelWindows() now returns a snapshot of the list of top level windows
to avoid ConcurrentModificationExceptions while using this list. Fixes 1534. |
rbri |
 |
In case the server reports an error via HTTP error code, the current page content
was not replaced with the content of that error page if the error was the result
of a form submit or an anchor click. |
rbri |
 |
JavaScript: added (simple) support for window.postMessage. Fixes 1481. |
mguillem |
 |
XMLHttpRequest open(..) methods failed when called with null for userid/password. Fixes 1532. Thanks to Sebastian Cato. |
rbri |
 |
XMLHttpRequest open(..) methods delivers wrong credentials. Fixes 1531. Thanks to Sebastian Cato. |
rbri |
 |
attr.baseURI not supported for FF. |
rbri |
 |
node.baseName not supported for XML nodes (IE). Fixes 1525. |
rbri |
 |
node.text is unsupported for text nodes in XML documents. Fixes 1523. Thanks to Chuck Dumont. |
rbri |
 |
XPathEvaluator.evaluate() ignores namespace resolver. Fixes 1528. Thanks to Chuck Dumont. |
rbri |
 |
XPathResult types STRING_TYPE, NUMBER_TYPE and BOOLEAN_TYPE don't work. Fixes 1527. Thanks to Chuck Dumont. |
rbri |
 |
Method document.createStyleSheet is more compatible with the IE; now the associated
link node is also created and inserted at the right place in the header. The new link
node is the ownerNode of the stylesheet. Fixes 1520. |
rbri |
 |
Using a wrong index when addressing an StyleSheetList always throws an Exception in IE. |
rbri |
 |
Fix the way we search for some java methods when creating a XML document from ActiveXObject.
This should work with all JavaVMs now. Fixes 1521. |
rbri |
 |
Improved namespace support for XPath expressions. Fixes 1519, 1522. Thanks to Chuck Dumont. |
rbri |
 |
Upgrade Apache HttpClient to 4.2.5. |
rbri |
 |
Support for the label property added to the optgroup element. |
rbri |
 |
Ensure that onchange event isn't called at focus lost after usage of HtmlInput.setValueAttribute. Fixes 1518. |
mguillem |
 |
JavaScript: add support for XPathEvaluator (FF & Chrome). Fixes 1516. |
mguillem |
 |
The display property now returns the correct default value for all HTML tags. |
rbri |
 |
Respect the media type when processing the import rules from a CSS style sheet. Fixes 1515. Thanks to Guy Burton. |
rbri |
 |
JavaScript: add basic support for window.navigator.security (FF only). |
mguillem |
 |
Make the handling of empty responses more error proof. Fixes 1510. |
rbri |
 |
Textarea cols() and rows() property processing fixed. |
rbri |
 |
Basefont support removed from Firefox after 3.6. |
rbri |
 |
Adjust the window.outherHeight for the newer FF versions. |
rbri |
 |
Use the correct frame/iframe for a given target if more than one exists for the given name. Fixes 1488. |
rbri |
 |
The value of input controls changes when the defaultValue was changed in IE8ff. |
rbri |
 |
The default value of input-file is no longer empty in IE8ff. |
rbri |
 |
Checked state of radio buttons and checkboxes changes when setting defaultChecked in IE8. |
rbri |
 |
Upgrade commons-codec to 1.8. |
rbri |
 |
JavaScript: fix the mousedown/mouseup events triggered when clicking on an option. |
rbri |
 |
JavaScript: starting with IE8 the radio button checked state is reseted to false
when adding to page. |
rbri |
 |
JavaScript: load the source of a dynamically created HTML(I)FrameElement first when it is added to the DOM. |
mguillem |
 |
JavaScript: IE 9 supports String.trim(). Fixes 1501. |
rbri |
 |
Upgrade commons-logging to 1.1.2. |
rbri |
 |
Proxy configuration now respects the bypass host also after the proxy was used for another host before. Fixes 1486. Thanks to John J Murdoch. |
rbri |
 |
JavaScript: image.width() and image.height() are returning now the correct image size. Fixes 1476. |
rbri |
 |
JavaScript: DOMTokenList now works like in FF (different from spec). Some NPE exceptions
are fixed, separator chars are fixed, and we are able to create an attribute if needed. |
rbri |
 |
JavaScript: Removing frame tag removes the associated FrameWindow also. Fixes 1497. |
rbri |
 |
HtmlPage.getElementById: always return the first element in document order (and not the first parsed one). |
mguillem |
 |
DomNode.querySelectorAll: return nodes matched by many selectors only once. |
mguillem |
 |
JavaScript: JS click() method triggers onchange handler on checkbox and radio button. |
mguillem |
 |
DomNode.removeAllChildren should not detach nested children from their parent node. Fixes 1494. |
mguillem |
 |
WebRequest: deprecate constructor (WebRequest, URL). |
rbri |
 |
JavaScript: Attribute.expando now returns the correct value instead of the so far hard coded true (IE only). Fixes 1493. Thanks to Barry Pitman. |
rbri |
 |
WebClient: remove deprecated setPrintContentOnFailingStatusCode(), getPrintContentOnFailingStatusCode(),
setThrowExceptionOnFailingStatusCode(), isThrowExceptionOnFailingStatusCode(), setJavaScriptEnabled(),
isJavaScriptEnabled(), setCssEnabled(), isCssEnabled(), setAppletEnabled(), isAppletEnabled(),
setPopupBlockerEnabled(), isPopupBlockerEnabled(), getHomePage(), setHomePage(), getProxyConfig(),
setProxyConfig(), setRedirectEnabled(), isRedirectEnabled(), setUseInsecureSSL(), setActiveXNative(),
isActiveXNative(), getTimeout(), setTimeout(), isThrowExceptionOnScriptError(),
setThrowExceptionOnScriptError() and setSSLClientCertificate(). |
asashour |
 |
Remove deprecated BaseFrame, Htmlpage.getElementByAccessKey(), HtmlPage.getElementsByAccessKey(). |
asashour |
Release 2.12 – Mar 6, 2013
| Type |
Changes |
By |
 |
BrowserVersion: support FF17, deprecate FF3.6. |
mguillem |
 |
JavaScript: add support for window.onchange handler (FF10+ and Chrome). Fixes 1484. Thanks to Hartmut Arlt. |
mguillem |
 |
Fixed synchronization problem causing a task triggered by setTimeout to be executed to early, before event handlers. |
mguillem |
 |
CookieManager: changed getCookies to return a copy of the current set of cookies to avoid ConcurrentModificationException. |
mguillem |
 |
JavaScript: add empty implementations of CanvasRenderingContext2D methods createImageData,
createPattern, createRadialGradient, fillText, getImageData, getLineData, isPointInPath,
measureText, putImageData, rect, rotate, setTransform, strokeText, and transform (FF). |
mguillem |
 |
Support for CSS pseudo selector ':target' added. |
rbri |
 |
JavaScript: add DocumentFragment.querySelectorAll()/DocumentFragment.querySelector(). |
rbri |
 |
JavaScript: move method contains to Node, throw runtime exception on invalid argument. Fixes 1480. |
mguillem |
 |
Method innerHTML does not encode entities for style tags. |
rbri |
 |
Initial support for HtmlMeter (FF 17). |
mguillem |
 |
JavaScript: fixed exception occurring while testing window or document == "some string". Fixes 1479. |
mguillem |
 |
Support for CSS pseudo selector ':focus' added. Fixes 1478. |
rbri |
 |
When simulating IE, the initial focus for a page is on the html element. |
rbri |
 |
JavaScript: fixed hanging problem (infinite loop) after Object function was called with a window as parameter. |
mguillem |
 |
JavaScript: determine default path for cookies set with document.cookie from current URL. Fixes 1458. |
mguillem |
 |
JavaScript: place document before window in scope chain for event handlers defined in HTML attributes. Fixes 898. |
mguillem |
 |
JavaScript: added basic support for SVGAngle and SVGMatrix. |
mguillem |
 |
JavaScript: HTMLDocument.createElementNS can create SVG elements. |
mguillem |
 |
JavaScript: add support for SVGSVGElement's style property and basic support
for methods createSVGMatrix and getScreenCTM. |
mguillem |
 |
JavaScript: add support for CanvasRenderingContext2D.quadraticCurveTo (FF). |
mguillem |
 |
JavaScript: execute onload handler of pages loaded in a frame, replacing a previous content. Fixes 1443. |
mguillem |
 |
Upgrade Apache HttpClient to 4.2.3. |
rbri |
 |
JavaScript: elements nested within an element with "display: none" have offsetHeight = offsetWidth = 0. |
mguillem |
 |
JavaScript: fixed wrong trigger of focus event in special cases when field loses focus. |
mguillem |
 |
JavaScript: ignore invalid indexes for History.go. |
mguillem |
 |
Some more elements to close "p": address, center, dd, dir, dl, dt, fieldset, listing, li, menu,
ol, pre, ul and xmp. |
asashour |
 |
Set max number of simultaneous connections per server to 6. |
mguillem |
 |
Handle pages with "application/javascript" content type as JavaScriptPage. Fixes 1471. |
asashour |
 |
CSS: support Selectors Level 3. |
asashour |
 |
JavaScript: fix document/element . querySelectorAll()/querySelector() (IE8). |
asashour |
 |
JavaScript: add document.documentMode (IE). |
asashour |
 |
Fix URL handling of local files in Windows, if they have folders starting with dot. |
asashour |
 |
JavaScript: add document.implementation.createDocument for Chrome. |
asashour |
 |
UrlUtils: deprecate encodeUrl(URL, boolean). |
asashour |
 |
Fix the encoding of clicked links to match the enclosing page (FF). Fixes 1402. |
asashour |
 |
Upper-case the charset detected from "meta" tag. |
asashour |
 |
JavaScript: adjust availability of window.console (Firefox 4+, IE9+ and Chrome). |
mguillem |
 |
Fixed typo in method names of com.gargoylesoftware.htmlunit.WebConsole.Formatter. |
mguillem |
 |
JavaScript: add document.charset, .characterSet, .defaultCharset and .inputEncoding. |
asashour |
 |
CSS: fix DirectAdjacentSelector (E + F). |
asashour |
 |
JavaScript: fix the value of "(i in x)" for NodeList, HTMLCollection and CSSRuleList. Fixes 1456. |
asashour |
 |
HtmlElement: deprecate getElementById() and hasHtmlElementWithId(). |
asashour |
 |
BrowserVersion: deprecate INTERNET_EXPLORER_6, INTERNET_EXPLORER_7, FIREFOX_10, CHROME_16,
and make INTERNET_EXPLORER_8 the default one. Add INTERNET_EXPLORER_9,
FIREFOX_17 and CHROME. |
asashour |
 |
JavaScript: fix Date.toLocaleDateString() and .toLocaleTimeString(). Fixes 1467. |
asashour |
 |
Add BrowserVersion.clone(). |
mguillem |
 |
Fix a potential ConcurrentModificationException, on calling WebClient.getWebWindows(). |
asashour |
 |
WebClient.closeAllWindows() to delete all temporary created big files. Fixes 1344. |
asashour |
 |
JavaScript: .outerHTML of "basefont", "col", "embed" and "wbr" have forbidden end tag (FF). |
asashour |
 |
Escape "%%" in query string to avoid IllegalArgumentException. |
mguillem |
 |
JavaScript: initial support for HTMLBGSoundElement (IE). |
asashour |
 |
JavaScript: HTMLElement.outerHTML use lower case for unknown, "spacer" and "multicol" elements (IE). |
asashour |
 |
Fix URL manipulation (UrlUtils) for file URLs containing drive letter. |
rbri |
 |
JavaScript: fix handling relations of document type comment with <html> element (IE). |
asashour |
 |
JavaScript: properties of Array.prototype should be defined in standards mode (IE). |
asashour |
 |
JavaScript: correctly process null function handlers. |
asashour |
 |
JavaScript: correct select.value after enclosing form.reset(). |
asashour |
 |
JavaScript: XML: element.removeAttribute() is case-sensitive. |
asashour |
 |
Correctly handle local file URL if it is in a separate driver (Windows). Fixes 1464. |
asashour |
 |
JavaScript: fix the return value of element.getAttribute() in standards mode (IE). |
asashour |
 |
JavaScript: element.set/getAttribute() should fix the name (e.g. "className") only in quirks mode (IE). |
asashour |
 |
Cookies: use 1970 as two digits year start for the expiration date. |
mguillem |
 |
Cookies: accept more non standard date formats for the expiration date. |
mguillem |
 |
Properly handle spaces after elements: "abbr", "acronym", "basefont", "bdo", "big", "blink", "cite",
"code", "del", "dfn", "em", "ins", "kbd", "label", "map", "nobr", "q", "s", "samp", "small", "strike",
"sub", "sup", "tt" and "var". Fixes 1463. |
asashour |
 |
JavaScript: element.outerHTML should throw an error if the provided value closes the parent. Fixes 1452. |
asashour |
 |
JavaScript: element.outerHTML should not print end tag if it is forbidden. |
asashour |
![]() |
Change default RefreshHander to a NiceRefreshHandler(2). Fixes 1126. |
mguillem |
 |
Support Internationalized Domain Name (IDN). Fixes 1459. |
asashour |
![]() |
Change default network timeout from infinite wait to 90 seconds. |
mguillem |
 |
JavaScript: function name referenced before its declaration should be visible (IE). |
asashour |
 |
JavaScript: function name referenced before its declaration should throw an exception (FF). |
asashour |
 |
JavaScript: prevent infinite loop during adding a DomNode to itself. Fixes 1253. |
asashour |
 |
JavaScript: don't enumerate function properties "arguments" and "caller". |
mguillem |
 |
JavaScript: handle definition of "function object.property() {}" (IE). |
asashour |
 |
JavaScript: implement property HTMLElement.dataset (FF10). |
asashour |
 |
JavaScript: remove "constructor" property of host objects (IE). Fixes 1420. |
asashour |
 |
Cookie: remove deprecated (String name, String value) constructor. |
asashour |
Release 2.11 – Nov 6, 2012
| Type |
Changes |
By |
 |
Upgrade NekoHtml to 1.9.17. |
mguillem |
 |
JavaScript: remove unneeded global properties ("java", "Packages" and "getClass") (FF). |
asashour |
 |
JavaScript: implement "constructor" property of all host objects (FF). Fixes 1420. |
asashour |
 |
Properly handle spaces after "strong", "b", "i" and "u" elements. Fixes 1451. |
asashour |
 |
JavaScript: node.outerHtml not allowed for body and head nodes. |
rbri |
 |
JavaScript: "this === window" should be true. |
asashour |
 |
CSS: cssparser updated to 0.9.8. |
rbri |
 |
Avoid double form submission when the onclick handler of a submit button calls form.submit() and the submission is answered by a redirect. |
mguillem |
 |
JavaScript: implement window.dispatchEvent() (FF only). Fixes 1439. |
asashour |
 |
JavaScript: Some more fixes for correct calling of the Image onload handler. Fixes 1339. |
rbri |
 |
In some cases the javascript execution context was overwritten. This produces side effects like the one in this issue. Fixes 1433. |
rbri |
 |
Handle NoHttpResponseException like an HTTP error and ignore it when option throwExceptionOnFailingStatusCode is set to true. |
mguillem |
 |
Handle 'deflate' Content-Encoding with content compressed using GZip compatible mode. |
mguillem |
 |
JavaScript: setting iframe.src to 'about:blank' should not load the page. Fixes 1441. |
asashour |
 |
JavaScript: iframe.src should point to the related page. Fixes 1441. |
asashour |
 |
HtmlEmbed: add saveAs(File). Fixes 147. |
asashour |
 |
JavaScript: XMLHttpRequest: support Cross-Origin Resource Sharing (CORS). Fixes 1356. |
asashour |
 |
JavaScript: Image onload not called after src change (using setAttribute('src', ) instead of src property). Fixes 1435. |
rbri |
 |
DomNode: make .querySelectorAll() and .querySelector() public. Fixes 141. |
asashour |
 |
JavaScript: 'focus' and 'blur' event is triggered for 'document' descendants (FF and Chrome). Fixes 1314. |
asashour |
 |
Cookies: fix year with two digits. |
asashour |
 |
IE Conditional comments: handle "downlevel revealed" conditional cases. Fixes 1436. |
asashour |
 |
JavaScript: allow re-declaration of undefined, NaN and Infinity. Fixes 1399. |
mguillem |
 |
JavaScript: allow assignment to undefined, NaN and Infinity (FF3.6 and IE). |
mguillem |
 |
JavaScript: implement Typed Arrays, namely ArrayBuffer, DataView, Float32Array, Float64Array,
Int16Array, Int32Array, Int8Array, Uint16Array, Uint32Array, Uint8Array and Uint8ClampedArray. Fixes 1429. |
asashour |
 |
JavaScript: document.domain now allows the change from localhost to a different domain. Fixes 1340. |
rbri |
 |
JavaScript: exception.stack should not be defined in IE. |
asashour |
 |
JavaScript: WebWindow: add getters and setters for window width and height. |
asashour |
 |
JavaScript: add support for HTMLMediaElement.canPlayType(). |
asashour |
 |
Fixed NPE in HtmlPage.getTitleText() and WebClient.closeAllWindows() occurring when document.documentElement has been removed. Fixes 1154. |
mguillem |
 |
JavaScript: add support for CSSFontFaceRule (Firefox). |
mguillem |
 |
JavaScript: ensure that property "argument" of a function is null outside of it's scope. |
mguillem |
 |
JavaScript: add support for getAttributeNS, hasAttributeNS, removeAttributeNS, and setAttributeNS on Element (Firefox). Fixes 154. Thanks to lexicore. |
rbri |
 |
Missing synchronization in StorageImpl fixed. Fixes 1437. |
rbri |
 |
NPE fix for Range.htmlText. |
rbri |
 |
NPE fix for Range.parentElement(). |
rbri |
 |
Empty responses marked as GZip encoded no longer throwing an error. Fixes 1434. |
rbri |
 |
UrlUtils: fix an infinite loop when base URL is relative. Fixes 1431. |
asashour |
 |
JavaScript: ClassCastException in Window.jsxFunction_open() fixed. Fixes 1432. |
rbri |
 |
Timeout configuration changes are now taken into account. |
mguillem |
 |
WebClient: deprecated setTimeout() and getTimeout().
Use webClient.getOptions() instead. |
mguillem |
 |
JavaScript: HTMLTableElement.refresh is only available when simulating IE. |
rbri |
 |
JavaScript: HTMLTableElement.moveRow, HTMLTableSectionElement.moveRow, Tfoot.moveRow,
and THead.moveRow are only available when simulating IE. |
rbri |
 |
INCOMPATIBLE CHANGE: WebResponseDate.getInputStream(), BinaryPage.getInputStream(), UnexpectedPage.getInputStream(),
WebResponse.getContentAsStream(), and WebResponseWrapper.getContentAsStream() are throwing an IOException now. |
rbri |
 |
JavaScript: fixed namespace handling for nodes imported from an xml document via document.importNode(). Fixes 1427. |
rbri |
 |
DebuggingWebConnection: fixed IOException occurring while working with gzip encoded JavaScript responses. |
mguillem |
 |
JavaScript: disabled (limited) JavaScript execution in HtmlPage instances that are not "active" anymore. |
mguillem |
 |
JavaScript: improved verifications to avoid that background tasks continue to run when page has been unloaded. |
mguillem |
 |
Google App Engine support: don't follow redirects automatically in UrlFetchWebConnection. Fixes 1425. |
mguillem |
 |
Add SOCKS proxy support for HTTPS. Fixes 1206. |
mguillem |
 |
HttpWebConnection: removed setUseInsecureSSL. Settings is now read from WebClientOptions. |
mguillem |
 |
INCOMPATIBLE CHANGE: The interface HTMLParserListener is enhanced to be able to
handle the html source when parsing a snippet. |
asashour |
 |
WebClient: getWebConnection() and setWebConnection() are part of the public APIs. |
asashour |
 |
JavaScript: remove customized "eval", and depend on core-js. Fixes 1130. |
asashour |
 |
BackgroundJavaScriptFactory is now configurable. Fixes 208. |
rbri |
 |
JavaScript: function.arguments can be read-only (Chrome). |
asashour |
 |
JavaScript: align property support added to heading elements |
rbri |
 |
JavaScript: setting script.text re-executes the script (IE)
(in IE mode). Fixes 1078. |
rbri |
 |
JavaScript: fix various problems with re-execution of script. Fixes 1416. |
rbri |
 |
JavaScript: event handler functions should have a name. |
asashour |
 |
JavaScript: implement function.arguments, and correct Arguments default value. Fixes 1421. |
asashour |
 |
JavaScript: let event.type and .button, .clientX, .clientY to have setters. |
asashour |
 |
JavaScript: fix cases when trying to set a read-only attribute. Fixes 1422. |
asashour |
 |
Add support for "Do Not Track" feature (FF10 only). |
asashour |
 |
WebClient: deprecate setJavaScriptEnabled(), isJavaScriptEnabled(),
setThrowExceptionOnScriptError(), isThrowExceptionOnScriptError(),
setThrowExceptionOnFailingStatusCode(), isThrowExceptionOnFailingStatusCode(),
setCssEnabled(), isCssEnabled(), setAppletEnabled(), isAppletEnabled(),
setPopupBlockerEnabled(), isPopupBlockerEnabled(), setRedirectEnabled(), isRedirectEnabled(),
setUseInsecureSSL() and setSSLClientCertificate(), setHomePage(), getHomePage(),
setPrintContentOnFailingStatusCode(), getPrintContentOnFailingStatusCode(),
getProxyConfig(), getProxyConfig(), setActiveXNative(), isActiveXNative().
Use webClient.getOptions() instead. |
asashour |
 |
JavaScript: implement navigator.buildID, .oscpu, .vendor and .vendorSub. |
asashour |
 |
JavaScript: fix document.bgColor, .fgColor, body.aLink, .bgColor, .link, .text and .vLink. |
asashour |
 |
JavaScript: implement document.getSelection(), .head, .alinkColor, .linkColor,
.vlinkColor, and window.dump(). |
asashour |
 |
DOM: implement text.getWholeText(). |
asashour |
 |
JavaScript: fix navigator.appMinorVersion, .cpuClass,
.systemLanguage and .userLanguage values. |
asashour |
 |
Geolocation: primitive support (FF only). Fixes 1331. |
asashour |
 |
Implement WebConsole and JavaScript Console (FF only). Fixes 1397. Thanks to Andrea Martino. |
asashour |
 |
JavaScript: implement element.classList (FF only). |
asashour |
 |
JavaScript: add element.children (FF), it was implemented for only IE. |
asashour |
 |
JavaScript: separate NodeList from previously existing HTMLCollection. |
asashour |
 |
JavaScript: add node.attributes and element.baseURI. |
asashour |
 |
JavaScript: incompatible objects with the respective BrowserVersion should be HTMLUnknownElement. |
asashour |
 |
Initial support for HtmlProgress (FF 10). |
asashour |
 |
JavaScript: implement document.scripts for FF 10 (in addition to already implemented IE). |
asashour |
 |
JavaScript: implement node.parentElement (FF 10). |
asashour |
 |
Initial SVG support. |
asashour |
 |
INCOMPATIBLE CHANGE: rename IElementFactory to ElementFactory,
and change the return type of its methods from HtmlElement to DomElement. |
asashour |
 |
HtmlPage: cloneNode() should clone the underlying ScriptObject. |
asashour |
 |
HtmlElement: support special keys for .type(int). |
asashour |
 |
BaseFrame: is now deprecated, please use BaseFrameElement instead. |
asashour |
 |
BaseFrameElement: create a WebWindow for the new clone instance. Fixes 1195. |
asashour |
 |
Cookies: enable cookies after being disabled, should work. Fixes 1235. |
asashour |
 |
DomElement: now implements ElementTraversal, with the corresponding JavaScript getters (FF only). Fixes 1141. |
asashour |
 |
JavaScript: implement more Range methods. Fixes 1209. Thanks to James Phillpotts. |
asashour |
 |
JavaScript: document.getElementById() finds non-HTML elements. Fixes 1295. |
asashour |
 |
HtmlPage: deprecate .getElementByAccessKey(), use .getHtmlElementByAccessKey() instead. |
asashour |
 |
INCOMPATIBLE CHANGE: change the return type of HtmlPage.getElementById(),
.getElementByName(), .getElementsByName(),
.getElementsByTagName(), .getElementsByIdAndOrName()
and HtmlElement.getChildElements()
from HtmlElement to DomElement. |
asashour |
 |
Mandate Java 6 as a minimum requirement. |
asashour |
 |
Delete temporary generated files on page.cleanUp(). Fixes 1344. Thanks to Nicolas Belisle. |
asashour |
 |
JavaScript: DocType is handled as Comment (IE only). |
asashour |
 |
JavaScript: HTMLGenericElement instead of HTMLUnknownElement,
and HTMLCommentElement instead of Comment (IE only). |
asashour |
 |
JavaScript: object default value to contain the name, in strict mode (IE only). |
asashour |
 |
JavaScript: Node should not define '.innerText'. |
asashour |
 |
JavaScript: comments are elements, most properties implemented (IE8 only). |
asashour |
 |
JavaScript: document.getElementById() should not search by name, with strict mode (IE8 only). |
asashour |
 |
JavaScript: initial WebSocket support. |
asashour |
 |
Remove deprecated BrowserVersion.FIREFOX_3. |
asashour |
Release 2.10 – Jul 21, 2012
| Type |
Changes |
By |
 |
CSS: handling attributes which do not need explicit values, e.g. [disabled]. |
asashour |
 |
Google App Engine support: allow frame loading. Fixes 1418. |
mguillem |
 |
Cookie: null path is treated as "/" in .equals() and .hashCode() |
asashour |
 |
Upgrade Apache HttpClient to 4.2.1. |
rbri |
 |
JavaScript: window.onhashchange support added. Fixes 1410. |
asashour |
 |
DomNode: fix potential NPE in DomNode.DescendantElementsIterator. Fixes 1404. |
asashour |
 |
JavaScript: add window.mozInnerScreenX, .mozInnerScreenY and .mozPaintCount (FF only). Fixes 1410. |
asashour |
 |
WebRequest: add default value for "Accept-Encoding" HTTP header. |
asashour |
 |
Fixed error processing when the onerror handler throws an error. Fixes 1406. Thanks to Hartmut Arlt. |
rbri |
 |
JavaScript: add DocumentFragment.createAttribute(), createComment(), createDocumentFragment(),
createElement() and createTextNode() (IE only). Fixes 1408. |
asashour |
 |
Some more style properties are now supported; IE8 simulation now supports the
same set of properties like the real one. |
rbri |
 |
Correct the formating of the opacity style value. Fixes 1405. |
rbri |
 |
Correct the handling of unsupported style properties when simulating IE. |
rbri |
 |
Truncate file names in HtmlPage.savePage and DebuggingWebConnection to avoid exception due to too long file names. |
mguillem |
 |
JavaScript: querySelector(All) throws for invalid selectors. |
mguillem |
 |
Java 7: fix SSLPeerUnverifiedException for valid certificates when WebClient.setUseInsecureSSL(true) is used. |
mguillem |
 |
Upgrade commons-codec to 1.6 |
rbri |
 |
Upgrade Apache HttpClient to 4.2. |
asashour |
 |
WebClient: add .setSSLClientCertificate() for client certificate authentication. Thanks to Martin Huber. |
asashour |
 |
CSS: The ':disabled' and the ':enabled' selector now works for all HtmlElements
implementing the DisabledElement interface. Now the selector
also checks e.g. Button and Textarea elements. |
rbri |
 |
JavaScript: handle out of bound moves for TextRange (IE only). Fixes 1357. Thanks to David Gileadi. |
mguillem |
 |
Google App Engine support: added basic cookie support. Fixes 1335. Thanks to Pieter Herroelen. |
mguillem |
 |
Fix XHR.onreadystatechange now supplies an event argument if simulating FF. Fixes 1365. |
rbri |
 |
Unauthorized response should be received only once, and subsequent
requests should have the Authentication string. |
asashour |
 |
INCOMPATIBLE CHANGE: do not allow WebClient.addRequestHeader("Cookie", value)
and Cookie must have a domain. |
asashour |
 |
Fix default content encoding for XML files. Fixes 1311. |
rbri |
 |
JavaScript: don't restrict XMLHttpRequest to same origin for FF 3.6 and upper. Fixes 1388. Thanks to James Phillpotts. |
mguillem |
 |
Upgrade CSS Parser to 0.9.7. |
asashour |
 |
Fix missing support for different handling of self closing tags
in HTML and XHTML. Fixes 1219. |
rbri |
 |
Fixed cookie threading issue. Fixes 1388. Thanks to James Phillpotts. |
mguillem |
 |
Fix a possible performance problem caused by a code fragment
no longer needed after the update to HttpClient 4.1. Thanks to Gareth Doutch. |
rbri |
 |
Upgrade Apache commons-io to 2.2. |
rbri |
 |
Check the onclick event for preventDefault/returnValue also when
the handler produces no result. |
rbri |
 |
Don't create a new Attr when setAttributeNode(Attr) is called. This fixes
jQuery.attr for IE browsers. Fixes 1375. |
rbri |
 |
HtmlElement attributes collection returns an empty attr for
'class' if simulating IE. |
rbri |
 |
Ignore gzip encoding problems when downloading external css content. Fixes 1389. |
rbri |
 |
Methods element.getElementsByTagName() and XMLDocument.getElementsByTagName()
are now namespace aware. |
rbri |
 |
Method element.querySelectorAll() now only selects descended
nodes of the element. |
rbri |
 |
Upgrade Apache HttpClient to 4.1.3. |
rbri |
 |
Call onload event for frames in the correct order. Fixes 925. |
rbri |
 |
Implement some more fixes for handling of '!important' rules. Fixes 1386. |
rbri |
 |
Avoid calling class.getPackage() because of broken class loader
implementation in ColdFusion. Fixes 1385. |
rbri |
 |
JavaScript: CSSStyleDeclaration.removeProperty is now available in FF mode. |
rbri |
 |
Some not needed exception declarations are gone. Fixes 1380. |
rbri |
 |
isDisplayed() has to return false for hidden form fields. Fixes 1376. Thanks to Hartmut Arlt. |
rbri |
 |
Cookies: add support for Set-Cookie attribute httpOnly. Fixes 1374. |
mguillem |
 |
JavaScript: fix strange return value
'net.sourceforge.htmlunit.corejs.javascript.UniqueTag.NOT_FOUND'
of ComputedStyle.getPropertyValue. |
rbri |
 |
JavaScript: make Element.getBoundingRect available when simulating FF too. |
mguillem |
 |
If JavaScript is disabled, don't download the image even if an onload
handler is defined. Fixes 1221. |
rbri |
 |
JavaScript: document.forms(0) is not valid in FF. Fixes 985. |
rbri |
 |
JavaScript: Initialization of the popup window misses some steps. Fixes 1134. |
rbri |
 |
JavaScript: Remove also the node parents from style cache when changing
a node, because some styles have an effect for the parent properties
also (e.g. height, width). Fixes 1021. |
rbri |
 |
JavaScript: script.text works correct now for script nodes with more
than one child node. |
rbri |
 |
JavaScript: possible ClassCastException fixed in JavaScriptExecutionJob.
Additionally cleaned up the code a bit and some more details added to the
error messages. Fixes 1354. Thanks to rmillet42. |
rbri |
 |
JavaScript: StyleSheet insertRule/addRule and deleteRule/removeRule
exception handling fixed. Now we reporting syntax errors back to
javascript. |
rbri |
 |
CSS: cssparser updated to 0.9.7-SNAPSHOT. |
rbri |
 |
Upgrade Apache commons-lang to 3.1. |
rbri |
 |
JavaScript: document.getElementsByClassNameNS("*", "html") now returns
the HTML tag for a page. Fixes 1363. Thanks to Daniel Wagner-Hall. |
rbri |
 |
JavaScript: concatenate all text nodes under a <script> tag when
calculating the script code. Fixes 1364. Thanks to Daniel Wagner-Hall. |
rbri |
 |
JavaScript: No execution of javascript, if script tag
imported (replaceChild) from different dom (xml). Fixes 1096. |
rbri |
 |
JavaScript: fix transformation of regular expressions like '{{something}}' into
java regular expressions. Fixes 1360. |
rbri |
 |
HtmlScript.asXml(): don't insert CDATA if it is already present. Fixes 1343. |
mguillem |
 |
HtmlTable.getCellAt() now works in complex situations with colspan and rowspan. Fixes 1359. |
rbri |
 |
Ignore expiration date if the format is incorrect for cookies set by the remote server.
Accept expiration dates enclosed with double quote. Fixes 1348. |
mguillem |
 |
JavaScript: NPE when the event handler performs only preventDefault(). Fixes 1184. |
rbri |
 |
JavaScript: Selecting an option via javascript (e.g. sel.options[1].selected = true)
no longer triggers the focus event. |
rbri |
 |
JavaScript: JavaScriptExecutor had a memory leak; the list of jobs was never cleaned. Thanks to rmillet. |
rbri |
 |
JavaScript: addEventListener/attachEvent are behaving like the browser if called with
null event handler. |
rbri |
 |
Rewritten applet support; we support now many jar archive files, the codebase attribute, parameters,
access to the codebase, documentbase and the parameters from the applet and LiveConnect (at the moment
this is only a small stub). |
rbri |
 |
Upgrade Apache commons-io to 2.1. |
rbri |
 |
JavaScript: fixed StackOverflowError occurring with onload handlers in documents created with document.write (IE only). Fixes 1346. |
mguillem |
 |
Better error message if browser configuration contains an unknown key. Fixes 1347. Thanks to Marco Cova. |
rbri |
 |
JavaScript: 'onload' handler for iframes was not called if an iframe without
src attribute was added from javascript. Fixes 1334. |
rbri |
 |
JavaScript: 'onload' handler for iframes was called if an iframe was added
to an document fragment. Fixes 1334. |
rbri |
 |
JavaScript: 'onload' handler for iframes was not called in IE mode if an iframe was added
to an document fragment and after that the iframe was added to the document itself. Fixes 1334. |
rbri |
 |
Malformed HTML code: handle nested forms. |
mguillem |
 |
Add NiceRefreshHandler. Fixes 1126. |
mguillem |
 |
Click on a selected option in a multiple select element unselects it. |
mguillem |
 |
JavaScript: StringIndexOutOfBoundsException when calling TextRange.text. |
rbri |
 |
CSS: forward the URI of an style sheet to the CSS parser for better error messages. Fixes 1337. Thanks to Anton Kozak. |
rbri |
 |
JavaScript: IEConditionalCompilationScriptPreProcessor throws exceptions for some scripts. Fixes 1325. Thanks to Adam Doupe. |
rbri |
 |
JavaScript: document property 'activeElement' is now available in FF3.6 mode. Fixes 1333. Thanks to Hartmut Arlt. |
rbri |
 |
SSL: for web servers which support only SSLv3, try to explicitly reconnect with that version. |
asashour |
 |
JavaScript: trim value of type attribute before to verify it (FF only). Fixes 1332. |
mguillem |
 |
CSS: support for @font-face fixed. Fixes 1066. |
rbri |
 |
JavaScript: document property 'readyState' is now available in FF3.6 mode. Fixes 1321. Thanks to Hartmut Arlt. |
rbri |
 |
Remove deprecated WebRequestSettings, WebResponseImpl, some BrowserVersion constants,
DefaultCredentialsProvider.addProxyCredentials() and WebResponse.getContentAsBytes(). |
asashour |
Release 2.9 – Aug 9, 2011
| Type |
Changes |
By |
 |
CSS: pseudo class 'disabled' now supported in FF mode. |
rbri |
 |
JavaScript: properly handle XML inside frame. Fixes 1312. |
asashour |
 |
JavaScript: Wrong offsetHeight for elements with height set to 0px fixed. Fixes 1290. |
rbri |
 |
Initial support for css background shorthand added. Fixes 1293. |
rbri |
 |
JavaScript: avoid encoding of % in Location.href when set as part of Location.hash. |
mguillem |
 |
HtmlPage.savePage: ensure that the right option is saved as selected. |
mguillem |
 |
JavaScript: ensure that first cell off each row has the same offsetLeft. Fixes 1251. |
mguillem |
 |
Missing history update during window.location.replace(newUrl) fixed. Fixes 1302. Thanks to Hartmut Arlt. |
rbri |
 |
NullPointerException in css parser error handler fixed. Fixes 1300. |
rbri |
 |
JavaScript: Fix for null index handling when adding a select option. Fixes 1298. |
rbri |
 |
JavaScript: zIndex handling fixed in many ways. Fixes 1299. |
rbri |
 |
JavaScript: fixed IndexOutOfBoundsException when accessing the CSSRuleList. Thanks to Peter Wilkinson. |
rbri |
 |
JavaScript: add support for CssStyleSheet removeRule & deleteRule. Fixes 1296. Thanks to Peter Wilkinson. |
rbri |
 |
JavaScript: add support for element.removeAttributeNode() for IE too. Fixes 1294. |
mguillem |
 |
In some cases a new window was not attached to the JavaScript
background worker thread. |
rbri |
 |
HtmlPage.save: fix exception occurring when a referenced image is not an image. |
mguillem |
 |
JavaScript: fix string conversion of native functions. |
mguillem |
 |
Parsing: accept self closing <iframe/> tags when simulating IE. |
mguillem |
 |
Fix a NPE because of bugs in NamedAttrNodeMapImpl. Fixes 1291. |
rbri |
 |
CSS: support for media="all" added. Fixes 1292. |
rbri |
 |
Wrong DOM node generated for tables. Fixes 1271. |
rbri |
 |
CCS parsing not required for Page.getTitleText(). Fixes 1199. |
rbri |
 |
JavaScript: add support for NamedNodeMap.removeNamedItem. Fixes 1270. |
mguillem |
 |
NPE fixed when CSS style declarations are addressed from JavaScript. |
rbri |
 |
INCOMPATIBLE CHANGE: The whole construction/setup of the AbstractHttpClient is now done
by the factory method com.gargoylesoftware.htmlunit.HttpWebConnection.createHttpClient().
Only the setup of our cookie spec factory is done outside this call because this is
really required later on. This gives you more flexibility setting up your own client.
If you already do this, please check your implementation for compatibility. Fixes 1267. |
rbri |
 |
JavaScript property mediaText and function item added to class MediaList. |
rbri |
 |
JavaScript support for class CSSMediaRule added. |
rbri |
 |
Avoid exception occurring when script's src attribute is only "http://". Fixes 1267. |
mguillem |
 |
Recursion in CSS import causes stack overflow. Fixes 1088. |
rbri |
 |
Fix order of steps during Window initialization to avoid NPE in later access. Fixes 1273. Thanks to Kohsuke Kawaguchi. |
rbri |
 |
DefaultCredentialsProvider: reactivate removed addNTLMCredentials and addNTLMProxyCredentials
as HttpClient 4.1 now provides full support for NTLM authentication. |
mguillem |
 |
Upgrade Apache HttpClient to 4.1.1. |
mguillem |
 |
Use correct separator for 'src' and 'href' attributes. Fixes 1268. |
rbri |
 |
Follow hyperlink when click is performed on a nested element. Fixes 1265. |
rbri |
 |
XMLSerializer.serializeToString() generate lower case tags for FF 3.6. |
rbri |
 |
XMLSerializer.serializeToString() generates self closing tags as
defined by xhtml (only FF 3.6). Fixes 1228. |
rbri |
 |
Fix synchronization problem causing wrong page to be occasionally loaded into a window. Fixes 1259. Thanks to Nikolai Avteniev. |
mguillem |
 |
INCOMPATIBLE CHANGE: The WebRequest no longer has a CredentialProvider as attribute.
Now there are two attributes of type Credentials named urlCredentials and credentials.
The attribute credentials has a getter and a setter method; the urlCredentials are
only addressable via getter call. This change was needed to support credentials as part
of the url. |
rbri |
 |
Improved memory handling of JavaScriptExecutor. Thanks to Kostadin Chikov. |
rbri |
 |
Upgrade Apache commons-io to 2.0.1. |
rbri |
 |
Calculation for the next execution time of jobs (setInterval)
fixed for some cases. Thanks to Nikolai Avteniev. |
rbri |
 |
JavaScript: fix exception in getComputedStyle occurring while evaluating child selector
for node within a DocumentFragment. Fixes 1258. |
mguillem |
 |
Follow hyperlink when click is performed on a nested element. Fixes 1240. |
mguillem |
 |
IFrame created from javascript doesn't load source'. Fixes 1205. |
rbri |
 |
Initialization of iframes corrected, if content was
written from javascript. Fixes 1160. |
rbri |
 |
Remove expired cookies. Fixes 1252. Thanks to Nikolai Avteniev. |
mguillem |
 |
Serialization support fixed for Pages with unfinished
JavaScriptJob's. These jobs are NOT serialized. Fixes 1200. |
rbri |
 |
JavaScript: user and password parameters for the
XMLHttpRequest.open method are optional; the check
of there existence is fixed. Only if a user is set,
a CredentialProvider is associated with the request
(witch overwrites the one from the WebClient). |
rbri |
 |
NPE if URL contains basic auth info without password. Fixes 1241. |
rbri |
 |
JavaScript: Use the right encoding for the implementation
of the loadXML and parseFromString methods. Fixes 1242. |
rbri |
 |
JavaScript: un-selecting selected option in a (single) select
causes the first option to be selected (FF) or is ignored (IE). Fixes 1247. |
mguillem |
 |
Send cookies ordered by more specific path attribute. Fixes 1212. |
mguillem |
 |
The script tag supports now the type 'application/x-javascript'
in Firefox mode. Fixes 1243. |
rbri |
 |
Improved synchronization and sleep() replaced by wait()
in JavaScriptJobManagerImpl. Fixes 1236. |
rbri |
 |
Upgrade Apache commons-lang to 2.6. |
rbri |
 |
Upgrade Apache HttpClient to 4.1. |
mguillem |
 |
File name is send to server if HtmlFileInput.setData was called. Fixes 1234. |
rbri |
 |
Url's like 'http://www.google.com/..' reduced to 'http://www.google.com/'. Fixes 1232. |
rbri |
 |
JavaScript: added support for CSSCharsetRule. Fixes 1226. |
mguillem |
 |
HtmlElement.type: respect maxLength (if any) for text and password input fields. Fixes 1175. |
mguillem |
 |
JavaScript: add dummy implementation of HTMLCanvasElement.toDataURL. Fixes 1222. |
mguillem |
 |
JavaScript: HTMLCanvasElement's width and height are of type Number not String. Fixes 1222. |
mguillem |
 |
JavaScript: added Range constants START_TO_START, START_TO_END, END_TO_START and END_TO_END as well as
basic implementation of Range.compareBoundaryPoints (FF only). |
mguillem |
 |
Accept cookies set by server responses even if the path doesn't match the one of the requested content. |
mguillem |
 |
NPE in XMLSerializer.save(page) if the page contains an image tag without src attribute or link without href. Fixes 1220. |
rbri |
 |
JavaScript: support addressing a StaticNodeList like an array (e.g. node = staticNodeList[i]).
This is done by prototype 1.6.1 if the querySelector API is available. |
rbri |
 |
JavaScript: add support for HTMLElement.querySelector and querySelectorAll for FF3.6 and IE8. Fixes 1201. |
rbri |
 |
DefaultCredentialsProvider: removed addNTLMCredentials and addNTLMProxyCredentials as HtmlUnit doesn't provide NTLM
support out of the box anymore since release 2.8. See "NTLM authentication" documentation for details on how to work with NTLM. |
mguillem |
 |
JavaScript: make window.top writable. |
mguillem |
 |
JavaScript: octal support added to the regular expressions. |
rbri |
 |
HtmlImage; reset image reader also if image is reloaded because of src attribute change. Fixes 1218. |
rbri |
 |
JavaScript: add support for HTMLDocument.querySelector and querySelectorAll for FF3.6 and IE8. |
mguillem |
 |
JavaScriptErrorListener added (WebClient.setJavaScriptErrorListener(JavaScriptErrorListener)). Fixes 1168. |
rbri |
 |
JavaScript: fixed internal error occurring in XMLDocument.loadXML with ill formed XML code. |
mguillem |
 |
JavaScript: HTMLElement.prototype.innertHTML should be undefined (FF). |
mguillem |
 |
Don't trim class attribute for FF3.6. |
mguillem |
 |
JavaScript: don't reduce multiple white spaces when reading innerHTML (FF only). |
mguillem |
 |
XMLSerializer should expand empty 'textarea'. |
asashour |
 |
JavaScript: location.href returns the right value after clicking on a link that jumps only to a different hash. |
rbri |
 |
Fixed reload handling if only the hash part of a url changed. Fixes 1169. |
rbri |
 |
HtmlSelect.setSelectedAttribute now returns the page in the WebClient's current window. Fixes 1146. |
mguillem |
 |
Parsing: <ins> is an inline element. Fixes 1144. |
mguillem |
 |
JavaScript: don't escape "+" in hash value (FF). Fixes 1177. |
mguillem |
 |
Cookies: consider quotes surrounding the value as part of the cookie value. Fixes 1050. |
mguillem |
 |
JavaScript: allow "//" in argument string of "new Function(...)". Fixes 1190. |
mguillem |
 |
JavaScript: add support for function HTMLSelectElement.item. |
mguillem |
 |
JavaScript: don't throw an exception when setting incorrect value to HTMLSelectElement.selectedIndex for FF3.6. |
mguillem |
 |
Fix IE conditional compilation bug (IE only). Fixes 1191. |
mguillem |
 |
JavaScript: add support for RegExp.$1..9, RegExp.lastMatch, RegExp.lastParen, RegExp.leftContext and RegExp.rightContext. |
rbri |
 |
JavaScript: add support for function HTMLOptionsCollection.remove (IE only). Fixes 1188. |
mguillem |
 |
Escape only <, & and " in attribute values where it was not yet the case (for instance HtmlSubmitInput). Fixes 1187. |
mguillem |
 |
Ignore leading and trailing spaces in namespace values. Fixes 1149. |
mguillem |
 |
HtmlTextArea.asXml(): don't append indent spaces before closing tag. Fixes 1174. |
mguillem |
 |
Fix exception when asking CookieManager for cookies of "about:blank". Fixes 1165. |
mguillem |
 |
JavaScript: add empty implementations of CanvasRenderingContext2D.translate and scale (FF). Fixes 1138. |
mguillem |
 |
Consider <noscript>'s body as plain text for FF and discard it totally for IE. |
mguillem |
 |
ObjectInstantiationException: updated to expose the underlying 'cause' exception. Fixes 1164. |
asashour |
 |
Deprecate BrowserVersion.FIREFOX_3. |
asashour |
 |
JavaScript: add support for anchor.rel, and .rev, and link.rev. Fixes 1155. |
asashour |
 |
Remove deprecated BrowserVersion.FIREFOX_2, DomNode.getAllHtmlChildElements() and WebResponse.getRequestUrl(). |
asashour |
Release 2.8 – Aug 5, 2010
| Type |
Changes |
By |
 |
HtmlOptionGroup: add utility method getEnclosingSelect(). Fixes 1153. |
asashour |
 |
HtmlRadioButtonInput: trigger onchange event handler on losing focus with IE. Fixes 1113. Thanks to Ronald Brill. |
asashour |
 |
Configure JavaScript executor thread as daemon thread. Fixes 1068. |
mguillem |
 |
JavaScript: initial support for HTMLAudioElement, HTMLSourceElement and HTMLVideoElement. |
asashour |
 |
Fix Content-Type header value on posting a form with "multipart/form-data" encoding. Fixes 1136. |
asashour |
 |
JavaScript: document.cookie should not return cookies that have expired since they have been set. Fixes 1142. |
mguillem |
 |
JavaScript: ignore expired cookies set by document.cookie. Fixes 1139. |
mguillem |
 |
JavaScript: XSLTemplate and XMLDOMParseError are not instantiable. |
mguillem |
 |
HTTP headers: 'Host' to be the first (FF only). Fixes 179. |
asashour |
 |
JavaScript: XMLHttpRequest.setRequestHeader ignores prohibited headers. |
mguillem |
 |
JavaScript: fix 'typeof window'. Fixes 1125. |
asashour |
 |
JavaScript: add dummy implementation of window.pageXOffset and .pageYOffset. Fixes 1123. |
asashour |
 |
Add support for Google App Engine. Fixes 162. Thanks to Amit Manjhi. |
mguillem |
 |
HtmlCheckBoxInput: trigger onchange event handler on losing focus. Fixes 1112. Thanks to Ronald Brill. |
asashour |
 |
Google App Engine support: WebClient uses per default UrlFetchWebConnection when Google App Engine is detected. |
mguillem |
 |
WebResponse.getLoadTime(): take body download time into account. Fixes 988. |
mguillem |
 |
Remove MemoryInputStream and BinaryPage introduced since release 2.7.
Download large binary content to a temporary file. |
mguillem |
 |
FileUpload: send Content-Type headers for file parts. Fixes 1118. |
asashour |
 |
JavaScript: allow access to lost elements per name from HTMLFormElement.elements in invalid HTML code. Fixes 1083. |
mguillem |
 |
XMLHttpRequest: post method to send query string. Fixes 1121. |
asashour |
 |
JavaScript: set a maximum for infinite recursion. Fixes 1091. |
asashour |
 |
Deprecate WebResponse.getContentAsBytes(). |
asashour |
 |
JavaScript: make form elements only accessible by their original name (IE)
or by all the names they have had (FF). |
mguillem |
 |
Deprecated IsDescendantOfContextualFormFunction. |
mguillem |
 |
JavaScript: fire onchange for <input type='password' ...> when field loses focus and value has been changed. Fixes 1115. Thanks to Ronald Brill. |
mguillem |
 |
Fix NullPointerExceptin occurring when for JavaScript submitting form with hash multiple times. Fixes 1102. |
mguillem |
 |
HtmlTextArea.asXml(): escape XML characters. Fixes 1092. Thanks to Amit Khanna. |
mguillem |
 |
JavaScript: events fired by HTMLOptionElement should have 'srcElement' of the enclosing Select. |
asashour |
 |
JavaScript: fix event.button of click events with IE. Fixes 1111. |
asashour |
 |
JavaScript HtmlUnit RegExp proxy: use empty string for existing replacement groups without value. Fixes 1095. Thanks to Ronald Brill. |
mguillem |
 |
HtmlPage.save: add support for (i)frames. |
mguillem |
 |
HtmlPage.save should not modify the current DOM. |
mguillem |
 |
JavaScript: window.execScript returns undefined and not null (IE only). Fixes 1105. |
mguillem |
 |
JavaScript: add support for function HTMLDocument.clear. |
mguillem |
 |
JavaScript: add support for globalStorage, localStorage and sessionStorage. Fixes 170. |
asashour |
 |
Page: add .getUrl(). |
asashour |
 |
Add support for SOCKS proxy (at WebClient and WebRequest levels). Fixes 169. |
asashour |
 |
Add UrlFetchWebConnection, an experimental WebConnection with limited functionalities but that doesn't require HttpClient. |
mguillem |
 |
HtmlArea: set 'Referer' header on clicking. |
asashour |
 |
Don't send charset information in Content-Type header for application/x-www-form-urlencoded POST requests. |
mguillem |
 |
Fix MemoryInputStream.read() for negative values. Fixes 1098. |
asashour |
 |
Upgrade HttpClient to 4.0.1. Fixes 157. Thanks to Nicolas Belisle. |
asashour |
 |
Deprecate BrowserVersion static constants. |
asashour |
 |
StringWebResponse: take care of provided charset for parsing. Fixes 1084. |
mguillem |
 |
JavaScript: support string.trim(), .trimLeft() and .trimRight() (FF 3.6 only). Fixes 1052. |
asashour |
 |
Initial support for FF 3.6. |
asashour |
 |
Implement DomComment.getCanonicalXPath(). Fixes 167. Thanks to Philip Graf. |
mguillem |
 |
INCOMPATIBLE CHANGE: WebResponse is now a class not an interface. WebResponseImpl is deprecated. |
asashour |
 |
Fix asText() of HtmlCheckBoxInput and HtmlRadioButtonInput. Fixes 1079. |
asashour |
 |
JavaScript: fix document.getElementsByTagName() for elements with prefix. Fixes 1069. |
asashour |
 |
HtmlImageInput: fix submitted parameters. |
asashour |
 |
BinaryPage: change threshold to 300 bytes, and handle chunked content. Fixes 1070. |
asashour |
 |
Deprecate WebRequestSettings, WebResponse.getRequestSettings() and MockWebConnection.getLastWebRequestSettings(). |
asashour |
 |
Correctly handle URLs with '%'. |
asashour |
 |
JavaScript: add support for KeyboardEvent.which (FF only). Fixes 1057. |
asashour |
 |
JavaScript: add support for navigator.productSub (FF only). Fixes 1059. |
mguillem |
 |
JavaScript: fix ClassCastException in window.open(). Fixes 1060. |
asashour |
 |
DomElement.asXml(): escape only <, & and " in attribute values. |
mguillem |
 |
HtmlPage: add .isQuirksMode(), .querySelector() and .querySelectorAll(). |
asashour |
 |
Remove StringScriptPreProcessor. |
asashour |
 |
JavaScript: add empty implementation of window.stop (FF only). Fixes 1048. |
asashour |
 |
JavaScript: fire (i)frames onload event even for non-HTML pages. |
mguillem |
 |
JavaScript: use a single Java thread for executing background JavaScript tasks. Fixes 159. Thanks to Amit Manjhi. |
mguillem |
 |
WebRequestSettings: add support for basic authentication inside the URL. Fixes 1036. |
asashour |
 |
DomNode.isDisplayed() (and by extension, DomNode.asText()) should ignore CSS styling when CSS has been disabled. Fixes 1040. |
sdanig |
 |
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. Fixes 998. |
sdanig |
 |
JavaScript: add support for HTMLTableCellElement.width and .height attributes. Fixes 966. |
asashour |
 |
JavaScript HtmlUnit RegExp proxy: don't escape unicode escape sequence in regular expression. Fixes 869. Thanks to Chris Frost. |
mguillem |
 |
Fix exception on HTTP response with code 302 without Location header. Fixes 869. |
mguillem |
 |
JavaScript: implement stack property on exceptions. Fixes 937. |
mguillem |
 |
HtmlTable.asText(): display first thead at the top, even if it appears after some tbody. Fixes 935. |
mguillem |
 |
JavaScript: fixed ClassCastException occurring in IE simulation while accessing XMLHttpRequest.responseXML
when content uses XHTML namespace and contains a checked radio button. Fixes 1033. Thanks to Benoit Heinrich. |
mguillem |
 |
JavaScript: offsetHeight and offsetWidth should be 0 for elements with display:none, regardless of their contents. Fixes 1037. |
sdanig |
 |
When applying CSS rules to elements, take the media type into account. Fixes 1035. |
sdanig |
 |
JavaScript: fixed exception when calling setTimeout during window unload. Fixes 1032. |
mguillem |
 |
Add BinaryPage to support download of large files. |
asashour |
 |
JavaScript: Form elements are also functions that take a child element's id, name or index and return the corresponding element (IE only). Fixes 987. |
sdanig |
 |
JavaScript: add support for element.removeAttributeNode() (FF only). Fixes 160. Thanks to Benoit Heinrich. |
sdanig |
 |
Add implementation of DomText.getCanonicalXPath(). Fixes 158. Thanks to Philip Graf. |
sdanig |
 |
JavaScript: img.onload functions not always called when img.src modified. Fixes 1029. Thanks to Benoit Heinrich. |
sdanig |
 |
JavaScript: Dynamically-added frame.onload and img.onload functions were sometimes being ignored. Fixes 1030. Thanks to Benoit Heinrich. |
sdanig |
 |
Clicking an element should make enclosing window the current one. Fixes 851. |
mguillem |
 |
Fixed ClassCastException occurring while accessing XMLHttpRequest.responseXML when content uses XHTML namespace and contains an (i)frame. Fixes 1026. |
mguillem |
 |
JavaScript: added simple implementation of TextRange.setEndPoint (IE only). |
mguillem |
 |
JavaScript: implement window.scroll(x, y), window.scrollBy(x, y), window.scrollTo(x, y), window.scrollByLines(lines)
and window.scrollByPages(pages). Fixes 972. |
sdanig |
 |
Parser: place text located between </TD> and </TR> before the enclosing TABLE. Fixes 1018. |
mguillem |
 |
JavaScript HtmlUnit RegExp proxy: handle two digits replacement references. Fixes 1024. |
mguillem |
 |
JavaScript: allow to set HTMLTableColElement's width to null. Fixes 1023. |
mguillem |
 |
INCOMPATIBLE CHANGE: add an extra parameter (int lineNumber) to ScriptPreProcessor.preProcess(). |
asashour |
 |
JavaScript: add dummy support for window.external.AutoCompletionSave() (IE only). Fixes 980. Thanks to Peter Faller. |
asashour |
 |
JavaScript: fix document.getElementsByName() to handle empty and null values. Fixes 977. Thanks to Tomasz Kalkosinski. |
asashour |
 |
Deprecation: remove DomText.splitDomText(), HtmlPage.getFirstAnchorByText(), WebClient.setIgnoreOutsideContent(),
WebResponse.getRequestUrl, .getRequestMethod() and .getContentCharSet(), HTMLParser.parse()
and WebRequestSettings.addAdditionalHeader(). |
asashour |
Release 2.7 – Feb 9, 2010
| Type |
Changes |
By |
 |
JavaScript: allow access to a frame through document.frameName (IE only). |
mguillem |
 |
JavaScript: better implementation of element.scrollLeft and element.scrollTop properties. Fixes 956. |
sdanig |
 |
JavaScript HtmlUnit RegExp proxy: handle $&, $' and $` in replacement string. Fixes 1016. |
mguillem |
 |
Removed public method HtmlForm.submit(SubmittableElement) without replacement (method was marked as internal API). |
mguillem |
 |
JavaScript: StringScriptPreProcessor to use Rhino AST. Fixes 1007. |
asashour |
 |
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. |
mguillem |
 |
JavaScript: fix dynamically loading of external script when loading a page as result of a click. Fixes 936. |
mguillem |
 |
JavaScript: resolve relative URLs from opener's URL when document.write is used in a window opened with window.open. Fixes 1005. |
mguillem |
 |
DomNode.asText(): don't include children of <noscript> if JavaScript is enabled. |
asashour |
 |
JavaScript: empty implementation of CanvasRenderingContext2D.drawImage() (FF). |
asashour |
 |
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). |
sdanig |
 |
JavaScript: execute script with event attribute only when value is "onload" (FF). |
mguillem |
 |
DomNode.asText(): H1, H2, H3, H4, H5 and H6 are blocks. Fixes 1013. |
mguillem |
 |
JavaScript: ensure that elements returned by Selection.getRangeAt are of the right type (FF only). |
mguillem |
 |
JavaScript: document body is selection's start element when designMode='on' is set and body has no child element (FF only). |
mguillem |
 |
Throw exception with explicit message when maximum of allowed HTTP redirects is reached. |
mguillem |
 |
JavaScript: fix parseFloat for values like "40em". Fixes 989. |
mguillem |
 |
JavaScript: add support for Function.caller. Fixes 1001. |
mguillem |
 |
Update htmlunit-core-js to Rhino head of 07.01.2010 + custom patches. |
mguillem |
 |
Redirect limit should apply regardless of whether or not the redirects are to the same URL. Fixes 1002. |
sdanig |
 |
JavaScript: fix value of element.offsetTop attribute when element's position is relative. Fixes 999. |
sdanig |
 |
JavaScript: fix format of document.lastModified attribute. Fixes 1004. Thanks to Richard Eggert. |
sdanig |
 |
JavaScript: fix XMLHttpRequest with empty body of 'PUT' method. Fixes 990. |
asashour |
 |
JavaScript: allow setting element.width and .height to a value that ends with 'px'. |
asashour |
 |
JavaScript: fix computed element widths and heights when percentages are involved in the CSS. |
sdanig |
 |
Deprecated BrowserVersion.FIREFOX_2. |
mguillem |
 |
Add WebClientUtils.attachVisualDebugger(WebClient). |
sdanig |
 |
JavaScript: add support for "onerror" event handlers on script nodes (FF only). Fixes 853. |
sdanig |
 |
JavaScript: better value for document.body.clientHeight. Fixes 973. |
sdanig |
 |
WebClient.closeAllWindows: improved JavaScript threads termination. |
mguillem |
 |
Add WebWindow.isClosed(). |
mguillem |
 |
JavaScript HtmlUnit RegExp proxy: escape dollar after escaped backslash. Fixes 995. |
mguillem |
 |
JavaScript HtmlUnit RegExp proxy: un-escape illegally escaped characters. Fixes 929. |
mguillem |
 |
Change TopLevelWindow and DialogWindow constructors' visibility to protected. |
mguillem |
 |
Don't pick invisible frame window as the current window. Fixes 996. |
mguillem |
 |
CSS: don't override rules with a higher specificity. |
mguillem |
 |
JavaScript: window.getSelection() returns null for frame windows that are not displayed (FF only). |
mguillem |
 |
MetaTag: fix NPE in encoding detection. Fixes 994. |
asashour |
 |
Don't skip form submission to same URL when triggered from an anchor with href="#". |
mguillem |
 |
JavaScript: added support for functions ScriptEngine, ScriptEngineMajorVersion, ScriptEngineMinorVersion, and ScriptEngineBuildVersion (IE only). Fixes 992. |
mguillem |
 |
JavaScript: keyCode of lower case characters is the same than upper case ones. Fixes 992. |
mguillem |
 |
JavaScript: add support for HTMLTextArea.setSelectionRange (FF only). Fixes 970. |
mguillem |
 |
JavaScript: enforce same-origin policy for XMLHttpRequest. Fixes 964. |
mguillem |
 |
Use style sheets too to compute DomNode.isDisplayed. |
mguillem |
 |
HtmlNoFrames.asText() returns empty string. Fixes 979. |
mguillem |
 |
JavaScript: XMLHttpRequest.responseXML is null when send() has not been called. |
mguillem |
 |
JavaScript: XMLHttpRequest.responseXML is accessible when no content type header is present. |
mguillem |
 |
JavaScript: log exceptions thrown in background threads. Fixes 982. |
asashour |
 |
IEConditionalCompilationScriptPreProcessor should ignore string literals. Fixes 932. |
asashour |
 |
HtmlNoFrames: preserve inner XML content. |
asashour |
 |
JavaScript: add support for ProcessingInstruction during parsing. Fixes 981. |
asashour |
 |
JavaScript: better calculation of element.offsetTop and element.offsetHeight properties. Fixes 968. |
sdanig |
 |
Implement setter and getter for textContent on DomAttr. |
mguillem |
 |
JavaScript: fix exception accessing selectionStart and selectionEnd on inputs of type password. |
mguillem |
 |
JavaScript: better calculation of element.offsetLeft property. Fixes 953. |
sdanig |
 |
JavaScript: document.write() should have an affect (by implicit postponed call to close()). Fixes 967. |
asashour |
 |
Empty frames added via JavaScript shouldn't ever really become the "current window". Fixes 961. |
sdanig |
 |
JavaScript: fix attribute.setNodeValue(). |
asashour |
 |
JavaScript: fix NPE when element.setAttributeNode() is called for non-existing attribute. Fixes 939. |
asashour |
 |
JavaScript HtmlUnit RegExp proxy: escape "$" in replacement string for String.replace. Fixes 963. |
mguillem |
 |
JavaScript HtmlUnit RegExp proxy: replace "$$" by "$" in replacement string for String.replace. Fixes 962. |
mguillem |
 |
DefaultCredentialsProvider: addCredentials should overwrite previous values. |
mguillem |
 |
JavaScript: fix setting of element.innerText and .textContent with empty string or null. Fixes 959. |
asashour |
 |
Meta refresh: handle space as separator between delay and url. Fixes 954. |
mguillem |
 |
JavaScript: events focus and blur don't apply to all kind of HTML elements. Fixes 940. |
mguillem |
 |
JavaScript: add support for onerror handler. Fixes 943. |
mguillem |
 |
Fix issue where WebClient.waitForBackgroundJavaScriptStartingBefore hangs (setInterval with short interval). |
mguillem |
 |
HtmlScript: "for" and "event" attributes for 'window' are ignored by FF. |
asashour |
 |
JavaScript: MouseEvent.initMouseEvent and KeyboardEvent.initKeyEvent initialize metaKey. Fixes 945. |
mguillem |
 |
Fixed StringIndexOutOfBoundsException occurring when typing in a cloned text input or textarea node. |
mguillem |
 |
JavaScript: pre-process \xDD in string literals before IE conditional compilation. Fixes 932. |
asashour |
 |
JavaScript: allow MouseEvent to have independent client coordinate values, if necessary. |
sdanig |
 |
Fix the DomNodeList returned by DomNode.getChildNodes() so that it behaves correctly when children are removed from the DOM. |
sdanig |
 |
Deprecate DomNode.getAllHtmlChildElements(); replaced by the more intuitively named DomNode.getHtmlElementDescendants(). |
sdanig |
 |
JavaScript: implement range.extractContents() (Firefox only). |
sdanig |
 |
JavaScript: properly handle body elements with qualified name. Fixes 933. |
asashour |
 |
Fix Node.setTextContent() to set the text for comment, cdata, text and processing instruction nodes,
rather than appending a new text node. |
sdanig |
 |
JavaScript: mouse event 'ondblclick' should not trigger 'onclick' handler. |
asashour |
 |
CSS: add support for rule priority. Fixes 930. |
mguillem |
 |
JavaScript: properly escape XML entities in .xml property (IE) and XMLSerializer (FF). |
sdanig |
 |
JavaScript: add support for HTMLDocument.lastModified. Fixes 927. |
mguillem |
 |
JavaScript: support the serialization of comments in .xml property (IE) and XMLSerializer (FF). |
sdanig |
 |
JavaScript: implement element.getAttributeNodeNS() (Firefox only). |
sdanig |
 |
JavaScript: XMLHttpRequest.open throws an exception when the provided url is null or an empty string. |
mguillem |
 |
Fix caching of page's document element even after the document element has been removed from the page. |
sdanig |
 |
JavaScript: add support for XMLHttpRequest.onload (Firefox only). |
sdanig |
 |
JavaScript: document.activeElement is the document body by default (IE only). |
sdanig |
 |
JavaScript: add support for selection.addRange(), selection.removeAllRanges() and selection.removeRange() (FF only). |
sdanig |
 |
JavaScript: add support for TextRange.htmlText and TextRange.moveToElementText (IE only). Fixes 926. |
sdanig |
 |
JavaScript: handle namespaces when serializing XML. Fixes 910. |
asashour |
 |
JavaScript: window.location should start with 'file:///' instead of just 'file:/' when dealing with a local file. |
sdanig |
 |
JavaScript: HTMLTableCellElement.cellIndex, HTMLTableRowElement.rowIndex
and sectionRowIndex (FF only) return -1 when the element is not added to the document. |
mguillem |
 |
Don't allow JavaScript catch statements to catch HtmlUnit internal errors. |
mguillem |
 |
JavaScript: fix how document.write() detects complete string. Fixes 905. |
asashour |
 |
The default value of range.startContainer and range.endContainer is the document itself (Firefox only). Fixes 923. |
sdanig |
 |
JavaScript: primitive support for xmlDocument.createNode() (IE only). Fixes 910. |
asashour |
 |
JavaScript: implement attributes.setNamedItem(). |
asashour |
 |
Avoid errors triggered by images with onload attributes and invalid src URLs. |
sdanig |
 |
HtmlPage.getPageEncoding() was sometimes returning a different encoding than the encoding actually used to parse the page. Fixes 914. |
sdanig |
 |
Implement DomAttr.getSpecified() and SgmlPage.createAttribute(). |
asashour |
 |
JavaScript: HTMLElement.offsetWidth and offsetHeight are 0 when the element is hidden. |
mguillem |
 |
DomNode.asText() considers UL content that is not within a LI too. Fixes 922. |
mguillem |
 |
Fix HtmlHtml.getCanonicalXPath() when document contains a doctype declaration. Fixes 921. |
mguillem |
 |
Form submission: don't send a Content-Type header when method is GET. |
mguillem |
 |
FormEncodingType.getInstance returns URL_ENCODED if the requested encoding type doesn't exist. Fixes 913. |
mguillem |
 |
JavaScript: don't call (i)frame's onload handler for the dummy page that fill the frame until the real content is loaded. Fixes 863. |
mguillem |
 |
Loading about:blank in an existing window resets the JavaScript scope for the window. |
mguillem |
 |
JavaScript: window.opener is always writable for IE and only in special cases for FF. |
mguillem |
 |
When a textarea receives focus its content is not selected and call to type(...) causes content to be appended. |
mguillem |
 |
Click on a non form element removes focus from current element and triggers handlers if needed. |
mguillem |
 |
JavaScript: respect headers set by XMLHttpRequest.setRequestHeader(). Fixes 918. |
asashour |
 |
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. Fixes 912. |
mguillem |
 |
List returned by HtmlPage.getElementsByIdAndOrName is now mutable. |
mguillem |
 |
JavaScript: delete operator should not walk property chain. Fixes 884. |
mguillem |
 |
Upgrade HtmlUnit-core-js to 2.7-SNAPSHOT (corresponds to head of Rhino trunk from Sep 21, 2009 + minimal adaptations). |
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). |
mguillem |
 |
JavaScript: properly handle element.textContent with null value (FF only). Fixes 917. |
asashour |
 |
JavaScript: set the checked property of input of type 'radio' to defaultChecked when it is attached (IE only). |
asashour |
 |
JavaScript: HTMLImageElement's height and width are numbers, not strings. Fixes 915. |
mguillem |
 |
HTMLElement.offsetWidth tries to compute width depending on the content when CSS attribute float is set to "right" or "left". |
mguillem |
 |
CSS: add support for CSS3 pseudo classes :root, :enabled, :checked. |
mguillem |
 |
JavaScript: HTMLStyleElement.sheet parses all child nodes and not only the first one. |
mguillem |
 |
JavaScript: fix style 'pixel' attributes. Fixes 904. |
asashour |
 |
JavaScript: HTMLTableElement's properties caption, tHead and tFoot are writable (FF only) with right parameters,
otherwise an exception is thrown. |
mguillem |
 |
JavaScript: add support for HTMLTableRowElement.sectionRowIndex. |
mguillem |
 |
JavaScript: add support for DOMException constants (FF only). |
mguillem |
 |
JavaScript: HtmlDocument.createTreeWalker accepts function as filter (FF only). |
mguillem |
 |
Fix memory leak when many different BrowserVersion instances used. Fixes 899. |
sdanig |
 |
JavaScript: HtmlButtonElement.type falls back to default value ("submit" for FF, "button" for IE) when attribute "type" is removed. |
mguillem |
 |
Add IE8 support. |
asashour |
 |
JavaScript: appendChild, insertBefore and replaceChild throw exception (FF) or silently fail (IE) when parameter is the HTML node. |
mguillem |
 |
HtmlAnchor: fix characters escaping if 'href' is a javascript. |
asashour |
 |
Correctly clean up "/./" and "/../" sequences from URLs. Fixes 901. Thanks to Rodney Gitzel. |
mguillem |
 |
JavaScript: fix button.type attribute. |
asashour |
 |
JavaScript: perform delayed form submission with fields and target values at the moment where HtmlFormElement.submit is called. |
mguillem |
 |
JavaScript: add primitive support for MutationEvent. |
asashour |
 |
JavaScript: use KeyboardEvent in htmlElement.type() and add support for .charCode. |
asashour |
 |
JavaScript: normal submit button action has priority over HtmlFormElement.submit() called in onclick handler. |
mguillem |
 |
JavaScript: when link's onclick changes location the next page is still the one mentioned in href. |
mguillem |
 |
JavaScript: avoid multiple form submissions when HtmlFormElement.submit() is called multiple times. |
mguillem |
 |
BrowserVersion: remove deprecated methods related to JavaScript version. |
asashour |
 |
Update JavaDoc of HtmlElement.click methods to reflect what already happens: click returns
the page in the WebClient's current window. |
mguillem |
 |
Remove deprecated ClickableElement and StyledElement. |
asashour |
Release 2.6 – Sep 2, 2009
| Type |
Changes |
By |
 |
JavaScript: add basic support for element.scopeName and .tagUrn (IE only). Fixes 897. |
asashour |
 |
JavaScript: HtmlFormElement.action returns the fully qualified URL (FF only). |
mguillem |
 |
JavaScript: setting HtmlTextAreaElement's defaultValue changes the current value if it is still the initial one (FF only). |
mguillem |
 |
JavaScript: add primitive support for KeyboardEvent. |
asashour |
 |
Allow "javascript:..." URLs with encoded script code. Fixes 894. |
sdanig |
 |
Use the browser language (from the BrowserVersion being used) to set the value of the "Accept-Language" HTTP header. Fixes 850. |
sdanig |
 |
Don't treat 304 responses as if they were redirections. Fixes 868. |
sdanig |
 |
JavaScript: node.insertBefore() handles undefined variable. Fixes 892. |
asashour |
 |
Cache: use cache for all kinds of (cacheable) content. |
mguillem |
 |
CSS: resolve relative URLs in @import rule from URL of current style sheet. |
mguillem |
 |
JavaScript: HTMLSelectElement throw exception when invalid value is set to selectedIndex (FF only). |
mguillem |
 |
DebuggingWebConnection: display received headers in generated report, added addMark method. |
mguillem |
 |
CookieManager: handle cookies with null value. |
asashour |
 |
JavaScript: handle empty code. |
asashour |
 |
Upgrade commons-codec to 1.4 |
asashour |
 |
JavaScript: document.getElementById() and document.getElementsByNames() trigger implicit document.close() calls (IE only). |
sdanig |
 |
JavaScript: window.frames returns a reference to the window itself. Fixes 873. |
sdanig |
 |
Force NekoHtml and Xalan to use xercesImpl 2.9.1 dependency. Fixes 151. |
asashour |
 |
Add selection-related methods to HtmlPasswordInput. Fixes 878. |
sdanig |
 |
JavaScript: fixed NPE calling inRange with selection range when nothing is selected (IE only). Fixes 886. |
mguillem |
 |
Add TITLE to HEAD even if it is found in BODY. Fixes 872. |
mguillem |
 |
Submit image button name too (FF only). |
mguillem |
 |
Include caption in HtmlTable's asText() representation. Fixes 883. |
mguillem |
 |
Fix DomNode.compareDocumentPosition() (FF only). |
asashour |
 |
JavaScript: add support for the compact attribute on ul, ol, menu, dl and dir elements. |
sdanig |
 |
JavaScript: implement node.normalize(). |
asashour |
 |
JavaScript: support the serialization of CDATASection in .xml property (IE) and XMLSerializer (FF). |
asashour |
 |
HtmlScript: fix the order of "type" and "language" attributes evaluation. |
asashour |
 |
DomText: deprecate splitDomText(), use splitText() instead. |
asashour |
 |
JavaScript: fix .prefix attribute of xml nodes. |
asashour |
 |
JavaScript: fix text.splitText(). |
asashour |
 |
JavaScript: implement xmlDocument.getElementsByTagName(), .getElementsByTagNameNS() and .nodeFromID(). |
asashour |
 |
Fix many issues with WebClient serialization and deserialization. Thanks to Nick Kralevich. |
sdanig |
 |
Load stylesheets referenced via @import. |
sdanig |
 |
JavaScript: fix XMLSerializer for non-element nodes (FF only). |
asashour |
 |
JavaScript: move .xml attribute from xmlElement to xmlNode (IE only). |
asashour |
 |
INCOMPATIBLE CHANGE: rename DomCData to DomCDataSection. |
asashour |
 |
JavaScript: node.appendChild() can be called inside xmlDocument. |
asashour |
 |
XmlDocument: implement .createProcessingInstruction() and .createCDATASection(). |
asashour |
 |
JavaScript: add support for map.areas attribute. |
asashour |
 |
JavaScript: process scripts with 'application/javascript' type (FF only). |
asashour |
 |
JavaScript: return collection if elements with duplicate IDs are found (IE only). |
asashour |
 |
Properly handle unicode characters in requested URLs. Fixes 859. |
asashour |
 |
Deprecate WebClient.setIgnoreOutsideContent and HTMLParser.setIgnoreOutsideContent. |
mguillem |
 |
Set 'referer' header on loading pictures and CSS files. Fixes 858. |
mguillem |
 |
JavaScript: add basic support for CSSValue, CSSPrimitiveValue, and CSSStyleDeclaration.getPropertyCSSValue (FF only). Fixes 867. |
mguillem |
 |
JavaScript: set currentTarget on event when event handler is called after global event listener. Fixes 867. |
mguillem |
 |
Cleanup "/./" and "/../" in URLs before to perform a request. Fixes 861. |
mguillem |
 |
Fixed ConcurrentModificationException occurring in invalidation of computed styles when
an other page tried to access some style information at the same time. Fixes 866. |
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). |
mguillem |
 |
CSS: invalidate style of child elements when node attribute is changed. |
mguillem |
 |
JavaScript: read only properties can't be written (FF3 only). |
mguillem |
 |
JavaScript: parseFloat trim leading new line signs. Fixes 852. |
mguillem |
 |
Incorrect HTML: move DIV within TABLE before the TABLE. Fixes 811. |
mguillem |
 |
HtmlPage.asXml(): don't escape XML special characters when style node contains an XML comment. Fixes 835. |
mguillem |
 |
Correctly fire load events attached to script nodes via addEventListener (FF only). Fixes 853. |
sdanig |
 |
JavaScript: document.namespaces can be used as a function (IE only). Fixes 855. |
sdanig |
 |
Fix NullPointerException thrown for script tags referencing a resource that returns a 204 (No Content) response. Fixes 854. |
sdanig |
 |
JavaScript: add support for the window.onbeforeunload attribute. Fixes 844. |
sdanig |
 |
JavaScript: add support for textarea.rows and textarea.cols attributes. |
sdanig |
 |
Some CSS properties are inherited from parent elements (computed styles only). |
sdanig |
 |
JavaScript: form submission should consider event.preventDefault() (FF only). Fixes 847. |
asashour |
 |
JavaScript: make dummy implementation of HtmlDocument.elementFromPoint available for FF as well. |
mguillem |
 |
JavaScript: add support for the colSpan, rowSpan, noWrap, axis and abbr attributes on td and th elements. |
sdanig |
 |
JavaScript: add support for the bgColor attribute on table, tr, td and th elements. |
sdanig |
 |
Add support for Proxy Auto-Config. Fixes 829. |
asashour |
 |
JavaScript: call onbeforeunload handler when TopLevelWindow.close() is called. Fixes 843. |
sdanig |
 |
JavaScript: reserve the duplicate ID attribute behavior on changing other attributes. |
asashour |
 |
JavaScript: add support for attributes align, vAlign, ch and chOff for thead, tbody, tfoot, tr, td, and th elements. |
sdanig |
 |
CSS: properly handle 'lang' condition. Fixes 840. |
asashour |
 |
Handle HTML pages with empty 'Content-Type' HTTP header. |
asashour |
 |
Handle 204 (No Content) HTTP responses correctly. Fixes 837. |
sdanig |
 |
JavaScript: implement TextRange.inRange (IE only). |
mguillem |
 |
Check meta tags inside HTML pages for encoding information. Fixes 838. |
sdanig |
 |
JavaScript: add support for br.clear attribute. |
sdanig |
 |
JavaScript: add support for option.form, legend.form, object.form and label.form attributes. |
sdanig |
 |
Add better support for XHTML pages (new XHtmlPage class extends HtmlPage class). Fixes 763. |
sdanig |
 |
JavaScript: add support for fieldSet.form and fieldSet.align attributes. |
sdanig |
 |
JavaScript: add support for body.aLink, body.background, body.bgColor, body.link, body.text and
body.vLink attributes. |
sdanig |
 |
JavaScript: add support for attr.isId attribute (Firefox 3 only). |
sdanig |
 |
Update page URL when navigating to a local anchor. Fixes 826. |
sdanig |
 |
JavaScript: implement placeholder functions history.back(), history.forward() and history.go(). Fixes 90. |
sdanig |
 |
JavaScript: fix setting select.value. |
asashour |
 |
Extending NodeList to implement List<E extends DomNode>. |
asashour |
 |
JavaScript: fix document.referrer. Fixes 834. |
asashour |
 |
JavaScript: fix document.createAttribute(). |
asashour |
 |
HtmlObject: "classid" is supported (using Jacob). Fixes 830. |
asashour |
 |
HtmlSelect: add .getOptionByText(). Fixes 137. |
asashour |
 |
HtmlPage and HtmlImage: add .save(). Fixes 135. |
asashour |
 |
Change default value for "Accept-Language" HTTP header to "en-us". |
asashour |
 |
HtmlForm: properly handle 'action' which starts with a question mark. Fixes 824. |
asashour |
 |
Deprecate WebRequestSettings.addAdditionalHeader() and HtmlPage.getFirstAnchorByText(). |
asashour |
 |
Handle XmlPage with NO_CONTENT HTTP status. Fixes 822. |
asashour |
 |
JavaScript: option.selected does not necessarily mean there is 'selected' attribute. |
asashour |
 |
JavaScript: correct attribute .firstChild and .lastChild (FF only). |
asashour |
 |
IE Conditional comments: handle comments with invalid expressions as plain text. Fixes 820. |
mguillem |
 |
JavaScript: handle multiple conditional compilation comments (IE only). Fixes 819. |
mguillem |
 |
JavaScript: document.getElementById() should be case insensitive (IE only). |
asashour |
 |
JavaScript: body element of a frame has to be null while loading only as long as nothing has been loaded (IE only). |
mguillem |
 |
JavaScript: initially implement properties of HTMLMetaElement. |
asashour |
 |
JavaScript: add support for iframe.width and iframe.height properties. |
sdanig |
 |
JavaScript: add element.document (IE only). |
asashour |
 |
WebRequestSettings: add .removeAdditionalHeader() and make headers case-insensitive. |
asashour |
 |
JavaScript: implement xmlDocument.createElementNS() (FF only). |
asashour |
 |
JavaScript: 'class' attribute should be trimmed (FF only). |
asashour |
 |
JavaScript: fix properties defined in super objects (IE only),
and fix .getAttribute() and .getAttributeNode(). |
asashour |
 |
Parser: don't recognize &prod as incomplete entity. Fixes 817. |
mguillem |
 |
JavaScript: fix incorrect escaping of backslash in replacement for String.replace(String, String). Fixes 818. |
mguillem |
 |
JavaScript: primitive implementation of canvas (FF only). Fixes 143. |
asashour |
 |
JavaScript: better implementation for "node's attributes collection is never empty for IE". |
asashour |
 |
JavaScript: option.value should not be affected by the text content (IE only). |
asashour |
 |
JavaScript: add support for caption.align (IE and FF) and caption.vAlign (IE only). |
sdanig |
 |
Add WebClient.getTopLevelWindows(). |
sdanig |
 |
Ignore content-type meta tag if HTTP header is specified. |
asashour |
 |
WebResponse: Deprecate .getContentCharSet(), .getRequestMethod(), and .getRequestUrl().
Add .getContentCharset() and .getContentCharsetOrNull(). |
asashour |
 |
JavaScript: add support for selection.empty() and selection.type (IE only). |
sdanig |
 |
JavaScript: setInterval() invocations with a 0 millisecond delay behave like setTimeout() invocations in IE. |
sdanig |
 |
JavaScript: add support for the col.align, col.vAlign, col.span, col.width, col.chOff and col.ch attributes. |
sdanig |
 |
JavaScript: add support for input.accessKey, label.accessKey, anchor.accessKey, button.accessKey,
legend.accessKey, textarea.accessKey and area.accessKey (Firefox only). |
sdanig |
 |
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(). |
asashour |
Release 2.5 – Apr 21, 2009
| Type |
Changes |
By |
 |
Upgrade HtmlUnit-core-js to 2.5. |
asashour |
 |
Upgrade NekoHtml to 1.9.12. |
asashour |
 |
JavaScript: fix ClassCastException setting or reading property readOnly of HtmlTextAreaElement. Fixes 813. |
mguillem |
 |
JavaScript: added support for HTMLTableRowElement.deleteCell. Fixes 812. |
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. |
mguillem |
 |
Add HtmlPage.getElementByName(String) method. |
sdanig |
 |
Remove leading "../" (if any) when resolving URLs. Fixes 718. |
mguillem |
 |
JavaScript: don't try to instantiate applets accessed by JavaScript when applet support is disabled. |
mguillem |
 |
HtmlOption: handle markup in nested content when it has to be used as default value. |
mguillem |
 |
HtmlOption.asText(): no need to consider label attribute. |
mguillem |
 |
HtmlOption: label attribute should not be considered in asText(). |
mguillem |
 |
JavaScript: dynamically created iframe should load external scripts. Fixes 805. |
asashour |
 |
HtmlPage: getFullyQualifiedUrl() should be relative to page of the top window. Fixes 806. |
asashour |
 |
(EXPERIMENTAL) Add WebClient.waitForBackgroundJavaScript() and WebClient.waitForBackgroundJavaScriptStartingBefore(),
which allow waiting for JavaScript background jobs to finish (should be used instead of JavaScriptJobManager methods,
which are internal APIs). |
mguillem |
 |
Add DomNode.isDisplayed() to the public API. |
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. |
sdanig |
 |
JavaScript: add support for reading and writing the base.href and base.target properties. |
sdanig |
 |
JavaScript: window.event should be available during execution of script.onreadystatechange handler (IE only). Fixes 802. |
sdanig |
 |
JavaScript: element.getElementsByTagNameNS() can accept null 'namespaceURI'. Fixes 799. |
asashour |
 |
Correctly initialize style attribute of images created via JavaScript. Fixes 797. |
sdanig |
 |
JavaScript: add support for 'oninput' events on text inputs (Firefox only). Fixes 792. |
sdanig |
 |
JavaScript: window.open() can accept numeric name. Fixes 796. |
asashour |
 |
JavaScript: in an XMLHttpRequest handler, 'this' is the handler when simulating FF2 and the XHR otherwise. |
mguillem |
 |
ToplevelWindow.close() deregisters sub-frames. |
mguillem |
 |
JavaScript: add support for window.length. |
mguillem |
 |
HtmlForm: submit to the same page if 'action' attribute is not defined. Fixes 791. |
asashour |
 |
Apply ScriptPreProcessor to window.eval(). Fixes 780. |
mguillem |
 |
HtmlPage.asXml(): expand empty UL and OL nodes to make generated XML readable as HTML on browsers. |
mguillem |
 |
Upgrade HtmlUnit-core-js to 2.5 (corresponds to head of Rhino branch 1.7R2 from Dec 12, 2008 + fix for Rhino issue 477604). Fixes 770. |
mguillem |
 |
JavaScript: add support for selection.getRangeAt() (Firefox only). |
sdanig |
 |
JavaScript: add support for CSSImportRule. Fixes 789. |
sdanig |
 |
Make password inputs listen to event.preventDefault(). Fixes 531. |
sdanig |
 |
JavaScript: calling event.stopPropagation() shouldn't preclude using multiple event listeners of the same
type on a single node. Fixes 783. |
sdanig |
 |
JavaScript: add support for event.cancelBubble in Firefox emulation mode (already present in IE emulation mode). Fixes 783. |
sdanig |
 |
JavaScript: setting event.returnValue=false should abort the event (IE only). Fixes 783. |
sdanig |
 |
JavaScript: add support form.item() (IE only). |
asashour |
 |
When a form is submitted via JavaScript (form.submit()), form submittal should not actually occur until
after the current script finishes executing. Fixes 775. |
sdanig |
 |
Fix content type sniffing for local XHTML files. Fixes 762. |
sdanig |
 |
Fix case-sensitivity of XPath expressions for XHTML documents that are served as 'text/xml'. Fixes 764. |
sdanig |
 |
JavaScript: add support for the window.onerror attribute. |
sdanig |
 |
JavaScript: document functions should be usable without a reference to the document (IE only). Fixes 774. |
sdanig |
 |
JavaScript: add support for element.clearAttributes() and element.mergeAttributes() (IE only). |
sdanig |
 |
JavaScript: handle invalid back references in string.replace(...) as if they were escaped. Fixes 782. |
sdanig |
 |
JavaScript: remove objects created by Rhino in window scope like 'com' that aren't available in browsers. Fixes 781. |
mguillem |
 |
JavaScript: process false return value of handlers added by .attachEvent() or .addEventListener(). Fixes 779. |
asashour |
 |
JavaScript: make prototype available on DOM nodes as __proto__ (FF only). |
mguillem |
 |
JavaScript: hide standard Object and Array functions that don't exist on IE. |
mguillem |
 |
JavaScript: Expand support for document.namespaces collection. |
sdanig |
 |
JavaScript: XMLSerializer should properly handle Document. |
asashour |
 |
JavaScript: Date.getYear() returns four digits for years before 1900 and after 1999 when simulating IE. Fixes 777. |
mguillem |
 |
JavaScript: single submission of form if onclick handler of HTMLSubmitInput also submits the form. Fixes 775. |
asashour |
 |
Add default value for "Accept" and "Accept-Language" HTTP headers. Fixes 774. |
asashour |
 |
JavaScript: add support for HTMLElement.removeNode(). Fixes 774. |
asashour |
 |
JavaScript: move removeAttribute() from HTMLElement to Element. |
asashour |
 |
JavaScript: element.doScroll() should throw an exception if page is not yet loaded. |
asashour |
 |
JavaScript: fix the return value of node.insertBefore(). Fixes 767. |
asashour |
 |
JavaScript: fix behavior when document.cookie is set to an empty string or a string without an '=' character. Fixes 761. |
sdanig |
 |
JavaScript: fix element.parentElement if the parent is DocumentFragment. Fixes 757. |
asashour |
 |
JavaScript: anchor's href attribute is empty string when no href was specified. |
mguillem |
 |
JavaScript: custom RegExp proxy now ignores back references in character class as browsers do. |
mguillem |
 |
Correct JavaScript parent scope after using WebClient.setCurrentWindow. |
bradclarke |
 |
JavaScript: add support for Enumerator (IE only). Fixes 760. |
asashour |
 |
JavaScript: custom RegExp proxy now accepts unescaped opening square brackets in character class. |
mguillem |
 |
JavaScript: add support for HTMLDocument.dispatchEvent (FF only). |
mguillem |
 |
JavaScript: properties of XMLHttpRequest ActiveX object are case insensitive. Fixes 765. |
asashour |
 |
Allow numbers with decimal points in refresh meta tags. |
sdanig |
 |
JavaScript: XMLHttpRequest is supported in IE7. |
asashour |
 |
Fail gracefully when script tags contain empty 'src' attributes. |
sdanig |
 |
Make the cookie manager thread-safe. |
sdanig |
 |
JavaScript: setting anchor.hash should accept values both with and without the '#' character. |
sdanig |
 |
JavaScript: values returned by anchor.hash should include the '#' character. |
sdanig |
 |
JavaScript: add support for HTMLElement.dir, .lang, .tabIndex and .spellcheck. |
asashour |
 |
JavaScript: add support for window.atob() and btoa(). |
asashour |
 |
JavaScript: compute URL relatively to owning page for showModelessDialog and showModalDialog. Fixes 769. |
mguillem |
 |
IE Conditional comments: accept expressions that contain identifier other than IE (like mso). Fixes 759. |
mguillem |
 |
If content-type meta tags contain empty encoding information, ignore it and use the default encoding. Fixes 752. |
sdanig |
 |
Ignore namespaces if the tag name does not have a prefix. Fixes 758. |
asashour |
 |
DomElement.getElementsByTagName() should search in only sub-elements. Fixes 756. |
asashour |
 |
JavaScript: add support for document.createComment(). |
asashour |
 |
Deprecate ClickableElement and StyledElement, directly use HtmlElement instead. |
asashour |
 |
JavaScript: add initial support for TextRange.moveStart() and .moveEnd(). Fixes 754. |
asashour |
 |
JavaScript: add support for document.getElementsByClassName and HTMLElement.getElementsByClassName (FF3 only). |
mguillem |
 |
JavaScript: document.execCommand doesn't throw an exception when called with unknown command (FF3 only). |
mguillem |
 |
JavaScript: document.scripts doesn't exist for FF. |
mguillem |
 |
JavaScript: when simulating Firefox, document.write(ln) returns the function,
no matter if elements with this name are present or not. |
mguillem |
 |
JavaScript: document.createEvent doesn't initialize the target property under FF3. |
mguillem |
 |
JavaScript: document.all('notExisting') returns undefined for FF. |
mguillem |
 |
JavaScript: tags property exists on collections for FF2 but not for FF3. |
mguillem |
 |
JavaScript: prototype should not be enumerated (FF). |
mguillem |
 |
JavaScript: IE does not enumerate objects methods. |
asashour |
 |
BrowserVersion: deprecate setJavaScriptVersion(), getJavaScriptVersion() and getJavaScriptVersionNumeric(). |
asashour |
 |
Replace ThreadManager with JavaScriptJobManager, which internally uses the executor services provided by JDK 5. |
sdanig |
 |
Add HtmlAbbreviated, HtmlAcronym, HtmlBackgroundSound, HtmlBig, HtmlBlink, HtmlBold, HtmlCitation, HtmlCode, HtmlDefinition,
HtmlEmphasis, HtmlExample, HtmlItalic, HtmlKeyboard, HtmlListing, HtmlMarquee, HtmlMultiColumn, HtmlNoBreak, HtmlNoEmbed, HtmlPlainText, HtmlS, HtmlSample,
HtmlSmall, HtmlSpacer, HtmlStrike, HtmlStrong, HtmlSubscript, HtmlSuperscript, HtmlTeletype, HtmlUnderlined and HtmlVariable. |
asashour |
 |
Deprecation: remove XmlAttr, SubmitMethod, WebRequestSettings.setURL(), and
WebClient methods: setCookiesEnabled(), setProxyHost(), setProxyPort(), addHostsToProxyBypass(),
and removeHostsFromProxyBypass(). |
asashour |
Release 2.4 – Dec 30, 2008
| Type |
Changes |
By |
 |
Upgrade HtmlUnit-core-js to 2.4 (corresponds to head of Rhino branch 1.7R2 from Dec 12, 2008). |
mguillem |
 |
Upgrade NekoHtml to 1.9.11. |
asashour |
 |
Add support for HtmlEmbed, HtmlCanvas and HtmlWordBreak. |
asashour |
 |
JavaScript: correct the return value of EventNode.fireEvent(). Fixes 744. |
asashour |
 |
JavaScript: add dummy implementation for TextRange methods collapse and select (IE). |
mguillem |
 |
JavaScript: replace \n with \r\n for property defaultValue of HtmlTextAreaElement (IE) and ignore leading new line sign. Fixes 748. |
mguillem |
 |
JavaScript: frame window object retrieved through should be live and reflect page loads in the window. Fixes 729. |
mguillem |
 |
JavaScript: do not throw exception on invalid regular expressions. |
mguillem |
 |
Support for IE conditional comments in HTML code. |
mguillem |
 |
JavaScript: removeAttribute should delete node property too (IE only),
getAttribute returns property if no attribute is found (IE only). |
mguillem |
 |
JavaScript: fixed exception occurring while accessing src property of freshly created Image object. Fixes 722. |
mguillem |
 |
HtmlPage.asXml(): expand empty table nodes to make generated XML readable as HTML on browsers. Fixes 742. |
mguillem |
 |
HtmlTextArea.type(...) should not trigger onchange handler. |
mguillem |
 |
Delay execution of image onload handlers after the page finish to load. Fixes 740. |
mguillem |
 |
First experiments to support applets. |
mguillem |
 |
100% success with MochiKit unit tests. |
mguillem |
 |
JavaScript: HTMLElement.filters is not undefined (IE only). |
mguillem |
 |
JavaScript: offsetParent is undefined for detached nodes. |
mguillem |
 |
JavaScript: HTMLHtmlElement's clientWidth and clientHeight gives the available screen size. |
mguillem |
 |
CSS: font-size is inherited. |
mguillem |
 |
CSS: parse shorthand background to find background color. |
mguillem |
 |
CSS: parse individual border width from borderWidth. |
mguillem |
 |
JavaScript: add dummy implementation for HTMLElement's clientLeft and clientTop. |
mguillem |
 |
Deprecate HtmlPage.getHtmlElementByAccessKey(), HtmlPage.getHtmlElementsByAccessKey(),
HtmlPage.getHtmlElementsByName(), HtmlPage.getHtmlElementsByIdAndOrName(),
HtmlElement.getHtmlElementsByAttribute() and HtmlElement.getHtmlElementById(). |
asashour |
 |
Deprecate DomElement methods getAttributeValue, setAttributeValue.
Usage of DOM 2 methods getAttribute, getAttributeNS, setAttribute and setAttributeNS is preferred. |
mguillem |
 |
Deprecate XmlPage.getDocumentXmlElement(), HtmlPage.createHtmlElement() and createHtmlElementNS(). |
asashour |
 |
Document and Element.getElementsByTagName() should not be affected by namespaces. |
asashour |
 |
JavaScript: node's attributes collection is never empty for IE. |
mguillem |
 |
JavaScript: add support for Comment object. Fixes 733. Thanks to Mirko Friedenhagen. |
asashour |
 |
JavaScript: prototype for event handlers should be the function prototype. Fixes 734. |
sdanig |
 |
JavaScript: add support for document.captureEvents (FF). Fixes 658. |
sdanig |
 |
JavaScript: fix option.text. Fixes 731. |
asashour |
 |
JavaScript: add support for window.showModalDialog() and window.showModelessDialog(). Fixes 703. |
sdanig |
 |
JavaScript: support Text object. Fixes 730. |
asashour |
 |
HtmlInput: typing enter should behave as clicking submit input. |
asashour |
 |
JavaScript: added support for document.applets. |
mguillem |
 |
JavaScript: add support for getting and setting the image.onload attribute. Fixes 453. |
sdanig |
 |
If an image has an onload handler, download the image and then invoke the onload handler. Fixes 453. |
sdanig |
 |
JavaScript: add support for elements.nextNode() and elements.reset() for the element collection returned
by XmlDocument.selectNodes(...) (IE only). Fixes 538. |
sdanig |
 |
JavaScript: fix setting input.type if it is the first child. |
asashour |
 |
When querying elements for namespaced attributes, don't fall back to returning non-namespaced attributes. Fixes 657. |
sdanig |
 |
JavaScript: add support for element.removeAttributeNS() (FF only). Fixes 657. |
sdanig |
 |
JavaScript: dummy support for XUL element in HtmlDocument.createElementNS (FF only). |
mguillem |
 |
JavaScript: window.controllers is not null (FF only). |
mguillem |
 |
JavaScript: IE ignores empty text children. |
asashour |
 |
JavaScript: add support for document.queryCommandEnabled(). |
sdanig |
 |
JavaScript: add partial support for window.getSelection() (FF only). |
sdanig |
 |
JavaScript: element.style.opacity only accepts numeric values when emulating FF. |
sdanig |
 |
JavaScript: fix element.style.display default values when emulating IE. |
sdanig |
 |
JavaScript: element.style length-related attributes should be converted to pixels (FF only). |
sdanig |
 |
JavaScript: postpone the execution of setting 'location.href'. Fixes 723. |
asashour |
 |
JavaScript: select.appendChild(option), .add(), and insertBefore() should update .selectedIndex. |
asashour |
 |
Silently ignore HTTP Status code "USE_PROXY" (305), and treat it as success. Fixes 722. |
asashour |
 |
XPath: proper handling of upper cased HTML elements. |
asashour |
 |
Implemented DomNode#compareDocumentPosition and add Node.compareDocumentPosition (FF only). |
mguillem |
 |
JavaScript: add support for element.contains() (IE only). |
asashour |
 |
JavaScript: element.innerHTML should quote anchor href attributes and empty attributes when emulating IE. Fixes 725. |
sdanig |
 |
JavaScript: In certain cases, node collections were returning elements when inexistent attributes were accessed. |
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. |
sdanig |
 |
JavaScript: make sure element.offsetWidth is constrained by the element's parent's dimensions. |
sdanig |
 |
CSS rules specified in stylesheets should not override CSS rules specified directly in an element's "style" attribute. |
sdanig |
 |
JavaScript: implement element.style.pixelLeft, pixelRight, pixelTop and pixelBottom (IE only). |
sdanig |
 |
JavaScript: fire onchange for <input type='file' ...> when field loses focus and value has been changed. |
mguillem |
 |
JavaScript: fire focus event not only on <input ...>. Fixes 706. |
mguillem |
 |
Add support for HTMLDocument.createTreeWalker (FF only). Fixes 131. Thanks to Mike Dirolf. |
mguillem |
 |
Add support for 'deflate' Content-Encoding. Fixes 717. |
asashour |
 |
HtmlPage.asXml(): expand empty style nodes to make generated XML readable as HTML on Firefox 3. |
mguillem |
 |
HtmlTextInput: type() should remove selected text(). Fixes 716. |
asashour |
 |
JavaScript: add support for document.uniqueID (IE only). Fixes 715. |
asashour |
 |
Made static WebClient methods getJavaScriptTimeout() and setJavaScriptTimeout() non-static, so
that they can be configured on a per-WebClient basis. Fixes 689. |
sdanig |
 |
JavaScript: add support for document.compatMode. |
asashour |
 |
HtmlInput: add isReadOnly() and setReadOnly(). |
asashour |
 |
JavaScript: node.appendBefore() should run added script element. |
asashour |
 |
Set 'referer' header and other additional headers on loading external JavaScript files. Thanks to Marco Cova. |
asashour |
 |
JavaScript: window.frames should return the ones with id attribute (IE only). Fixes 712. |
asashour |
 |
Add support for DocumentType. |
asashour |
 |
Better formatting for asText() particularly with new lines for TR, BR or LI and tabs between cells. Fixes 361. |
mguillem |
 |
HtmlElement: correctly handle getNodeName(). Fixes 673. |
asashour |
 |
JavaScript: correctly handle element.nodeName, .tagName, .prefix, .localName, and .namespaceURI. |
asashour |
 |
JavaScript: add support for document.namespaces (IE only). |
asashour |
 |
JavaScript: Firefox doesn't support select.options.childNodes. |
asashour |
 |
XmlElement: is deprecated, use DomElement instead. |
asashour |
 |
HtmlElement: deprecate getAttributesCollection() and isAttributeDefined(). |
asashour |
 |
BrowserVersion: deprecate INTERNET_EXPLORER_6_0 and INTERNET_EXPLORER_7_0. Fixes 705. |
asashour |
 |
JavaScript: document.cookie should overwrite existing cookie. Fixes 707. Thanks to David Bylsma. |
asashour |
 |
Upgrade Xalan to 2.7.1. Fixes 705. |
asashour |
 |
FrameWindow: should be Serializable. |
asashour |
 |
JavaScript: postpone the execution of dynamically added external scripts. |
asashour |
 |
JavaScript: correct script.onreadystatechange behavior for external JavaScript files. |
asashour |
 |
JavaScript: add support for script.onload (FF only). |
asashour |
 |
JavaScript: Attr.specified queries owner node for attribute's existence. |
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). |
mguillem |
 |
JavaScript: HtmlOptionsCollection delegates to enclosing select for FF as well. |
mguillem |
 |
HtmlSelect: removeOption() and replaceOption() to inspect only HtmlOption children. Fixes 698. |
asashour |
 |
Upgrade JUnit to 4.5. |
asashour |
 |
JavaScript: fireEvent calls handlers with received event object rather than with a copy (IE only). |
mguillem |
 |
JavaScript: trigger deferred scripts' onreadystatechange handler before onload event (IE only). |
mguillem |
 |
JavaScript: constant values like TEXT_NODE on elements are not available when simulating IE. |
mguillem |
 |
JavaScript: objects like HTMLElement don't have a their prototype property in their prototype chain (FF only). |
mguillem |
 |
JavaScript: use 'className' instead of 'class' to get/set class attribute (IE only). |
mguillem |
 |
JavaScript: Node.getAttributeNode returns null if no attribute exists with the specified name. |
mguillem |
 |
Form element can be included as HTML inside XML. Fixes 696. |
asashour |
 |
JavaScript: fix incorrect value of CSSStyleRule.selectorText when identified by id (like "#foo"). Fixes 702. |
mguillem |
 |
JavaScript: define properties altKey, ctrlKey and shiftKey on UIEvent when simulating Firefox. |
mguillem |
 |
JavaScript: use UIEvent for keyboard events. |
mguillem |
 |
JavaScript: cloneNode copies event handlers when simulating IE. |
mguillem |
 |
Better generics: avoid the need for casting when calling HtmlElement.getHtmlElementById(),
HtmlForm.getInputByName(), and .getInputByValue(). |
asashour |
 |
JavaScript: implemented workaround for NPE in CSSParser in some usage of CSSStyleSheet.insertRule. |
mguillem |
 |
JavaScript: finished implementation of insertRule (FF) and addRule (IE) on CSSStyleSheet. |
mguillem |
 |
JavaScript: CSSStyleRule.selectorText should return values like ".foo" rather than "*.foo". |
mguillem |
 |
Deprecation: remove HtmlUnitXPath class, DomNode.getXXXDomYYY(), HtmlPage.getDocumentHtmlElement(),
HtmlPage.moveFocusToElement(), HtmlPage.getFocusedElement(), WebClient.popFirstWindow(),
and WebClient.pushClearFirstWindow(). |
asashour |
 |
ActiveX: add support for native ActiveX controls (using Jacob). |
asashour |
 |
WebResponse interface: deprecate getResponseBody() in favor of getContentAsByteArray(),
deprecate getLoadTimeInMillSeconds() in favor of getLoadTime(), deprecate getUrl() in
favor of getRequestUrl(), add getContentAsString(String). |
sdanig |
Release 2.3 – Sept 16, 2008
| Type |
Changes |
By |
 |
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.<HtmlElement>getHtmlElementById("foo").asText()'
(or assigning the result of the 'getHtmlElementById("foo")' call to an intermediate variable). |
asashour |
 |
JavaScript: replace \n with \r\n for value property of HtmlTextAreaElement (IE) and ignore leading new line sign. |
mguillem |
 |
JavaScript: document.cookie value to be surrounded by double quotes if it contains space. |
asashour |
 |
CookieManager: process server-side cookies. |
asashour |
 |
Avoid NullPointerException when iframe.src is a "javascript:..." URL and JavaScript has been disabled. |
sdanig |
 |
JavaScript: add doScroll() method to bodies, divs, spans and textareas (IE only). Fixes 687. |
sdanig |
 |
HtmlTextArea: replace new lines with '%0D%0A' and remove first occurrence in form submission. |
asashour |
 |
JavaScript: when setting location.href, if the only real change is in the hash then just change the hash
and don't hit the server. Fixes 695. |
sdanig |
 |
Allow custom CSS error handlers (via WebClient.getCssErrorHandler() and WebClient.setCssErrorHandler())
and provide two error handler implementations out of the box (DefaultCssErrorHandler and
SilentCssErrorHandler). Fixes 132. |
sdanig |
 |
Upgrade NekoHtml to 1.9.9. |
asashour |
 |
Select element can be included as HTML inside XML. Fixes 696. |
asashour |
 |
JavaScript: setting select.selectedIndex should not change page focus. Fixes 654. |
asashour |
 |
Add facility method WebClient.closeAllWindows(). |
mguillem |
 |
JavaScript: StackOverFlowError when setting html fragment containing BODY tag to innerHTML of
an element inside BODY. Updated the parser to ignore HTML, HEAD (with contents in IE) and BODY tag
while parsing fragment. |
sudhan_moghe |
 |
JavaScript: Make innerHTML property read only in IE for following elements col, colgroup,
frameset, head, html, style, table, tbody, tfoot, thead, title, tr.
Property is writable for all the elements in FF. |
sudhan_moghe |
 |
JavaScript: Make innerText property read only for following elements html, table, tbody,
tfoot, thead, tr. FF do not have the property. |
sudhan_moghe |
 |
JavaScript: Add support for title.text. |
sudhan_moghe |
 |
WebRequestSettings: Add trailing slash to any URL that contains only hostname (with or without port). |
asashour |
 |
Rework WebConnection class hierarchy: remove unnecessary WebConnection.getWebClient() and
WebConnection.getState() methods, delete unnecessary WebConnectionImpl abstract class, make
WebConnection classes part of the public API by removing their internal API warning. |
sdanig |
 |
Add CookieManager class which can be used to manage cookies on a per-WebClient basis. Fixes 129. |
sdanig |
 |
Fix condition where CSS warnings and errors did not have a systemID to easily identify error origin. Fixes 677. |
sdanig |
 |
JavaScript: add support for properties style (FF) and styleSheet (IE) on HTMLStyleElement
and dummy support for the methods insertRule (FF) and addRule (IE) on CSSStyleSheet. |
mguillem |
 |
XMLSerializer: includes attributes from HTMLElements. Thanks to Darrell DeBoer. |
asashour |
 |
XmlAttr: remove deprecated constructor with Map.Entry. |
asashour |
 |
ThreadManager: add WebWindow name to the background threads name. Fixes 694. |
asashour |
 |
XmlPage: ClassCastException should not be thrown by .getByXPath(). Fixes 692. |
asashour |
 |
JavaScript: trigger focus event when clicking an element or typing in it. Fixes 629. |
mguillem |
 |
JavaScript: trigger mousedown and mouseup event when an element is clicked. Fixes 646. |
mguillem |
 |
JavaScript: make document.styleSheets[x] respect WebClient.printContentOnFailingStatusCode
and WebClient.throwExceptionOnFailingStatusCode settings when downloading external CSS files. Fixes 685. |
sdanig |
 |
JavaScript: StackOverflowError when setting the location hash via the location.href attribute. Fixes 688. |
sdanig |
 |
JavaScript: add stylesheet.href attribute. Fixes 680. |
sdanig |
 |
Don't parse <noscript> content when JavaScript is enabled. Fixes 488. |
mguillem |
 |
JavaScript: document.XXX allow to access forms by id (IE only). |
mguillem |
 |
JavaScript: silently ignore script nodes with event="..." for="..." when the target element can't be found (IE only). Fixes 669. |
mguillem |
 |
JavaScript: copy dynamic properties from template in fireEvent (IE only). Fixes 647. |
mguillem |
 |
JavaScript: fixed event order when setting the value of a text field. Fixes 660. |
mguillem |
 |
JavaScript: escape quotes found in attribute values when accessing through innerHTML. Fixes 678. |
mguillem |
 |
Make IE7 the default BrowserVersion (was IE6). |
sdanig |
 |
Add BrowserVersion for Firefox 3 emulation. |
sdanig |
 |
Fixed NullPointerException occurring document.styleSheets[x] with out of bound index. Fixes 676. |
mguillem |
 |
Fixed NullPointerException occurring in HtmlPage.writeInParsedStream() when document.write is called after setting innerHTML of some element in page. Fixes 674. Thanks to Ethan Glasser-Camp. |
sudhan_moghe |
 |
HTMLParser: now considers namespaces. Fixes 673. |
asashour |
 |
HtmlElement: asText() respects hidden visibility style attribute. Fixes 672. |
asashour |
 |
Add missing equals() methods to the PluginConfiguration and PluginConfiguration.MimeType classes. |
sdanig |
 |
WebClient.expandUrl doesn't handle references correctly. Fixes 662. Thanks to Martin Tamme. |
sudhan_moghe |
 |
Attribute values for cloned nodes were not available via JavaScript. Fixes 659. |
sdanig |
 |
JavaScript: add support for navigator.product (FF only). Fixes 665. |
asashour |
 |
Upgrade Commons Collections to 3.2.1 |
asashour |
 |
JavaScript: 'window.event' should be preserved after another event firing. |
asashour |
Release 2.2 – Jul 24, 2008
| Type |
Changes |
By |
 |
JavaScript: fix endless recursion when innerHTML has script that modifies the innerHTML. Fixes 655. |
sudhan_moghe |
 |
Accept \r and \n for HtmlTextArea.type(). Fixes 653. |
mguillem |
 |
Avoid to perform multiple request for the same external stylesheet. Add facility to access referred content
from HtmlLink. |
mguillem |
 |
Fix memory leak of window objects when the windows contain long-running background JavaScript tasks
scheduled via setInterval() or setTimeout(). Fixes 648. |
sdanig |
 |
JavaScript: fix JavaScript error with form.element, when element is located before closing form tag
but the tag balancing forces form to be closed earlier. Fixes 651. |
sudhan_moghe |
 |
HtmlFileInput: allow to load data from memory. Thanks to Andrew_WOT. |
mguillem |
 |
JavaScript: add support for attribute.text and attribute.xml (IE only). |
sudhan_moghe |
 |
JavaScript: add support for document.activeElement and element.setActive() (IE only). Fixes 634. |
sudhan_moghe |
 |
Ensure to focus element on calling HtmlElement.type(). Fixes 629. |
asashour |
 |
JavaScript: add support for script.text. Fixes 640. |
asashour |
 |
Fix exception when opening about:blank with Firefox. Fixes 641. |
asashour |
 |
Add classes AttachmentHandler, CollectingAttachmentHandler and Attachment to handle attachments
outside of the normal page flow (disabled by default for backwards compatibility). |
sdanig |
 |
JavaScript: postponed loading of frame content after script execution when src is set from a script. |
mguillem |
 |
JavaScript: window.execScript() now accepts undefined 'language' (IE only). |
asashour |
 |
Fix current window's computation when a window is closed by JavaScript during onload processing. Fixes 635. Thanks to Sudhan Moghe. |
mguillem |
 |
ThreadManager: set BrowserVersion of HtmlUnitContextFactory of newly created threads. Fixes 637. Thanks to Rene Schwietzke. |
asashour |
 |
JavaScript: fix variable scope after document.write. Fixes 603. Thanks to Sudhan Moghe. |
mguillem |
 |
Parsing: handle quotes in comments correctly within script nodes. Fixes 632. |
mguillem |
 |
Cache compiled scripts and parsed stylesheets at the WebClient level. |
sdanig |
 |
INCOMPATIBLE CHANGE: HtmlElement.getPage() now returns SgmlPage instead of HtmlPage. |
asashour |
 |
JavaScript: add support for TextRange.duplicate() (IE only). |
mguillem |
 |
JavaScript: add support for property xml on XML DOM nodes (IE only). |
mguillem |
 |
Remove ant build file. |
asashour |
 |
Maintain CSS style attribute order, according to document definition. |
sdanig |
 |
Style attributes in upper case are not recognized. Fixes 633. Thanks to Sudhan Moghe. |
mguillem |
 |
JavaScript: fixed document.write(ln) handling of <br> and <hr>. Fixes 436. |
mguillem |
 |
JavaScript: improved document.write(ln) support to add nodes to the right parent. Thanks to Karel Kolman. |
mguillem |
 |
JavaScript: HTMLDocument.ownerDocument is always null. |
mguillem |
 |
Fix HtmlTextInput.type(), HtmlTextArea.type() and HtmlPasswordInput.type() to handle backspaces
correctly. |
sdanig |
 |
JavaScript: implemented a workaround for Rhino bug in number primitive resolution (Rhino bug 374918). Fixes 536. |
sdanig |
 |
Move proxy-related methods from WebClient to new class ProxyConfig. Fixes 116. |
sdanig |
 |
JavaScript: value of form elements is set before triggering keyUp event (was after). |
mguillem |
 |
Be more tolerant while extracting charset from incorrect Content-Type header. Fixes 617. |
mguillem |
 |
JavaScript: add optionElement.disabled and optionGroupElement.disabled attributes. |
sdanig |
 |
HtmlOption.isDisabled() and HtmlOptionGroup.isDisabled() always return false when emulating IE. Fixes 630. |
sdanig |
 |
Don't lose any custom request headers during redirection. Fixes 631. |
sdanig |
 |
Allow PUT request with body content. Thanks to Andreas Hartmann. |
mguillem |
 |
Fix extraneous load of frame contents cause by frame node cloning. Fixes 613. |
sdanig |
 |
JavaScript: add support for methods getAttribute(), setAttribute() and removeAttribute() on
element.style and element.runtimeStyle (IE only). Fixes 628. |
sdanig |
 |
Fix incorrect handling of conflicting return values in different event handlers during
event bubbling. Fixes 626. |
sdanig |
 |
Malformed HTML code: associate form elements located before closing form tag to the form
even if tag balancing forced form to be closed earlier. |
mguillem |
 |
Be more lenient about spurious whitespace in node attributes containing relative URLs (image.src,
script.src, link.href, etc). Fixes 627. |
sdanig |
 |
Fix document.cookie so that it works correctly when loading HTML pages from the local filesystem,
when there is no real domain available. |
sdanig |
 |
Allow calls to WebClient.openWindow() with null URLs. Fixes 625. |
sdanig |
 |
JavaScript: add support for onpropertychange event type (IE only). Fixes 615. |
asashour |
 |
Fix HtmlPage.getHtmlElementsByIdAndOrName() returns same element twice. Fixes 623. |
mguillem |
 |
JavaScript: implement textRange.text setter (IE only). |
asashour |
 |
JavaScript: implement style.zIndex. Fixes 614. Thanks to Rodney Gitzel. |
asashour |
 |
NamedNodeMap instances (element.attributes) are case-insensitive in HTML documents (but not XML documents). |
sdanig |
 |
Invalid HTML: when the same attribute appears more than one time, consider the first value rather than the last one. Fixes 621. |
mguillem |
 |
JavaScript: HtmlInput.type value is always lower case. |
mguillem |
 |
Deprecated JavaScriptEngine.get/setTimeout(), added replacement methods WebClient.get/setJavaScriptTimeout(). Fixes 421. |
sdanig |
 |
Fix serialization of HtmlPages (was broken in some scenarios). Fixes 606. |
sdanig |
 |
Change license to Apache 2. |
mguillem |
 |
Fix IllegalStateException that occured using document.write assigned to a variable (IE only). Fixes 605. |
mguillem |
 |
HtmlPasswordInput: type() appends text to the value. |
asashour |
 |
JavaScript: XMLDocumet.getElementById retrieve elements with HTML namespace (FF only). Fixes 618. |
mguillem |
 |
Improved logic to detect the window with the focus. |
mguillem |
 |
JavaScript: improved behavior of XMLHttpRequest in network error handling.
Added support for the onError callback (FF only). Fixes 1962847. Thanks to Stuart Begg. |
mguillem |
 |
Fixed ClassCastException in CSS child selector processing. Fixes 616. |
mguillem |
 |
Allow to directly invoke URLs with javascript protocol. |
mguillem |
 |
Add facilities on HtmlImage to download the referenced image and read it. Fixes 1954183. |
mguillem |
 |
Remove deprecated HtmlPage.executeJavaScriptIfPossible() and WebClient.assertionFailed(). |
asashour |
 |
INCOMPATIBLE CHANGE: Replace SubmitMethod with HttpMethod (some methods with incompatible return types). |
asashour |
 |
HtmlPage: add refresh(), deprecate HttpWebConnection.newWebResponseInstance()
(replaced with another method with different parameters),
and deprecate one of WebResponseImpl constructors (with replacement). Fixes 127. |
asashour |
 |
WebRequestSettings: deprecate getURL() and setURL(), use getUrl() and setUrl(). |
asashour |
 |
JavaScript: don't store cookies when document.cookie is set and cookies are disabled. Fixes 608. |
sdanig |
 |
JavaScript: add support for the link.href, link.type and link.rel properties. |
sdanig |
 |
JavaScript: initialize event.target correctly when using createEvent and dispatchEvent (FF only). |
sdanig |
 |
DomAttr: deprecate getHtmlValue() and setHtmlValue(). |
asashour |
 |
INCOMPATIBLE CHANGE: HtmlAttr and XmlAttr are no more used, use DomAttr instead. |
asashour |
 |
JavaScript: fix XMLElement.attributes. Fixes 595. |
asashour |
 |
<span>: empty tag is expanded as required by browsers. Fixes 601. Thanks to Sudhan Moghe. |
asashour |
 |
JavaScript: add support for XMLElement.hasAttribute() (FF only). |
asashour |
 |
JavaScript: add support for HTMLAnchorElement.click(). Fixes 602. Thanks to Sudhan Moghe. |
asashour |
 |
Any onload events specified on frames and iframes are executed each time the frame
content changes -- not just the first time that the frame loads. |
sdanig |
 |
Make UTF-8 the default encoding for all XMLHttpRequests. |
sdanig |
 |
Encode and decode location.hash when emulating Firefox. |
sdanig |
 |
HtmlPage: cloned page handles XPath. Fixes 600. |
asashour |
 |
JavaScript: Add select.multiple support. |
sdanig |
 |
JavaScript: Add initial support for CSSRule and CSSStyleRule. |
asashour |
 |
Add WebClient.setCssEnabled(boolean) and WebClient.isCssEnabled(). Fixes 123. |
sdanig |
 |
JavaScript: object properties now returned in creation order. |
mguillem |
 |
Use HtmlUnit-core-js (which is a Rhino fork) instead of Rhino. |
mguillem |
Release 2.0 – Apr 7, 2008
| Type |
Changes |
By |
 |
Upgrade NekoHtml to 1.9.7. |
asashour |
 |
Deprecate DomNode non-DOM methods, i.e. getLastDomChild(), getParentDomNode(), getPreviousSibling(),
getNextDomSibling(), getFirstDomChild() and cloneDomNode(). |
asashour |
 |
Deprecate HtmlUnitXPath. |
asashour |
 |
DomNode: asXml() uses charset from HtmlPage.getPageEncoding(). Fixes 586. |
asashour |
 |
Upgrade Jetty to 6.1.9. |
asashour |
 |
Upgrade Commons Lang to 2.4. |
asashour |
 |
Deprecate popFirstWindow and pushClearFirstWindow on WebClient. |
mguillem |
 |
Add element.offsetParent to FF emulation mode. |
sdanig |
 |
Upgrade CSS Parser to 0.9.5. |
sdanig |
 |
Add initial support for data protocol (Firefox only). |
mguillem |
 |
Fix element.clientWidth, clientHeight, offsetTop, offsetLeft and offsetParent to reflect CSS configuration. |
sdanig |
 |
In BoxObject, add attributes element, firstChild, lastChild, nextSibling, previousSibling, x, y, width and height. |
sdanig |
 |
Fix element.offsetWidth and element.offsetHeight to include padding. |
sdanig |
 |
Add DomNode.getCanonicalXPath(). |
asashour |
 |
Deprecate HtmlPage.moveFocusToElement() and getElementWithFocus(),
use setFocusedElement() and getFocusedElement(). |
asashour |
 |
Meta Refresh: case-insensitive URL (#1924784). Fixes 1924784. Thanks to Dmitri Zoubkov. |
asashour |
 |
Upgrade Rhino to 1.7R1. |
asashour |
 |
JavaScript: add support for XMLElement.getElementsByTagNameNS() (FF only). |
asashour |
 |
JavaScript: add support for input.setSelectionRange() (FF only). |
asashour |
 |
HtmlSelect: if any HtmlOption is selected, focus is moved to HtmlSelect. |
asashour |
 |
JavaScript: add support for 'onfocusin' and 'onfocusout' (IE only). |
asashour |
 |
JavaScript: CSSStyleSheet added support for ownerNode (FF) and owningElement (IE). |
mguillem |
 |
JavaScript: allow direct access to nodes per id/name when simulating Firefox too. |
mguillem |
 |
JavaScript: fixed various issues with Node methods appendChild, insertBefore and replaceChild
when involved nodes don't belong to the same document. |
mguillem |
 |
HtmlPage.asXml(): place scripts in CDATA sections with comments. |
mguillem |
 |
JavaScript: fix window.location.hash so it always starts with '#'. |
asashour |
 |
Upgrade Jetty to 6.1.8, Commons IO to 1.4 and FileUpload to 1.2.1. |
asashour |
 |
INCOMPATIBLE CHANGE: Remove KeyValuePair, and hide HtmlForm.getParameterListForSubmit() and .getSubmittableElements(),
they shouldn't be directly called by users. |
asashour |
 |
JavaScript: return undefined for out of bound element access on HtmlFormElement. |
mguillem |
 |
JavaScript: custom RegExp proxy now accepts unescaped curly braces. |
mguillem |
 |
JavaScript: ComputedCSSStyleDeclaration.getPropertyValue returns the same value as direct property access. |
mguillem |
 |
JavaScript: add support for HtmlElement.textContent (FF only). |
mguillem |
 |
Remove Jaxen dependency. |
asashour |
 |
Remove deprecated methods in HtmlPage: assertAllIdAttributesUnique(), assertAllAccessKeyAttributesUnique(),
assertAllTabIndexAttributesSet() (use corresponding methods in WebAssert instead). |
sdanig |
 |
Remove deprecated WebRequestSettings.setCookiePolicy() and getCookiePolicy(). |
sdanig |
 |
JavaScript: element.currentStyle returns calculated (rather than static) style (IE only). |
sdanig |
 |
Add method Cache.clear(). |
sdanig |
 |
JavaScript: added support for (undocumented) method CollectGarbage (IE only). |
mguillem |
 |
DomNode.getByXPath(): when called with a string starting with slash, evaluation is relative
to the root element, not to the DomNode. You can add initial dot. |
asashour |
 |
Add Xalan 2.7.0 as dependency. |
asashour |
 |
JavaScript: fixed IndexOutOfBoundsException in processing of IE @elif pre processor instruction. Fixes 578. |
mguillem |
 |
JavaScript: instanceof now works correctly with html elements (FF only). |
mguillem |
 |
JavaScript: property ownerDocument now defined on node. |
mguillem |
 |
JavaScript: ignore calls to document.open() during page parsing. |
sdanig |
 |
JavaScript: calling document.write() after a page has finished parsing results in overwriting the entire page. |
sdanig |
 |
Handle script elements with src attributes containing "javascript:..." URLs. Fixes 514. |
sdanig |
 |
Correct the order of script element execution, deferred script element execution, script ready state changes,
deferred script ready state changes, and onload handlers. |
sdanig |
 |
JavaScript: add support for document.fireEvent (IE only) and document.onXXX event handlers (elements
already had these). |
sdanig |
 |
Don't reload page from server if window.location.hash is modified. |
sdanig |
 |
JavaScript: HTMLCollection.item and namedItem return null when element is not found. |
mguillem |
 |
JavaScript: avoid detection of document.all when simulating FF (property still available). |
mguillem |
 |
XPath: case-insensitive match for attribute names. |
asashour |
 |
Add temporary body element when one is missing and document.write() is called. |
sdanig |
 |
Add implicit body element when one is missing and there is no content to trigger addition by NekoHTML. |
sdanig |
 |
When document is missing a body element, document.body returns null instead of undefined. |
sdanig |
 |
Execute JavaScript when a script element's src attribute is set (always when emulating IE,
only sometimes when emulating FF). |
sdanig |
 |
Add test-scoped dependency on slf4j, in order to trigger correct logging in Jetty during the unit tests. |
sdanig |
 |
JavaScript: add support for document.importNode() (FF only). Fixes 571. |
asashour |
 |
Upgrade Jetty to 6.1.7 and JCL to 1.1.1. |
sdanig |
 |
Fixed incorrect processing of multiple conditional compilation flags (IE only). |
mguillem |
 |
JavaScript: add empty implementation of HTMLElement.clientWidth and .clientHeight. |
asashour |
 |
JavaScript: remove style attribute if it is empty. |
asashour |
 |
Add support of having XML inside Html (IE only). |
asashour |
 |
INCOMPATIBLE CHANGE: Rename UnknownHtmlElement to HtmlUnknownElement. |
asashour |
 |
Beautify asXml() by removing unnecessary blanks. |
asashour |
 |
XmlPage: fix asText() and asXml(). |
asashour |
 |
JavaScript: add basic support for document.queryCommandSupported and document.execCommand. |
mguillem |
 |
XmlPage: correct XPath handling (#1883395). Fixes 564. |
asashour |
 |
Fixed User-Agent header for IE6. |
mguillem |
 |
JavaScript: changed simulated screen dimensions to 1024x768 (was 800x600). |
mguillem |
 |
JavaScript: add basic support for all missing style attributes. |
asashour |
 |
JavaScript: Node.replaceChild() correctly processes DocumentFragment. |
asashour |
 |
JavaScript: XMLHttpRequest should not call onreadystatechange handler if sync (FF only). |
asashour |
 |
JavaScript: add support for Range.createContextualFragment (FF only). |
asashour |
 |
JavaScript: <code>__proto__</code> is only defined for Firefox. |
asashour |
 |
Handle line comments in multiline onXxxx events handlers declarations. Fixes 347. |
mguillem |
 |
Upgraded nekohtml to version 1.9.6.1 |
mguillem |
 |
INCOMPATIBLE CHANGE: Change html package to implement W3C DOM API interfaces, though
most methods are not yet implemented. Remove deprecated methods. Fix DomCData
derivation to be from DomText. Rename getAttributes methods that conflict with
W3C DOM API return type. (#1747878). Fixes 112. |
dktaylor |
 |
INCOMPATIBLE CHANGE: Rename HtmlHeader1 (to HtmlHeader6) to corresponding HtmlHeading1 (to HtmlHeading6). |
asashour |
 |
INCOMPATIBLE CHANGE: Rename HtmlTextDirection to the correct name (HtmlDirectory). |
asashour |
 |
JavaScript: XMLHttpRequest should not throw an exception when send() is called without args (for FF)
and when send content is specified but method is GET. |
mguillem |
 |
JavaScript: correct toString() for properties in 'window' scope (FF only). |
asashour |
 |
JavaScript: detect encoding from XML declaration (#1876545). Fixes 561. |
asashour |
 |
JavaScript: HTMLAnchor href attribute should be reachable even if the URL is malformed. |
mguillem |
 |
JavaScript: add support for XMLElement.getAttributeNode() (#1874624). Fixes 558. Thanks to Sudhan Moghe. |
asashour |
 |
JavaScript: document.cookie separates cookies with '; ' and not ';'. |
mguillem |
 |
Fixed ClassCastException occurring when a non HTML page is loaded with Firefox simulation (regression in 1.14). |
mguillem |
 |
Remove Assert, use WebAssert instead. |
asashour |
 |
Upgrade JUnit to 4.4. |
asashour |
 |
JavaScript: Add support for HTMLHtmlElement. |
asashour |
 |
HtmlForm: Remove deprecated .getRadioButtonInput() and .setCheckedRadioButton(). |
asashour |
 |
Remove deprecated HtmlForm.fakeCheckedRadioButton() and HtmlSelect.fakeSelectedAttribute(). |
asashour |
 |
JavaScript: Add support for XPathResult.iterateNext() (FF only). Fixes 556. |
asashour |
 |
Remove deprecated HtmlElement.MapEntryWrappingIterator. |
asashour |
 |
Deprecate HtmlElement.getAttributeEntriesIterator(), use .getAttributes() instead. |
asashour |
 |
JavaScript: HTMLCollection should not have 'tags' property in Firefox
(except for <code>document.all</code>). |
asashour |
 |
HtmlTextInput and HtmlTextArea: Add support for select(), and fix tabIndex JavaScript property. |
asashour |
 |
Add initial support for document.selection.createRange() (IE only). |
asashour |
 |
Remove deprecated constants in BrowserVersion, in addition to HtmlForm.submit(). |
asashour |
 |
Deprecate DomNode.getChildIterator(), use getChildren() instead. |
asashour |
 |
INCOMPATIBLE CHANGE: DomNode.getAllHtmlChildElements() returns Iterable instead of Iterator. |
asashour |
 |
DomNode: remove unused EventHandler, and deprecated PropertyChange methods. |
asashour |
 |
Deprecate HtmlElement.getChildElementsIterator(), use getChildElements() instead. |
asashour |
 |
JavaScript: add support for input.selectionStart, input.selectionEnd, and input.textLength. |
asashour |
 |
Remove deprecated DomNode.XXXX_NODE, use org.w3c.dom.Node instead. |
asashour |
 |
Remove the public (deprecated) constructor of HtmlElement and its subclasses. |
asashour |
Release 1.14 – Jan 9, 2008
| Type |
Changes |
By |
 |
JavaScript: allow script node's onreadystatechange handler to be set to null. |
mguillem |
 |
Don't escape '+' in URL path. Fixes 1866448. Thanks to David Bylsma. |
mguillem |
 |
JavaScript: add support for 'Node' prototype. |
mguillem |
 |
JavaScript: add support for window.resizeBy. |
mguillem |
 |
JavaScript: StyleSheetList correctly loads CSS content (FF only). |
asashour |
 |
Correctly handle URLs with path starting with double slash. |
mguillem |
 |
JavaScript: add configurable support for supported plugins and mime types (FF only).
Per default a Shockwave Flash plugin is "configured" for Firefox 2. |
mguillem |
 |
JavaScript: XMLHttpRequest.responseXML.getElementById should always return null (#1854975). Fixes 547. |
asashour |
 |
JavaScript: add support for "for (i in collection)" (#1862054). Fixes 548. |
asashour |
 |
JavaScript: XSLT support (ActiveXObject 'Msxml2.XSLTemplate') (IE only). |
asashour |
 |
XPath: is now namespace aware for XmlElements. |
asashour |
 |
JavaScript: add initial support for XPathResult, and XSLTProcessor (FF only). |
asashour |
 |
JavaScript: activate document.all for Firefox too. |
mguillem |
 |
Add DomElement with its JavaScript 'Element' prototype. |
asashour |
 |
XPath: DomCharacterData is treated as text node. |
asashour |
 |
XMLDocument: add support for .parseError property (IE only), createElement(), createNSResolver() (FF only),
evaluate() (FF only), and 'xml:space' attribute (IE only). |
asashour |
 |
XMLPage handles qualified tag names. |
asashour |
 |
JavaScript: added 'HTMLEvents' to the event types supported by document.createEvent (Firefox). |
mguillem |
 |
JavaScript: use custom JDK based regular expression evaluation for String.match
to avoid Rhino problems (speed and wrong evaluation). |
mguillem |
 |
HtmlTextInput and HtmlPasswordInput: type('\n') submits the enclosing form. |
asashour |
 |
<frame> and <iframe> should trim values in 'src' attribute. |
asashour |
 |
JavaScript: element.dispatchEvent() exactly behaves as calling ClickableElement.click() and .dblClick()
and returns correct value (based on event.preventDefault()) (#1813007). Fixes 531. |
asashour |
 |
JavaScript: add initial support for event.preventDefault() (anchor, checkbox, text input, textarea, others to follow) (#1813007). Fixes 531. |
asashour |
 |
HtmlTextInput: type() appends text to the value. |
asashour |
 |
JavaScript: cache parsed JavaScript responses. Fixes 108. |
mguillem |
 |
JavaScript [internal]: removed ScriptEngine, use JavaScriptEngine directly. |
mguillem |
 |
XMLPage: add support for comment node. |
asashour |
 |
Deprecate FocusableElement. |
asashour |
 |
JavaScript: add support for label.htmlFor (#1835550). Fixes 541. |
asashour |
 |
JavaScript: fix removeChild() for XML elements (#1836922). Fixes 543. |
asashour |
 |
JavaScript: Add style.borderBottom[Color,Style,Width], .borderLeft[Color,Style,Width], .borderRight[Color,Style,Width],
and .borderTop[Color,Style,Width] (#1835836). Fixes 542. |
asashour |
 |
Parse CSS files and use the result in window.getComputedStyle(), as well as providing accurate
values for document.styleSheets.length. All CSS file downloading and parsing occurs lazily.
NOTE: Adds a dependency on cssparser 0.9.4. |
sdanig |
 |
JavaScript: Tolerate empty string for DOMParser.parseFromString() (FF only),
and ActiveXObject('Microsoft.XMLDOM').loadXML() (IE only) (#1835090). Fixes 540. |
asashour |
 |
JavaScript: <iframe> src is now correctly handled via setAttribute() (#1828914). Fixes 537. |
asashour |
 |
JavaScript: add support for getAttributeNS and setAttributeNS on node (Firefox). |
mguillem |
 |
JavaScript: don't encode xml special characters for innerHTML property on script nodes. |
mguillem |
 |
Ignore <script> src that starts with "javascript:". |
asashour |
 |
Handle file URLs with query portions (file://my/path?a=b) and ref portions (file://my/path#ref) without breaking. |
sdanig |
 |
Fixed possible ConcurrentModificationException and dead lock with HtmlAttributeChangeListener and DomChangeListener. |
mguillem |
 |
Add support for deferred script elements (IE only). |
sdanig |
 |
Avoid leaving the DOM in an inconsistent state when DomNode.replace(DomNode) is called and the
target node is used as the parameter. |
sdanig |
 |
JavaScript: delegate select.options.xxx property modifications to the parent select element
(property accesses were already being delegated correctly; IE only). |
sdanig |
 |
Add basic support for document.getBoxObjectFor() (FF only) (#1815602). Fixes 534. Thanks to Sam Hough. |
asashour |
 |
HtmlTextArea.asXml() now preserves content and expands empty tag to make generated xml interpretable as html by browsers. |
mguillem |
 |
Add WebAssert utility class for domain-specific assertions.
INCOMPATIBLE CHANGE: Deprecate assertion methods in HtmlPage in favor of using
WebAssert. The exceptions thrown are now java.lang classes instead of junit classes,
though they still function as before. |
sdanig |
 |
HtmlForm: on submitting a form without parameters, URL should not end with a question mark (IE7 only). |
asashour |
 |
JavaScript: getElementsByTagName now returns empty collection when called with 'incorrect' name. |
mguillem |
 |
JavaScript: add support for hasAttribute and hasAttributeNS on node (Firefox),
getNamedItem on NamedNodeMap. |
mguillem |
 |
Add a popup blocker (WebClient.setPopupBlockerEnabled(boolean)). |
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. |
sdanig |
 |
HtmlFileInput: add support for non-ASCII name of uploaded files (#1818569). Fixes 535. |
asashour |
 |
JavaScript: accept ECMA reserved keywords like 'float' as normal identifier. |
mguillem |
 |
JavaScript: added support for DOMContentLoaded event (Firefox). Fixes 530. Thanks to Sam Hough. |
mguillem |
 |
Add possibility to configure the mime type used when uploading a file. |
mguillem |
 |
JavaScript: add support for the htmlElement.attributes collection. |
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. |
sdanig |
 |
JavaScript: make focus and blur available on HtmlElement. Fixes 532. Thanks to Sam Hough. |
mguillem |
 |
Don't use custom RetryHandler anymore to allow standard retry when server drops the connection
which caused NoHttpResponseException.
(see http://jakarta.apache.org/httpcomponents/httpclient-3.x/exception-handling.html). Fixes 503. |
mguillem |
 |
Make the loading of external .js files referenced via script tags
listen to WebClient.getPrintContentOnFailingStatusCode() and
WebClient.isThrowExceptionOnFailingStatusCode(). |
sdanig |
 |
Add support for CDATA sections of xml documents. |
mguillem |
 |
Add facility method DomNode.getFirstByXPath(xpathExpr). |
mguillem |
 |
JavaScript exceptions: line number information now relative to the page. |
mguillem |
 |
Add HtmlPage.executeJavaScript to inject JavaScript code in a page. |
mguillem |
 |
JavaScript: add support for element.dispatchEvent(event) (Firefox only). |
sdanig |
 |
Cache JS server responses to avoid useless requests (script caching will come later). Fixes 108. |
mguillem |
 |
Don't load the originally specified source of a frame, when its location has already been changed by JavaScript. Fixes 363. |
mguillem |
 |
Add primitive support for document.styleSheets (#1805817). Fixes 526. |
asashour |
 |
Add support of setExpression and removeExpression for element and style (#1809522). Fixes 529. |
asashour |
 |
Update window.frames so it does not throw ClassCastException (#1802836). Fixes 524. |
asashour |
 |
JavaScript: document.all('notExistingElement') now returns null as IE does. Fixes 525. |
mguillem |
 |
Fix loading content containing 'Content-Type' header with quoted charset (#1797235). Fixes 522. |
asashour |
 |
Upgrade Jetty to 6.1.5. |
asashour |
 |
JavaScript: XMLDocument should not ignore descendants non-empty DomText in IE. |
asashour |
 |
JavaScript: loadXML() supports relative URLs in ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE only). |
asashour |
 |
Add basic support for attributes of XML elements. |
asashour |
 |
Added FalsifyingWebConnection, a WebConnection wrapper that provides facility methods to
provide other content than the "real" one. |
mguillem |
 |
JavaScript: added backgroundImage to allowed style properties. |
mguillem |
 |
JavaScript: added Document.createRange() and basic support for Range (Firefox only). |
mguillem |
 |
JavaScript: add selectNodes() and selectSingleNode() (IE only), getElementsByTagName()
and .tagName property for XML elements. |
asashour |
 |
JavaScript: add basic support of setProperty() function and .preserveWhiteSpace property for
ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE only). |
asashour |
 |
DomNode.getByXPath() with 'id()' function should return empty list instead of throwing an exception (#1790308). Fixes 519. |
asashour |
 |
WebClient.loadWebResponse should not be final. Fixes 520. |
mguillem |
 |
JavaScript: add UIEvent.initUIEvent() (FF only). |
sdanig |
 |
Allow HTTP methods DELETE, HEAD, OPTIONS, PUT and TRACE (in WebClient.getPage(WebRequestSettings) and in XMLHttpRequest). |
mguillem |
 |
JavaScript: add XMLSerializer (FF), and .xml property for ActiveXObjects: 'Microsoft.XmlDom' and
'MSXML.DOMDocument' (IE). |
asashour |
 |
JavaScript: add DOMParser, with implementation of parseFromString() (FF only). |
asashour |
 |
JavaScript: add loadXML() and selectNodes() for ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE only). |
asashour |
 |
JavaScript: ignore text nodes of loaded XML by ActiveXObjects: 'Microsoft.XmlDom' and
'MSXML.DOMDocument' (IE). |
asashour |
 |
Move getWebClient() from HtmlPage to SgmlPage. |
asashour |
 |
JavaScript: correctly handle 'documentElement' property for
'document.implementation.createDocument()' (FF),
and ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE). |
asashour |
 |
JavaScript: add load() and getElementsByTagName() for 'document.implementation.createDocument()' (FF), and
ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE). |
asashour |
 |
JavaScript: add support for function element.fireEvent() (IE only). Thanks to Rob Di Marco. |
sdanig |
 |
JavaScript: add support for function mouseEvent.initMouseEvent() (FF only). Thanks to Rob Di Marco. |
sdanig |
 |
ActiveXObject (XmlHttp): should not be created by case-sensitive string. (#1784330). Fixes 515. Thanks to Dan Fabulich. |
asashour |
 |
Add support for keypress and keyup events (keydown is already supported). Deprecate HtmlElement.keyDown()
methods in favor of HtmlElement.type() methods which simulate user typing rather than a single event type. |
sdanig |
 |
Add SgmlPage: moving towards having fully fledged XmlPage. |
asashour |
 |
Regular Expressions: allow 'undefined' pattern, and tolerate improper patterns (trigger warning). |
asashour |
 |
Upgrade Rhino to 1.6R7. |
asashour |
 |
JavaScript: add support for function event.initEvent() (FF only). Thanks to Rob Di Marco. |
sdanig |
 |
Fix document.createEvent() and document.createEventObject(): set event prototypes correctly. |
sdanig |
 |
JavaScript: add 'async' property for 'document.implementation.createDocument()' (FF), and
ActiveXObjects: 'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE). |
asashour |
 |
JavaScript: add support for read-only attributes uiEvent.detail and uiEvent.view (FF only). Thanks to Rob Di Marco. |
sdanig |
 |
JavaScript: fixed bug in String.replace (due to custom RegExp proxy) when first arg is a String
with special characters and not a RegExp. Fixes 513. |
mguillem |
 |
JavaScript: add basic support for 'document.implementation.createDocument()' (FF), and ActiveXObjects:
'Microsoft.XmlDom' and 'MSXML.DOMDocument' (IE). |
asashour |
 |
JavaScript: select.size is used when only needed. |
asashour |
 |
Upgrade HttpClient to 3.1. |
asashour |
 |
JavaScript: document.createElement() to accept html as a valid parameter (IE only). |
asashour |
 |
JavaScript: Make event.shiftKey, event.ctrlKey and event.altKey IE-only attributes; add
mouseEvent.shiftKey, mouseEvent.ctrlKey, mouseEvent.altKey and mouseEvent.metaKey FF-only
attributes. |
sdanig |
 |
JavaScript: add support for read-only attributes event.timeStamp, event.bubbles and
event.cancelable and event.eventPhase (FF only). Thanks to Rob Di Marco. |
sdanig |
 |
JavaScript: document.createElement() to accept "<tagName>" as a valid parameter. |
asashour |
 |
JavaScript: element.setAttribute() sets corresponding event handler onXXX if found (FF only). |
asashour |
 |
JavaScript: add primitive support for document.elementFromPoint (IE only). |
asashour |
 |
Add namespace support for attributes: DomNode.getnamespaceURI, getLocalName, getPrefix,
setPrefix, hasAttributes, HtmlElement.getAttribute, getAttributeNS, hasAttributes,
hasAttribute, hasAttributeNS, setAttribute, setAttributeNS, setAttributeValue(NS),
and removeAttributeNS. (#1747878). Fixes 112. |
dktaylor |
 |
JavaScript: add support for element.uniqueID (IE only). |
asashour |
 |
Deprecate unused class MapEntryWrappingIterator. (#1747878). Fixes 112. |
dktaylor |
 |
Deprecate String-to-String attribute map for HtmlElement. Add initial support for
namespaces for attributes. (#1747878). Fixes 112. |
dktaylor |
 |
Deprecate HtmlAttr implementing Map.Entry that conflicts with W3C DOM API. Replace
uses of Map.Entry with HtmlAttr. Add HtmlAttr.getName. (#1747878). Fixes 112. |
dktaylor |
 |
New interface com.gargoylesoftware.htmlunit.OnbeforeunloadHandler with associated WebClient getter and setter, to support 'onbeforeunload' event (#1498419). Fixes 359. |
asashour |
 |
JavaScript: document.getElementById() must not return elements added to newly created ones (not yet added to document). |
asashour |
 |
JavaScript: add support for 'onunload' event handler. |
asashour |
Release 1.12 – Aug 10, 2007
| Type |
Changes |
By |
 |
Add method HtmlPage.getHtmlElementsByName(String). |
sdanig |
 |
HtmlSelect (in single-selection mode) selects the first option if none is selected. |
asashour |
 |
JavaScript: add basic support for element.runtimeStyle. |
mguillem |
 |
JavaScript: add basic support for document.createStyleSheet (when emulating IE only). |
mguillem |
 |
JavaScript: implemented a workaround for Rhino bug in string primitive resolution (Rhino bug 374918). |
mguillem |
 |
Deprecate HtmlForm.submit(). |
asashour |
 |
Deprecate HtmlForm.fakeCheckedRadioButton(). |
asashour |
 |
The method element.style.getPropertyValue('foo') should expect property names to be
delimiter-separated (ie 'font-size') rather than camel case (ie 'fontSize'). |
sdanig |
 |
Basic document.implementation: hasFeature(). |
asashour |
 |
Add support for oncontextmenu event type. |
asashour |
 |
Fix element.innerHTML, element.innerText, element.outerHTML: uppercase tag names when
emulating IE; don't quote attributes when they don't contain whitespace and we're
emulating IE; always use separate open and close tags (even if the tag is empty);
escape XML characters inside text nodes. |
sdanig |
 |
HtmlElement: add rightClick(). |
asashour |
 |
JavaScript added minimal support for MouseEvent properties
clientX, clientY, pageX, pageY, screenX, screenY
coherent with position of event's target. |
mguillem |
 |
Set Referer header for requests from XMLHttpRequest. |
mguillem |
 |
First option in a single-selection select input gets selected by default. |
sdanig |
 |
Add implementation of element.style.filter attribute (when emulating IE only). |
sdanig |
 |
JavaScript: added support for properties "button" and "which" on mouse events. |
mguillem |
 |
Add initial support for IE conditional compilation @if, @elif, @else, @end and @set instructions
as well as for conditional compilation variables. |
mguillem |
 |
Fix getElementsByTagName('*') at the document level (it was returning an empty
collection). |
sdanig |
 |
JavaScript: add support for style.getPropertyValue() (#1759750). Fixes 507. |
asashour |
 |
JavaScript: fixed eval scope bug when used within function. Fixes 485. |
mguillem |
 |
Add an optional (disabled by default) debugger implementation which can make it easier
to debug complex interactions between HtmlUnit and JavaScript. |
sdanig |
 |
Deprecate BrowserVersion constants for Mozilla 1.0, Netscape 4.7.9 and Netscape 6.2.3;
add MSIE 7 and Firefox 2. |
sdanig |
 |
JavaScript: add basic support for element.currentStyle and window.getComputedStyle. Fixes 504. |
asashour |
 |
BrowserVersion: add equals() and hashCode(). Fixes 505. Thanks to Matt Ryall. |
asashour |
 |
HtmlElement: add mouseOver(), mouseMove(), mouseOut(), mouseDown(), and mouseUp(). |
asashour |
 |
JavaScript: implement navigator.cookieEnabled to match WebClient#isCookiesEnabled(). |
asashour |
 |
Add empty implementation for table.refresh() (#1742662). Fixes 495. |
asashour |
 |
HTMLCollection: cache getElements() for better performance (#1751756). Fixes 502. |
asashour |
 |
Experimental: added AjaxController and NicelyResynchronizingAjaxController. |
mguillem |
 |
JavaScript: added support for window.captureEvents (FF). Fixes 283. |
mguillem |
 |
JavaScript: fixed addEventListener cannot be called twice. Fixes 478. |
mguillem |
 |
JavaScript: added support for event capturing and bubbling phases. |
mguillem |
 |
JavaScript: added support for Event.stopPropagation() (FF) and Event.cancelBubble() (IE). |
mguillem |
 |
JavaScript: added support for window.onclick and window.ondblclick. |
mguillem |
 |
Ignore <base> if inside <body> (#1579707). Fixes 388. |
asashour |
 |
FailingHttpStatusCodeException is thrown for failing frame (#1065041). Fixes 162. |
asashour |
 |
JavaScript: use custom JDK based regular expression evaluation for String.replace
to avoid Rhino problems (speed and wrong evaluation). |
mguillem |
 |
Elements inside <noscript> are ignored if isJavaScriptEnabled() (#1186639). Fixes 257. |
asashour |
 |
Version: add getProductName(), getProductVersion() and getCopyright() (#1748672). Fixes 499. |
asashour |
 |
DomNode: add/remove DomChangeListener. |
asashour |
 |
Remove deprecated WebClient.getThrowExceptionOnFailingStatusCode and BaseFrame.FrameWindow. |
asashour |
 |
HtmlImageInput, HtmlResetInput and HtmlSubmitInput can be clicked if exist outside an enclosing form. (#1747454). Fixes 1747454. |
asashour |
 |
JavaScript: allow FormField.onchange, form.onsubmit and frame.onload to be set to null (#1745024). Fixes 497. |
asashour |
 |
JavaScript: Add table.cellSpacing and table.cellPadding. |
asashour |
 |
HtmlElement and HtmlPage: add/remove HtmlAttributeChangeListener (#1124781). Fixes 74. |
asashour |
 |
JavaScript: Implement insertAdjacentElement(). |
asashour |
 |
HtmlSubmitInput: setting value to "Submit Query" if not specified, associated with asText(), asXml(), and submitValue changes. |
asashour |
 |
HTMLElement.scrollIntoView() is added as an empty implementation (#1740086). Fixes 492. Thanks to Bruce Chapman. |
asashour |
 |
DomNode.asText() now correctly handles style elements (e.g. <i>, <b>, and <font>) (#1731042). Fixes 490. Thanks to Rodney Gitzel. |
asashour |
 |
HtmlPage.clone() doesn't share idMap_ with original (#1708397). Fixes 470. Thanks to Bruce Chapman. |
asashour |
 |
ClickableElement: Add dblClick() (#1385295). Fixes 91. |
asashour |
 |
JavaScript: Add document.createElementNS(), element.namespaceURI, element.prefix, and element.localName (#1521790). Fixes 364. |
asashour |
 |
HtmlPage supports Serialization (#1685311). Fixes 443. |
asashour |
 |
Add partial support for IE Conditional Compilation (#1680026). Fixes 437. |
asashour |
 |
Meta Refresh: tolerate spaces before the semicolon (#1549916). Fixes 1549916. Thanks to Andre Soereng. |
asashour |
 |
Allow setChecked of <input type="radio"> which is outside any <form> (#1587962). Fixes 397. |
asashour |
 |
Deprecated HtmlForm#getRadioButtonInput(String,String) and HtmlForm#setCheckedRadioButton(String,String). Use #getByXPath instead. |
asashour |
 |
Allow HtmlFileInput to handle values starting with "file:/" (#1513928). Fixes 362. |
asashour |
 |
Align node types numeric values to W3C values. |
mguillem |
 |
JavaScript: allow comment nodes to be retrieved |
mguillem |
 |
HtmlSelectElement: ignores setting 'selectedIndex' to more than or equal to options size. |
asashour |
 |
HtmlForm: #getTextAreaByName and #getButtonByName (#1713515). Fixes 1713515. Thanks to Philip Graf. |
asashour |
 |
Add UTF-16BE, and UTF-16LE charset detection (#1729467). Fixes 110. Thanks to Karel Kolman. |
asashour |
 |
Use WebRequestSettings#getCharset() as the encoding of pages instead of "ISO-8859-1" (#1483301). Fixes 349. |
asashour |
 |
Proper handling of in DomNode#asText() (#1549745). Fixes 374. Thanks to Kristian Muntau. |
asashour |
 |
JavaScript: Simulate browser behavior for comments that have last line of "statement-->", but not "statement//-->". |
asashour |
 |
JavaScript: Add support for location.toString() (#1725742). Fixes 483. |
asashour |
 |
asXml() now expands tags for div, iframe and script to make generated xml interpretable as html by browsers. |
mguillem |
 |
Add support for table.width (#1691024). Fixes 450. |
asashour |
 |
HtmlInput (HtmlCheckBoxInput and HtmlRadioButtonInput): #setChecked now returns Page (#1724889). Fixes 480. |
asashour |
 |
Javascript: Correct handling of comments (#1725162). Fixes 481. |
asashour |
 |
JavaScript [internal]: use Context.call(ContextAction) for faster JavaScript execution. |
mguillem |
 |
Meta Refresh empty URL is handled (#1722665). Fixes 479. |
asashour |
 |
JavaScript: add support for textarea.selectionStart, textarea.selectionEnd, and textarea.textLength (#1714772). Fixes 475. |
asashour |
 |
DomNode#getAllHtmlChildElements() now returns Iterator. |
asashour |
 |
Fixed exception occurring handling script tag with one line content starting with <!-- and without closing --!>. Fixes 473. |
mguillem |
 |
JavaScript: allow function named onload. Fixes 409. |
mguillem |
 |
JavaScript: made equality tests on functions working. |
mguillem |
 |
JavaScript: don't allow usage of write(ln) detached from document object when simulating Firefox. |
mguillem |
 |
JavaScript [internal]: large refactoring for a better Rhino usage. |
mguillem |
 |
JavaScript: Add support for event.shiftKey, event.ctrlKey, and event.altKey. Fixes 79. |
asashour |
 |
Tolerate URL starting with http:/ and http: in Firefox. Fixes 474. |
asashour |
 |
Added IncorrectnessListener to get notified of things that HtmlUnit cope with but that don't respect standards. |
mguillem |
 |
JavaScript: provide the event object to onreset handlers. |
mguillem |
 |
Added ScriptException.printScriptStackTrace to retrieve the stack trace of the script execution. |
mguillem |
 |
WebClient can now enable/disable cookies support. |
asashour |
 |
JavaScript: allow to set window.onload to something else than a function. Fixes 262. |
mguillem |
 |
DomNode.DescendantElementsIterator.remove() now throws UnsupportedOperationException
(previous behavior was not correct). Fixes 463. Thanks to Bruce Chapman. |
mguillem |
 |
JavaScript: added support for label property on Option objects. |
mguillem |
 |
JavaScript: added support for defaultSelected property on Option objects. Thanks to Bruce Chapman. |
mguillem |
 |
JavaScript: allow selected and defaultSelected attribute in Option constructor. Fixes 462. Thanks to Bruce Chapman. |
mguillem |
 |
INCOMPATIBLE CHANGE: Remove HtmlOption#getValue() (deprecated nearly two years ago),
remove FailingHttpStatusCodeException#FailingHttpStatusCodeException(int, String) (deprecated
over a year ago), remove ScriptException#getEnclosedException() (deprecated over a year ago). |
sdanig |
 |
JavaScript: Add support for script.src, script.type, script.readyState and script.onreadystatechange. |
sdanig |
 |
When cloning nodes, clone the id attribute as well. Fixes 468. Thanks to Bruce Chapman. |
sdanig |
 |
Avoid NPEs for responses with null bodies (ie 304 Not Modified responses). Fixes 466. Thanks to Martin Tamme. |
sdanig |
 |
JavaScript: Cloning a script node should not execute the script. Fixes 469. Thanks to Bruce Chapman. |
sdanig |
 |
JavaScript: Don't run scripts after the window location changes. Fixes 465. |
sdanig |
 |
Verify correct behavior of HtmlSelect#asText() with multiple selections, fix JavaDoc. Fixes 418. |
sdanig |
 |
JavaScript: add support for frameset.rows and frameset.cols properties. Fixes 464. Thanks to Bruce Chapman. |
sdanig |
 |
JavaScript: ignore invalid script.src attribute used by jQuery ("//:"). Fixes 455. |
sdanig |
 |
Trim whitespace off of anchor href attributes. Fixes 427. |
sdanig |
 |
JavaScript: add support for event.type property. |
sdanig |
 |
Fixed NPE exception triggered by invalid iframe/frame src attribute. Fixes 458. |
sdanig |
 |
Fixed infinite loop triggered by recursive iframe/frame src attribute. Fixes 459. |
sdanig |
 |
JavaScript: fixed set innerHTML uses 8bits for all chars and ignores some HTML. Fixes 371. Thanks to Sam Hough and Ahmed Ashour. |
mguillem |
 |
JavaScript: handle out of bound indexes on options as browsers do (undefined when too high and exception when negative). |
mguillem |
 |
Added (limited) support for client side map. Fixes 40. Thanks to Ahmed Ashour. |
mguillem |
 |
Don't execute JavaScript in <noframes> and <iframe>. Fixes 447. Thanks to Ahmed Ashour. |
mguillem |
 |
Set Referer header on outgoing requests. Fixes 454. Thanks to Ahmed Ashour. |
mguillem |
 |
JavaScript: setting innerHTML to null shouldn't create any text node for Firefox. Fixes 452. Thanks to Ahmed Ashour. |
mguillem |
 |
JavaScript: fixed remaining problem of submitted select values when select.selectedIndex = -1 has been used before setting an other value. Fixes 442. |
mguillem |
 |
JavaScript: setting innerHTML to empty string shouldn't create any text node. Fixes 451. Thanks to Ahmed Ashour. |
mguillem |
 |
JavaScript: added support for property parentElement on DOM nodes (IE specific). Fixes 449. Thanks to Ahmed Ashour. |
mguillem |
 |
JavaScript: configure correctly the prototype hierarchy on created host objects. |
mguillem |
 |
JavaScript: fixed non executed scripts added with document.write. Fixes 411. Thanks to Karel Kolman. |
mguillem |
 |
JavaScript: "this" should be the window and not the current node in JavaScript href of link and area as well as in JavaScript action of forms. Fixes 448. |
mguillem |
 |
Fixed wrong parsing order of comment and text nodes. Fixes 444. Thanks to Karel Kolman. |
mguillem |
 |
JavaScript: added support for following properties on HtmlAnchor: hash, host, hostname, pathname, port, protocol, search and target. Fixes 444. Thanks to Bruce Chapman. |
mguillem |
 |
Handle correctly anchors (alias reference) in URLs after form submission. |
mguillem |
 |
JavaScript: XMLHttpRequest now encodes post body in UTF-8. Fixes 440. |
mguillem |
Release 1.11 – Mar 15, 2007
| Type |
Changes |
By |
 |
Respect non proxy hosts in redirects from a host using proxy. Fixes 431. |
mguillem |
 |
JavaScript: resolve relative locations from the originating page for Location's href, replace and assign. |
mguillem |
 |
Renamed frame host class to avoid conflict when a frame has 'Frame' as name. Fixes 379. |
mguillem |
 |
Form should not send push buttons on submit. Fixes 435. |
mguillem |
 |
Added facility method DomNode.getByXPath(xpathExpr). |
mguillem |
 |
JavaScript: Option.setAttribute now works even if option has not yet been added to a select. Fixes 432. |
mguillem |
 |
Parse as html all responses with content type ending with "xhtml+xml" like XHTML mobile profile documents (application/vnd.wap.xhtml+xml). Fixes 434. |
mguillem |
 |
Improved HtmlPage.getAnchors's javadoc. Fixes 430. |
mguillem |
 |
Added support for server side map (HtmlImage.click(int, int)). Fixes 39. |
mguillem |
 |
Allow redirections to the same URL with a maximal number of 20. Fixes 415. |
mguillem |
 |
Fixed HtmlHtml.getXmlLangAttribute(). |
mguillem |
 |
Upgraded dependencies to Jaxen 1.1, commons-lang 2.2, rhino 1.6R5, commons-io 1.3. |
mguillem |
 |
Changing element id should not impact child nodes. Fixes 428. Thanks to Karel Kolman. |
mguillem |
 |
JavaScript: provide event object as argument when calling onload listeners attached with attachEvent (Internet explorer). |
mguillem |
 |
JavaScript: provide the event object to onsubmit handlers. Fixes 425. |
mguillem |
 |
Set cookies defined in meta tags with http-equiv equals to set-cookie. |
mguillem |
 |
Fixed NullPointerException occurring while submitting a from which onsubmit handler returns null. Fixes 1628521. Thanks to Andre Soereng. |
mguillem |
 |
JavaScript: fixed bad initialisation of JavaScript context when window content changes
(was introduced since last release in fixed for bug 1040244). Fixes 417. |
mguillem |
 |
JavaScript: ensure that script execution is synchronized on the owning html page
(for instance using XMLHttpRequest asynchronously). Fixes 360. |
mguillem |
 |
JavaScript: made ThreadManager thread safe. Fixes 393. Thanks to Karel Kolman. |
mguillem |
 |
JavaScript: perform correct setup of context for asynchronous execution of XMLHttpRequest. Fixes 414. Thanks to Deryk Sinotte. |
mguillem |
 |
JavaScript: don't wrap JavaScript primitive types when returned from a Java method. Fixes 410. |
mguillem |
 |
Fixed Non-html reply in window.open() doesn't create window
object by restricting initialization of windows and pages.
Added line/column numbering of HTML elements for embedded
script names that are easier to debug. Fixes 152. |
dktaylor |
 |
JavaScript: fixed regression introduced in 1.10 on window.eval for local scope. Fixes 408. |
mguillem |
 |
JavaScript: provide the event object to onfocus and onblur handlers. |
mguillem |
 |
Moved focus related methods from WebClient to HtmlPage and deprecated them on WebClient. |
mguillem |
 |
Fixed AREA elements can't handle JavaScript hrefs by
copying code from anchor element. Fixes 407. |
dktaylor |
 |
Fixed frames[i] return null for frames generated by
document.write by allowing JavaScript Window object to
be properly initialized with JavaScriptEngine. Fixes 259. |
dktaylor |
 |
Fixed document.write problem when <a...> written in 2 times
by checking for complete HTML tags before parsing. Fixes 223. |
dktaylor |
 |
Fixed document.write() does not keep ending spaces by reducing
text of adjacent text nodes as a whole instead of separately. Fixes 355. |
dktaylor |
 |
JavaScript: handle comments in event handlers. Fixes 1601754. Thanks to Andre Soereng. |
mguillem |
 |
JavaScript: if window with name 'myOldWin' exists, window.open('', 'myOldWin') should retrieve it
rather than opening a new one. Fixes 399. |
mguillem |
 |
Fixed asText() for style node. Now returns an empty string. |
mguillem |
 |
JavaScript: fixed select.selectedIndex = -1 should not be irreversible. Fixes 400. |
mguillem |
 |
JavaScript: setting option's selected status to false when it is already false
shouldn't reset the whole select. Fixes 401. |
mguillem |
 |
JavaScript: fixed java.util.ConcurrentModificationException occurring when some onload event is
removed during execution of an onload event. Fixes 404. |
mguillem |
 |
JavaScript: second argument DOM node's insertBefore is now optional
when simulating Internet Explorer. Fixes 333. |
mguillem |
 |
Added support for comments: <!-- some comment -->. Patch from Karel Kolman. Fixes 101. Thanks to Karel Kolman. |
mguillem |
 |
JavaScript: added XMLHttpRequest.overrideMimeType. Fixes 82. |
mguillem |
 |
JavaScript: fixed bug preventing to set non String style properties. Fixes 398. |
mguillem |
 |
JavaScript: allow to add options to a select with an index as second argument
when simulating Internet Explorer. Fixes 380. |
mguillem |
 |
Ignore invalid URLs specified in <base href="..."/>. Fixes 387. |
mguillem |
Release 1.10 – Nov 03, 2006
| Type |
Changes |
By |
 |
Fixed asText() for script node. Now returns an empty string. Fixes 395. |
mguillem |
 |
Removed ":" in project id to avoid problems on Windows with plugins like idea. Fixes 385. |
mguillem |
 |
Upgraded jaxen to 1.1-beta-11 (even if it's a "beta", this is the version
recommended by jaxen developers). |
mguillem |
 |
Added Maven compliant scopes in project.xml. Fixes 377. |
mguillem |
 |
JavaScript: added minimal support for navigator.mimeTypes (Firefox). |
mguillem |
 |
Fixed select's faked selections are ignored, if select is empty. Fixes 381. |
mguillem |
 |
Fixed asText() for hidden input. Now returns an empty string. Fixes 382. |
mguillem |
 |
JavaScript: only style's built in properties are of type String (with empty string as default value) |
mguillem |
 |
Use MultiThreadedHttpConnectionManager (avoids problems with requests started asynchronously from JavaScript). Fixes 97. |
mguillem |
 |
JavaScript: property "all" now available on all html element (Internet explorer). Fixes 383. |
mguillem |
 |
Fixed incorrect handling of web connections (missing call to releaseConnection()). |
mguillem |
 |
JavaScript: item(xx) method now works correctly on node list. |
mguillem |
 |
JavaScript: improved support for addEventListener on DOM nodes (Mozilla) and added support for attachEvent (Internet explorer). Thanks to Daniel Gredler. |
mguillem |
 |
JavaScript: build XMLHttpRequest for all ActiveX names starting with "Msxml2.XMLHTTP". |
mguillem |
 |
JavaScript: fixed bug in table.insertRow with empty tbody. Fixes 378. |
mguillem |
 |
Follow redirection to the same Url if original method was a POST. Handle redirections
like browsers do rather than according to the RFC. Fixes 367. |
mguillem |
 |
JavaScript: allow script to set a "javascript:..." location. Fixes 317. |
mguillem |
 |
JavaScript: use of HTMLElement.innerHTML should not cause registration of a WebWindow. Fixes 357. |
mguillem |
 |
JavaScript: window.eval now evaluates in the right window scope. |
mguillem |
 |
JavaScript: added basic support for addEventListener on DOM nodes (Mozilla). |
mguillem |
 |
JavaScript: added support for window.createPopup (Internet Explorer). |
mguillem |
 |
Added FrameWindow.getFrameElement and support for Javascript's frameElement property on windows. |
mguillem |
 |
Parser: automatically add an <head> element if none present in html source
(as done by Internet Explorer and Firefox). |
mguillem |
 |
JavaScript: Location.replace wrongly loaded new URL in top window. Fixes 353. |
mguillem |
 |
XPath: fixed wrong behavior with following axis. Fixes 365. |
mguillem |
 |
JavaScript: fixed double execution of external JavaScript files occurring when text contained
between <script src=...> and </script>. Fixes 375. |
mguillem |
 |
JavaScript: allow to specify a maximal script execution time. Fixes 99. Thanks to Andre Soereng. |
mguillem |
 |
INCOMPATIBLE CHANGE: OK button is now simulated for JavaScript confirm calls when no ConfirmHandler is
installed (it was was the Cancel button previously). |
mguillem |
 |
Removed Jelly support. |
mguillem |
 |
Updated doc to reflect migration from CVS to SVN. Fixes 373. |
mguillem |
 |
Do not submit reset buttons in forms. |
bradclarke |
 |
Transparently decompress server response if gzipped for transfer. Fixes 294. Thanks to Daniel Gredler. |
mguillem |
 |
JavaScript: fixed default String conversion of objects (like table, table row, table cell, collection). Fixes 370. |
mguillem |
 |
JavaScript: XMLHttpRequest.responseXml NodeList elements now accessible by index. Fixes 334. |
mguillem |
 |
JavaScript: take expiration date into account when creating cookies. Fixes 1525234. Thanks to Andre Soereng. |
mguillem |
 |
JavaScript: cells collection for rows now takes th into account. Fixes 366. |
mguillem |
 |
JavaScript: table/tbody.deleteRow(-1) will now delete the last row |
bradclarke |
Release 1.8 – Feb 17, 2006
| Type |
Changes |
By |
 |
Cookies can now be shared between HTTP and HTTPS. Fixes 304. |
mguillem |
 |
HttpWebConnection now uses a single instance of HttpClient (as it can now handle multiple connections). |
mguillem |
 |
Throw ScriptException (unless WebClient.isThrowExceptionOnScriptError() is false) when the source
of an external script can't be loaded. |
mguillem |
 |
Deprecated ScriptException.getEnclosedException. Use getCause instead. |
mguillem |
 |
Added URL of the failed request in message of FailingHttpStatusCodeException. |
mguillem |
 |
Fixed a bug that could cause a ConcurrentModificationException when navigating away
from a page with JavaScript running in the background. |
bradclarke |
 |
DefaultPageCreator now builds an XmlPage and not a TextPage for responses with content type "text/vnd.wap.wml". |
mguillem |
 |
JavaScript: fixed parent scope wrongly set on Style object. |
mguillem |
 |
FailingHttpStatusCodeException now contains the failing WebResponse. |
mguillem |
 |
Modified XmlHttpRequest to use new thread management API for async requests. |
bradclarke |
 |
JavaScript: fixed exception in access to a DOM node when the page contains
a custom object with the same name as the one used by htmlunit for the host object (caused error like:
"Form" is not a constructor). |
mguillem |
 |
Fixed bad handling of comma in Location header of redirections (30x). Fixes 208. |
mguillem |
 |
Implemented setInterval/clearInterval and thread management for setTimeout
and setInterval threads. Thanks to Steven Grimm and Daniel Gredler for patches that
were helpful in the implementation. |
bradclarke |
 |
JavaScript: added support for properties target and srcElement on events. Fixes 305. Thanks to Stefan Anzinger. |
mguillem |
 |
Upgraded commons-httpclient to version 3.0. |
mguillem |
 |
Fixed NPE thrown when JS error occurs on click when ThrowExceptionOnScriptError is false. Fixes 329. Thanks to Paul King. |
mguillem |
 |
Added HtmlAnchor.openLinkInNewWindow() |
bradclarke |
 |
JavaScript: changes on form's action attribute in onSubmit were ignored. Fixes 328. |
mguillem |
 |
Allow external scripts to be loaded using file protocol. Fixes 327. |
mguillem |
 |
JavaScript: added support for property cellIndex on td and th eleements. Fixes 1369052. Thanks to Mark van Leeuwen. |
mguillem |
 |
BaseFrame.FrameWindow has been deprecated and replaced with a top level
FrameWindow class. |
bradclarke |
 |
JavaScript: fixed exception occurring when addBehavior is called twice for the same
behavior. |
mguillem |
 |
JavaScript: Implement add() method for OptionsArray to avoid TypeError. Fixes 1378925. Thanks to Bruce Faulkner. |
mguillem |
 |
JavaScript: added the full URL of the file containing the script being executed
in the exception message when a script error occurs. |
mguillem |
 |
JavaScript: made Location properties writable. Fixes 289. Thanks to Daniel Gredler. |
mguillem |
 |
Added possibility to bypass configured proxy for some hosts. Fixes 1224239. Thanks to Daniel Gredler. |
mguillem |
 |
Fixed support for NTLM proxy. Fixes 1224239. Thanks to Vikram Shitole and Daniel Gredler. |
mguillem |
 |
JavaScript: setting options' length to a value greater than current.
size fills option array with empty options. Fixes 323. |
mguillem |
 |
Fixed mangled binary files loaded with the file protocol for non ISO-8859-1
default system file encoding. Fixes 1370049. Thanks to Paul King. |
mguillem |
 |
Upgraded commons-io to 1.1. |
mguillem |
 |
Form's name now writable (both in DOM and in Javascript). Fixes 322. |
mguillem |
 |
Javascript: getElementsByTagName now returns an ElementArray (instead of a
NativeArray) for html elements allowing expressions like
"myForm.getElementsByTagName('input')['one']". Fixes 321. |
mguillem |
 |
JavaScript: when simulating IE, options collection delegates to select
when the requested property/method doesn't exist. Fixes 210. Thanks to Daniel Gredler. |
mguillem |
 |
Consider inputs with invalid type as text inputs. |
mguillem |
 |
JavaScript: responses to XMLHttpRequest don't disturb window contents anymore. Fixes 318. |
mguillem |
 |
All code deprecated prior to 1.6 has been removed |
bradclarke |
 |
JavaScript: added implementation of IE behavior "#default#download". Fixes 1343212. Thanks to Stefan Anzinger. |
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. |
mguillem |
 |
HtmlOption.click() now returns correctly the page loaded by an onchange event. Fixes 315. |
mguillem |
 |
Fixed requested URL for post form with empty action and original page containing
a query string or action containing only a query string. Fixes 316. Thanks to Ian Lovejoy. |
mguillem |
 |
Upgraded jaxen to 1.1-beta-8 (even if it's a "beta", this is the version
recommended by jaxen developers). |
mguillem |
 |
JavaScript: added support for property contentWindow on (i)frames. |
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). |
mguillem |
 |
Fill frame windows with about:blank when the declaring tag is found
to allow JavaScript to run on it before the real content is loaded. Fixes 291. |
mguillem |
 |
Upgraded commons-httpclient to version 3.0rc4 in ant as well.
Made HtmlForm.submit(SubmittableElement) public to simulate
keyboard submits (more to come later). |
bradclarke |
 |
JavaScript: XMLHttpRequest.send now accepts null as parameter
and fails when simulating Mozilla if called with no parameter like the browser does. |
mguillem |
 |
Upgraded commons-httpclient to version 3.0rc4. |
mguillem |
 |
Javascript: allow to set current node's property within onclick event handler. Fixes 300. |
mguillem |
 |
Javascript: XMLHttpRequest now accepts non xml responses. Fixes 267. |
mguillem |
 |
Javascript: allow to change selected attribute of options created with
document.createElement('option') and not yet added to a select. Fixes 313. |
mguillem |
 |
Load frames content first after the page is loaded to allow access to the whole page
for scripts contained in the frames. Fixes 307. |
mguillem |
 |
JavaScript: added support for document.frames (specific to IE). |
mguillem |
 |
JavaScript: when simulating IE, second parameter in Select.add can be omitted. Fixes 308. |
mguillem |
 |
JavaScript: in a frameset, document.body returns the frameset node. |
mguillem |
 |
JavaScript: added dummy implementation of the properties scrollHeight, scrollLeft,
scrollTop and scrollWidth for html elements. |
mguillem |
 |
JavaScript: added document.anchors. Fixes 303. |
mguillem |
 |
JavaScript: XMLHttpRequest now accepts relative urls. Fixes 269. |
mguillem |
 |
JavaScript: allow creation of XMLHttpRequest as new ActiveXObject('Microsoft.XMLHTTP')
when simulating Internet Explorer. |
mguillem |
 |
JavaScript: default conversion of host objects to string is now "[object Xxxx]" like what Mozilla does |
mguillem |
 |
DomNode.asXml() now produces correct xml encoding special characters. Fixes 1289462. Thanks to Lothar Märkle. |
mguillem |
 |
JavaScript: implemented property offsetParent. Fixes 1267106. Thanks to Bruce Faulkner. |
mguillem |
Release 1.7 – Aug 23, 2005
| Type |
Changes |
By |
 |
JavaScript: img nodes can be accessed by id or name within a form. Fixes 236. |
mguillem |
 |
Click on a JavaScript link loading a page containing frames now return
the main loaded page and not a frame anymore. Fixes 1265410. Thanks to Stefan Anzinger. |
mguillem |
 |
Trim the text of HtmlOption when it is used as initial value attribute
(when no attribute is found as defined in HTML 4.01). |
mguillem |
 |
JavaScript: fixed problem occurring while reading properties of nodes retrieved with childNodes(). Fixes 1265410. Thanks to Bruce Faulkner. |
mguillem |
 |
When posting a form as multipart/form-data don't send Content-Transfer-Encoding
headers for the parts and send Content-Type headers only for files like browsers
do. Fixes 270. |
mguillem |
 |
When posting a form, use encoding from accept-charset attribute if any else
from page to encode the posted parameters. Fixes 219. |
mguillem |
 |
Fixed infinite loop when DefaultCredentialsProvider provides invalid credential.
Ensure that the web connection uses the CredentialProvider configured for the WebClient. |
mguillem |
 |
Handle port correctly when handling a redirection to an other port on the same host. Fixes 260. |
mguillem |
 |
JavaScript: fixed properties text, value and selected for Option objects
created from JavaScript and not yet added to a select. Fixes 230. |
mguillem |
 |
Added WebResponse.getRequestMethod().
ImmediateRefreshHandler now accepts a refresh to the same URL if the first request was a POST. Fixes 276. |
mguillem |
 |
JavaScript: added support for window.closed. |
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(). |
mguillem |
 |
JavaScript: fixed execution of onchange handlers to really return
"The page that occupies this window after this method completes" as defined by
the javadoc. Fixes 241. |
mguillem |
 |
JavaScript: fixed behavior of table.insertRow and table.rows.length for tables containing nested tables. Fixes 295. |
mguillem |
 |
Improved the way getHtmlElementById handle pages containing multiple elements with the same id. Fixes 297. |
mguillem |
 |
JavaScript: made input.setAttribute("type", xxx) behave the same than input.type = xxxx. Fixes 296. |
mguillem |
 |
JavaScript: fixed double execution of script inside <table>. Fixes 274. |
mguillem |
 |
Set state of radio button before executing onclick handler. Fixes 1241739. Thanks to Bruce Faulkner. |
mguillem |
 |
Upgraded nekohtml to version 0.9.5 |
mguillem |
 |
Load responses which content type matches regular expression
"application/.*\+xml" as XmlPage (rather than UnexpectedPage). |
mguillem |
 |
Children of removed nodes were erroneously still available by id using
HtmlPage.getElementById. Fixes 287. |
mguillem |
 |
Upgraded commons-jelly to version 1.0 |
bradclarke |
 |
Upgraded commons-httpclient to version 3.0rc3 |
bradclarke |
 |
Added method for setting HttpClient's virtual host. Fixes 1195509. Thanks to dlevine004. |
bradclarke |
 |
INCOMPATIBLE CHANGE: HtmlElement.getAttributeEntriesIterator now return an iterator
on HtmlAttr (and not Map.Entry) allowing XPath expressions that return a list of node attributes. Fixes 281. Thanks to Denis N. Antonioli. |
mguillem |
 |
Don't perform server request when a link is clicked if href is just an anchor (like "#"). Fixes 279. |
mguillem |
 |
JavaScript: resolve relative locations from the originating page. Fixes 203. |
mguillem |
 |
JavaScript: use the Window as the top scope in Rhino JavaScript engine. Fixes 1213455. Thanks to Daniel Gredler. |
mguillem |
 |
JavaScript: Fixed bug with onchange handler being fired for all input type="file"
on creation. |
bradclarke |
 |
JavaScript: handle position in insertAjacentHTML as case insensitive as IE does. Fixes 273. |
mguillem |
 |
HtmlOption.click() now selects the option. Fixes 278. |
mguillem |
 |
Handle content types in a case insensitive way (as of RFC 2045). Fixes 277. |
mguillem |
 |
Implemented form reset, defaultValue and defaultChecked. Fixes 1209947. Thanks to Daniel Gredler. |
mguillem |
 |
JavaScript: Added window.print() as unimplemented method. |
bradclarke |
 |
Javascript: document.getElementsByTagName and document.getElementsByName
now return an ElementArray (instead of a NativeArray) allowing expressions
like "document.getElementsByTagName('a').item(0)". Fixes 265. |
mguillem |
 |
In a script tag <script type="...">, the value of the type attribute is case insensitive. Thanks to Ray Suliteanu. |
mguillem |
 |
Send headers added with WebClient.addRequestHeader to the server again
(bug introduced in release 1.6). |
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). |
mguillem |
 |
A click on a <label ...> is now propagated to the referenced element. |
mguillem |
Release 1.5 – March 13, 2005
| Type |
Changes |
By |
 |
Determine content-type of uploaded files. Fixes 56. |
mguillem |
 |
Javascript: implemented method removeAttribute for DOM nodes. Fixes 1153758. Thanks to George Murnock. |
mguillem |
 |
Javascript: Added support for document.scripts |
bradclarke |
 |
Javascript: fixed getAttribute() to return null if the requested attribute is not defined. Fixes 239. |
mguillem |
 |
Javascript: implemented property childNodes. Fixes 1153693. Thanks to George Murnock. |
mguillem |
 |
Fixed bug where document.write-ing a frame was causing an attempt
to load an invalid URL starting with http://first |
bradclarke |
 |
Fixed node reference problem occurring when the text of a textarea is changed. Fixes 237. |
mguillem |
 |
Javascript: document.links doesn't return tags with empty href anymore. Fixes 235. Thanks to George Murnock. |
mguillem |
 |
A RefeshHandler can now throw IOExceptions instead of handling them.
Updated ImmediateRefeshHandler and ThreadedRefeshHandler to make refresh failures
exceptions instead of just log messages.
Added WaitingRefeshHandler for waiting real time on the current thread. |
bradclarke |
 |
Javascript: the type property of input elements can now be changed. |
mguillem |
 |
Fixed bug occurring when submitting from JavaScript a form with a JavaScript action. Fixes 227. Thanks to George Murnock. |
mguillem |
 |
HtmlElement's getHtmlElementsByAttribute, getHtmlElementsByTagName, and
getHtmlElementsByTagNames were all updated to ignore the case of the passed
in tag name as they're always compared with a lowercase version. Fixes 75. |
bradclarke |
 |
JavaScript: Implemented location.reload(). Fixes 1145916. Thanks to Daniel Gredler. |
bradclarke |
 |
Fixed bug with meta refresh that only contained a number. Fixes 226. Thanks to Daniel Gredler. |
bradclarke |
 |
INCOMPATIBLE CHANGE: RefeshHandler interface changed and they must now do the
refresh themselves. DefaultRefreshHandler was replaced with
ImmediateRefreshHandler (the new default) and ThreadedRefreshHandler. Fixes 1145869. Thanks to Daniel Gredler. |
bradclarke |
 |
INCOMPATIBLE CHANGE: com.gargoylesoftware.htmlunit.CredentialProvider has been removed.
You should now use org.apache.commons.httpclient.auth.CredentialsProvider instead.
This patch should allow support for NTLM and Digest authentication as well as
proxy authentication. Fixes 1144103. Thanks to Daniel Gredler. |
bradclarke |
 |
JavaScript: Pick up behaviors defined in style attribute when simulating IE. Fixes 1110768. Thanks to Daniel Gredler. |
mguillem |
 |
JavaScript: expressions like myForm.myField now look for form fields with "myField" as id or name. Fixes 215. |
mguillem |
 |
Clicked image button without name sends parameter x and y. Fixes 217. |
mguillem |
 |
Submit form elements in the same order that they appear in the HTML form. Fixes 191. Thanks to David D. Kilzer. |
mguillem |
 |
Upgraded commons-httpclient to version 3.0rc1 |
bradclarke |
 |
JavaScript: fixed document.domain setter for domains like d1.d2.d3.d4.com. Fixes 1115259. Thanks to Michael Ottati. |
mguillem |
 |
JavaScript: fixed document.myForm.myField should not retrieve the field if it is an input of type image. Fixes 214. |
mguillem |
 |
JavaScript: added empty implementation of type setter for input fields (already allowing some scripts to run). |
mguillem |
 |
Added HtmlElement.getEnclosingElement(String tagName). |
mguillem |
 |
JavaScript: added properties rowIndex and cells and function insertCell for table rows. |
mguillem |
 |
JavaScript: fixed insertRow when asked to insert at the end of the rows collection (was inserted one position before). |
mguillem |
 |
Guess content type for file content and file name when loading a file URL. Fixes 212. |
mguillem |
 |
Parse responses of type "application/xml" as XmlPage. |
mguillem |
 |
Fixed wrong URLs expansion with "#". Fixes 203. Thanks to Hans Donner. |
mguillem |
 |
JavaScript: improved window.execScript to execute JavaScript code. Fixes 1106319. Thanks to Daniel Gredler. |
mguillem |
 |
Use commons-codec's Base64. Marked custom Base64 as deprecated. Fixes 1109224. Thanks to Hans Donner. |
mguillem |
 |
Fixed NullPointerException thrown in JavaScript by createElement('input'). Fixes 144. Thanks to Daniel Gredler. |
mguillem |
 |
Javascript: implemented innerText for html elements (read/write). Fixes 1107432. Thanks to Hans Donner. |
mguillem |
 |
Fixed ClassCastException occurring when unloading a frameset that contained a frame which content wasn't html. |
mguillem |
 |
Implemented WebRequestSettings parameter object.
Created new WebClient.getPage() methods and deprecated old ones. |
bradclarke |
 |
Stopped httpclient from automatically retrying failed connections 5 times. |
bradclarke |
 |
A failure when setting a location from JavaScript now throws an exception |
bradclarke |
 |
Added support for misc table methods in JavaScript. Fixes 1104522. Thanks to Daniel Gredler. |
bradclarke |
 |
JavaScript: added dummy implementation of window.setInterval and window.clearInterval doing nothing. |
mguillem |
 |
synchronized JavaScript execution for multi-threaded testing. Fixes 140. Thanks to David D. Kilzer. |
bradclarke |
 |
parse application/xhtml+xml content type into HtmlPage. Fixes 1088709. |
bradclarke |
 |
JavaScript: use js object Input for <input type="image" .../> and <input type="button" .../>. Fixes 206. |
mguillem |
 |
JavaScript: default conversion to string of an anchor returns the fully qualified URL specified by the href. |
mguillem |
 |
JavaScript: the DOM node of a <frame> or <frame> is now visible to the contained page while loading. |
mguillem |
 |
JavaScript: when simulating IE, a variable named after the id of a DOM node represents this DOM node. Fixes 177. |
mguillem |
 |
Made window.name writable. Fixes 1099235. Thanks to David D. Kilzer. |
mguillem |
 |
JavaScript: document.xxx now retrieves DOM node with name xxx only if it's an img or a form (input should not be retrieved). Fixes 202. |
mguillem |
 |
JavaScript: Fixed bug in window.frames[i] (was introduced in 1.4). |
mguillem |
 |
JavaScript: Fixed bug with frames.length not working. |
cerskine |
 |
JavaScript: Implement writable document.location. Fixes 1100321. Thanks to Daniel Gredler. |
mguillem |
 |
JavaScript: added window.status and removed erroneous document.status. Fixes 199. |
mguillem |
 |
Fixed window.frames['frameName'] causes ClassCastException. Fixes 198. Thanks to Chris Eldredge. |
mguillem |
 |
JavaScript: document.getElementById("") now returns null. |
mguillem |
Release 1.4 – January 9, 2005
| Type |
Changes |
By |
 |
Fixed platform specific encoding problem in test WebClientTest.testLoadPage_EncodeQueryString(). Fixes 197. Thanks to David D. Kilzer. |
mbowler |
 |
JavaScript: added window.clearTimeout. Fixes 65. Thanks to Daniel Gredler. |
mguillem |
 |
JavaScript: dynamically compiled function runs in the scope of their creation. Fixes 134. |
mguillem |
 |
JavaScript: fixed problem occurring for <script for="window" event="onload()"> with event value ending with "()". |
mguillem |
 |
JavaScript: added document.domain. |
mguillem |
 |
JavaScript: added implementation of IE behavior "#default#clientCaps". Fixes 1096789. Thanks to Daniel Gredler. |
mguillem |
 |
JavaScript: added support to get/set the onload property as a function for window and for frames. |
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. |
mguillem |
 |
Added HtmlPage.getFrameByName |
mguillem |
 |
asText() now returns "checked" or "unchecked" for HtmlRadioButtonInput and HtmlCheckBoxInput. Fixes 176. Thanks to Mike Bresnahan. |
mguillem |
 |
JavaScript: added dummy implementation of window.execScript doing nothing. |
mguillem |
 |
JavaScript: added attribute support. Fixes 1096133. Thanks to Daniel Gredler. |
mguillem |
 |
Added WebClient.setThrowExceptionOnScriptError(boolean) and isThrowExceptionOnScriptError() to allow script errors
to stop only execution of current script as browsers do. |
mguillem |
 |
JavaScript: document.write(ln) writes directly in DOM which allows access to DOM nodes in the same script code. |
mguillem |
 |
Added WebClient.setTimeout(int) and WebClient.getTimeout() |
bradclarke |
 |
JavaScript: all elements can now be accessed by name with syntax document.foo (like what was already working for forms). |
mguillem |
 |
JavaScript: setting the value attribute of a select object now selects the corresponding option. |
mguillem |
 |
document.images is now a "live" collection. |
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". |
mguillem |
 |
Extended JavaScript event handler to most common events: ondblclick, onmousedown, onmouseup,
onmousemove, onmouseover, onmouseout, onkeypress, onkeydown, onkeyup, onfocus, onblur. Fixes 1090438. Thanks to Chris Eldredge. |
mguillem |
 |
Added JS support for outerHTML. |
mguillem |
 |
Upgraded commons-httpclient to version 3.0beta1 |
mguillem |
 |
Added dependency to commons-codec 1.3 |
mguillem |
 |
Possibly incompatible change: Removed fix trying to mimic browser kludge for non-RFC2019-compliant cookies as it causes new problems. Fixes 159. |
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). |
mguillem |
 |
Added support for setting cookies from JS (like document.cookie = "foo=something"). |
mguillem |
 |
Added dependency to commons-lang |
mguillem |
 |
Trying to set a JS property configured with writable="false" now generates a JS runtime error. |
mguillem |
 |
Added conversion to string and method toString on event handler functions. |
mguillem |
 |
Added support for JS document.links. |
mguillem |
 |
IFrames can now be seen in JS as an html element too. Expressions like window.myIFrame.style.display now work. Fixes 165. |
mguillem |
 |
document.forms is now a "live" collection and forms can be accessed with document.forms["myFormId"] where "myFormId" is the id of a form. Fixes 187. |
mguillem |
 |
Collections like document.all or form.elements now use xpath expressions and are "live" (thanks to Daniel Gredler for the idea). |
mguillem |
 |
Added the possibility to evaluate xpath expressions relatively to a particular node of a the html document. |
mguillem |
 |
Added node.children. |
mguillem |
 |
Fixed bug for JS wrapped in HTML comments on one line. Fixes 188. Thanks to Daniel Gredler. |
mguillem |
 |
Allow to set commons-httpclient cookie policy using system property. |
mguillem |
 |
Added support for insertAdjacentHTML. |
mguillem |
 |
Fixed DomNode.replace() fails to set previousSibling on newNode and other problems when changing DomNode. Fixes 131. |
mguillem |
 |
Allow onclick event handler to be set by JavaScript. Fixes 1080365. Thanks to Chris Eldredge. |
mguillem |
 |
Added logic to WebClient to allow messages from parsing the HTML to be displayed on the
on the console. |
cerskine |
 |
Fixed bug changing "//" to "/" in query parameters of URLs called from a page. Fixes 181. Thanks to Sergey Gorelkin. |
mguillem |
 |
When simulating IE, nodes can now be accessed directly by their name (ex: window.form1). |
mguillem |
 |
Improved ElementArray: fix for empty collection and addition of method namedItem(). Fixes 1085878. Thanks to Daniel Gredler. |
mguillem |
 |
Fixed bug with setTimeout: a timeout is now only executed if the page that placed it is always "alive". |
mguillem |
 |
Fixed html element property access in JS: attributes are case sensitive. Fixes 180. |
mguillem |
 |
Improved JS innerHTML to allow complex html code to be set. |
mguillem |
 |
Refactored different arrays of html elements in a generic ElementArray. Expressions like "document.all.tags('s').item(y)" can now be evaluated. Fixes 1085224. Thanks to Daniel Gredler. |
mguillem |
 |
Upgraded rhino js to 1.6R1. Fixes 63. |
mguillem |
 |
Fixed NullPointerException tossed by HtmlSelect.asText() if no option is selected. Fixes 175. Thanks to Mike Bresnahan. |
mguillem |
 |
Improved Refresh meta tag support: Take care of enclosing <noscript> tags and correctly interpret quoted urls. |
mguillem |
 |
Implemented IE specific behavior related methods as well as default behavior "#default#homePage". Fixes 1081544. Thanks to Daniel Gredler. |
mguillem |
 |
Implemented screen methods. Fixes 1081544. Thanks to Daniel Gredler. |
mguillem |
 |
Added missing (for IE) methods/properties of window.navigator. Fixes 1082509. Thanks to Daniel Gredler. |
mguillem |
 |
Added support for window.location.replace(...). |
mguillem |
 |
Fixed problem with pages where body's onload contains a return statement. Fixes 174. Thanks to Daniel Gredler. |
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. |
mguillem |
 |
Automatically add value="on" for radio buttons and checkboxes without value attribute (available for JS access and used when submitting a form as browsers do). Fixes 172. |
mguillem |
 |
Added support for methods moveBy, scroll, scrollBy, scrollByLines, scrollByPages and scrollTo for JS window object. Fixes 1075526. Thanks to Daniel Gredler. |
mguillem |
 |
Fixed bug where encoded "&", "=", "+", ",", and "$" in URLs would be decoded before
sending to the server. |
bradclarke |
 |
getTypeAttribute now returns "text" for input without specified type attribute as it is the default value. |
mguillem |
 |
Added support for item function in JavaScript like "document.all(...).item(...). Fixes 171. |
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. |
mguillem |
 |
Upgraded nekohtml to version 0.9.4 |
bradclarke |
 |
Automatically encode query string part of requested URLs if needed as browsers do (for instance change "http://first?a=b c" to "http://first?a=b%20c"). |
mguillem |
 |
Response of type "text/xml" are now represented as an XmlPage (rather that a TextPage)
which gives access to the Document object if the xml is well formed. |
mguillem |
 |
Fixed bug for JS location.protocol (was missing a ":", e.g. "http:" and not "http"). Fixes 167. Thanks to Michael Ottati. |
mguillem |
 |
Added support for getting and setting option.selected in JavaScript. Fixes 166. |
mguillem |
 |
Fixed bug where a NullPointerException is thrown when leaving a page containing an iframe without src attribute. |
mguillem |
 |
Added support for window.resizeTo. Fixes 1068672. Thanks to Dierk Koenig. |
mguillem |
 |
Fixed wrong values of window.opener: now null (instead of undefined) when no opener
and null when a link opens in "_top". Fixes 1068667. |
mguillem |
 |
Upgraded commons-httpclient to version 2.0.2 |
mbowler |
 |
Added support for function syntax on document.all(). Fixes 1067471. Thanks to Marc Guillemot. |
mbowler |
 |
Added support for InnerHTML(). Fixes 1065797. Thanks to Chris Erskine. |
mbowler |
 |
Added support for enabling the errors from
NekoHtml by setting a value on the WebClient. Fixes 1065797. Thanks to Chris Erskine. |
mbowler |
 |
Previously, if you clone an element, and set an attribute in either
the old or the new, the new setting appears in the other one as well.
This was because cloneNode just left the attributemap
alone, so the clones wound up using the same ones as
the old. Fixes 1065797. Thanks to Mike Gallaher. |
mbowler |
Release 1.3 – November 12, 2004
| Type |
Changes |
By |
 |
Upgraded commons-jelly to version 1.0-beta-4 |
mbowler |
 |
Upgraded commons-jelly-tags-log to version 1.0 |
mbowler |
 |
Upgraded commons-jelly-tags-xml to version 1.0 |
mbowler |
 |
Upgraded commons-jelly-tags-junit to version 1.0 |
mbowler |
 |
Upgraded commons-jexl to version 1.0 |
mbowler |
 |
Upgraded commons-cli to version 1.0 |
mbowler |
 |
Upgraded dom4j to version 1.5 |
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. |
mbowler |
 |
Upgraded commons-collections to version 3.1 |
mbowler |
 |
Upgraded commons-beanutils to version 1.7.0 |
mbowler |
 |
Upgraded commons-httpclient to version 2.0.1 |
mbowler |
 |
Upgraded xercesImpl to version 2.6.2 |
mbowler |
 |
Upgraded nekohtml to version 0.9.1 |
mbowler |
 |
Upgraded commons-logging to version 1.0.4 |
mbowler |
 |
Upgraded gsbase to version 2.0.1 |
mbowler |
 |
Updated server names for cvs access. Fixes 1033055. Thanks to Chris Erskine. |
mbowler |
 |
Added support for the JavaScript document.images and also for getting and setting
the page title. Fixes 1032913. Thanks to Chris Erskine. |
mbowler |
 |
Patch for JS frames.length. Fixes 1006472. Thanks to Marc Guillemot. |
mbowler |
 |
Fixed inconsistencies in the handling of isDisabled. Fixes 975675. Thanks to David D. Kilzer, Mike Bresnahan. |
mbowler |
 |
Initial support for Active X objects. Fixes 940981. Thanks to Ben Curren. |
mbowler |
 |
INCOMPATIBLE CHANGE: The common browsers will automatically insert a tbody tag inside
tables if there isn't one already there. Now HtmlUnit does that as well. Fixes 129. |
mbowler |
 |
Fixed bug where calling document.body from JavaScript before the body tag had been
parsed was causing an exception. |
mbowler |
 |
Added support for JavaScript table.rows. Fixes 127. Thanks to David D. Kilzer. |
mbowler |
 |
The common browsers always return uppercase values for the JavaScript nodeName property.
Now HtmlUnit does as well. Fixes 128. |
mbowler |
 |
Added support for the IE attribute document.readyState. Also added the js.log custom
logger to aid in debugging JavaScript errors. Thanks to Chris Erskine. |
mbowler |
 |
Added support for onchange handlers in textareas. Fixes 1045243. Thanks to Marc Guillemot. |
mbowler |
 |
Stubbed out window.moveTo(x,y). Fixes 1049797. Thanks to Marc Guillemot. |
mbowler |
 |
Added dependency to commons-io. Fixes 1053811. Thanks to Marc Guillemot. |
mbowler |
 |
Initial support for file urls.
There is a bug in commons-io that will break this when trying to read
file URLs on another drive under windows:
http://issues.apache.org/bugzilla/show_bug.cgi?id=31884. Fixes 1053811. Thanks to Marc Guillemot. |
mbowler |
 |
Fixes for buggy link management in DomNode.basicRemove(). Fixes 1051885. Thanks to Mike Williams. |
mbowler |
 |
Fix for bug where HttpWebConnection.getStateForUrl() fails with localhost URL. Fixes 149. Thanks to David D. Kilzer. |
mbowler |
 |
Added IE specific behaviour for getElementById(). Fixes 1056744. Thanks to Chris Erskine. |
mbowler |
 |
Made WebTestCase abstract. Fixes 1056376. Thanks to David D. Kilzer. |
mbowler |
 |
Changed HtmlElement.getOneHtmlElement() to match the documented behaviour
in the case where multiple matches were found. Fixes 155. |
mbowler |
 |
Added getElementsByTagName(), getClassName() and setClassName() to HTMLElement. Fixes 1058238. Thanks to Chris Erskine. |
mbowler |
 |
getAttribute() and setAttribute() missing on HTMLElement. Fixes 130. Thanks to David D. Kilzer. |
mbowler |
 |
Mimic browser kludge for non-RFC2019-compliant cookies. Fixes 159. Thanks to David D. Kilzer. |
mbowler |
 |
Fixed bug where the getAttribute() and setAttribute() methods were not
ignoring the case of the attribute name when getting and
setting. Fixes 133. Thanks to David D. Kilzer. |
mbowler |
 |
Fixed bug where a colon in a relative URL causes MalformedURLException in WebClient.expandUrl(). Fixes 147. |
mbowler |
 |
If the type attribute isn't specified on a button attribute then the default value according
to the spec is "submit". Internet Explorer doesn't obey the spec and returns "button". HtmlUnit
now does what the browsers do, depending which BrowserVersion is specified.. Fixes 156. |
mbowler |
 |
Fixed bug in handling of onclick handlers for an HtmlCheckBoxInput. When an onclick
handler is specified on a HTML checkbox that causes a new page to be displayed,
the function HtmlCheckBoxInput.click() was not returning the new page. Rather it was
returning the original page. Fixes 137. Thanks to Mike Bresnahan. |
mbowler |
 |
Fixed bug where HtmlImageInput.click() was not including the name.x and
name.y attributes in the submitted request. Fixes 141. Thanks to Mike Bresnahan. |
mbowler |
 |
If form.submit() is called from JavaScript then the forms onsubmit handler should
not get executed. Fixes 146. |
mbowler |
 |
Fixed OutOfMemoryError when submitting a form many times from the same HtmlPage. Fixes 160. Thanks to David D. Kilzer. |
mbowler |
 |
Clean up memory use in HttpWebConnection.makeWebResponse(). Fixes 161. Thanks to David D. Kilzer. |
mbowler |
Release 1.3-pre2 – September 26, 2004
| Type |
Changes |
By |
 |
Added support for setting input.name in JavaScript |
bradclarke |
 |
Added support for JavaScript document.body |
bradclarke |
 |
Changed HtmlSelect.getSelectedOptions() to not auto-select the first
option if the list size > 1. Fixes 136. Thanks to Mike Bresnahan. |
bradclarke |
 |
Refactored HtmlFileInput submission to include the filename even when
there is no file submitted. Fixes 138. Thanks to David D. Kilzer. |
bradclarke |
 |
Added support for JavaScript Window.close(). Fixes 956964. Thanks to David D. Kilzer. |
bradclarke |
 |
INCOMPATIBLE CHANGE: WebClient.moveFocusToElement() now takes a
FocusableElement as it's parameter instead of an HtmlElement.
FocusableElement is derived from HtmlElement.
Added framework for focus() and blur() as well as JavaScript support
for them on anchors and inputs. Fixes 123. Thanks to David D. Kilzer. |
bradclarke |
 |
Added support for JavaScript Element.setAttribute() |
bradclarke |
 |
Added support for JavaScript Node.hasChildNodes() |
bradclarke |
 |
Fix for Bug 916316 - this.form inside onclick should work now |
bradclarke |
 |
Implemented JavaScript document.getElementsByName() |
bradclarke |
 |
Added support for setting select.selectedIndex from JavaScript |
bradclarke |
 |
Changed HtmlSelect.fakeSelectedAttribute() to use an empty string
as no value at all (nothing submitted) |
bradclarke |
 |
Fixed bug where a select option with no value attribute was not
submitted with it's contents |
bradclarke |
 |
DefaultPageCreator can now be easily extended to add custom
content type handling without affecting the default handlers. |
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. |
bradclarke |
 |
Deprecated HtmlPage(WebClient, URL, WebResponse, webWindow) in favor of
HtmlPage(URL, WebResponse, webWindow) |
bradclarke |
 |
Deprecated HTMLParser() as you should never need an instance |
bradclarke |
 |
Deprecated HTMLParser.parse(WebClient, WebRespose, WebWindow) in favor of
static HTMLParser.parse(WebRespose, WebWindow). |
bradclarke |
 |
Updated HtmlRadioButtonInput.click() to select the clicked radio button |
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. |
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. |
bradclarke |
 |
Added HtmlOption.getValue() that returns the value of the option as
it should be submitted |
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 |
bradclarke |
 |
Fixed bug where submitting a form containing a select that had no options
caused a NullPointerException. |
bradclarke |
 |
INCOMPATIBLE CHANGE: Changed HtmlPage so it is no longer derived from
HtmlElement. It is now derived from DomNode and a new HtmlHtml element
represents the root element of the document. Similarly, Document in
JavaScript is no longer derived from HTMLElement, but is derived from
NodeImpl instead. |
dktaylor |
 |
Add HtmlPage.getDocumentElement() and Document.documentElement in JavaScript. |
dktaylor |
 |
Improved speed of getElementById(). |
dktaylor |
 |
Change the node type and node name for HtmlPage and Document in JavaScript. |
dktaylor |
 |
Nested input elements, i.e. those that were not
immediate children of the enclosing form, were not handled. Thanks to Christian Sell. |
mbowler |
 |
Changed the behaviour of single select lists to match the common
browsers. When multiple items have the selected attribute then
the last one is returned to the server. When no items have been
selected, the first one is sent to the server. Thanks to Christian Sell. |
mbowler |
 |
Deprecated MockWebConnection.setContent() in favour of setDefaultResponse()
which is more descriptive. Changed all tests to use the new method. |
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. |
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. |
mbowler |
 |
Fixed bug where forms without names were not being returned by
document.forms. Fixes 111. |
mbowler |
 |
Added support for the following attributes on Document.Location:
hash, host, hostname, href, pathname, port, protocol and search. Fixes 112. |
mbowler |
 |
Added support for Anchor.href and Anchor.getAttribute(). Fixes 856885. Thanks to Alexei Goussev. |
mbowler |
 |
Fixed bug where getting the style attribute should return an empty
string instead of NOT_FOUND. Fixes 871620. Thanks to Alexei Goussev. |
mbowler |
 |
Fixed bug where calling select() on an HtmlInput from JavaScript caused an
exception about select being a function and a property (it's only a function) |
bradclarke |
 |
Added initial support for refresh handlers. They will be invoked from meta
tag refreshes and response header refreshes but not currently from JavaScript
refreshes |
mbowler |
 |
Added serialVersionUID to all classes that are Serializable but didn't already
have one of these. |
mbowler |
 |
Fix for performance problem in JavaScript handling. Fixes 1034897. Thanks to Darrell DeBoer. |
mbowler |
 |
If the server returns an unsupported encoding type then the browsers assume
ISO-8859-1. Now HtmlUnit does the same. Fixes 115. |
mbowler |
Release 1.3-pre1 – November 7, 2003
| Type |
Changes |
By |
 |
INCOMPATIBLE CHANGE: Added method to interface WebWindowListener for
window closing events. |
mbowler |
 |
INCOMPATIBLE CHANGE: There previously were three separate tree models
for any given page: 1) the HtmlElement hierarchy 2) The xml DOM model and
3) the JavaScript element model. Now the first two tree models have
been merged into one. Thanks to Christian Sell. |
mbowler |
 |
Continued migration of the build process from ant to maven. |
mbowler |
 |
Patch for bug in onload handler submitted by Andreas Hangler. Fixes 69. |
mbowler |
 |
Added support for the about: protocol - patch from Jun Chen. Fixes 797144. |
mbowler |
 |
Added support for window frames - patch from Jun Chen. Fixes 797144. |
mbowler |
 |
an update of the version number in build.xml and outputting of
a src jar for the current build. Patch submitted by Brad Clarke. Fixes 43. Thanks to Brad Clarke. |
mbowler |
 |
Added HtmlFileInput support. Patch submitted by Brad Clarke. Fixes 42. Thanks to Brad Clarke. |
mbowler |
 |
Upgraded junit.jar to 3.8.1. Fixes 44. Thanks to Brad Clarke. |
mbowler |
 |
Fixed bug where HtmlPage.asText() would blow up if form tags were
found between tr and td tags. Clearly this is illegal html but
the browsers support it so HtmlUnit needs to as well. Fixes 101. |
mbowler |
 |
Fixed bug where form elements without names were being submitted anyway. Patch
supplied by Brad Clarke. Fixes 104. Thanks to Brad Clarke. |
mbowler |
 |
Fixed bug where disabled elements were being submitted anyway.
Patch supplied by Brad Clarke. Fixes 105. Thanks to Brad Clarke. |
mbowler |
 |
Navigator.javaEnabled should be method not property. Fixes 100. |
mbowler |
 |
Added WebClient.getWebWindows(). Fixes 38. |
mbowler |
 |
Fixed bug where radio button and checkbox logic was case sensitive.
Patch supplied by Brad Clarke. Fixes 106. Thanks to Brad Clarke. |
mbowler |
 |
Added support for Window.focus(). Patch supplied by Brad Clarke. Fixes 49. Thanks to Brad Clarke. |
mbowler |
 |
Add support for getting HTMLElement.firstChild, lastChild,
nextSibling and previousSibling. HTMLElement.firstChild returns
the first node below the current node. HTMLElement.lastChild
returns the last node below the current node. HTMLElement.nextSibling
returns the node after the current node. HTMLElement.previousSibling
returns the node before the current node. They each return null
if there is no such node or the node type is not supported (not HTML). |
dktaylor |
 |
Add support for HTMLElement.removeChild and insertBefore.
HTMLElement.removeChild removes an Element from the HTML document.
It returns the removed Element which is no longer part of the HTML
document. HTMLElement.insertBefore adds a new child element before
another child element. It returns the newly added child element. |
dktaylor |
 |
Add support for HTMLElement.cloneNode and replaceChild and
Document.createTextNode to close RFE 805051. To support
createTextNode, added support for DOM text nodes and character
data nodes including the data and length properties and
appendData, deleteData, insertData, replaceData, substringData
and splitText functions. Updated DOM API properties and
methods of HTMLElement to work with text nodes. Also added
support for HTMLElement.nodeType, nodeName and nodeValue
properties. Fixes 45. |
dktaylor |
 |
Added method HtmlArea.click() |
mbowler |
 |
Add support for click() for all element types that have an
onClick attribute. This includes image. Removed extra
non-standard attributes (onClick, etc.) from BDO element.
Fixed support for button tags with type other than submit.
Added support for access keys to anchor, area, label, legend,
and textarea elements. Fixes 41. |
dktaylor |
 |
Fixed bug where variables defined in a script could not be referenced
as "window.myVariable". This prevented the google ads from working
on the HtmlUnit website. |
mbowler |
 |
Stubbed out Window.onerror |
mbowler |
 |
Fixed bug where an option without a value could not be selected. Fixes 99. |
mbowler |
 |
Fixed bug where Select[index] wasn't returning options. Fixes 98. |
mbowler |
 |
Fixed bug where button names would get submitted twice. Patch
submitted by Brad Clarke. Fixes 108. Thanks to Brad Clarke. |
mbowler |
 |
Added support for auto-refresh both from a Meta tag and from an
HTTP response header. Fixes 33. |
mbowler |
 |
Added support for the format of <script> defined by DOM Level 2.
Patch submitted by Jun Chen. Fixes 824842. Thanks to Jun Chen. |
mbowler |
 |
An HtmlTextArea should not contain anything but preformatted text,
so doing things such as converting <br> to line breaks and removing
extra white space should not happen. Patch supplied by Brad Clarke. Fixes 109. Thanks to Brad Clarke. |
mbowler |
 |
Fixed exception when trying to reference one frame by name from
another in JavaScript. For example "parent.nav.document", where
nav is the name of the frame. Fixes 107. |
mbowler |
 |
Fixed exception when specifying an empty string for src on an a frame. Fixes 97. |
mbowler |
 |
Fixed the bug where newly opened windows targeted at named
frames were not opening in the correct windows.
Changed returned page from click() method to work with new
targets. That is, instead of just returning changes to the
immediate window, it returns any window that is opened. So,
if you call click() on an element that has a target set, you
will get the page in the window for that target. This is
particularly needed for the _blank target where you couldn't
find the new window without this change since it is not named. Fixes 92. |
dktaylor |
 |
Fixed a bug where windows that were overwritten were not
cleaned up so they would be returned from getWebWindowByName. |
dktaylor |
 |
Added WebWindow.getTopWindow() and getParentWindow(). |
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. |
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. |
dktaylor |
 |
Added support for base elements to set a default target
using the target attribute. This affects a, area and form
elements. |
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.) |
dktaylor |
 |
Changed the behaviour of HtmlCheckBoxInput.click() to be consistent
with IE and Mozilla. Patch submitted by Jun Chen. Fixes 824730. Thanks to Jun Chen. |
mbowler |
 |
Fix return type from DomCharacterData.getData to be String. |
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. |
dktaylor |
 |
Added support for onload handlers on frames. This isn't supported
by the HTML specification but is supported by the popular browsers. |
mbowler |
 |
Upgraded commons-httpclient.jar to 2.0-rc2 |
mbowler |
 |
New method WebClient.loadWebResponseInto() which can be used to create
pages that were not loaded via HTTP. |
mbowler |
 |
New method StringWebResponse which can be used to easily create a
WebResponse based on a string containing html. |
mbowler |
 |
Finished the second variation of document.write(), writing to frames
other than the one that is loading. Fixes 14. |
mbowler |
 |
New method TopLevelWindow.close(). Fixes 37. |
mbowler |
 |
Added "type" attribute to WebWindowEvent to make testing easier |
mbowler |
 |
Refactored test for window opening using the new type attribute. |
mbowler |
 |
Added support for window.status. Fixes 23. |
mbowler |
 |
New method HtmlForm.getInputByValue() to get a single input. Fixes 29. |
mbowler |
 |
New method HtmlForm.getInputsByValue() to get multiple inputs. Fixes 29. |
mbowler |
 |
Raise more specific exception from HtmlForm.getRadioButtonInput
if there is no radio button to match the name. |
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. |
dktaylor |
 |
Fixed support for option label attribute so label value is
returned as text if label is set. |
dktaylor |
 |
Add support for the id attribute of HTMLElement in JavaScript.
This partly fixes bug 757225. |
dktaylor |
 |
Add HtmlElement.getId and setId. |
dktaylor |
 |
Fix Document.getElementById in JavaScript so it returns null
when there is no element with the given ID. |
dktaylor |
 |
Added support for jelly wrappers |
mbowler |
 |
Fixed bug with expansion of URLs that contain pound signs. |
mbowler |
 |
Upgraded NekoHTML to 0.8.1 |
mbowler |
 |
Added MockWebConnection in the deployable tree and changed FakeWebConnection
(in the test tree) to subclass that. |
mbowler |
Release 1.2.3 – July 31, 2003
| Type |
Changes |
By |
 |
Initial support for Maven |
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. |
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. |
mbowler |
 |
Refactored some logic out of Form into FormElementsArray for easier maintenance |
mbowler |
 |
Many classes had their own assertNotNull() method. Created an assert class and
changed all classes to use Assert.notNull() rather than separate methods. |
mbowler |
 |
Fixed bug in character encoding. Patch supplied by Noboru Sinohara. Fixes 72. Thanks to Noboru Sinohara. |
mbowler |
 |
Enhanced HtmlElement.asText() to behave more like a browser. Patch supplied
by Mike J. Bresnahan. Thanks to Mike J. Bresnahan. |
mbowler |
 |
Updated NekoHTML to 0.7.7 |
mbowler |
 |
Changed the JavaScriptEngine to use weak references for HtmlPage objects. Previously
HtmlPage objects were never being garbage collected resulting in excessive memory
usage. Fixes 76. Thanks to Noboru Sinohara. |
mbowler |
 |
Fixed bug where the JavaScript textarea object was not properly getting and setting the 'value'. Fixes 79. |
mbowler |
 |
Fixed bug where URL expansion wasn't obeying the base element as defined in the html. Fixes 74. Thanks to XuefengHe. |
mbowler |
 |
Fixed bug where JavaScript form elements were not always being initialized correctly.. Fixes 78. Thanks to jin kim. |
mbowler |
 |
Fixed typo in two of the samples in the getting started document. Fixes 81. Thanks to Matt Ho. |
mbowler |
 |
Moved all tests under src/test/java |
mbowler |
 |
Fixed bug where onload handler would not execute a function if the brackets
weren't specified. Patch submitted by David K. Taylor. Fixes 69. Thanks to David K. Taylor. |
mbowler |
 |
Fixed bug "document.write of script element does not load script". Patch submitted
by David K. Taylor. Fixes 71. Thanks to David K. Taylor. |
mbowler |
 |
Fix for bug 740636 "getElementsByTagName should be case insensitive".
Patch submitted by David K. Taylor. Fixes 85. Thanks to David K. Taylor. |
mbowler |
 |
Fix for bug 740605 "External script is executed before script element added".
Patch submitted by David K. Taylor. Fixes 84. Thanks to David K. Taylor. |
mbowler |
 |
Fix for bug 740665 "Script attributes undefined when script executes".
Patch submitted by David K. Taylor. Fixes 86. Thanks to David K. Taylor. |
mbowler |
 |
Fix for bug 742902 "document.location prints as object reference instead of URL".
Patch submitted by David K. Taylor. Fixes 87. Thanks to David K. Taylor. |
mbowler |
 |
Fix for bug 743241 "document.write from external script is not added to document".
Patch submitted by David K. Taylor. Fixes 88. Thanks to David K. Taylor. |
mbowler |
 |
Partial fix for RFE 741930 "document.createElement(...) and form.appendChild(...)".
This fix adds document.createElement for most element types. It does not support input tags. Fixes 27. |
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; |
dktaylor |
 |
Partial fix for RFE 741930 "document.createElement(...) and form.appendChild(...)".
This fix adds HTMLElement.appendChild. Fixes 27. Thanks to Barnaby Court. |
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). |
dktaylor |
 |
Fixed broken behaviour in Input.onclick. Previously, if the onclick handler
for a submit input didn't return true then the form would not be submitted.
The html spec doesn't seem clear on this but Internet Explorer and Mozilla
both allow the form to be submitted no matter what is returned from
Input.onclick. |
mbowler |
 |
Moved all logic from the HtmlInput subclasses up into HtmlInput itself.
Patch provided by Barnaby Court. Thanks to Barnaby Court. |
mbowler |
 |
Added instructions for the "how to compile from cvs" document.
Patch provided by Barnaby Court. Thanks to Barnaby Court. |
mbowler |
 |
Changed HtmlTextArea.setText() to actually modify the DOM
Patch provided by Barnaby Court. Fixes 759217. Thanks to Barnaby Court. |
mbowler |
 |
Fix for bug 738548 - "Form values are not Posted Properly to Server". Fixes 82. |
mbowler |
 |
Added support for the property Window.name |
mbowler |
 |
Added read-only support for Document.cookie. |
mbowler |
 |
Added support for the JavaScript method Window.setTimeout(). Fixes 52. |
mbowler |
 |
Upgraded the rhino engine to 1.5R4.1 |
mbowler |
 |
Upgraded the xerces to 2.4 |
mbowler |
 |
New method HtmlPage.getAllForms(). Fixes 28. |
mbowler |
 |
Fixed bug where inputs would not submit properly if the type attribute
wasn't lowercase. |
mbowler |
 |
Changed behaviour of HtmlImageInput submission to be consistent with
what the browsers do. If the input's name was foo we would previously
send the following values to the server: foo, foo.x and foo.y. The browsers
only send foo.x and foo.y. Fixes 89. |
mbowler |
 |
Added docs on configuring JSSE - contributed by Tom Hamilton |
mbowler |
Release 1.1-pre4 – August 23, 2002
| Type |
Changes |
By |
 |
Changed the license used by HtmlUnit to an apache style one |
mbowler |
 |
Changed default value of WebClient.isRedirectEnabled() to false to be
consistent with pre2 |
mbowler |
 |
Updated look of documentation |
mbowler |
 |
Started migrating System.out.println calls over to commons-logging. Refer
to the logging tutorial (logging.html) for information on customizing this. |
mbowler |
 |
Support for onClick handlers in HtmlSubmitInput |
mbowler |
 |
Support for onClick handlers in HtmlButton |
mbowler |
 |
Fixed bug where NullPointerException would be thrown if window.alert() was
called and no AlertHandler had been registered |
mbowler |
 |
Support for onload handler on the body tag |
mbowler |
 |
Support for customizing the page types. See WebClient.setPageCreator() |
mbowler |
 |
Added HtmlElement.hasHtmlElementWithId() |
mbowler |
 |
Renamed DefaultAlertHandler to CollectingAlertHandler |
mbowler |
 |
Fixed NullPointerException in HtmlForm during submission of a form containing
a radio button |
mbowler |
 |
Stubbed out the following methods on Input: click(), focus(), blur(), select() |
mbowler |
 |
Added support for inherited functions to SimpleScriptable. Previously only getters
and setters were supported. |
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. |
mbowler |
 |
Added a JavaScript style object |
mbowler |
 |
Added new method HtmlElement.isAttributeDefined() |
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. |
mbowler |
 |
Added a tutorial section on the main page and added a link to the table tutorial |
mbowler |
 |
Started writing the table tutorial - still needs a lot of work |
mbowler |
 |
Added support for the JavaScript function Form.submit() |
mbowler |
 |
Fixed bug where javascript:document.forms[formName] was blowing up |
mbowler |
 |
Changed logic behind anchor onClick() handler to abort the click if JavaScript returns false |
mbowler |
 |
Changed logic behind form onSubmit() handler to abort the submit if JavaScript returns false |
mbowler |
 |
Fixed WebConnection so that it now passes the query string through on post requests |
mbowler |
 |
Added HtmlFrame class. Loading a page containing frames will cause those frames to be
automatically loaded as well. |
mbowler |
 |
Added support for loading iframes |
mbowler |
 |
Added HtmlFrameSet class |
mbowler |
 |
Added a coding conventions document (codingConventions.html) |
mbowler |
 |
Added a "how to get the latest code from cvs" document (buildingFromCvs.html) |
mbowler |
 |
Renamed WebWindow.getPage() and setPage() to getEnclosedPage() and setEnclosedPage() to
avoid conflict with getPage in HtmlElement |
mbowler |
 |
Added WebClient.getWebWindowByName() |
mbowler |
 |
New class WebWindowNotFoundException |
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. |
mbowler |
 |
New method HtmlPage.getFrames() |
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. |
mbowler |
 |
New method HtmlTable.getCaptionText() |
mbowler |
 |
Deprecated HtmlPage.getTitle() to be replaced with HtmlPage.getTitleText(). This
will be removed before the final release of 1.1 |
mbowler |
 |
Added support for the JavaScript properties: Select.options, Select.selectedIndex,
Select.length and Option.value |
mbowler |