Releases of happy-dom
779 stable releases, newest first. Release notes are kept for the last 90 days; older ones link to where they were published.
21.0.3
15 October 2026:construction_worker_man: Patch fixes
- security
Fixes security vulnerability where authorization header was forwarded when redirecting - By @capricorn86
- security
21.0.2
15 October 2026:construction_worker_man: Patch fixes
- security
Fixes SSRF security vulnerability by doing a target-origin bypass in the proxy server in @happy-dom/server-renderer - By @capricorn86
- security
21.0.1
12 October 2026:construction_worker_man: Patch fixes
Adds alias for enabling CSS and iframe loading to @happy-dom/server-renderer - By @capricorn86
21.0.0
11 October 2026:bomb: Breaking Changes
- breaking
Disables CSS and IFrame loading by default to prevent server-side request forgery (SSRF) - By @capricorn86
An attacker could embed
<iframe>or<link rel="stylesheet">elements in untrusted HTML to make Happy DOM send HTTP requests from the server to attacker-chosen URLs, including internal services. This could allow access to otherwise unreachable endpoints or trigger unintended actions, depending on the application and its network access.The settings property
disableCSSFileLoadinghas been deprecatedAdded the new settings properties enableCSSFileLoading and enableIframePageLoading
- breaking
20.14.6
8 October 2026:construction_worker_man: Patch fixes
- security
Fixes cookie scope forgery vulnerability - By @capricorn86
- security
20.14.5
12 September 2026:construction_worker_man: Patch fixes
Preserve character references in comment data - By @hampustagerud in task #2409
20.14.4
12 September 2026:construction_worker_man: Patch fixes
End comments at the first comment end tag when it overlaps a comment start tag - By @hampustagerud in task #2407
20.14.3
9 September 2026:construction_worker_man: Patch fixes
Avoids cloning all properties in CSSPropertyManager.toString - By @erictheswift in task #2363
20.14.2
9 September 2026:construction_worker_man: Patch fixes
Fixes regression where not all CSS variables where resolved in
getComputedStyle()- By @klaesra in task #2344
20.14.1
9 September 2026:construction_worker_man: Patch fixes
Invalidate the computed style cache for the whole subtree - By @matmannion and @capricorn86 in task #2366
20.14.0
3 September 2026:art: Features
Improves computed style cache - By @capricorn86 in task #2357
20.13.2
2 September 2026:construction_worker_man: Patch fixes
Fix problem with getComputedStyle with :host and :host-context selectors - By @capricorn86 in task #2349
20.13.1
2 September 2026:construction_worker_man: Patch fixes
GetComputedStyle should return inherited value when it is set to inherit - By @capricorn86 in task #2347
20.13.0
2 September 2026:art: Features
Adds support for :host psuedo query selector - By @capricorn86 in task #2345
20.12.2
2 September 2026:construction_worker_man: Patch fixes
Custom elements should be upgraded when connected to DOM - By @capricorn86 in task #2342
20.12.1
1 September 2026:art: Features
Adds support for kebab-case properties on
CSSStyleDeclaration- By @capricorn86 in task #2256Adds support for all Chromium CSS properties to
CSSStyleDeclaration- By @capricorn86 in task #2256Downloads a list from the Chromium project when compiling
20.12.0
29 August 2026:art: Features
Adds support for
Animation,AnimationTimeline,DocumentTimelineandKeyframeEffect- By @capricorn86Adds support for
Element.animate()- By @capricorn86
20.11.15
28 August 2026:construction_worker_man: Patch fixes
Fixes issue with upgrading custom element caused by previous release - By @capricorn86 in task #2331
20.11.14
28 August 2026:construction_worker_man: Patch fixes
Change prototype of element to the custom element when upgraded to keep the reference - By @capricorn86 in task #2331
The previous solution replaced the element with the custom element and copied it's properties, but this made any reference to the original element invalid
20.11.13
28 August 2026:construction_worker_man: Patch fixes
Copy event listeners when upgrading a custom element - By @capricorn86 in task #2329
20.11.12
27 August 2026:construction_worker_man: Patch fixes
Add check for if the node is still a parent during disconnect - By @capricorn86 in task #2322
20.11.11
27 August 2026:construction_worker_man: Patch fixes
Use proxy as parent node in Node.connectedToNode - By @diegohaz in task #2253
20.11.10
27 August 2026:construction_worker_man: Patch fixes
Return default validationMessage for built-in constraint violations - By @mixelburg in task #2187
20.11.9
27 August 2026:construction_worker_man: Patch fixes
Make sure that the element has been upgraded before invoking reaction callback in custom elements - By @capricorn86 in task #2317
20.11.8
26 August 2026:construction_worker_man: Patch fixes
Values pushed or assigned to the
adoptedStyleSheetarray should be validated - By @capricorn86 in task #2315
20.11.7
26 August 2026:construction_worker_man: Patch fixes
The properties
Document.adoptedStyleSheetsandShadowRoot.adoptedStyleSheetsshould validate it's value - By @capricorn86 in task #2313
20.11.6
19 August 2026:construction_worker_man: Patch fixes
Updates docs for the global-registrator package - By @capricorn86 in task #2300
20.11.5
19 August 2026:construction_worker_man: Patch fixes
Allow explicit element types for querySelector (e.g.
querySelector<HTMLInputElement>(".my-input")) - By @cyphercodes
20.11.4
19 August 2026:construction_worker_man: Patch fixes
Fixes the CORS check
fetch()to match origins instead of host and protocol - By @rexxars in task #1490
20.11.3
19 August 2026:construction_worker_man: Patch fixes
Make document.links return a live HTMLCollection - By @bangseongbeom in task #2299
Copy labels array to prevent mutation of cached querySelectorAll result - By @mixelburg in task #2226
20.11.2
7 August 2026:construction_worker_man: Patch fixes
MutationObserver callback being GC'd due to orphaned WeakRef - By @mixelburg in task #2264
20.11.1
22 July 2026:construction_worker_man: Patch fixes
Improve performance of query selectors by avoiding construction of DOMException when not needed - By @@cyfung1031 in task #2228
20.11.0
18 July 2026:art: Features
Adds support for CookieStore API - By @TrevorBurnham in task #1864
Adds support for Element.checkVisibility() - By @capricorn86 in task #1506
20.10.6
17 June 202620.10.5
16 June 202620.10.4
15 June 202620.10.3
12 June 202620.10.2
6 June 202620.10.1
4 June 202620.10.0
3 June 202620.9.0
13 April 202620.8.9
26 March 202620.8.8
24 March 202620.8.7
23 March 202620.8.6
23 March 202620.8.5
23 March 202620.8.4
12 March 202620.8.3
3 March 202620.8.2
3 March 202620.8.1
2 March 2026