All Versions
224
Latest Version
Avg Release Cycle
36 days
Latest Release
-

Changelog History
Page 5

  • v11.8.0 Changes

    • โž• Added the full constraint validation API, i.e. willValidate, validity, validationMessage, checkValidity(), reportValidity(), and setCustomValidity(), on HTMLButtonElement, HTMLFieldSetElement, HTMLFormElement, HTMLInputElement, HTMLObjectElement, HTMLOutputElement, HTMLSelectElement, and HTMLTextAreaElement. (kontomondo)
    • โž• Added getElementById() to DocumentFragment.
  • v11.7.0 Changes

    • โž• Added the boolean return value to DOMTokenList's replace() method, per the recent spec addition.
    • โž• Added FileReader's readAsBinaryString() method, as it has been added back to the specification.
    • ๐Ÿ›  Fixed event handlers to be own properties of each Window, instead of on Window.prototype. (Fetz)
    • ๐Ÿ›  Fixed an exception that would sometimes get raised when removing an <img> element's src="" attribute. (atsikov)
    • ๐Ÿ›  Fixed abort events on AbortSignals to have their isTrusted set to true.
    • ๐Ÿ›  Fixed some argument conversions in XMLHttpRequest's open() method.
    • ๐Ÿ‘Œ Improved MIME type and data: URL parsing throughout jsdom, by using the new whatwg-mimetype and data-urls packages.
    • โœ‚ Removed some unnecessary .webidl files that were included in the npm package.
  • v11.6.2 Changes

    • ๐Ÿ›  Fixed another regression (since v11.6.0) in <style> elements, where they would omit a series of parsing jsdomError events for any style sheet text containing spaces.
    • ๐Ÿ’… Generally improved the spec-conformance of when <style> and <script> elements are evaluated; for example, <script> elements inserted by innerHTML are no longer evaluated.
  • v11.6.1 Changes

    • ๐Ÿ›  Fixed one regression (since v11.6.0) in <style> elements, where their sheet property would sometimes be null when it should not be.
    • ๐Ÿ›  Fixed a case where a <style> element's sheet property would be left as a CSSStyleSheet despite it not being in the document.

    ๐Ÿ’… Another regression remains where we are emitting spurious CSS-parsing jsdomError events; see #2123. We also discovered a large amount of preexisting brokenness around <style>, <link>, and @import; see #2124 for more details.

    We'll try to fix these soon, especially the regression.

  • v11.6.0 Changes

    • โž• Added a fully-functioning WebSocket implementation!
    • โž• Added a window.performance implementation, including the basics of the High Resolution Time specification: performance.now(), performance.timeOrigin, and performance.toJSON().
    • โž• Added support for all of the public API of HTMLMeterElement, except for meterEl.labels.
    • โž• Added the locationbar, menubar, personalbar, scrollbars, statusbar, and toolbar properties to Window.
    • โž• Added more properties to window.screen: availWidth, availHeight, colorDepth, and pixelDepth. All of its properties are now getters as well.
    • โž• Added window.devicePixelRatio.
    • โž• Added getModifierState() to MouseEvent and KeyboardEvent.
    • โž• Added a setter for HTMLInputElement's files property.
    • โž• Added support for the endings option to the Blob constructor.
    • ๐Ÿ›  Fixed firing various event firings to have the correct default values, e.g. the properties of MouseEvent when using element.click().
    • ๐Ÿ›  Fixed the firing of popstate and hashchange events during fragment navigation to make them trusted events.
    • ๐Ÿ›  Fixed data: URL parsing to not include the fragment portions.
    • ๐Ÿ›  Fixed all URL-accepting properties to properly perform scalar value string conversion and URL resolution.
    • ๐Ÿ›  Fixed many other small edge-case conformance issues in the API surface of various web APIs; see #2053 and #2081 for more information.
    • ๐Ÿ›  Fixed various APIs to use ASCII lowercasing, instead of Unicode lowercasing, for element and attribute names.
    • ๐Ÿ›  Fixed the encoding of a document created via new Document() to be UTF-8.
    • ๐Ÿ›  Fixed event handler properties behavior when given non-callable objects.
    • ๐ŸŽ Increased the performance of parsing HTML documents with large numbers of sibling elements.
    • โœ‚ Removed probablySupportsContext() and setContext() from HTMLCanvasElement, per spec updates.
    • โœ‚ Removed the nonstandard window.scrollLeft and window.scrollTop properties, and the window.createPopup() method.
  • v11.5.1 Changes

    ๐Ÿš€ (This should have been a minor release; oops.)

    • โž• Added AbortSignal and AbortController.
    • ๐Ÿ›  Fixed validation for file <input>s and implemented validation for more input types.
  • v11.4.0 Changes

    ๐Ÿš€ For this release we'd like to welcome @Zirro to the core team; his contributions over the course of this year have enhanced jsdom immensely.

    • โž• Added a rudimentary set of SVG element classes, namely SVGElement, SVGGraphicsElement, SVGSVGElement, SVGTests, SVGAnimatedString, SVGNumber, and SVGStringList. The main impact here is that SVG elements are now instances of SVGElement, instead of being simply Element (as they were in v11.3.0) or HTMLUnknownElement (as they were in v11.2.0 and previously). The only concrete subclass that is implemented is SVGSVGElement, for <svg> itself; other tags will not map to their correct classes, because those classes are not yet implemented.
    • โž• Added the new pretendToBeVisual option, which controls the presence of the new requestAnimationFrame() and cancelAnimationFrame() methods, and the new values of document.hidden/document.visibilityState. See the README for more information. (SimenB)
    • โž• Added the append() and prepend() methods to Document, DocumentFragment, and Element. (caub)
    • โž• Added the before(), after(), and replaceWith() methods to DocumentType, Element, and CharacterData. (caub)
    • โž• Added node.isConnected.
    • โž• Added node.isSameNode().
    • โž• Added support for parsing CDATA sections in XML documents, including in domParser.parseFromString(). (myabc)
    • โž• Added appropriate input.value getter/setter logic for <input type="file">.
    • Significantly improved the spec-compliance of NamedNodeMap, i.e. of element.attributes, such that retrieving named or indexed properties will now always work properly.
    • ๐Ÿ›  Fixed domParser.parseFromString() to not parse HTML character entities in XML documents. (myabc)
    • ๐Ÿ›  Fixed xhr.abort() to clear any set headers.
    • ๐Ÿ›  Fixed XMLHttpRequest to always decoded responses as UTF-8 when responseType is set to "json".
    • ๐Ÿ›  Fixed XMLHttpRequest CORS header handling, especially with regard to preflights and Access-Control-Allow-Headers. (ScottAlbertine)
    • ๐Ÿ›  Fixed the behavior of radioButton.click() to fire appropriate input and change events. (liqwid)
    • ๐Ÿ›  Fixed querySelector()/querySelectorAll() behavior for SVG elements inside <template> contents DocumentFragments, including those created by JSDOM.fragment(). (caub)
    • ๐Ÿ›  Fixed the line number reporting in exception stack traces when using <script> elements, when includeNodeLocations is set.
    • โœ‚ Removed the <applet> element, following the spec.
  • v11.3.0 Changes

    ๐Ÿš€ For this release we'd like to formally welcome @TimothyGu to the core team, as a prolific contributor. He will join the illustrious ranks of those who do so much work on jsdom that we no longer note their names in the changelog.

    • โž• Added table.tHead, table.tFoot, and table.caption setters, and the table.createTBody() method.
    • โž• Added CompositionEvent and WheelEvent classes.
    • โž• Added a <details> element implementation. (Zirro)
    • โž• Added stub <marquee> and <picture> element implementations. (Zirro)
    • โšก๏ธ Updated uiEvent.initUIEvent(), keyboardEvent.initKeyboardEvent(), and mouseEvent.initiMouseEvent() to match the latest specifications.
    • Converted DOMTokenList (used by, e.g., element.classList) to use proxies for improved specification compliance and "liveness".
    • ๐Ÿ›  Fixed the DOMException class to be spec-compliant, including its constructor signature.
    • ๐Ÿ›  Fixed some subtle interactions between inline event handlers and other event listeners.
    • ๐Ÿ›  Fixed the element interface used when creating many of the more obscure elements.
    • ๐Ÿ›  Fixed the behavior of the table.rows getter, and the table.createCaption() and table.deleteRow() methods.
    • ๐Ÿ›  Fixed incorrect sharing of methods between interfaces that used mixins (e.g. previously document.querySelector === documentFragment.querySelector, incorrectly).
    • ๐Ÿ›  Fixed FocusEvent creation, which regressed in v11.2.0.
    • ๐Ÿ›  Fixed UIEvent to only allow initializing with Window objects for its view property.
    • ๐Ÿ›  Fixed the behavior of tr.rowIndex and tr.deleteCall().
    • ๐Ÿ›  Fixed the element interface for <td> and <th> to be simply HTMLTableCellElement, and improved that class's spec compliance.
    • ๐Ÿ›  Fixed calling label.click() to not trigger the labeled control's activation behavior when the control is disabled. (schreifels)
    • ๐Ÿ›  Fixed document.getElementsByName() to return a NodeList instead of a HTMLCollection. (Zirro)
    • ๐Ÿ”€ Significantly sped up synchronous XMLHttpRequest. (Zirro)
  • v11.2.0 Changes

    ๐Ÿš€ This release brings with it a much-awaited infrastructure change, as part of webidl2js v7.3.0 by the ever-amazing TimothyGu: jsdom can now generate spec-compliant versions of classes that have "Proxy-like" behavior, i.e. allow getting or setting keys in unusual ways. This enables a number of improvements, also by TimothyGu:

    • Significantly improved the spec-compliance and "liveness" of both NodeList and HTMLCollection, such that retrieving properties via indices or (in HTMLCollection's case) id/name values will always work correctly.
    • โž• Added element.dataset support.
    • โž• Added indexed and named access to <select> elements, as well as the corresponding item() and namedItem() methods.
    • โž• Added suport for FileList indexed properties, i.e. fileList[i].
    • Made select.options an instance of the newly-implemented HTMLOptionsCollection, instead of just a HTMLCollection.

    This infrastructure will allow us to improve and implement many other similar behaviors; that work is being tracked in #1129.

    In addition to these improvements to the object model, we have more work to share:

    • โž• Added no-op APIs document.clear(), document.captureEvents(), document.releaseEvents(), window.external.AddSearchProvider(), and window.external.IsSearchProviderInstalled(). (Zirro)
    • โž• Added active checks to prevent reentrancy in TreeWalker and NodeIterator.
    • โšก๏ธ Updated the interaction between a <textarea>'s value, defaultValue, and textContent per a recent spec change
    • ๐Ÿ›  Fixed elements with id="undefined" shadowing the undefined property of the global object. (TimothyGu)
    • ๐Ÿ›  Fixed matching in getElementsByClassName() to be ASCII case-insensitive, instead of using JavaScript's toLowerCase().
    • ๐Ÿ‘Œ Improved some behaviors around navigating to fragments. (ForbesLindesay)
    • ๐Ÿ‘Œ Improved XMLHttpRequest and FileReader behavior, mainly around event handlers, abort(), and network errors.
    • ๐Ÿ‘Œ Improved edge-case spec compliance of NodeIterator.
  • v11.1.0 Changes

    • โž• Added javascript: URL "navigation" via window.location, at least by evaluating the side effects. It still doesn't actually navigate anywhere. (ForbesLindesay)
    • โšก๏ธ Updated whatwg-url to v6.1.0, bringing along origin serialization changes and URLSearchParams among various other fixes. (ForbesLindesay)
    • ๐Ÿ›  Fixed javascript: URL loading for iframes to do proper percent-decoding and error reporting.
    • ๐Ÿ›  Fixed corrupted XMLHttpRequest responses when they were over 1 MiB.
    • ๐Ÿ›  Fixed timers to not start after a window is close()d, which could cause strange errors since most objects are unusable at that point. (Enverbalalic)