Changes
Release History
Version | Date | Description |
---|---|---|
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 4.7.0 – November 29, 2024
Type | Changes | By |
---|---|---|
core-js: String.prototype.matchAll, Symbol.matchAll, and RegExp.prototype[Symbol.matchAll] added. | RhinoTeam | |
neko: BOM header detection fixed | rbri | |
neko: bunch of micro optimizations | rbri | |
Property navigator pdfViewerEnabled added. | rbri | |
Implementation of Plugin/PluginArray/MimeType/MimeTypeArray rewritten. The navigator properties plugins and mimeTypes returning static results in all browsers. | rbri | |
Class PluginConfiguration removed, the config is static for all browsers. | rbri | |
A bit more code cleanup - flash is finally gone. | rbri | |
Upgrade Apache commons-io to 2.18.0. | rbri | |
DOMTokenList add()/remove() are able to handle an arbitrary amount of tokens. | rbri | |
Element.getInnerHTML() is gone in Chrome/Edge. | rbri | |
WebRequest custom serialization misses the handling of defaultResponseContentCharset. Fixes #898. | rbri | |
Class SilentIncorrectnessListener added. | Marek Andreansky | |
Javadoc fixed for Document.elementFromPoint(). | rbri | |
Bunch of fixes for Document.createElement() when calling with invalid tag names. | rbri | |
StyleSheetList.item() should return null if the provided index is not available. | rbri | |
HTMLOptionsCollection.item() should return null if the provided index is not available. | rbri | |
CssRuleList.item() should return null if the provided index is not available. | rbri | |
FrameContentHandler sample added. Fixes #665. | rbri | |
document.all == undefined and document.all == null now returns true. Fixes #896. | rbri | |
core-js: make sure, equivalentValues() is used if available. | rbri |
Release 4.6.0 – November 06, 2024
Type | Changes | By |
---|---|---|
INCOMPATIBLE CHANGE: HtmlPage.getBody() no longer returns an HtmlFrameSet. | rbri | |
disable early cdata closing for xhtml pages | rbri | |
neko: feature 'http://cyberneko.org/html/features/scanner/cdata-early-closing' to disable early closing of cdata sections added | rbri | |
neko: interface HTMLEventInfo merged into Augmentations | rbri | |
neko: feature 'http://cyberneko.org/html/features/scanner/allow-selfclosing-script' to allow parsing of self closing script tags added | rbri | |
neko: wrong default for NamespaceBinder 'http://cyberneko.org/html/properties/names/elems' property | rbri | |
neko: code improvements for string handling | rbri | |
Bunch of minor changes to reduce object creation and improve performance during DOM creation. | rbri | |
The DOMTree might include cycles in some border cases; fixed. | rbri | |
No longer use getElementsByTagName() in cases we do not need the live update capabilites of the result. This reduces the internal workload and should make some cases faster. | rbri | |
DomElement.click() now returns the correct page if the page contans a js based form auto submit. This was a regression from version 4.4.0. Fixes #837. | rbri | |
Nullish assignment operator '??=' implemented. | RhinoTeam | |
Like real browsers work a bit more optimized as long as no CharacterDataChangeListener/DomChangeListener is registered. In this case we can avoid some dom tree traversal. | rbri | |
core-js: Support optional chaining for function calls, as well as the "eval" case like 'f?.()'. | RhinoTeam | |
Simple implementation of Node.lookupPrefix(String) added. | rbri | |
core-js: many fixes for default values in destructuring assignments | RhinoTeam | |
core-js: many fixes for optional chain and nullish coalesce | RhinoTeam | |
NPE in AttachmentHandler.isAttachment(WebResponse) fixed. | 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.3.0 – June 27, 2024
Type | Changes | By |
---|---|---|
Improved implementation of the hidden attribute setter. | rbri | |
core-js: another hack on the const handling (in most cases const no treated like let - this is not correct but avoids the 'constant redefinition' parser error). | rbri | |
Sarissa 0.9.9.7 tests added. | rbri | |
DateTimeFormat.format now takes care of the current browser timezone and locale. | rbri | |
Fix some NPE in HtmlSerializer's. | rbri | |
Improved innerHTML content parsing for special tags like title, textarea, style, and script. | rbri | |
DocumentFragment append()/prepend()/replaceChildren() added. | rbri | |
URL.origin should include the port (if it is not the default one). | rbri | |
Calling new DocumentFragment() now creates a properly initialized object. | rbri | |
XPathEvaluator.createExpression() and XPathExpression.evaluate() added. | rbri | |
Various exceptions fixed when XPathEvaluator.evaluate() is called without some optional parameters. | rbri | |
Documentation for changing the browser timezone/language added. Fixes #788. | rbri | |
File.lastModifiedDate formatting fixed. | rbri | |
Document.lastModified now takes care of the browser timezone. | rbri | |
Intl.DateTimeFormat().resolvedOptions().locale support added. | rbri | |
core-js: Date/Time format functions are now taking care of the browser locale. | Lai Quang Duong | |
core-js: Date.prototype.toLocaleString takes care of locales argument. | Lai Quang Duong | |
core-js: Object.defineProperty() has to take care of ConsString. | rbri | |
Upgrade Apache commons-net to 3.11.1. | rbri | |
Fix NPE during click processing when JavaScript engine disabled. Fixes #798. | rbri |
Release 4.2.0 – June 05, 2024
Type | Changes | By |
---|---|---|
INCOMPATIBLE CHANGE: The signature of two methods from org.htmlunit.attachment.AttachmentHandler was changed. Please implement handleAttachment(Page, String) instead of handleAttachment(Page) and handleAttachment(WebResponse, String) instead of handleAttachment(WebResponse). | rbri | |
INCOMPATIBLE CHANGE: Ctor XMLHttpRequest(boolean caseSensitiveProperties) removed. This was only introduced for the XMLHttpRequest ActiveX object that is no longer there. | Lai Quang Duong | |
core-js: NetworkError introduced. | rbri | |
neko: fix Html element creation when parsing XHTML files. | rbri | |
Upgrade Apache commons-net to 3.11.0. | rbri | |
GWT 2.11.0 tests. | rbri | |
neko: fix the setup of the fragment parser; this fixes some problems with range.createContextualFragment(). | rbri | |
neko: code cleanup, more tests, some unused stuff removed; javadoc fixes. | rbri | |
neko: AttributeMap.cloneMap() fixed. | rbri | |
neko: fix fragment parsing without providing a context takes care of html tags in the fragment. | rbri | |
HashChangeEvent.initHashChangeEvent() no longer supported by Firefox 126. | rbri | |
Firefox 126 sends the Priority header. | rbri | |
Function Element.getHTML() added for Chrome/Edge. | rbri | |
WebSocket ctor resolves the url relative to the page for the latest Chrome/Edge/FF. | rbri | |
Handling of Attachments is improved. Now we treat responses only haven and Content-Type header of application/octetstream in the same way as if the Content-Disposition header was set to attachment. This is was real browsers also do. Fixes #789. | rbri | |
Upgrade commons-logging to 1.3.2 | rbri | |
ComputedCssStyleDeclaration.isScrollable(boolean, boolean) now checks also for the overflow-x/overflow-y styles. Fixes #742. | rbri | |
Make HtmlElement.type() allow full-width space (\u3000), six-per-em space (\u2006) and tab (\t) characters. | Lai Quang Duong | |
Prevent iframes from loading local resource for security reason (reading local file resources is still allowed if the enclosing document itself was loaded from file). | Lai Quang Duong | |
Prevent XMLHttpRequest from loading local resource for security reason. | Lai Quang Duong | |
Improve Attachment.getSuggestedFilename() by making it prioritize the value of Anchor.download if exist. | Lai Quang Duong | |
Improve Attachment.getSuggestedFilename() by making it return the value of File.name if the attachment was downloaded through a blob-url created from a File. | Lai Quang Duong | |
Options support added for window.scroll()/scrollBy()/scrollTo(). | rbri | |
Initial simple implementation of element.scroll()/scrollBy()/scrollTo(). Fixes #742. | rbri | |
Fixes for hash processing in Location.reload(). | Kanoko Yamamoto, Lai Quang Duong |
Release 4.1.0 – April 28, 2024
Type | Changes | By |
---|---|---|
HttpClientConverter.parseUrlQuery(String, Charset) and toQueryFormFields(List<NameValuePair>, Charset) are deprecated. Please use HttpUtils instead. | rbri | |
HttpClientConverter.formatDate(Date) and HttpClientConverter.parseDate(String) are deprecated. Please use HttpUtils instead. | rbri | |
Class HttpStatus defining a complete list of Http status codes added. Fixes #764. | rbri | |
Http status code constants in HttpClientConverter are deprecated. Please use the constants from HttpStatus. | rbri | |
Deprecated http status code constants removed from WebResponse. | rbri | |
core-js: Fixed handling of unicode characters in the lexer. | RhinoTeam | |
core-js: slightly improved Context.close() impl and try-with-resources usage. | rbri | |
Upgrade commons-codec to 1.17.0. | rbri | |
Internal class WebClientInternals removed. | rbri | |
First simple version of HtmlElement innerText setter implemented. | rbri | |
XMLHttpRequest now supports the 'x-user-defined' trick to transfer binary data. | rbri | |
Support for URL.createObjectURL() and URL.revokeObjectURL() added. | Lai Quang Duong | |
neko: x-user-defined encoding is now supported; like in real browsers x-user-defined is mapped to windows-1252. | rbri | |
neko: Another bunch of fixes for encodings. | Lai Quang Duong | |
TextDecoder - fix handling of various charsets (incl. replacement and x-user-defined) | rbri | |
Upgrade Apache commons-text to 1.12.0. | rbri | |
Upgrade Apache commons-io to 2.16.1. | rbri | |
core-js: set-callTrap should be called with the value, not the descriptor of value. | Lai Quang Duong | |
Wrong script encoding was uses in some cases (regression in 4.0.0). | rbri | |
keyboard-howto updated and enhanced. Some documentation about clipboard handling added. | rbri | |
Missing unit test for the ClipboardHandler added. | 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.9.0 – December 03, 2023
Type | Changes | By |
---|---|---|
Upgrade commons-logging to 1.3.0 | rbri | |
Upgrade Apache commons-io to 2.15.1. | rbri | |
New subproject htmlunit-csp. This replaces shapesecurity/salvation. | rbri | |
Enable FEATURE_SECURE_PROCESSING for the MSXML XSLProcessor (CVE-2023-49093). | rbri | |
neko: fix wrong error processing for some unicode entities. | René Schwietzke | |
Resolve only link tags having a 'stylesheet' rel attribute when searching for all styles of a page. | rbri | |
Upgrade Apache commons-lang3 to 3.14.0. | rbri | |
The new CSS3Parser pool implementation throws sometimes an illegal state exception under load (regression from 3.8.0). Fixes #669. | René Schwietzke | |
neko: incorrect handling of and fixed. Fixes #54. | René Schwietzke | |
neko: some incorrect HTML named entity definitions fixed. Fixes #54. | René Schwietzke | |
neko: new HTML named entities parser that is up to 20x faster for common entities. Fixes #54. | René Schwietzke | |
Upgrade Apache log4j-api to 2.22.0. | rbri | |
Some cleanup/simplification done for the way java objects are mapped to js objects. | rbri |
Release 3.8.0 – November 18, 2023
Type | Changes | By |
---|---|---|
core-js: support trailing commas in function parameters. | RhinoTeam | |
Content attribute value of a pseudo-attribute is no longer changed to lower case. Fixes #667. | rbri | |
Updated CSS3Parser pool implementation with a different concept to allow more pooling, lighter synchronization, and avoid leaks when not auto-closed. It also uses AutoCloseable instead of Closeable (this is for IO, not for try-with-resource in general). | René Schwietzke | |
core-js: hashbang support added. | RhinoTeam | |
core-js: handling of object indices more in line with the spec. This repaces the fix we had since 3.4. | RhinoTeam | |
core-js: allow updating of 'name' of a function, as required by the standard. | RhinoTeam | |
core-js: javascript 'Set' cannot handle wrapped java objects properly. | RhinoTeam | |
" Improved detection onf XML/XHtml content when not content type header is set. Fixes #663. | rbri | |
" Internal method HtmlInput.setType(String, boolean) renamed to changeType(String, boolean) and a return value added. Please check the javadoc if you use this. Fixes #658. | rbri |
Release 3.7.0 – October 30, 2023
Type | Changes | By |
---|---|---|
INCOMPATIBLE CHANGE: For this version, the processing of WebWindowListener events got many changes/fixes/improvements. The main point was to let this work as stable as possible even if many WebWindowListener are registred. Also the state of the various WebClient properties should be clear in every case. This results in some minor changes the might have some impact for the backward compatibility. | rbri | |
cssparser: Switched from JavaCC to ParserGeneratorCC (https://github.com/tulipcc/ParserGeneratorCC). Based on this we have to chance to update the ParserGeneratorCC to fix some of our problems with the generated code. See https://github.com/tulipcc/ParserGeneratorCC/pulls for more. | rbri | |
Properties ownerNode and href moved from CSSStyleSheet to StyleSheet. | rbri | |
Upgrade Apache commons-io to 2.15.0. | rbri | |
core-js: a no longer used switch removed | rbri | |
core-js: build system switched to maven | rbri | |
WebWindowListener javadoc updated to reflect the latest changes and include some words about common pitfalls. | rbri | |
Make sure the webClient is in a consistent state when the WebWindowListener events are fired. | rbri | |
Trigger WebWindowEvent for the initial WebClient window also if js is disabled. | rbri | |
Implementation of CSS pseudo classes :invalid and :valid improved. Fixes #338. | rbri | |
Form.isValid() checks all form elements. | rbri | |
WebClient documentation enhanced. | rbri | |
Documentation about proxy setup integrated into the WebClient documentation. Fixes #131. | rbri | |
Support ComputedCSSStyleDeclaration when JS engine is disabled. Fixes #131. | rbri | |
test-javadoc removed from the website. | rbri | |
HtmlForm.getElements() is now part of the public api. Fixes #647. | rbri | |
A bit more documentation about the two ways to disable the JavaScript engine added. | rbri | |
Remove proxy polyfill from the documentation because it is no longer available (Proxy/Reflect support was added to core-js). | rbri | |
Upgrade Jetty to 9.4.53.v20231009. | rbri | |
Sending the correct content type of "application/pdf" for PDF files for form-multipart posts. Fixes 637. | rbri | |
Fixed a major memory leak - frame windows (incl. iframes) are still referenced by the web client window list after the parent was closed. In the end they are not garbage collected. | rbri | |
Upgrade Apache commons-net to 3.10.0. | rbri | |
'rel' attribute may contain multiple values, we have to split before checking the value. | rbri |
Release 3.6.0 – October 03, 2023
Type | Changes | By |
---|---|---|
INCOMPATIBLE CHANGE: WebClient.close() now really closes all windows and also stops the js engine. This means you can't use the the webClient afterwards for browsing. If you only like to cleanup all the window resources use WebClient.reset(). Fixes 627. | rbri | |
New method WebClient.reset() added, this is like close() but restarting the js engine and open a new empty window afterwards. | rbri | |
MochiKit 1.4.2 test suite added. | rbri | |
Upgrade Apache commons-io to 2.14.0. | rbri | |
Accessing form elements by id (e.g. myForm.elementId) searches only form elements and not arbitrary descendants. | rbri | |
Form elements are all elements that belong to a form; not only the child elements. We now take care of elements that use the form attribute to specify the associated form in many more places. This means that the method HtmlForm.getLostChildren() is removed. You should always use the mehtod HtmlForm.getElements() to get an list of all form-elements associated to that form (descendants or using the 'form' attribute). This implies also that all the HtmlForm methods for searching elements now working based on the getElements() method (also searching for elements associated to the form based on the 'form' attribute. | rbri | |
The URLSearchParams ctor now supports also a sequence of name-value string pairs, or any object with an iterator that produces a sequence of string pairs, or a record of string keys and string values. | Lai Quang Duong | |
Implementation of FormData.forEach(), FormData.keys(), and FormData.values() added. | rbri | |
Symbol.iterator property is now available on FormData. Thanks to Lai Quang Duong. | rbri | |
cssparser: 'only' is a valid class selector name. | rbri | |
core-js: Reflect.apply() now works also with primitive thisArgument (String, Number, Boolean). Thanks to Lai Quang Duong. | rbri | |
Introduce Platform-FontUtil to encapsulate awt.font stuff for android support. | rbri | |
Several fixes for window.postMessage(). Fixes 633. | rbri | |
core-js: some minor improvements for the Reflect support. | rbri | |
core-js: bunch of improvements for the Proxy support. | rbri | |
core-js: Array.of has to use defineOwnProperty instead of set. | rbri | |
core-js: Improved unicode support for the js source parser. | RhinoTeam | |
Upgrade Jetty to 9.4.52.v20230823. | rbri | |
Update batik-transcoder version to 1.17. | rbri | |
Try to make the WebClient.close() procedure more robust. Fixes 627. | rbri | |
FF 116 now supports css page rules. | rbri | |
Method WebClientOptions.setSSLClientCertificateKeyStore(KeyStore, char[]) added. Fixes 623. | rbri |
Release 3.5.0 – August 20, 2023
Type | Changes | By |
---|---|---|
INCOMPATIBLE CHANGE: Class org.htmlunit.html.DomTreeWalker removed; use org.htmlunit.platform.dom.traversal.DomTreeWalker instead. | rbri | |
INCOMPATIBLE CHANGE: Method org.htmlunit.SgmlPage.createTreeWalker(Node, int, NodeFilter, boolean) removed; use use org.htmlunit.platform.dom.traversal.DomTreeWalker.DomTreeWalker(DomNode, int, NodeFilter, boolean) instead. | rbri | |
INCOMPATIBLE CHANGE: Class org.htmlunit.SgmlPage no longer implements the org.w3c.dom.traversal.DocumentTraversal interface; the method org.htmlunit.SgmlPage.createNodeIterator(Node, int, NodeFilter, boolean) is therefore also removed. | rbri | |
INCOMPATIBLE CHANGE: Method org.htmlunit.html.HtmlImage.getImageReader() removed; use org.htmlunit.html.HtmlImage.getImageData() instead. | rbri | |
INCOMPATIBLE CHANGE: Support for proxy polyfill removed. | rbri | |
core-js: Support for Array.prototype.flatMap added. | RhinoTeam | |
core-js: Proxy implementation added. | rbri | |
core-js: format issues in Messages.properties fixed. | rbri | |
core-js: missing array limit check added | rbri | |
cssparser: 'inherit' is a valid class selector name. | rbri | |
core-js: Improved handling for NativeError instances when generating the console output. Before this, when outputing NativeError instances the json serializer was used ending up in something like this '{"fileName":"source.js","lineNumber":426}'; means the whole message was missing. This fix brings the output closer to the output of real browsers by writing the message and the stack trace. | rbri | |
htmx version 1.9.4 testsuite added. | rbri | |
neko: self closing textarea tag are now handled correctly. | rbri | |
neko: bunch of test cases added. | rbri | |
neko: XMLString now internally uses a StringBuilder instead of maintaining an char[] buffer. | rbri | |
neko: Code cleanup and more unused code removed. | rbri | |
neko: Use the same code style rules as HtmlUnit. | rbri | |
Always restore interrupted status when catching and ignoring InterruptedExceptions. Fixes 609. Thanks to Guang-Hou. | rbri | |
Adjust HtmlDialog handling for the changes done in Chrome/Edge/FF 115. | rbri | |
Upgrade Apache commons-lang3 to 3.13.0. | rbri | |
Fix batik version in images-howto. | rbri |
Release 3.4.0 – July 27, 2023
Type | Changes | By |
---|---|---|
Testsuite cleanup and consistency checks. | rbri | |
Support for rb and rtc tag added. | rbri | |
Document.releaseCapture() and Element.releaseCapture() having no return value. | rbri | |
htmx version 1.9.3 testsuite added. | rbri | |
NamedNodeMap methods getNamedItemNS(), setNamedItemNS(), and removeNamedItemNS() added. | rbri | |
NamedNodeMap, HTMLSelectElement/HTMLOptionsCollection and HTMLFormElement are now iterable (for..of support). | rbri | |
Support for the toStringTag symbol added to all dom classes. | rbri | |
core-js: Two more fixes for symbol handling. | rbri | |
Fix parameter processing for document.evaluate(). | rbri | |
core-js: Negative integer index values must be handles as strings and not as integer. | rbri | |
Ctor HtmlUnitUsernamePasswordCredentials(String, String) is deprecated, please use HtmlUnitUsernamePasswordCredentials(String, char[]) instead. | rbri | |
Several methods of DefaultCredentialsProvider are deprecated, please use there counterparts expecting the password as char[] instead. | rbri | |
New methods StorageHolder.getLocalStorage(URL) and StorageHolder.getSessionStorage(WebWindow) to better support testing the Web Storage API. | rbri | |
Documentation for working with the StorageHolder added (https://www.htmlunit.org/details.html#Local.2FSession_Storage). | rbri | |
Some code for the no longer available global storage removed from the StorageHolder implentation. | rbri | |
HttpWebConnection.downloadResponse(HttpUriRequest, WebRequest, HttpResponse, long) and WebResponse.markAsBlocked(String) introduced to make some content blocking iml possible. Fixes 611. | rbri | |
HttpWebConnection.downloadResponse(HttpUriRequest, WebRequest, HttpResponse, long) introduced to make some content blocking iml possible. Fixes 611. | rbri | |
Documentation for content blocking added (https://www.htmlunit.org/details.html#Content_blocking). Fixes 611. | rbri | |
WebClientOptions.getHomePage() now points to https://www.htmlunit.org/. | rbri | |
WebClientOptions.setActiveXNative() is deprecated (like the whole IE). | rbri | |
HtmlElement autofocus property added. | rbri | |
Input elements value attribute handling fixed. Fixes 606. | rbri | |
Input elements are now using a separate isValueDirty flag. | rbri | |
Various documentation fixes and migration guide updates. Fixes 608. | rbri | |
New WebClientOption setTempFileDirectory() to specify a separate directory for the temp file. Fixes 605. | rbri | |
Upgrade Apache commons-io to 2.13.0. | rbri | |
core-js: Reflect.construct() support added. | rbri |
Release 3.3.0 – June 04, 2023
Type | Changes | By |
---|---|---|
core-js: Reflect implementation added (only construct() support is missing). | rbri | |
" Dialog tag method and properties added. Fixes 598. | rbri | |
core-js: optimization - replace some language version checks with constant values | rbri | |
core-js: the PropertyDescriptor has an setter slot even if no setter function is available | rbri | |
core-js: the order of slots in the PropertyDescriptor is no in sync with the spec/browsers | rbri | |
Use Objects.equals() instead of StringUtils.equals(). | rbri | |
HtmlForm.getInputByValue and HtmlForm.getInputsByValue have to use the value instead of the value attribute (regression in 3.0.0). Fixes 602. | rbri | |
core-js: Support for Array.at added. | RhinoTeam | |
core-js: Support for Array.flat added. | RhinoTeam | |
nodeList[Symbol.iterator] === nodeList.values has to be true. | Lai Quang Duong | |
Symbol.iterator property is now available on URLSearchParams. | Lai Quang Duong | |
Putting both the @JsxSymbol and @JsxFunction annotations on the same method works properly. | Lai Quang Duong | |
Reflect's properties having an incorrect scope. | Lai Quang Duong | |
Some fixes for TextEvent and more tests. | rbri | |
Remove the no longer available properties ondevicelight, ondeviceproximity, and onuserproximity from window (FF). | rbri | |
KeyboardEvent which property is IE only. | rbri | |
Body onmessageerror property has to be writeable in FF too. | rbri | |
Introduce AbstractRange and move the properties collapsed, startContainer, endContainer, startOffset, and endOffset. | rbri | |
Meta media property has to be writeable in FF. | rbri | |
Marquee properties height, width, and bgColor are avilable in FF also. | rbri | |
Event type property is read-only. | rbri | |
ScreenOrientation onchange property has to be writeable. | rbri | |
Support of form property relList added. | rbri | |
Setter for form property rel added. | rbri | |
Nearly all screen properties are read-only. | rbri | |
Link relList property is setable. | rbri | |
Anchor relList property is setable. | rbri | |
Remove the superfluous origin setter for anchors. | rbri | |
The which property is moved up to the UIEvent for Chrome/Edge and FF. | rbri | |
MouseEvent which property is only available in IE. | rbri | |
The head property is defined on Document and not on HtmlDocuent. | rbri | |
Frameset onmessageerror property is setable in FF also. | rbri | |
neko: minor optimization of avoid object creation and some not required method calls. | rbri | |
Upgrade Apache commons-io to 2.12.0. | rbri | |
SOCKS proxy setup fixed. | Vadzim Miliantsei |
Release 3.2.0 – May 15, 2023
Type | Changes | By |
---|---|---|
Fix for the dom construction in some edge cases (oss-fuzz). | rbri | |
RTCSctpTransport stub added. | rbri | |
URLSearchParams.size property added. | rbri | |
SubmitEvent support added. | rbri | |
Avoid usage of org.w3c.dom.ranges.Range - this is not available on android. | rbri | |
Support unicode property escapes in regular expressions. Fixes 583. | rbri | |
cssparser: Custom properties without values are valid. | rbri |
Release 3.1.0 – April 16, 2023
Type | Changes | By |
---|---|---|
INCOMPATIBLE CHANGE: CookieManager.getPort(URL) removed. Looks like <a href="http://code.google.com/p/googleappengine/issues/detail?id=4784"> is solved. | rbri | |
core-js: Handling of java primitive types in EqualObjectGraphs are fixed. | RhinoTeam | |
neko: mention CVE-2023-26119 on the github page. | rbri | |
neko: HtmlTagBalancer.reset() now resets the whole state. | rbri | |
neko: fix search for message bundles (regression in 3.0.0). | rbri | |
Calls to hasOwnProperty() and getOwnPropertyDescriptor now taking care of form elements accessible from the form object. Fixes 578. | rbri | |
Document.getSelection() is defined for Firefox and IE also. | rbri | |
Document.getElementsByName() is defined for Firefox also. | rbri | |
Document.getElementsByName() returns a NodeList instead of a HTMLCollection. | rbri | |
HTMLCollections are iterable now - you can use them in for..of loops. Fixes 576. | rbri | |
Regexp "[^]" and "[^]" break translation of later char ranges in the regex. | Lai Quang Duong | |
window.isSecureContext added. Fixes 573. | rbri | |
neko: Template tags are valid inside the head. | rbri | |
neko: Script tags are valid inside select's. | rbri | |
neko: The dialog tag closes a p tag. | rbri | |
NPE fix for CSSStyleDeclaration.getPropertyPriority(). | Lai Quang Duong | |
Incorrect placement of character data outside the form if there is no closing form tag (regression in 3.0.0). Thanks to Lai Quang Duong. | rbri | |
Regexp "[^]" should match any character, including new line. | Lai Quang Duong | |
XMLHttpRequest post request for the same origin must include the cookies (regression in 3.0.0). Fixes 565. | rbri | |
Use 'keep-alive' instead of 'Keep-Alive' for the connection header. | 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(..) hve 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.70.0 – January 22, 2023
Type | Changes | By |
---|---|---|
neko: Refactor XMLAttributes/XMLAttributesImpl to use a simple ArrayList<Attribute> as backend. | rbri | |
neko: Fix ArrayOutOfBoundsException when parsing using JDK 17 (oss-fuzz). | rbri | |
DocumentType properties entities and notations are only available in IE. | rbri | |
Methods append/prepend/replaceChildren added to Element. Fixes 544. | rbri | |
Element.replaceWith() fixed for the case this was called without any new elements. | rbri | |
Another Xerces detection fix for JDK 17. Fixes 541. | rbri | |
Missing properties addedNodes, removedNodes, previousSibling, and nextSibling added to MutationRecord. | rbri | |
Anchors are now taking care of the rel="noreferrer" attribute. Fixes 546. | rbri | |
Form ref attribute implemented (Chrome and Edge) | rbri | |
Method com.gargoylesoftware.htmlunit.html.HtmlImage.getImageReader() is depracated (Android compatibility). | rbri | |
Package package com.gargoylesoftware.htmlunit.javascript.host.canvas.rendering renamed to package com.gargoylesoftware.htmlunit.platform.canvas.rendering. | rbri | |
Package package com.gargoylesoftware.htmlunit.javascript.host.canvas.rendering renamed to package com.gargoylesoftware.htmlunit.platform.canvas.rendering. | rbri | |
Methods com.gargoylesoftware.htmlunit.css.CssStyleSheet.parseSelectors(String) and com.gargoylesoftware.htmlunit.javascript.host.css.CSSStyleSheet.parseSelectors(String) removed. | rbri | |
Reports generated by ElementOwnPropertiesTest and ElementPropertiesTest fixed. | rbri | |
Methods createGain() and decodeAudioData() moved from AudioContext to BaseAudioContext. | rbri | |
cssparser: many, many updates for parsing the :not() pseudo selector done - they are now first class citicens for the parser and also for handling the selectors. | rbri | |
Fixed url parameter processing in history.replaceState() / history.pushState(). | Lai Quang Duong | |
Deprecated constants ABOUT_SCHEME, ABOUT_BLANK, and URL_ABOUT_BLANK removed from WebClient. | rbri | |
Class com.gargoylesoftware.htmlunit.html.DomTreeWalker is deprecated (Android compatibility). | rbri | |
Method com.gargoylesoftware.htmlunit.SgmlPage.createTreeWalker(Node, int, NodeFilter, boolean) is deprecated (Android compatibility). | rbri | |
New class com.gargoylesoftware.htmlunit.platform.dom.traversal.DomTreeWalker; this class can only be used with standard jdk - not on Android. | rbri | |
Fixed definition of the Location properties (they are defined on the object itself instead on the prototype). Fixes 528. | rbri | |
WebClient#loadHtmlCodeIntoCurrentWindow() now uses the html parser instead of the xhtml parser. | rbri | |
neko: Fix Exception when parsing a template tag as first node (oss-fuzz). | rbri | |
Fix Exception when parsing documents with ignored head tags (oss-fuzz). | rbri |
Release 2.69.0 – January 05, 2023
Type | Changes | By |
---|---|---|
Xerces detection fixed. | rbri | |
HtmlUnit is now regulary tested by Google OSS-Fuzz. Fixes 531. | rbri | |
neko: Fix ArrayIndexOutOfBoundsException when parsing a incomplete entity reference at the end (oss-fuzz). | rbri | |
Fix ClassCastException when parsing svg body tag (oss-fuzz). | rbri | |
Fix ClassCastException when parsing base element with namespace (oss-fuzz). | rbri | |
core-js: fix scope for bound functions called inside Promise.then(). Fixes 522. | rbri | |
Cached location.hash was not updated by history.replaceState() / history.pushState(). Fixes 523. | rbri | |
The url was not encoded by history.replaceState() / history.pushState(). Fixes 523. | rbri | |
Inconsistent use of UrlUtils.encodeAnchor() / UrlUtils.encodeHash(). | rbri | |
neko: more unused code removed. | rbri | |
xpath: again some unused code removed. | rbri |
Release 2.68.0 – Dezember 28, 2022
Type | Changes | By |
---|---|---|
cssparser: typo when skipping a rule containing em values. | rbri | |
core-js: Many fixes for Object.assign(). | RhinoTeam | |
Replace \n in console output with real line break. | rbri | |
core-js: Make sure the placeholder replacements of console.log() is also done for ConsStrings. | rbri | |
core-js: console.log() ignores %c styling but updates the param count to not disturb further replacements. | rbri | |
Support for unicode point escapes added when converting regex from js to java. Fixes 535. | rbri | |
Minor fixes for unicode handling when converting regex from js to java. | rbri | |
RequestParameter normalization should not replace KeyDataPair by NameValuePair. Fixes 533. | Michael Lueck | |
Minor fixes for radio button validation to fit Chrome/Edge/FF instead of IE. Fixes 530. | rbri | |
cssparser: support case-insensitively syntax for attribute values (https://www.w3.org/TR/selectors-4/#attribute-case). Fixes 530. | rbri | |
Fix prototype for Intl.Collator, Intl.DateTimeFormat, Intl.NumberFormat, and Intl.v8BreakIterator (regression from 2.64.0). Fixes 529. | rbri | |
Browsers using windows-1252 if the content type header is charset=ascii. Fixes 525. | rbri | |
Crypto.randomUUID() added. | rbri | |
neko: Fix handling of parser inserted tbody tags inside templates. | rbri | |
Upgrade Jetty to 9.4.50.v20221201. | rbri | |
Process cookies with negative max-age values to make sure the cookie store gets updated (in fact this deletes an existing cookie). Fixes 524. | rbri | |
Upgrade Apache HttpComponents to 4.5.14. | rbri | |
core-js: Constructor properties fixes. Fixes 238. | rbri | |
Upgrade Apache commons-net to 3.9.0. | rbri | |
core-js: Descriptor of Function.length should be configurable. Fixes 521. | rbri | |
neko: Use our own fork of xerces to get rid of some classpath problems because of the xml-api dependency. Fixes 521. | rbri |
Release 2.67.0 – November 20, 2022
Type | Changes | By |
---|---|---|
Support sameSite attribute when constructing a cookie. | rbri | |
Cookie toString() includes sameSite attribute if set. | rbri | |
Treat localhost as secure origin when processing cookies. | rbri | |
Take care of the fixed position style attribute at some places. | rbri | |
Remove some not required string operations from the DOMTokenList code. | rbri | |
Fixing change notification for the DOMTokenList in some situations. | rbri | |
DOMTokenList no longer adds an attribute to the dom node if remove is called an there was no attribute so far. | rbri | |
AnimationEvent construction fixed. | rbri | |
core-js: classCastException in hasOwnProperty on NativeJavaObject fixed. | RhinoTeam | |
XPathResult determination of the resultType fixed. | rbri | |
numberValue() and stringValue() for an empty XPathResult fixed. | rbri | |
XPathResult.booleanValue() fixed. | rbri | |
xpath: correct return value when substring() is used with a negative length | rbri | |
xpath: fix error handling for invalid function arg count | rbri |
Release 2.66.0 – October 22, 2022
Type | Changes | By |
---|---|---|
core-js: RegEx - fix the error message in case the quantifier maximum (second value) is smaller than the minimum (first value) | rbri | |
core-js: Remove usage of putIfAbsent() in the Hashmap class. This method does not exist on many old Android releases and there's no real downside to removing it. | RhinoTeam | |
core-js: parent relationship in TaggedTemplateLiteral fixed. | RhinoTeam | |
StaticDomNodeList has to be serializable. Fixes 513. | rbri | |
Lambda functions used by Element have to be serializable. Fixes 513. | rbri | |
FunctionWrapper has to be serializable. Fixes 511. | rbri | |
Avoid usage of ThreadLocal#withInitial for Android 7. | rbri | |
NamedNodeMap moved from com.gargoylesoftware.htmlunit.javascript to com.gargoylesoftware.htmlunit.javascript.host. | rbri | |
HTMLMediaElement.load() implemented as NoOp. Fixes 504. | rbri | |
Support for HTMLMediaElement.src and HTMLMediaElement.currentSrc properties added. Fixes 504. | rbri | |
nodeType and nodeName moved to HTMLMediaElement. Fixes 504. | rbri | |
Simple mock for Performance getEntries()/getEntriesByName()/getEntriesByType() added. | rbri | |
htmx version 1.8.2 testsuite added. | rbri | |
HTMLMediaElement.canPlayType() now returns more realistic results. This might help for some pages where the player src attribut is set from js only if the media type is supported. Fixes 504. | rbri | |
Method DomElement.setInnerHtml(String) added. Fixes 505. | rbri | |
Fix generation of test-javadoc. | rbri | |
First simple implementation of NumberFormat.format() and NumberFormat.resolvedOptions() added. Fixes 501. | rbri | |
Fix one more xsl transform issue when running without Xalan. | rbri |
Release 2.65.1 – October 03, 2022
Type | Changes | By |
---|---|---|
Wrong dependency to htmlunit-xpath snapshot | rbri | |
There was still a dependency to Xalan. | rbri |
Release 2.65.0 – October 03, 2022
Type | Changes | By |
---|---|---|
FF_ESR updatade from version 91 to 102. | rbri | |
com.gargoylesoftware.htmlunit.util.TextUtils removed. | rbri | |
Switch from xalan to htmlunit-xpath. | rbri | |
Upgrade Jetty to 9.4.49.v20220914. | rbri | |
Introducing a PrintHandler configurable at the WebClient. You can provide your own Window.print() implementations if required. Fixes 501. | rbri | |
A bug in one faq sample code that might result in wrong encoding is fixed. | rbri | |
Bunch of code cleanup for CSS handling. | rbri |
Release 2.64.0 – August 18, 2022
Type | Changes | By |
---|---|---|
CSS pseudo selector :invalid improvements. | rbri | |
Number control processing of whitespace fixed. | rbri | |
Url/Email control processing of whitespace fixed. | rbri | |
Email control takes care of the min/max length property during validation. | rbri | |
Improved implementation of the ValidityState.isTooShort property. | rbri | |
Fix maxlenght validation if the initial value is longer. Fixes 496. | rbri | |
Upgrade salvation lib to salvation2 3.0.1. | rbri | |
Screen/ScreenOrientation property onchange added. | rbri | |
Screen property isExtended (Chrome/Edge) added. | rbri | |
Screen property orientation (and mozOrientation for FF) added. | rbri | |
ScreenOrientation properties angle and type added. | rbri | |
Various minor optimizations and some code cleanup. | rbri | |
Deprecated class SimpleScriptable removed. | rbri | |
Deprecated constant BrowserVersion.FIREFOX_78 removed. | rbri | |
Deprecated methods CSSStyleSheet.selects(BrowserVersion, Selector, DomElement, String, boolean) and CSSStyleSheet.selects(BrowserVersion, Condition, DomElement, boolean) removed. | rbri | |
Various NullPointerExceptions fixed when calculation style properties for the html node itself. Fixes 488. | rbri |
Release 2.63.0 – July 10, 2022
Type | Changes | By |
---|---|---|
window.event is a replaceable property. Fixes 487. | rbri | |
window.event should return undefined if called outside an event handler | rbri | |
Replace all XPath usages from our code because this might be called during dom tree consturction and XPath sometimes fails if the tree got changed during xpath evaluation. Fixes #385. | rbri | |
A bunch of code refactorings to avoid making inconsistent dom nodes visible in the dom tree. | rbri | |
Spotbugs annotations used in the code to supress some warnings. | rbri | |
Upgrade Apache log4j-api to 2.18.0. | rbri |
Release 2.62.0 – June 02, 2022
Type | Changes | By |
---|---|---|
Introduce HtmlInput.getValue() and HtmlInput.setValue(String). | rbri | |
core-js: Fix Object.getOwnPropertyDescriptors by fixing missing scope definitions. Thanks to Rural Hunter. | rbri | |
core-js: Fix ClassCastException when using StringBuilder/Buffer. | RhinoTeam | |
core-js: Fix typeof for native classes with shared global scope. | RhinoTeam | |
Introduce new abstract class HtmlSelectableTextInput to to share text selection and typing support. | rbri | |
Correct the length of the resulting ArrayBuffer for XMLHttpRequest having a response type of 'arraybuffer' if the response is gzip compressed. This also fixes an ArrayIndexOutOfBounds exception. | rbri | |
WebRequest.getParameters() normalizes null values to empty strings. Fixes 223. | rbri | |
WebRequest.getParameters() now takes care of explicit set parameters for get requests also. Fixes 223. | rbri | |
Ignore invalid css selectors (inside pseudo not) instead of throwing an exception. Fixes 483. | rbri | |
core-js: Code cleanup and minor optimizations. | rbri | |
core-js: Better handling of Callables in NativeConsole. | rbri | |
Node.getRootNode() fixed for DocumentFragment itself and fragment children. | rbri | |
Window is no longer a callable. Fixes 482. Thanks to Rural Hunter. | rbri | |
Window.postMessage now supports arbitary js objects as message instead of converting them into strings. Thanks to Thorsten Wendelmuth. | rbri |
Release 2.61.0 – April 25, 2022
Type | Changes | By |
---|---|---|
String.toLocaleLowerCase() takes care of provided locale. | rbri | |
Button/Input formNoValidate propery added. | rbri | |
ValidityState.patternMismatch fixed. | rbri | |
Dispatching custom events now works for all DomNode's. This fixes also a NPE when running the htmx 1.7.0 test suite. | rbri | |
Node.getRootNode() added. | rbri | |
Support for :focus-within and :focus-visible pseudo selectors added. | rbri | |
core-js: Did another hack in the code to tread const in for-of loop's like let. Fixes 449. | rbri | |
neko: Some missing end-of-file checks added (this fixes possible IndexOutOfBounds exceptions). | rbri | |
neko: Possilbe OOM exception with broken input fixed. | rbri | |
core-js: JSON.stringify() fixes. | rbri | |
HTMLCollection IE only methods nextNode() and reset() removed. | rbri | |
Bunch of fixes for HTMLCollection and NodeList properties. | rbri | |
Use NativeConsole from core-js instead of our own implementation. As a side effect, WebConsole.Formatter is no longer supported. | rbri | |
core-js: Using subarray() on a subarray produces incorrect results. Fixes 476. Thanks to Rural Hunter. | rbri | |
Add missing delegate methods to WebResponseWrapper. Fixes 471. Thanks to Rural Hunter. | rbri | |
Improved method and vaiable naming at some places. Thanks to Bharatwaaj Shankaranarayanan. | rbri | |
INCOMPATIBLE CHANGE: Class MediaList was moved from package com.gargoylesoftware.htmlunit.javascript.host.dom into package com.gargoylesoftware.htmlunit.javascript.host.css. Fixes 360. | rbri | |
New method WebRequest.getParameters() returning all parameters (from the url and the body if available). This change was required to fix some issues with Spring MockMVC. Fixes 223. | rbri | |
Implementation of CSSPageRule selectorText setter added. Fixes 360. | rbri | |
cssparser: Support page rule setSelectorText(). | rbri | |
docu: various fixes regarding using the sonatype snapshot repository. | rbri | |
Running the test suite fails on some newer maschines because Jetty is not happy with tread pool limits setups in use. Fixes 462. Thanks to Rural Hunter. | rbri | |
'Origin' header added to same-origin non-GET requests. Fixes 461. Thanks to Rural Hunter. | rbri |
Release 2.60.0 – March 20, 2022
Type | Changes | By |
---|---|---|
core-js: ES2017 Object.getOwnPropertyDescriptors() implemented. | RhinoTeam | |
core-js: Fix Object.assign when undefined value and inextensible. | RhinoTeam | |
Worker.terminate() stub added. | rbri | |
CanvasRenderingContext2D ignores unknown colors. | rbri | |
HtmlFileInput.setValueAttribute(String) now handles an empty input as no file. Fixes 383. | rbri | |
Make sure template content is not added to the dom during parsing; only to the content document fragment. Fixes 455. | rbri | |
Image.prototype setup fixed. Fixes 451. | rbri |
Release 2.59.0 – March 5, 2022
Type | Changes | By |
---|---|---|
Polyfill support documented. | rbri | |
Dedicated documentation of the WebClient/WebClientOptions and some more documentation updates. | rbri | |
Make sure to read sufficient byte for the encoding sniffer when the response is gzip encoded. Fixes 452. | rbri | |
Handle bom header also for gzip'ed responses. Fixes 450. | rbri | |
New web client option setProxyPolyfillEnabled() to automatically load a polyfill for the proxy api into the client. | rbri | |
core-js: regex sticky support împlemented. | rbri | |
core-js: improved error msg about unsupported regex flags. | rbri | |
Jobs sheduled with the same targetExecutionTime are now processed in sheduling order. Fixes 369. | rbri | |
New web client option setFetchPolyfillEnabled() to automatically load a polyfill for the fetch api into the client. | rbri | |
FileReader readAsArrayBuffer() and readAsText() are working for blobs also. | rbri | |
Upgrade commons-codec to 1.15. | rbri | |
Introducing a ClipboardHandler configurable at the WebClient. If you need clipboard support for entry fields set this to an AwtClipboardHandler. | rbri | |
Element.toggleAttribute() added. Thanks to Anton Demydenko. | rbri | |
Upgrade Jetty to 9.4.45.v20220203. | rbri | |
Document.body setter accepts Framesets. Fixes 441. | rbri |
Release 2.58.0 – February 4, 2022
Type | Changes | By |
---|---|---|
neko: Switch to xerces 2.12.2. | rbri | |
asNormalizedText() uses the default style to determine blocks if css is disabled. Fixes 439. | rbri | |
HtmlUnitScriptable code cleanup. | rbri | |
SimpleScriptable is deprecated, please use HtmlUnitScriptable instead. | rbri | |
Various fixes for the handling of select options when the select property changes. | rbri | |
checkValidity returns correct value for radiobuttons checked by js or the user. | rbri | |
checkValidity returns correct value if the checkbox was checked by js or the user. Fixes 438. | rbri | |
core-js: Object.hasOwn added. | RhinoTeam | |
core-js: Support optional variable binding in catch. | RhinoTeam | |
core-js: RegEx handles {0} quantifier with max of zero correctly. | RhinoTeam | |
core-js: Date ctor now respects the timezone. Fixes 423. | rbri | |
core-js: Promise.allSettled() added. | RhinoTeam |
Release 2.57.0 – January 23, 2022
Type | Changes | By |
---|---|---|
Quota simulation added to localStorage. | rbri | |
innerText ignores title content in most cases. | rbri | |
NPE when using the console in a special scenario fixed. | rbri | |
Formaction, formmethod, formtarget and formenctype no longer ignored on button without type attribute. Fixes 436. | rbri | |
Fix duplicate classes inside our javadoc. Fixes 435. | rbri | |
The caching algorithm now observe the max-age headers. Fixes 432. | Ashley Frieze | |
HTMLOutputElement form property added. | rbri | |
htmx testsuite changed to version 1.6.1 added. | rbri | |
Flash is no longer available in IE. | rbri | |
innerText ignores script children. | rbri | |
Script tags in DOMParser-created documents are not executed when adding to pages. | rbri | |
setCustomValidity() added. | rbri | |
Button of type submit/reset button does not submit if the onclick handler disables the button for Chrome/Edge. | rbri | |
Submit/Reset button does not submit if the onclick handler disables the button. | rbri | |
Form noValidate property added. | rbri | |
Fix validation of decimal min/max/step values in number input. | Michael Lueck | |
Element.closest() function added. | rbri | |
Some text added to the web page to clarify js disable option. | rbri | |
willValidate property added. | rbri | |
htmx testsuite version 1.5.0 added. | rbri | |
Adjust selection if the selected option gets removed. | rbri | |
Fix validation for email input fields. | Michael Lueck | |
The browser locale (language) is now forwarded to the JS engine; this fixes String.toLocaleLowerCase() if the locale is different from en. | rbri | |
File.lastModifiedDate uses the browser locale (language); same for Date.toLocalDateString and toLocalTimeString. | rbri | |
Upgrade Apache log4j-api to 2.17.1. | rbri |
Release 2.56.0 – December 12, 2021
Type | Changes | By |
---|---|---|
Fix charCode/keyCode for KeyPressEvent's when simulating Firefox. | rbri | |
core-js: Fix Array.from when called with a sparse array. | RhinoTeam | |
core-js: Improved BitInt support. | RhinoTeam | |
core-js: Fix return value of __lookupSetter__ with prototypes. | RhinoTeam | |
core-js: Fix regression when setting __proto__. | RBRi | |
core-js: Fix some potential NPEs in Parser.java. | RhinoTeam | |
core-js: Fix invalid single quotes in French messages. | RhinoTeam | |
Some fixes for the code samples on the getting started page. Thanks to Harald Albers. | rbri | |
cssparser: Support for dimensions turn and quater added. | rbri | |
cssparser: hsl/hsla support added. | rbri | |
cssparser: Improved color parsing for rgb/rgba. | rbri | |
Fix request url encoding for script src. Thanks to leeyazhou. | rbri | |
FIREFOX_78 is now deprecated, use FIREFOX_ESR instead. | rbri | |
FIREFOX_ESR updated to Firefox 91. | rbri | |
core-js: Fix for compilation or try statements. | RhinoTeam | |
Links to issues and pulls on htmlunit webpage changes-report.html corrected. Fixes 405. | rbri |
Release 2.55.0 – November 14, 2021
Type | Changes | By |
---|---|---|
core-js: Fix problems with null "this" parameters in Function.prototype.call, Function.prototype.apply, Function.prototype.toString, and Object.prototype.toLocaleString. | RhinoTeam | |
core-js: Messages now fall back to en in every case. | RhinoTeam | |
core-js: Fix support for BigInt in Hashtable | RhinoTeam | |
core-js: Improved JDK 17 support. | RhinoTeam | |
core-js: Replace 'new Integer/Double/Long' by Integer/Double/Long.valueOf. | RhinoTeam | |
neko: Switch to xerces 2.12.1. | rbri | |
Text content based width calculations in ComputedCSSStyleDeclaration now using the getVisibleText() method to come closer to real browsers (e.g. whitespace is now removed). Fixes 384. | rbri | |
neko: Switch to jUnit 5. | rbri | |
SimpleScriptable#setHtmlElement removed. | rbri | |
Deprecated method DomNode.asText() removed. | rbri | |
HTMLElement enterKeyHint property added. | rbri | |
HtmlSerializerVisibleText is now a bit more customizable. Fixes 399. Thanks to cdalexndr. | rbri | |
Plus sign was replaced by a blank when found inside a data url. Fixes 403. | rbri | |
HtmlSerializerVisibleText handling of different white-space style definitions improved. Fixes 397. Thanks to cdalexndr. | rbri | |
Separate documentation page for proxy setup and authentication. | rbri | |
Support socks proxy authentication. Fixes 394. | rbri |
Release 2.54.0 – October 17, 2021
Type | Changes | By |
---|---|---|
core-js: Improve compile speed in some cases. | RhinoTeam | |
core-js: Avoid unnecessary arrayCopy in Kit.readStream, when initialBufferCapacity matches stream length. | RhinoTeam | |
core-js: Classcache must honor current security context. | RhinoTeam | |
core-js: Optimized XmlProcessor toXmlNewlines. | RhinoTeam | |
Fix innerText when the element has svg children. | rbri | |
HTMLElement.outerText added. | rbri | |
Fix innerHTML and outerHTML if one child node is a template. | rbri | |
neko: Fix some problems when parsing template content. | rbri | |
Navigator.languages added. | rbri | |
A short section about 'Multithreading/Threads Pooling' added to the web page. | rbri | |
WebClient.setExecutor(ExecutorService) added to make threading more flexible. | rbri | |
Use a CachedThreadPool instead of a FixedThreadPool for our executor service because the number of WebSocket threads might block the whole execution otherwise. Fixes 390. Thanks to Dennis Duysak. | rbri | |
Add missing support for XmlHttpRequest responseType and response properties. Fixes 388. | rbri | |
Add missing request browser headers when setting location from js. Fixes 386. Thanks to Rural Hunter. | rbri | |
Xpath case sensitive processing was broken if an string inside the xpath contains []() or @. Fixes 386. | rbri | |
Setting the value of an file input to an empty string should not trigger the on change. Fixes 383. | rbri | |
core-js: Fix processing of SCRIPTABLE_UNDEFINED when used in string concatenation. | rbri |
Release 2.53.0 – September 18, 2021
Type | Changes | By |
---|---|---|
XMLHttpRequest.send() has to serialize the body value if it is Document. Fixes 374. | rbri | |
Finally support getting and setting style properties via elem.style['property-name'] notation. | rbri | |
Style property vertical-align now accepts also "baseline", "sub", "super", "text-top", "text-bottom", "middle", "top", "bottom", "inherit", "initial", "revert"and "unset". Fixes 380. | rbri | |
NativeMap's Map.entries() emulation no longer returns NativeMap.NULL_VALUE instead of actual null instance. | rbri | |
Use the CssErrorHandler configured at the WebClient for parsing inline styles also. Fixes 378. | rbri | |
Assigning URL.search has to encode the given string. | rbri | |
If an URLSearchParams object is constructed from an URL all the changes have to update the url also. Thanks to cdalexndr. | rbri | |
URLSearchParams js object misses initialization of parent and prototype. Thanks to cdalexndr. | rbri | |
Fix detail value for PointerEvents. | rbri | |
Dependency HttpClient test-jar no longer required for the test suite. | rbri |
Release 2.52.0 – July 25, 2021
Type | Changes | By |
---|---|---|
More detailed tests and some fixes for HtmlArea processing. | rbri | |
core-js: Two minor code optimizations regarding ConsString handling. | rbri | |
core-js: Delegator handling required for HtmlUnit is now part of Rhino. | rbri | |
core-js: Remove some no longer required changes from our Rhino fork. | rbri | |
Use our own simple Shape2D classes to reduce the java.awt dependencies. | rbri | |
Use our own simple color class to reduce the java.awt dependencies. | rbri | |
Element behaviors and HTML components (HTCs) have been removed from the code base. It was removed more than 5 years ago from IE10. (https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/compatibility/hh801216(v=vs.85)?redirectedfrom=MSDN) | rbri | |
The new Apache commons-io to 2.11.0 is available but we are still at 2.20.0 because the new version seems to have an regression (https://issues.apache.org/jira/browse/IO-744). | rbri | |
SVGMatrix no longer requires java.awt.geom.AffineTransform. Hope that helps a bit on android. | rbri | |
CSSImportRule.styleSheet now returns the imported style sheet instead of the importing one. Fixes 360. Thanks to Frank Danek. | rbri | |
CSS.supports() added - returns always true for now. | rbri | |
Inline styles are now parsed by the htmlunit-cssparser. | rbri | |
Upgrade Jetty to 9.4.43.v20210629. | rbri | |
CSSStyleDeclaration.item property added. Fixes 360. Thanks to Frank Danek. | rbri | |
CSSStyleDeclaration.length is now correct for stylesheets. Fixes 360. Thanks to Frank Danek. | rbri | |
CSSGroupingRule.insert() now sets the parent rule for the inserted rule. Fixes 360. Thanks to Frank Danek. | rbri | |
PageRule style and selectorText property added. Fixes 360. | Frank Danek | |
Improved PageRule support. Fixes 360. | Frank Danek | |
CSSStyleDeclaration.parentRule property added. Fixes 360. | Frank Danek | |
Various CSS formatting fixes. Fixes 360. Thanks to Frank Danek. | rbri | |
XMLHttpRequest-abort() triggers an error in Chrome/Edge if the send is aborted. Fixes 365. | 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.50.0 – May 16, 2021
Type | Changes | By |
---|---|---|
HTMLElement.innerText implementation is now closer to the spec. | rbri | |
core-js: Optimization of the + operator. | RhinoTeam | |
core-js: Small optimization for the increment/decrement operator. | RhinoTeam | |
core-js: Small optimization for the increment/decrement operator. | RhinoTeam | |
Document.contains(node) fixed. | rbri | |
Node.contains(node) returns false for null and undefined parameter values. | rbri | |
Error.stack lines are separated by LF only. Fixes 284. | rbri | |
Some links to the 'The Java Web Scraping Handbook' added. | rbri | |
No longer throw an exception when DOM event name is used as function name. Fixes 347. | rbri | |
core-js: fix duplicate entries of source files in htmlunit-core-js-2.x.0-sources.jar. | RhinoTeam | |
core-js: toNumeric speed improved. | rbri | |
core-js: Number.parseInt and Number.parseFloat are the same as the global functions. | RhinoTeam | |
core-js: Number.EPSILON implemented. | RhinoTeam | |
core-js: String.raw implemented. | RhinoTeam | |
core-js: Improve LengthOfArrayLike to operate on XMLObject. | RhinoTeam | |
core-js: BigInt support. | RhinoTeam | |
Anchor.protocol, Anchor.hostname fixes for various border cases. | rbri | |
URL properties hash, host, hostname, href, password, pathname, port, protocol, search, username and function toJSON added. Thanks to cdalexndr. | rbri | |
core-js: Support numeric separator '_'. | rbri | |
URL.toString() now returns the same value as implicit converting. | rbri | |
URLSearchParams.toString() now returns the same value as implicit converting. | rbri | |
Upgrade Jetty to 9.4.40.v20210413. | rbri | |
Selection.toString() now returns the same value as implicit converting. Fixes 319. | rbri | |
core-js: Improved JSON.stringify() implementation. | RhinoTeam | |
core-js: NPE fixed for code like for ({};;); | RhinoTeam | |
core-js: Improved shorthand assignment support | RhinoTeam | |
MediaDevices.getUserMedia() added - but other than in real browsers this always throws an error because MediaStream's are not supported at the moment. | rbri | |
Navigator.mediaDevices property added. | rbri | |
Support for https proxies - the Webclient constructors are supporting a proxyScheme now. Fixes 340. | rbri | |
Synchronize access to the WebSocketClient from the JettyWebSocketAdapter to avoid NPE. Fixes 310. | rbri |
Release 2.49.1 – April 11, 2021
Type | Changes | By |
---|---|---|
Clicking an anchor was always calling the attachment handler (if set). This was a regression from anchor download attribute support. | rbri |
Release 2.49.0 – April 11, 2021
Type | Changes | By |
---|---|---|
Fix :required and :optional pseudo classes to work with all html elements supporting the 'required' attribute. | rbri | |
HtmlDetails.asNormalizedText() and HtmlDetails.asVisibleText() fixed. | rbri | |
Support for the CSS3 ':invalid' pseudo class added. Thanks to Uberto Barbini. | rbri | |
HTMLDetailsElement supports setting the open property. Fixes 334. | rbri | |
Method HtmlFileInput.setDirectory(File) added to support input elements with type file and webkitdirectory attribute. Fixes 248. | rbri | |
Cookies generated from client code now sent to subdomains also. Fixes 333. | rbri | |
Anchors having the download attribute set are now passing the response into the AttachmentHandler if there is one defined. | rbri | |
core-js: Make variable which has been defined null available in script. | RhinoTeam | |
core-js: Speed of bitwiseNOT improved. | RhinoTeam | |
core-js: Copying nodes in an XML tree no longer removes the source node. | RhinoTeam | |
core-js: Object.assign fixed. | RhinoTeam | |
Documentation for the animation frame support added. | rbri | |
Upgrade Jetty to 9.4.39.v20210325. | rbri | |
Execution of deferred scripts might fail if one script removes another. | rbri |
Release 2.48.0 – March 20, 2021
Type | Changes | By |
---|---|---|
HtmlNumberInput checkValidity() fixes. | rbri | |
Upgrade Apache log4j-api to 2.14.1. | rbri | |
CI build for pull requests is available at https://jenkins.wetator.org/job/htmlunit/view/change-requests/. | rbri | |
Upgrade Apache commons-lang3 to 3.12.0. | rbri | |
Upgrade Jetty to 9.4.38.v20210224. | rbri | |
core-js: Array length limit check fixed. | RhinoTeam | |
core-js: Exponentiation operator support added. | RhinoTeam | |
FAQ updates. | rbri | |
Documentation for image file format support added. | rbri | |
A bunch of improvements for the CanvasRenderingContext2D.drawImage() implementations. | rbri | |
Improved handling of floats in CSSStyleDeclaration during value conversion. Fixes 302. | Dennis Duysak | |
core-js: Addition with string literal is now closer to the ECMAScript spec. | RhinoTeam | |
Upgrade Apache commons-net to 3.8.0. | rbri | |
DomNode#asNormalizedText() added to provide a more meaningful and stable normalization. DomNode#asText() is now deprecated. | rbri | |
HtmlSerializerVisibleText moved into separate package 'com.gargoylesoftware.htmlunit.html.serializer'. | rbri | |
Image comparison integrated into our test environment based on https://github.com/romankh3/image-comparison. We are able now to run the CanvasRenderingcontext2D test now as part of our CI build (and found already some issues) | rbri | |
Fix the font size used by the AwtRenderingBackend implementation. | rbri | |
Fix the AwtRenderingBackend implementation of clearRect to make it transparent instead of white. | rbri | |
Two convenience methods added: WebClient.loadHtmlCodeIntoCurrentWindow(String) and WebClient.loadXHtmlCodeIntoCurrentWindow(String). Fixes 271. | rbri | |
Handle the anchor download property like Shift/Ctrl click - open a new window containing the downloaded content as UnknownPage. Fixes 309. | rbri | |
HTMLInputElement.src is now setable also. Fixes 309. | rbri | |
HTMLInputElement.src now returns the value in the context of the page. | rbri |
Release 2.47.1 – February 7, 2021
Type | Changes | By |
---|---|---|
neko: Fix a regression from the improved table parsing done in 2.44.0. | rbri |
Release 2.47.0 – February 7, 2021
Type | Changes | By |
---|---|---|
Defer attribute of scripts was ignored. | rbri | |
Window.scroll()/scrollTo()/scrollBy() now triggers a scroll event. Fixes 282. | rbri | |
core-js: Reject old octal's in property names. | RhinoTeam | |
Location.reload() reloads to the wrong address when invoked across frames. Thanks to Atsushi Nakagawa. | rbri | |
Return a rejected Promise rather than throw errors for all the methods in SubtleCrypto. Thanks to Atsushi Nakagawa. | rbri | |
InputEvent constructor fixed. | rbri | |
core-js: Make property __proto__ writable for functions also. Thanks to Atsushi Nakagawa. | rbri | |
core-js: Make property only having a getter readonly. | RhinoTeam | |
core-js: Make message handling variadic. | RhinoTeam | |
KeyboardEvent constructor fixed. Fixes 293. Thanks to Joerg Werner. | rbri | |
Fixes for (re) attaching iframes. Fixes 285. | rbri | |
Fix handling of removal of the src attribute from frames. | rbri | |
Referer header url is without ref part. | rbri | |
Improved content sniffing for html pages. | rbri | |
The invocation order of events added to XMLHttpRequest, through both addEventListener() and on-handlers is fixed, to be more consistent with major browser such as Chrome / FF / IE, as well as other events already implemented in HtmlUnit that use EventTarget's framework. Thanks to Atsushi Nakagawa. | rbri | |
Properties oncopy, oncut, onpaste, classList and hasAttribute, onselectionchange, ontransitioncancel,ontransitionend,ontransitionrun and ontransitionstart fixed for many elements. | rbri | |
Various fixes for body element properties. | rbri | |
Setting onload attribute on body forwards to window. | rbri | |
Deprecated method HtmlLabel.getReferencedElement() removed. | rbri |
Release 2.46.0 – January 2, 2021
Type | Changes | By |
---|---|---|
core-js: Fix bug with node position in labeled loops. | RhinoTeam | |
core-js: JSON.stringify with no arguments should return undefined. | RhinoTeam | |
core-js: JSON.stringify with more than 3 arguments should respect the first 3 arguments. | RhinoTeam | |
Fix detection of supported javascript types. | rbri | |
OWASP dependency-check added to the build process. | rbri | |
Document.cookies setter called with with blank does not reset the cookies in CHROME/EDGE. | rbri | |
core-js: Fix handling of MemberBox functions in getOwnPropertyDescriptor. | rbri | |
core-js: Fix Error.captureStackTrace(myError). | rbri | |
core-js: Fix __lookupGetter__/__lookupSetter__ implementation. | rbri | |
Support individual timeout settings for XMLHttpRequest. | rbri | |
Processing of href changes is synchronous if only the hash was changed. | rbri | |
Improved performance due to avoiding Script conversion into String only for naming the action. | Markus Heiden | |
core-js: Fix comment parsing in try and catch statements. | RhinoTeam | |
core-js: Make type checking and casting a bit more generic to provide better error messages. | rbri | |
Various fixes for handling of xml nodes by css selectors. | rbri | |
Element.getElementsByTagName is case sensitive for xml nodes. | rbri | |
CSS tag name selector is case sensitive for xml nodes. | rbri | |
CSS selector for hyphen separated attribute values '|=' now works as specified. | rbri | |
core-js: Fix parameter handling for Object.assign. | rbri | |
core-js: Fix the (confusing) exception msg if Object.prototype.setPrototypeOf is called with less than two parameters. | rbri | |
core-js: Fix JSON.stringify on a RegExp object; RegExp object is no longer callable. | RhinoTeam | |
core-js: Math.max/min - each element coerced. | RhinoTeam | |
Support setting the USER_AGENT header per WebRequset. Thanks to Dargonfly. | rbri | |
Constructor improved for StorageEvent, TimeEvent, TouchEvent, TrackEvent, TransitionEvent and WheelEvent. | 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.43.0 – August 8, 2020
Type | Changes | By |
---|---|---|
Initial support for new File(bits, name[, options]);. Fixes #202. Thanks to Thorsten Wendelmuth. | rbri | |
File.lastModifiedDate is no longer available in FF. | rbri | |
Using a node list directly inside a for..of operation is now supported like 'for (var entry of nodeList) {...}'. | rbri | |
URLSearchParams migrated to Rhino iterators also. Our own iterator implementation is now history. Fixes #200. | rbri | |
Major rework for our NodeList implementation. The methods entries(), keys(), and values() returning a better iterator implementation (now uses ES6Iterator from Rhino). Outside of some minor fixes this implements for..of support. | rbri | |
Minor changes of AbstractJavaScriptConfiguration better encapsulate the used maps; internal maps are now concurrent maps and no longer encapsulated as unmodifiable to make access faster. | rbri | |
ClassConfiguration is changed a bit, the fields propertyMap_, functionMap_, staticPropertyMap_, staticFunctionMap_ and constants_ are now lazy initialized to save some memory. | rbri | |
Simulated screen resolution is now 1920x1080. | rbri | |
Fix prototype of parentElement property for IE. Fixes #199. | rbri | |
core-js: Throw if the lastIndex prop of an regex is readonly. | rbri | |
core-js: Support RegEx[Symbol.match]() and RegEx[Symbol.search](). | rbri | |
core-js: Object.setPrototypeOf() arg[0] has to be coercible. | rbri | |
core-js: Reduce auto boxing, make some more methods static and general code cleanup. | rbri | |
core-js: String.prototype[Symbol.iterator].call(undefined) has to throw because undefined is not coercible. | rbri | |
core-js: Fix String.indexOf and String.includes when searching for an empty string. | rbri | |
DOMParser.parseFromString now supports the creation of HTMLDocuments also. Fixes #193. | rbri | |
HtmlLink no longer stores the web response. Fixes #195. | rbri | |
Improved encoding and BOM handling when loading a stylesheet. Fixes #192. | rbri | |
FF60 support removed. | rbri |
Release 2.42.0 – July 11, 2020
Type | Changes | By |
---|---|---|
core-js: Fix wrong start object for getter in Object.assign(). | rbri | |
core-js: No longer inherit strict mode when parsing a function body. | rbri | |
Fix NPE in XMLSerializer.serializeToString(). Fixes #191. | rbri | |
Make sure XMLSerializer.serializeToString() serializes all elements of a given document fragment. | rbri | |
Respect button 'formnovalidate' attribute. Fixes #189. | rbri | |
core-js: Did a dirty hack in the code to disable parts of Rhino's const handling. Hopefully a futher Rhino version will make some progress here and we get real up to date const support. | rbri | |
core-js: Improved regex range handling. | rbri | |
core-js: String.trimStart String.strimEnd added. | rbri | |
core-js: String.fromCodePoint() added. | rbri | |
core-js: Bunch of fixes for JDK 11. | rbri | |
core-js: Regular expressions are not functions in the context of string replace. | rbri | |
core-js: Class 'BodyCodegen' moved into a file. | rbri | |
core-js: TypedArray constructors are only callable via new. | rbri | |
core-js: Improved handling of negative ArrayBuffer size. | rbri | |
core-js: code cleanup; use the RangeError construction helper, avoid autoboxing and new Double() calls. | rbri | |
Fix ClassCastException in Document.firstElementChild and Document.lastElementChild for documents with doctype. Fixes 182. | rbri | |
Document.readyState should be interactive in DOMContentLoaded event handler. Fixes 180. Thanks to Rural Hunter. | rbri | |
The method Crypto.getRandomValues misses a ArrayBufferView byte length check. | rbri | |
The method Crypto.getRandomValues has to return the modified array. Fixes 183. | rbri | |
Upgrade Jetty to 9.4.30.v20200611. | rbri | |
core-js: Support for ES6 generators was added to Rhino. | rbri |
Release 2.41.0 – June 6, 2020
Type | Changes | By |
---|---|---|
core-js: It should be not possible to change the prototype of a non-extensible object. | rbri | |
core-js: Fix handling of undefined parameter value in String.normalize(). | rbri | |
core-js: Improved regexp parser. | rbri | |
core-js: Function.__proto__ property ignores write access. | rbri | |
core-js: Fix Object.getOwnPropertyDescriptor for index properties on native strings. | rbri | |
Invoking getImageData with coordinates outside the drawing area no longer produces exceptions. Fixes 178. | rbri | |
Support for setTimeout and setInterval added to DedicatedWorkerGlobalScope. Fixes 177. Thanks to Rural Hunter. | rbri | |
Maven Fluido Skin used for the web page updated to version 1.9. | rbri | |
core-js: Fix for a side effect between different regular expressions. | rbri | |
core-js: Many fixes for array calls using this pattern Array.prototype.foo.call(null, ....);. | rbri | |
core-js: Do not save/share an instance of NativeArrayBuffer in a static variable because this creates side effects. | rbri | |
core-js: An error should be thrown when defining a property for a read-only variable in strict mode. | rbri | |
core-js: The values of present properties of a sealed object can be changed as long as they are writable. Fixes 174. | rbri | |
core-js: Symbol.length should be 0. | rbri | |
core-js: Calling String.substr with undefined as length fixed. | rbri | |
core-js: Using a regex like a function should throw a TypeError. | rbri | |
core-js: Calling String.split with zero as limit fixed. | rbri | |
Upgrade Apache commons-io to 2.7. | rbri | |
Upgrade Jetty to 9.4.29.v20200521. | rbri | |
WebResponse.getContentAsString() fails for compressed responses because of the BOM header detection. Fixes 175. | rbri | |
Possible ArrayIndexOutOfBoundsException fixed. Fixes 173. | rbri | |
HTMLTemplateElement.outerHTML() fixed. | rbri | |
Properly print HtmlTemplate's children via asXml. Thanks to Ronny Shapiro. | rbri | |
Document getElementById(..) now returns null for elements inside a template tag. Thanks to Ronny Shapiro. | rbri | |
Fix NPE getting event handlers without JS engine. Thanks to Ronny Shapiro. | rbri |
Release 2.40.0 – May 2, 2020
Type | Changes | By |
---|---|---|
New WebClientConfiguration option ConnectionTimeToLive added. Fixes 161. | rbri | |
Fix for removing event listener from body. | rbri | |
Improve focus and blur handling. | fdanek | |
HtmlLabel.getReferencedElement() is now deprecated. Use HtmlLabel.getLabeledElement() instead. | fdanek | |
Label form property has to work based in it's own form in IE11. | fdanek | |
Label control property has to look for a nested labelable control as fallback if no for attribute is given. Additionally it is not available in IE11. | fdanek | |
Better handling of recursive iframes content. Fixes 156. | rbri | |
Fix exception when handling invalid body element with no JS engine. Thanks to Ronny Shapiro. | rbri | |
Fix frameset exception with no JS engine. Thanks to Ronny Shapiro. | rbri | |
Label form property has to work based on the element labeled by the label. | rbri | |
Fix possible ConcurrentModificationException when cloning an HtmlPage / HtmlElement. Thanks to Ronny Shapiro. | rbri | |
Respect Content-Security-Policy: frame-ancestors when loading frame content. | rbri | |
Respect X-Frame-Options: DENY when loading frame content. | rbri | |
Fix SvgScript NPE when script engine not available. Fixes #155. Thanks to Ronny Shapiro. | rbri | |
Upgrade Jetty to 9.4.28.v20200408. | rbri | |
Fix NPE in image onload handler processing. | rbri | |
HTMLFormElement.requestSubmit() for FF and CHROME added. | rbri | |
New method AttachmentHandler.handleAttachment(WebResponse) added. By implementing your own AttachmentHandler you now can process the attachment response by your code without opening a new WebClinet window. | rbri |
Release 2.39.0 – April 5, 2020
Type | Changes | By |
---|---|---|
Neko: fix encoding of blanks in file uri's. | rbri | |
DedicatedWorkerGlobalScope now extends EventTarget. Fixes #150. | rbri | |
Upgrade Apache commons-lang3 to 3.10. | rbri | |
Functions atob() and btoa() added to the worker scope. | rbri | |
FrameContentHandler added to support stop loading of frame content. | rbri | |
Make the shutdown processing of the JavaScriptEngine more robust to avoid exceptions when accessing the engine while the shutdown was already triggered. Fixes #136. | rbri | |
CanvasRenderingContext2D transformation handling fixed. | rbri | |
AwtRenderingBackend log improved, every backend is now identified by an unique number. | rbri | |
Detailed debug log added to the AwtRenderingBackend. | rbri | |
Text positioning in CanvasRenderingContext2D.fillText() fixed. | rbri | |
CanvasRenderingContext2D.save() does not set the saved values to defaults. | rbri | |
CanvasRenderingContext2D.save() / restore() takes care of the clip region. | rbri | |
Enum com.gargoylesoftware.htmlunit.javascript.configuration.BrowserName removed. | rbri | |
FIREFOX (latest) support added. Like we already do for CHROME we will support the recent version of Firefox in addition to at least one ESR version. | rbri | |
HtmlLabel.getReferencedElement() now also supports HtmlButton, HtmlMeter, HtmlOutput, HtmlProgress, HtmlSelect and HtmlTextArea in nested variant and ignores not labelable elements in both variants. | fdanek | |
WorkerGlobalScope.importScripts() now checks the content type of the script to import. Fixes #140. | rbri | |
First simple implementation for the anchor download and shape property added. | rbri | |
BrowserVersion FIREFOX_60 is now deprecated. | rbri | |
Deprecated constructor WebRequest.WebRequest(URL, String) removed. | rbri |
Release 2.38.0 – March 8, 2020
Type | Changes | By |
---|---|---|
Upgrade Apache HttpComponents to 4.5.12. | rbri | |
Improved color parsing to support hsl colors also for CanvasRenderingContext2D strokeStyle and fillStyle property. Fixes #140. | rbri | |
Make the type() processing more robust if the value of the control was changed directly without updating the selection. Fixes #142. | rbri | |
Major parts of CanvasRenderingContext2D.clip implemented. Fixes #140. | rbri | |
Use the correct color table for CanvasRenderingContext2D.fillStyle and CanvasRenderingContext2D.strokeStyle. Fixes #140. | rbri | |
Fix StringIndexOutOfBoundsException when calculation text for dom nodes. Fixes #134. | rbri | |
Support linking of submittable elements to a form via the form attribute. Fixes #132. | rbri | |
Methods firstElementChild() and lastElementChild() are no longer failing because of a ClassCastException when calling for an xml document. | rbri | |
CanvasRenderingContext2D.putImageData() implemented. Fixes #140. | rbri | |
ImageData constructor implemented. | rbri | |
CanvasRenderingContext2D.createImageData(ImageData) implemented. Fixes #140. | rbri | |
CanvasRenderingContext2D.createImageData(width, height) implemented. Fixes #140. | rbri | |
CanvasRenderingContext2D.getImageData() takes a snapshot of the current context. | rbri | |
Support for link property 'relList' implemented. | rbri | |
Support for area property 'relList' implemented. | rbri | |
Support for area property 'rel' added. | rbri | |
Support for anchor property 'relList' implemented. | rbri | |
Support for anchor property 'username' and 'password' added. | rbri | |
HtmlNumberInput accepts decimals. Fixes #123. | rbri | |
New switch WebClientOptions.isWebSocketEnabled() added. This removes the WebSocket slot from the Window object. If you disable WebSocket support for your client, the jetty libraries are no longer requires. Fixes #122. | rbri | |
AttachmentHandler.isAttachment(WebResponse) has to check case insensitive. | rbri | |
Neko: Make sure rewind is working in all cases. Fixes neko #5. | rbri |
Release 2.37.0 – January 28, 2020
Type | Changes | By |
---|---|---|
Security: prevent Rhinos access to Java resources; e.g. call java methods. | rbri | |
Upgrade Apache HttpComponents to 4.5.11. | rbri | |
XSLTProcessor now respects the xsl:output indent='yes' setting when simulating chrome. Fixes #118. | rbri | |
Upgrade Jetty to 9.4.26.v20200117. | rbri | |
DocumentFragment.getElementById() added. | rbri | |
DocumentFragment methods childElementCount(), firstElementChild(), and lastElementChild() are no longer failing because of a ClassCastException. | rbri | |
Resync core-js with rhino trunk (2019-11-25). This includes some improvements to iterable processing. | rbri | |
The entity processing was broken if an '&' was in front of a tag like </div>&X</div>. Fixes #79. | rbri | |
Promise.all() and Promise.race() are now able to work with iterables instead of only supporting arrays. Fixes #114. | rbri | |
Upgrade Jetty to 9.4.25.v20191220. | rbri | |
Try to make stopping of the WebSockets more robust. | rbri | |
Some documentation added for file upload. Fixes #112. | rbri | |
Upgrade Apache log4j-api to 2.13.0. | rbri | |
CanvasRenderingContext2D.globalAlpha implemented. | rbri | |
Angle handling for CanvasRenderingContext2D ellipse and arc fixed. | rbri | |
No longer use annotations for the implementation of isReadOnlySettable to make the code simpler and faster. Fixes #107. | rbri | |
CanvasRenderingContext2D.ellipse(..) implemented. Fixes #92. | rbri | |
DOMRectList is visible. | rbri | |
Resync core-js with rhino trunk (2019-11-25). This fixes a bug regarding isExtensible handling. | rbri | |
Browser specific vAling handling fixed. | rbri | |
Do not create js peers during html parsing if js is disabled. | rbri | |
Some neko updates and some caching to use less objects and memory during html parsing. | rbri | |
Firefox 68 ESR simulation now available. | rbri | |
More robust color parsing. Fixes #98. | rbri | |
CanvasRenderingContext2D.closePath() implemented. Fixes #92. | rbri | |
Upgrade Jetty to 9.4.24.v20191120. | rbri | |
MockWebConnection.getRequestedUrls() added. Fixes #91. | rbri | |
Respect form 'novalidate' attribute. Fixes #75. | rbri | |
Resync core-js with rhino trunk (2019-10-19). | rbri | |
Img elements in forms are accessible directly using the name also when nested. | rbri | |
WebClient#openWindow no longer throws a ClassCastException when called from a non html page. Fixes #84. | rbri | |
Wrong encoding used in window.atob(). Fixes #80. Thanks to Rural Hunter. | rbri | |
File input with required attribute now validates correctly. Fixes #76. | rbri | |
Upgrade Apache HttpComponents to 4.5.10. | rbri |
Release 2.36.0 – August 24, 2019
Type | Changes | By |
---|---|---|
INCOMPATIBLE CHANGE: WebConnection.close() and WebConnectionWrapper.close() are throwing an IOException instead of an Exception now. Thanks to Le Stephane. | rbri | |
Method isAttachment(WebResponse) moved from Attachment to the AttachmentHandler interface as default method. Based on this you can now overwrite the isAttachment(WebResponse) implementation with your own. | rbri | |
FIREFOX_52 is deprecated. | rbri | |
Correct handling of media properties without values. | rbri | |
Console.assert(..) added. Fixes #66. | rbri | |
Do not start the (Default)JavascriptExecutor if javascript is disabled for the client. Fixes #65. | rbri | |
New method com.gargoylesoftware.htmlunit.Cache.clearOutdated() to remove outdated entries. | rbri | |
Make responses cachable in case the Cache-Control header with max-age or s-maxage overrules the Expires header. Fixes #62. | rbri | |
Javascript Proxy stub removed. The class is only a stub an might confuse feature detections code that only checks for existence. Fixes #61. | rbri | |
Brotli support added. | rbri | |
Class XPathUtils renamed to XPathHelper. | rbri | |
Class XmlUtil renamed to XmlUtils and moved to com.gargoylesoftware.htmlunit.util. | rbri | |
Class TextUtil renamed to TextUtils and moved to com.gargoylesoftware.htmlunit.util. | rbri | |
ArchUnit added. | rbri | |
Log no longer a warning for not supported link types. Instead log more detailed debug messages for this case. Fixes #53. | rbri | |
Fix NPE for some unsupported css hacks. | rbri | |
Add a save() method in TextPage, which knows to save in the same charset as was received in the response. Thanks to Le Stephane. | rbri | |
Upgrade Apache commons-text to 1.7. | rbri | |
HtmlPage.save(File) no longer fails if some linked resources are not available. Fixes #57. | rbri | |
Link to sourceforge mailing lists fixed. Fixes #54. | rbri | |
MessageEvent.initMessageEvent() port parameter checking fixed. | rbri | |
Improved offsetTop calculation. Fixes #48. | rbri | |
Trigger the correct event listener if a script tag points to an url that returns 204 (no content). | rbri | |
WebSocket onOpen event handler is called with the event as parameter. Fixes #43. Thanks to James Kleeh. | rbri | |
WebSocket events are initialized with correct srcElement and origin. | rbri | |
Cleanup our logging setup; slf4j dependencies removed, log4j2 is now used for all the tests of log output. | rbri | |
Fix the referrer and origin header when the request was created from window.location.reload(). Fixes 2015. | rbri | |
AudioContext.createBufferSource and a simple AudioContext.decodeAudioData added. | rbri | |
Revert a minor change to ensure backward compatibility with older jetty versions. Fixes #36. | rbri | |
neko: Handle the (invalid) comment close tag '--!>' like the valid one regarding to the spec (https://html.spec.whatwg.org/multipage/parsing.html#comment-end-bang-state). Fixes #38. | rbri | |
XMLHttpRequestEventTarget has no ctor. | rbri | |
Properties onError and onLoad moved from XMLHttpRequest up to XMLHttpRequestEventTarget. | rbri | |
Clicking a label with a valid for attribute does not forward the click to the target if the target is disabled. | rbri | |
Code cleanup and some resource handling fixes for HttpWebConnection. | rbri |
Release 2.35.0 – April 15, 2019
Type | Changes | By |
---|---|---|
Upgrade Apache commons-lang3 to 3.9. | rbri | |
Upgrade Apache HttpClient to 4.5.8. | rbri | |
StackOverflowError during javascript processing are now handled like other javascript errors. Only the JavaScriptErrorListener gets informed. Fixes #24. | rbri | |
Make the processing of request headers more correct and document the general idea. Fixes #27. Thanks to Joerg Werner. | rbri | |
Log a warning, if click() is a no-op because the target element is disabled or not displayed. Fixes #28. | rbri | |
Fix an error in the url circle detection when loading frame content. Fixes #22. | rbri | |
Avoid scientific notation when converting float back to strings (CSSParser) | rbri | |
Logging documentation updated. | rbri | |
INCOMPATIBLE CHANGE: JavaScriptErrorListener interface defines one new method warn(String, String, int, String, int). Please add an implementation to your own implementations of this interface. | rbri | |
INCOMPATIBLE CHANGE: DefaultJavaScriptErrorListener now logs all messages. | rbri | |
Class SilentJavaScriptErrorListener added. | rbri | |
JavaScriptErrorListener is no longer saved from the HtmlUnitContextFactory to be sure to use always the currently configured one. | rbri | |
Class com.gargoylesoftware.htmlunit.javascript.StrictErrorHandler removed. | rbri | |
Class com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter removed. | rbri | |
core-js: some array length border cases fixed | rbri | |
core-js: array length null/undefined fixed | rbri | |
core-js: array includes added | rbri | |
core-js: array padStart and padEnd added | rbri | |
Image handler are processed (again) if an image is imported into a new document. | rbri | |
Page of the imported node fixed when importing. | rbri | |
There is no need for a window if constructing a new event handler. Fixes 2008. | rbri | |
Fix NPE when getting the baseUrl from a page created using DOMImplementation.createHTMLDocument(). | rbri | |
Invalid urls with the about protocol (e.g. about:htmlunit) are now throwing a MalformedURLException to be handled like any other IOException. | rbri | |
HtmlRangeInput improvements. Fixes 19. | rbri | |
Input element with type date now stores the value typed in. Fixes 1923. | rbri |
Release 2.34.1 – March 4, 2019
Type | Changes | By |
---|---|---|
Fix insert position for elements with contenteditable='true'. | rbri | |
Send 'image/png' as mime type when uploading a png file. Fixes 18. | rbri |
Release 2.34.0 – Feb 28, 2019
Type | Changes | By |
---|---|---|
CSS declarations in CDATA sections are not processed for XHtml and Xml pages. | rbri | |
Script code in CDATA sections are not processed for XHtml and Xml pages. Fixes 2012. | rbri | |
Neko-HtmlUnit parser: entity reference handling rewritten according to the spec. All specified character references are now supported and a bunch of fixes where also made for numeric references. Fixes 2011. | rbri | |
ClassList.toggle/add/remove should take care of the HtmlAttributeChangeListener. Fixes 17. | rbri | |
Audio node created from js now supports nodeType and nodeName property. Fixes 2010. | rbri | |
Upgrade Apache HttpClient to 4.5.7. | rbri | |
Avoid the try to add a response to cache if the response is already from cache or an redirect. | rbri | |
Fix caching for redirected calls. Fixes 14. | rbri | |
Some fixes for broken attribute processing done in neko-htmlunit. Fixes 258. | rbri | |
JavaScriptExecutor is no longer serializable. | rbri | |
FileReader.readAsText() added. Fixes 2007. | rbri | |
Major cleanup of the htmlunit-cssparser; all the references to the w3c classes are removed. This avoid a lot of instanceof/cast processing and will make it simpler to enhance the parser in the future. | rbri | |
New method Window.animateAnimationsFrames(). Use this to force one animation cycle. | rbri | |
Huge improvement for CanvasRenderingContext2D; we have working path handling and transformations now. | rbri | |
Another Rhino update; Array.fill, Array.keys, Array.entries, and Array.values is now supported. | rbri | |
HtmlPage.save(File) and XmlSerializer.save(SgmlPage, File) are using the correct file encoding. | rbri | |
No longer fail if the generated bytecode for method exceeds 64K limit; we (Rhino) will fall back to the interpreter mode. Fixes #1989. | rbri | |
We are using the Map/Set/WeakMap/WeakMap implementation from Rhino now, our own impl is gone. | rbri | |
Improved support for insecure socket connections; InsecureTrustManager now extends X509ExtendedTrustManager instead of implementing only X509TrustManager. | rbri | |
Fix Promise.resolve() called with an object having no 'then' slot. | rbri | |
Fix handling of invalid values in media queries. | rbri | |
Browsers are supporting GMT time format for cookie expires parsing. Fixes 1998. Thanks to Rural Hunter. | rbri | |
Fix calculation of absolute url from relative one if dots present. Fixes 1995. Thanks to Joerg Werner. | rbri | |
Setting the innerHtml has to clear the computed styles to force recalculation based on the new content. Fixes 1993. | rbri | |
Map and Set forEach() are using undefined as this context in strict mode. | rbri | |
Stub impl of DateTimeFormat.resolvedOptions() added. | rbri | |
Correct handling of content type 'no-gzip' and 'gzip-only-text/html'. | rbri | |
Reworked JS event listeners implementation; many incompatibilities with all supported browsers are fixed. Fixes 1984. Thanks to Atsushi Nakagawa. | rbri | |
Maven Fluido Skin used for the web page updated to version 1.7 | rbri |
Release 2.33 – Sep 12, 2018
Type | Changes | By |
---|---|---|
INCOMPATIBLE CHANGE: ScriptResult.getNewPage() is no longer available. You can use something like webClient.getCurrentWindow().getEnclosedPage() instead. | rbri | |
Source repository is on GitHub now. | rbri | |
Input tel/search/number now fires the oninput event. Fixes 256. | rbri | |
Reworked JS event listeners implementation; many incompatibilities with all supported browsers are fixed. Fixes 1984. Thanks to Atsushi Nakagawa. | rbri | |
Maven Fluido Skin used for the web page updated to version 1.7 | rbri | |
Improved calculation of the left offset. Fixes 1986. | rbri | |
We are using the typed array implementation from Rhino now, our own impl is gone. | rbri | |
Method Date.toUTCString() is available in Rhino; remove our own impl. | rbri | |
Fix the order of the windows returned by WebClient.getTopLevelWindows() to be again the same as WebClient.getWebWindows(). Fixes 1979. Thanks to Atsushi Nakagawa. | rbri | |
Improved support for javascript named function expressions (core-js). Fixes 1980. Thanks to Atsushi Nakagawa. | rbri | |
DomNodeIterator no longer traverses uncles of root node. Fixes 1982. Thanks to Steve Harney. | rbri | |
Add missing default delegating methods getContentLength(), cleanUp(), and defaultCharsetUtf8() to WebResponseWrapper. Fixes 1978. Thanks to Atsushi Nakagawa. | rbri | |
Major cleanup for neko and switch to xerces 2.12.0 | rbri |
Release 2.32 – July 29, 2018
Type | Changes | By |
---|---|---|
Event listeners had to be functions, other types are ignored. Fixes 1976. | rbri | |
Setting window.clientInformation is ignored in IE. | rbri | |
HTMLxxxInput.reset() results in a wrong state of the selection delegate. Fixes 1969. | rbri | |
FF60 ESR support. | rbri | |
FF45 support removed. | rbri | |
Many fixes for document.createEvent('xxx') to support the various UI events. | rbri | |
Correct handling of additional parameters provided in functions setTimeout/setInterval. Fixes 1966. Thanks to Atsushi Nakagawa. | rbri | |
NPE in HtmlTextArea.removeFocus(). Fixes 1964. | rbri | |
WebClient default request header should not overwrite request-specific ones. Fixes 1970. | rbri | |
Various fixes for the selector specificity calculation (CssParser). Fixes 1962. | rbri |
Release 2.31 – May 22, 2018
Type | Changes | By |
---|---|---|
core-js is now in sync with the latest Rhino codebase. | rbri | |
Use Rhino/core-js now es2 mode (instead of using rhinos outdated default mode). | rbri | |
Use Rhino/core-js Symbol implementation instead of our own one. | rbri | |
Various updates/fixes for the typed array support. | rbri | |
Set constructor now supports parameters of type iterator also. | rbri | |
document.fonts added. | rbri | |
BrowserVersion: deprecate FIREFOX_45. | rbri | |
Navigator.doNotTrack fixed, property is available in Chrome too, Window.doNotTrack added for is available for IE. | rbri | |
Special handling of the GAE environment is no longer required, the JDK8 at GAE has no longer any restrictions. | rbri |
Release 2.30 – March 25, 2018
Type | Changes | By |
---|---|---|
Improved clone implementation to take care of references. Fixes 1959. | rbri | |
Setting the Map size property is now ignored (or throws a Type error in strict mode). Fixes 1956. | rbri | |
Setting the CSSStyleDeclaration length property is now ignored (or throws a Type error in strict mode). Fixes 1956. | rbri | |
Setters for window.innerWidth/Height and window.outerWidth/Height added. | rbri | |
Redirect of head requests should be head requests also. Fixes 1957. | rbri | |
Use the correct content type when guessing from the '.js' file extension. Fixes 1954. | rbri | |
Major refactoring of the css handling (selector processing). Every style sheet now has a selector index to speed up style processing. | rbri | |
We have now our own cssparser (a cleaned up version of the cssparser we have used so far) to be able to change the model classes to better support our use cases. | rbri | |
getArttibute is optimized for speed in some special cases. | rbri | |
Local files are now cached using the same rules as server requests (cacheable if date-modified is more than ten minutes in the past) | rbri | |
Our page cache now takes care of Cache Control headers. Fixes 1952. Thanks to Anton Demydenko. | rbri | |
Fix incorrect encoding of consecutive '%' characters in url's. Fixes 1951. Thanks to Hartmut Arlt. | rbri | |
RegExp: fix processing of /[]/ and /[^]/. Fixes 1949. Thanks to Atsushi Nakagawa. | rbri | |
Handling of invalid processing instructions fixed in neko. | rbri | |
Fix some problem to be able to run our test suite with edge. Thanks to Frank Danek. | rbri | |
JavaScript: WeakSet and WeakMap constructor now supports user defined iterators also. | rbri | |
Doing Ctrl+Click on an anchor now opens a new window also if the href is javascript based. | rbri | |
JavaScript: Setter for history.scrollRestoration added. | rbri | |
Fix the broken initialization of the canvas context that empties the canvas every time canvas.getContext("2d") was called. Fixes 1674. | rbri | |
JavaScript: Set and Map constructor now supports user defined iterators also. | rbri | |
JavaScript: Array.from() now supports user defined iterators also. | rbri | |
Samples on page Get Started updated. | rbri | |
NPE in com.gargoylesoftware.htmlunit.html.HtmlPage.cleanUp(). Fixes 1946. | rbri | |
JavaScript: URLSearchParams implementation finished (entries(), keys(), values()). | rbri | |
JavaScript: URLSearchParams parser fixed (handling of '=' as first char of a part). | rbri | |
JavaScript: Invalid 'Origin' header was sent as part of XMLHttpRequest if the request url was absolute and the page contains a base tag. Fixes 1944. | rbri | |
JavaScript: CSSStyleSheet#addRule fixed error handling. Fixes 1943. | rbri | |
JavaScript: CSSStyleSheet#addRule fixed return value when simulating ie | rbri | |
JavaScript: CSSStyleSheet#insertRule improved error handling | rbri | |
JavaScript: CSSStyleDeclaration#cssText throws an NPE when in stylesheet mode | rbri | |
JavaScript: CSSStyleDeclaration#cssText usually return a ';' after the last rule | rbri |
Release 2.29 – December 28, 2017
Type | Changes | By |
---|---|---|
JavaScript: TextEncoder/TextDecoder impl added. | rbri | |
JavaScript: MutationObserver fires callbacks asynchronously. Fixes 1940. Thanks to Atsushi Nakagawa. | rbri | |
JavaScript: Promise has to provide the same context setup as the rest and call processPostponedActions afterwards. Fixes 1941. | rbri | |
If the coords of an image map entry are not valid ignore this entry. Fixes 1939. | rbri | |
JavaScript: calling click() from js should always work even if the control is not visible. Fixes 1939. | rbri | |
JavaScript: Crypto.subtle added. Fixes 1936. | rbri | |
WebClient.setWebStartHandler() and the interface WebStartHandler added. Create your implementation of this interface to support WebStart links. | rbri | |
JavaScript: CanvasGradient.addColorStop() added | rbri | |
JavaScript: CanvasRenderingContext2D.createRadialGradient() now returns an CanvasGradient | rbri | |
JavaScript: CanvasRenderingContext2D.createLinearGradient() now returns an CanvasGradient | rbri | |
Check option cssEnabled before downloading a css file (regression from 1927). Fixes 1935. | rbri | |
JavaScript: Error.captureStackTrace is not available in FF and IE. Fixes 1840. | rbri | |
JavaScript: location.reload uses the same request method like the original request. Fixes 1840. | rbri | |
JavaScript: WebSocket constructor call failed with a NPE when called during page construction. | rbri | |
JavaScript: fix Number.toLocaleString() to be able to support locale strings like 'en-US'. Fixes 1932. | rbri | |
JavaScript: performance.navigation.toJSON() added. | rbri | |
JavaScript: URL.searchParams added. | rbri | |
New configuration settings webSocketMaxTextMessageSize, webSocketMaxTextMessageBufferSize, webSocketMaxBinaryMessageSize, and webSocketMaxBinaryMessageBufferSize. | rbri | |
JavaScript: URL constructor and origin property added. | 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.27 – June 4, 2017
Type | Changes | By |
---|---|---|
JavaScript: fix Array out of bounds Exception in insertBefore implementation when calling without any parameters. Fixes 1891. | rbri | |
JavaScript: implement Array.from(). Fixes 44336828. | asashour | |
CSS: cssparser updated to 0.9.23. | rbri | |
JavaScript: implement Element.matches(). | asashour | |
JavaScript: implement .before(), .after() and .replaceWith(). | asashour | |
Simulated system time zone is now configurable (BrowserVersion.setSystemTimezone()). Fixes 1827. | rbri | |
JavaScript: fix Set/Map with undefined value. Fixes 1886. | asashour | |
Stack property was not set when new Error() was called from js. Fixes 1606. | asashour | |
Fixed wrong dom tree because of duplicated head element. Fixes 1863. | rbri | |
Avoid CCE in innerText when the element contains a SvgElement. Fixes 1883. | rbri | |
Various fixes for javascript encoding detection. | rbri | |
NPE in StyleSheetList.equivalentValues(). Fixes 1881. Thanks to Carsten Steul. | rbri | |
HtmlImageInput: add .saveAs(). Fixes 43854916. | asashour | |
JavaScript: MouseEvent to support .pageX and .pageY for all browsers. Fixes 1877. | asashour | |
JavaScript: fix Object.assign(). Fixes 1875. | asashour | |
JavaScript: fix .set() of Typed Arrays. Fixes 1873. | asashour | |
JavaScript: fix Typed Arrays construction with null. Fixes 1872. | asashour | |
WebClientOptions: deprecate .getPrintContentOnFailingStatusCode(). | asashour | |
JavaScript: implement Audio. Fixes 246. | asashour | |
JavaScript: Selection.type implementation fixed for Chrome. | rbri | |
JavaScript: document.baseURI calculation fixed for relative href. Fixes 1870. Thanks to Joerg Werner. | rbri | |
JavaScript: fix setting .innerHTML. Fixes 43482935. | asashour | |
JavaScript: implement NodeList.entries(), keys(), values() and forEach(). | asashour | |
Neko: fix handling of strange comment syntax supported by browsers. Fixes 1862. | rbri | |
JavaScript: fix AbstractList iteration. Fixes 43394489. | asashour | |
Neko: fix handling of invalid numeric entity references inside attributes. Fixes 1869. | rbri | |
JavaScript: add basic support for Range.getClientRects(). | rbri | |
JavaScript: fix Map and Set iterator prototype. Fixes 1868. | asashour | |
RegExp: fix translation of \0 at the end. Fixes 1867. Thanks to Leszek Hoppe. | asashour | |
Method HtmlPage.getElementsById(String) added to make simple to detect duplicate id's. | rbri | |
JavaScript: fix parameter checking for MutationObserver.observe(). | rbri | |
HtmlScript: charset attribute should not be considered. | asashour | |
JavaScript: CSSRuleList.item() is supported in all browsers. | asashour | |
Remove HtmlKeygen. | asashour | |
JavaScript: support Object.getOwnPropertySymbols(). Fixes 43263382. | asashour | |
HtmlOption: fix .setSelected(). Fixes 1864. | asashour |
Release 2.26 – April 4, 2017
Type | Changes | By |
---|---|---|
Handle infinite meta refresh. | asashour | |
HtmlOption: fix clicking. | asashour | |
HttpWebConnection: fix User-Agent header of CONNECT request. Fixes 1861. | asashour | |
Applet: initial javascript interaction support added; it is now possible to use the JSObject from the applet to call javascript functions or set attributes. | rbri | |
JavaScript: fix __proto__ of the top level object. Fixes 1856. | asashour | |
JavaScript: fix Object.getPrototypeOf(). Fixes 1855. | asashour | |
WebClient: add .getInternals() to listener to WebSockets. Fixes 42982495. | asashour | |
JavaScript: Set and Map to support .forEach(). | asashour | |
Object tag now has some applet support. | rbri | |
CSS: fix handling :target pseudo class. Fixes 46. | asashour | |
Deprecate HtmlImage.getComplete(). | asashour | |
Deprecate HtmlKeygen. | asashour | |
JavaScript: WebSocket onError processing was missing. | rbri | |
Fix detection of HtmlInput types (IE). | asashour | |
Correct file type detection for files with css suffix. Fixes 1858. Thanks to Joerg Werner. | rbri | |
JavaScript: simple implementation for MediaSource.isTypeSupported added (returns always false). | rbri | |
WebClientOptions: add option for screen width/height. | asashour | |
Reduce the number of temp files created when asking images for width/height. | rbri |
Release 2.25 – February 23, 2017
Type | Changes | By |
---|---|---|
Deprecate SgmlPage.getPageEncoding() and WebResponse.getContentAsString(String) variants. | asashour | |
INCOMPATIBLE CHANGE: change return type of WebRequest.getCharset, WebResponse.getContentCharset() and getContentCharsetOrNull(). | asashour | |
JavaScript: correct handling of window.onbeforeunload. | asashour | |
Encoding support for DataURl added. | rbri | |
INCOMPATIBLE CHANGE: PromptHandler.handlePrompt() has a third parameter. | asashour | |
WebClientOptions: add option to automatically download images. | asashour | |
Browsers are storing cookies with a dot at the start of the domain. | rbri | |
HtmlAnchor: handle clicking page with shift or ctrl keys. | asashour | |
INCOMPATIBLE CHANGE: change the return type of DomNode.getByXPath. | asashour | |
Add HtmlSlot. | asashour | |
DomElement: .click() should does nothing when the element is not displayed. | asashour | |
Table elements now supporting the summary and rules attribute. | rbri | |
Remove deprecated HtmlElement.getHtmlElementsByTagName(), .getHtmlElementsByTagNames() and CSSStyleSheet.modifyIfNecessary(). | asashour | |
BrowserVersion: remove deprecated INTERNET_EXPLORER_11. | asashour | |
HtmlFileInput: deprecate .setValueAttribute(), use .setFiles() instead. | asashour | |
JavaScript: nowrap property support added for div, dd, and dt elements (IE only). | rbri | |
FormData now also respects configured mime type for uploading a file. | rbri | |
Reintroduce ScriptPreProcessor. Fixes 1818. | asashour | |
JavaScript: fix Symbol creation. Fixes 1852. | asashour | |
HtmlOption: clicking should unselect other options, even if the parent select is 'multiple'. | asashour | |
JavaScript: WebSocket constructor should report an js error if the provided url is empty/null or invalid. | rbri | |
HtmlInput: deprecate .click(int, int). | asashour | |
JavaScript: EventHander set at window-level only on setting it by attribute. | asashour | |
Elements with 'tabindex' are focusable. | asashour | |
JavaScript: implement HTMLInputElement.checkValidity(). | asashour | |
HtmlInput: .setValueAttribute() no longer executes onchange event handler. | asashour | |
JavaScript: HTMLInputElement: fix .value for file types. | asashour | |
Minor java code issue from our get started page fixed; sample for using getElementsByTagName added. | rbri | |
Add HtmlEmailInput, HtmlTelInput and HtmlUrlInput. Fixes 1848. | asashour | |
INCOMPATIBLE CHANGE: remove SvgPage and InteractivePage, use HtmlPage instead. Fixes 1830. | asashour | |
SgmlPage to implement DocumentTraversal. Fixes 240. | asashour | |
SgmlPage: fix getElementsByTagName() and add .getElementsByTagNameNS(). Fixes 1849. | asashour | |
BrowserVersion: remove deprecated FIREFOX_38. | asashour | |
JavaScript: fix NullPointerException in MutationObserver. Fixes 1811. | asashour | |
DomNode: implement .getUserData() and .setUserData(). Fixes 239. | asashour | |
Mandate Java 8 as a minimum requirement. | asashour |
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.23 – July 27, 2016
Type | Changes | By |
---|---|---|
ClientWidth is not correctly calculated for div with 'position: absolute'. Fixes 1669. | rbri | |
Use soft references for storing the page as part of the history to avoid OOMExceptions. Fixes 1805. | rbri | |
Do not save any history entries if HistorySizeLimit is less than 1. Fixes 1805. | rbri | |
CSS: cssparser updated to 0.9.20. | rbri | |
HtmlPage: .save() to handle relevant HtmlLink protocols. | asashour | |
Fix handling return statements in URL starting with "javascript:". | asashour | |
Take care of the font size when calculating the offsetWidth for text. | rbri | |
ReferenceError after calling Object(FrameWindow). Fixes 1804. Thanks to Carsten Steul. | rbri | |
IllegalStateException adding an option to a select. Fixes 1803. Thanks to Carsten Steul. | rbri | |
New class DefaultJavaScriptErrorListener added. This listener will be always used of no specific listener is defined. The logging of js errors was moved to this class. If you like to have the logging and your own JavaScriptErrorListener than subclass or decorate this. Fixes 1620. | rbri | |
Computing of the current css styles now takes mouseOver into account. Fixes 1065. | rbri | |
IndexOutofRangeException fixed in com.gargoylesoftware.htmlunit.attachment.Attachment.getSuggestedFilename(). | rbri | |
JavaScript: scrollHeight, scrollWidth implementation improved. | rbri | |
JavaScript: Window to throw Exception during construction by JavaScript. Fixes 1779. | asashour | |
JavaScript: string.repeat() is not available in IE. | rbri | |
JavaScript: string.includes() is not available in IE and FF38. | rbri | |
JavaScript: implement Object.assign(). Fixes 1797. | asashour | |
JavaScript: string.startsWith(), and .endsWith() are not available in IE. | rbri | |
BrowserVersion: deprecate FIREFOX_38. | asashour | |
NPE in CSSStyleSheet.fixIndex(). Fixes 1791. Thanks to Carsten Steul. | rbri |
Release 2.22 – May 27, 2016
Type | Changes | By |
---|---|---|
JavaScript: Implementation for DOMImplementation.createHTMLDocument() added. Fixes 1748. | rbri | |
Use our own implementation of URL.sameFile to avoid excessive number of DNS lookups and and support path normalization before doing the comparison. Fixes 1787. | rbri | |
Keyboard: to have a parameter which allows typing to start at the text end. | asashour | |
CSS: cssparser updated to 0.9.19. | rbri | |
HtmlElement: do not trigger keypress if keydown.preventDefault() is true. | asashour | |
Remove deprecated DomNode.getScriptObject(), WebWindow.getScriptObject(), HtmlElement.type() methods and HtmlPage constructor with 'originatingUrl'. | asashour | |
WebClient: supports a registry of known file extensions used to determine the content type when uploading files. | rbri | |
WebClientOptions: .setSSLClientCertificate() supports InputStream. Fixes 231. | asashour | |
DataUrlDecoder.decodeUrl() no longer replaces '+' with a space character. Fixes 1769. Thanks to Carsten Steul. | rbri | |
Dependency to gsbase library removed. | rbri | |
JavaScript: Simple implementation of URL.createObjectURL and URL.revokeObjectURL added. | rbri | |
JavaScript: 'in' operator now works for FileList. | rbri | |
JavaScript: DOMTokenList as an array. Fixes 1783. Thanks to Marek Gawlicki. | asashour | |
INCOMPATIBLE CHANGE: modify BrowserVersion.browserVersionNumeric from float to int. | asashour | |
JavaScript: clear cached Symbols on closing the page. Fixes 1781. | asashour | |
WebClientOptions: add setHistorySizeLimit(). Fixes 175. Thanks to Madis Pärn. | asashour | |
CSS: fix value verification for length property setters (e.g. width, height,...). | rbri | |
HtmlForm: to include Accept and Accept-Encoding headers on submission. Fixes 1777. | asashour | |
JavaScript: window.getComputedStyle() should use sheets of the element.document. | asashour | |
JavaScript: fix HTMLElement.style setter. | asashour | |
JavaScript: fix HTMLElement.offsetLeft. Fixes 1626. | asashour | |
CSS: fontSize influences the calculated height. Fixes 1776. | asashour | |
HttpWebConnection no longer removes 'Content-Length', 'Content-Encoding' and 'Content-MD5' HTTP headers. Fixes 1774. Thanks to Hartmut Arlt. | rbri | |
BrowserVersion: Chrome is the BEST_SUPPORTED. | asashour | |
JavaScript: support Document.adoptNode. Fixes 228. Thanks to Madis Pärn. | asashour | |
DomNode: .asText() to handle CSS styles. Fixes 1770. | asashour | |
JavaScript: add primitive support for SVGElement.getBBox(). Fixes 1506. | asashour | |
JavaScript: Promise supports .reject() and .catch(). | asashour | |
JavaScript: IE supports the data URIs. | asashour | |
JavaScript: fix caching of computed styles. Fixes 1768. | asashour | |
DomNode: fix .asText() for some special spaces. Fixes 1764. | asashour | |
Fix CSS selector regression introduced during handling pseudo element in window.getComputedStyle(). | asashour |
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.17 – Jun 3, 2015
Type | Changes | By |
---|---|---|
CSS: cssparser updated to 0.9.16. | asashour | |
Update htmlunit-core-js to Rhino head of 03.06.2015 + custom patches. | asashour | |
JavaScript: fix WebSocket.readyState. Fixes 1689. | asashour | |
Firefox 38 ESR support added. | rbri | |
BrowserVersion: deprecate FIREFOX_31. | rbri | |
Button tag submits a form if type is unknown. | rbri | |
Initial support for HTML5 Input Types. | asashour | |
JavaScript: add HTMLInputElement.min and .max. | asashour | |
Add HtmlTemplate element. | asashour | |
CSS: fix default attribute values. | asashour | |
JavaScript: Typed Arrays to tolerate out of range. | asashour | |
JavaScript: implement style.setProperty(). | rbri | |
JavaScript: implement style.getPropertyPriority(). | rbri | |
JavaScript: implement CanvasRenderingContext2D.getImageData(). | asashour | |
JavaScript: support image.naturalWidth and .naturalHeight. | asashour | |
JavaScript: support CustomEvent. | asashour | |
JavaScript: Element lookup by CSS class name does not always work. Fixes 1685. | rbri | |
History: support POST requests. | asashour | |
JavaScript: fix setting HTMLOptionElement.label. Fixes 1687. | asashour | |
JavaScript: arbitrary elements are defined as JavaScript properties (only in IE8). | asashour | |
JavaScript: HTMLInputElement: support minLength (Chrome). | asashour | |
JavaScript: implement window.matchMedia() and .styleMedia. | asashour | |
JavaScript: implement Map, Set, WeakMap and WeakSet. | asashour | |
JavaScript: handle events with functions bound to null. | asashour | |
JavaScript: execute onload handlers for dynamically created iframe as well when src is set to about:blank. | mguillem | |
JavaScript: implement MessageChannel. Fixes 1680. | asashour | |
Support for 'hidden' HTML5 attribute added (method HtmlElement.isDisplayed() takes care of this). | rbri | |
Remove deprecated JavaScriptEngine.shutdownJavaScriptExecutor() and CookieManager.getCookies(). | asashour | |
JavaScript: implement NodeIterator. | asashour | |
Upgrade Xalan to 2.7.2. | 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.1 – Apr 15, 2008
Type | Changes | By |
---|---|---|
Deprecate HtmlPage.getDocumentHtmlElement(). | asashour | |
Add support for DomNode.getTextContent() and setTextContent(). | asashour | |
JavaScript: add initial support for CSSRuleList. | asashour | |
HtmlTextInput and HtmlTextArea: fix type() space. | asashour | |
HtmlPage.getReadyState() now synchronized with the information from the documentElement. Fixes 402. | mguillem | |
CSS parsing optimization: avoid parsing CSS selectors multiple times. | sdanig | |
Initialize mouse event coordinates lazily, in order to avoid unnecessary CSS processing overhead. | sdanig | |
JavaScript: window.open without URL provided returns blank window when simulating Firefox too. Fixes 392. | mguillem | |
JavaScript: clear existing events handlers when page's content is changed with document.write. Fixes 521. | mguillem | |
JavaScript: fixed document.location in pages created with document.write. | mguillem | |
JavaScript: fixed ClassCastException occurring when select() is called on form elements other than text inputs. | mguillem |
Release 2.0 – Apr 7, 2008
Type | Changes | By |
---|---|---|
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.13 – Aug 17, 2007
Type | Changes | By |
---|---|---|
Add document.createEvent() and document.createEventObject(). Thanks to Rob Di Marco. | sdanig | |
HtmlElement.asXml(): separate lines for empty element and the one after. | asashour | |
JavaScript: element.appendChild() and insertBefore() must recursively maintain document.getElementById() contract. | asashour | |
WebRequestSettings: add getter and setter of CookiePolicy. | asashour | |
JavaScript: for element.appendChild(), .insertBefore(), .innerHTML, and .innerText: if the element parentNode is null, create a DocumentFragment to be the parentNode (IE only). | asashour | |
Deprecated methods that conflict with W3C DOM API: DomTest.splitText, HtmlPage.getDocumentElement, createElement, createElementNS, HtmlAttr.getValue, setValue, DomNode.getLastChild, getParentNode, getPreviousSibling, getNextSibling, getFirstChild, cloneNode, appendChild, HtmlElement.cloneNode. Added replacement Dom or Html methods. Renamed HtmlPage.createDocumentFragment to createDomDocumentFragment. (#1747878). Fixes 112. | dktaylor | |
Deprecated DomNode.XXXX_NODE. | asashour | |
Change DomNode.ATTRIBUTE_NODE to be 2 in order to match W3C DOM Node.ATTRIBUTE_NODE. | asashour | |
JavaScript: add support for document.createDocumentFragment(). | asashour | |
JavaScript: add basic support for element.getBoundingClientRect() and element.getClientRects(). | asashour | |
JavaScript: add support for node.isSameNode(). | asashour | |
WebClient: Remove deprecated moveFocusFromElement(), moveFocusToElement(), and getElementWithFocus(). | asashour | |
HtmlTitle.asXml(): empty tag is expanded as required by Internet Explorer. | asashour | |
JavaScript: if window object could not find a property or function, it returns 'undefined' instead of null (#1771549). Fixes 509. | 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.9 – Jun 27, 2006
Type | Changes | By |
---|---|---|
Upgraded commons-collections to version 3.2 | bradclarke | |
Upgraded commons-logging to version 1.1 | bradclarke | |
Upgraded commons-io to version 1.2 | bradclarke | |
JavaScript: added support IE style of events (window.event). Fixes 93. | mguillem | |
Added possibility to configure NTLM credentials for the DefaultCredentialsProvider. Fixes 95. | mguillem | |
Added facility method WebClient.getPage(String). | mguillem | |
Upgraded jaxen to 1.1-beta-9 (even if it's a "beta", this is the version recommended by jaxen developers). | mguillem | |
JavaScript: set form as parent scope for form fields (allows handlers to call directly form methods like submit()). | mguillem | |
XmlPage: parse xml pages namespace aware. | mguillem | |
JavaScript: ensure that the page being loaded has not already been replaced in its window by a new one through JavaScript before executing onload handlers. Fixes 356. | mguillem | |
Use Byte Order Mark to recognize UTF-8 content when no charset header is provided. | mguillem | |
JavaScript: added addEventListener/attachEvent, removeEventListener/detachEvent to Window, allowing to register load events on a window. | mguillem | |
Upgraded commons-httpclient to version 3.0.1. | mguillem | |
JavaScript: added support for properties defaultView (Mozilla) and parentWindow (IE) on Document. | mguillem | |
JavaScript: added support for property ownerDocument on HtmlElements. | mguillem | |
DomText.asText() now cleans up and multiple blanks as other DomNodes do. | mguillem | |
Added facility methods HtmlOption.getEnclosingSelect() and HtmlLabel.getReferencedElement(). | mguillem | |
Fixed HtmlTable.getCellAt when table contains a rowspan. Fixes 343. Thanks to Julien Henry. | mguillem | |
Proxy settings now respected to load external JavaScript files. Fixes 345. | mguillem | |
HtmlCheckBoxInput.setChecked() now fires the JavaScript onchange event. | bradclarke | |
Implemented window.setTimeout(function, int) and window.setInterval(function, int) | bradclarke | |
HtmlOption.asText() now respects the label attribute as browsers do. | bradclarke | |
Encode path part of URLs containing illegal characters. Fixes 338. | mguillem | |
Added support for firing onkeydown events. Fixes 1436102. Thanks to Brad Murray. | mguillem | |
HtmlElement.getAttributeEntriesIterator now returns the attributes in the order in which they appear in the html source code. Fixes 335. | mguillem | |
HttpWebConnection now allows extensions to simply override HttpClient creation. Fixes 92. | mguillem | |
Use configured proxy when performing a request after a redirection. Fixes 340. | mguillem | |
Allow <button...>s located outside of a form to be clicked and their onclick handler to be called. | mguillem |
Release 1.8 – Feb 17, 2006
Type | Changes | By |
---|---|---|
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). |