Skip to content

Releases: AngleSharp/AngleSharp

v1.8.6

Choose a tag to compare

@FlorianRappl FlorianRappl released this 25 Oct 10:38
9253950

Released on Sunday, October 25 2026

What's Changed

  • Removed temporary copies when serializing text that needs no HTML escaping @perfloop-agent in #1388
  • Fixed INode.Equals (isEqualNode) to compare what the DOM spec compares: character data, doctype identifiers, processing instructions, element prefixes and attribute local names, no longer base URLs, without overflowing the stack on deep trees
  • Fixed IAttr.Equals comparing the prefix instead of the local name
  • Fixed IDocument.Import (importNode) returning nodes owned by the source document instead of the importing one
  • Fixed IDocument.Import accepting a shadow root instead of throwing NotSupported
  • Fixed INode.Clone and Import overflowing the stack on deeply nested trees and templates
  • Fixed a shallow clone of a <template> copying its contents
  • Fixed serializing < and > in attribute values unescaped, which let markup break out when reparsed under different rules (mutation XSS); they are now written as &lt; and &gt; like browsers do since the HTML spec change of May 2025
  • Fixed IRange.CopyContent and ExtractContent overflowing the stack on deeply nested ranges
  • Fixed Dispatch (dispatchEvent) returning true for a canceled event
  • Fixed MutationObserver not observing a document itself and throwing for one without a root element
  • Fixed MutationObserver.Disconnect keeping the previous targets for a later Connect
  • Fixed a failing navigation or submission from DoClick crashing the process; it is reported as a context error
  • Fixed URLSearchParams treating non-ASCII values as single bytes and leaving + undecoded @NotAFlightRisk in #1390
  • Added the IHtmlSelectElement.SelectedIndex setter
  • Added HtmlParserOptions.MaximumDepth (default 512) to stop deeply nested markup from building trees that overflow the stack
  • Added focusing of elements with a tabindex and blurring of any focused element
  • Added DoClickAsync to await a click's navigation or form submission
  • Added toggling the parent <details> when clicking its <summary>
  • Added declarative shadow DOM: the parser attaches <template shadowrootmode="open"> (or closed) as the shadow root of its parent
  • Added :host(<compound>), and selectors in a shadow tree reaching its host (only through :host)
  • Released 1.8.6 by @FlorianRappl in #1391

New Contributors

Full Changelog: v1.8.5...v1.8.6

1.8.5

Choose a tag to compare

@FlorianRappl FlorianRappl released this 15 Oct 14:05
4994f0a

Released on Thursday, October 15 2026

What's Changed

Full Changelog: v1.8.4...v1.8.5

1.8.4

Choose a tag to compare

@FlorianRappl FlorianRappl released this 07 Oct 21:16
32981de

Released on Wednesday, October 7 2026

What's Changed

New Contributors

Full Changelog: v1.8.3...v1.8.4

1.8.3

Choose a tag to compare

@FlorianRappl FlorianRappl released this 30 Sep 21:51
e1b55c5

Released on Wednesday, September 30 2026

What's Changed

New Contributors

Full Changelog: v1.8.2...v1.8.3

1.8.2

Choose a tag to compare

@FlorianRappl FlorianRappl released this 19 Sep 11:34
35b26db

Released on Friday, September 18 2026

What's Changed

  • Improved attribute selector serialization to write only the case-sensitivity modifier that was specified (#1351)
  • Improved id/name lookup on collections (document.forms["x"], form.elements["x"], ...) to enumerate the underlying sequence once instead of twice
  • Improved performance of form.elements / fieldset.elements by walking the tree directly (#1350)
  • Improved GetElementsByTagName / GetElementsByClassName traversal to stop double-scanning each element's children
  • Improved selector specificity (Selectors.Specificity, ComplexSelector.Specificity) to be computed once instead of recomputed on every read
  • Improved ListSelector.GetMatchingSelector to sort its selectors once instead of on every call
  • Improved performance of HTML tree construction by keeping mutation logic out of it (#1347)
  • Improved performance of DOM mutations by building a mutation record only when an observer will consume it (#1347)
  • Improved performance of parser attribute duplication check
  • Fixed Document.Forms allocating a new collection instance per read, contradicting its own [DomSameObject] contract
  • Fixed classList and the other reflected token lists writing their content attribute without running the attribute change steps or queueing a mutation record
  • Fixed clearing a reflected boolean attribute such as disabled removing it without running the attribute change steps or queueing a mutation record
  • Fixed vulnerability via SVG style serialization (GHSA-cgp3-27rh-pcp2)
  • Fixed a StackOverflowException when parsing a document with deeply nested unclosed <template> elements
  • Added Document.MutationVersion, a synchronous counter of DOM mutations that a parse leaves unchanged (#1344, #1347)
  • Released 1.8.2 by @FlorianRappl in #1353

New Contributors

Full Changelog: v1.8.1...v1.8.2

1.8.1

Choose a tag to compare

@FlorianRappl FlorianRappl released this 10 Sep 10:59
bbd0ad7

Released on Thursday, September 10 2026

What's Changed

  • Updated DoFocus and DoBlur to apply to form elements
  • Improved explicit form ownership to take precedence over ancestor forms for connected controls (#1323) @sebastienros
  • Fixed HTML hyperlink pseudo-classes omitting empty href and matching link elements (#1337) @sebastienros
  • Fixed HTML-namespace element creation losing local-name case (#1327) @sebastienros
  • Fixed :enabled incorrectly matching HTML links with nonempty href (#1324) @sebastienros
  • Fixed changing focus of elements
  • Released 1.8.1 by @FlorianRappl in #1343

New Contributors

Full Changelog: v1.8.0...v1.8.1

1.8.0

Choose a tag to compare

@FlorianRappl FlorianRappl released this 05 Sep 20:32
abc5527

Released on Saturday, September 5 2026

What's Changed

  • Improved AngleSharp's test website
  • Fixed script data escaped state potentially not bouncing back correctly
  • Added the DomSameObject annotation for the respective IDL members (#1314) @lahma
  • Added the DomReturnType annotation for methods returning a different IDL type (#1318)
  • Released 1.8.0 by @FlorianRappl in #1317

Full Changelog: v1.7.3...v1.8.0

1.7.3

Choose a tag to compare

@FlorianRappl FlorianRappl released this 03 Sep 07:05
0e6979a

Released on Thursday, September 3 2026

What's Changed

  • Improved tracking of parse exceptions in the HtmlParser (#1315) @lahma
  • Fixed tokenizer buffer overrun on encoding change (#1290) @jafin
  • Fixed selector text dropping the nth-child of clause (#1292) @jafin
  • Fixed selector text dropping the case-insensitive (#1291) @jafin
  • Fixed selector specificity carrying between fields instead of saturating (#1300) @meziantou
  • Fixed condition check for disposed state in ReturnToPool (#1296) @meziantou
  • Fixed ArgumentOutOfRangeException CSS escapes (#1299) @meziantou
  • Fixed whitespace around An+B CSS selector notations (#1297)
  • Fixed unsupported pseudo-classes matching everything (#1295)
  • Fixed DomException for invalid foreign attribute names such as xml:lang[ (#1294)
  • Fixed script data escaped state leaving escaped mode too early (#1298)
  • Fixed CurrentScript not indicating the currently executing script (#1308) @lahma
  • Fixed returned missing attribute-properties to use empty string instead of null (#1313) @lahma
  • Fixed removal of data-* attributes (#1310) @lahma
  • Added missing DomName/DomAccessor annotations (#1301) @meziantou
  • Added missing DomLiterals attribute to AdjacentPosition (#1311) @lahma
  • Released 1.7.3 by @FlorianRappl in #1302

Full Changelog: v1.7.2...v1.7.3

1.7.2

Choose a tag to compare

@FlorianRappl FlorianRappl released this 23 Aug 22:27

Released on Sunday, August 23 2026

What's Changed

  • Fixed matching of annotation-xml encoding to be case-insensitive (#1284) @arpitjain099
  • Fixed <xmp> usage in <select> elements
  • Added ability to parse immutable byte buffers without a stream (#1286) @dv00d00
  • Released 1.7.2 by @FlorianRappl in #1288

New Contributors

Full Changelog: 1.7.1...v1.7.2

1.7.1

Choose a tag to compare

@FlorianRappl FlorianRappl released this 05 Aug 20:31
fbfd8db

Released on Wednesday, August 5 2026

  • Migrated the build system from NUKE to Fallout by @jafin in #1275
  • Improved WHATWG Url specification (#802) @jafin
  • Improved tokenizer read performance (#1274) @dv00d00
  • Fixed auxiliary browsing context lifetime (#1278) @jafin
  • Fixed duplicated DomName attributes on DOM geometry
  • Fixed document.open() destroying the DOM tree in case of encoding problems (#1276)
  • Fixed source references having wrong line (#1280)
  • Released 1.7.1 by @FlorianRappl in #1281

Full Changelog: 1.7.0...v1.7.1