Skip to content

build: Bump AngleSharp from 1.8.5 to 1.9.0 - #473

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/AngleSharp-1.9.0
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/AngleSharp-1.9.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 31, 2026

Copy link
Copy Markdown
Contributor

Updated AngleSharp from 1.8.5 to 1.9.0.

Release notes

Sourced from AngleSharp's releases.

1.9.0

Released on Friday, October 30 2026.

What's Changed

  • Improved performance of TextContent, :contains(), GetElementById, GetElementsByName, GetElementsByClassName, GetElementsByTagName and Normalize, which also continue with an explicit stack below 128 levels instead of recursing (#​1389) @​michaelthyregod
  • Improved performance of IHtmlParser.ParseFragment and of inserting many nodes at once (Append, Prepend, ...): finding a template's host no longer scans the whole document, and removing a node's last child no longer scans its siblings
  • Improved performance of removing or inserting a node's first child, which no longer shifts all its siblings, so moving every child of a large node one by one (or replacing it via innerHTML) takes linear time; each node with children also allocates one object less
  • Improved quadratic parse time on hostile markup: elements and text foster-parented out of a table, a text run split by ignored end tags (x</q>x</q>...), and repeated html / body start tags piling up attributes; attribute name lookups on elements with many attributes no longer scan them
  • Improved performance of :has(): relative arguments only walk what they can reach (:has(> a) the descendants, :has(+ a) / :has(~ a) the following siblings) instead of the parent's whole subtree, the walk no longer allocates, and a :has() is tested after the rest of its compound and its ancestor chain, so rules such as .tree :has(.skeleton):hover only walk subtrees of hovered elements inside .tree
  • Fixed setInterval with a delay of 0 never yielding: every round completed synchronously and queued tasks until memory ran out; a negative delay of setTimeout or setInterval threw instead of counting as 0 (nested intervals now wait at least 4ms, as in browsers)
  • Fixed fragment parsing (ParseFragment, innerHTML) to break out of svg / math on HTML start tags such as p, b or div, which previously stayed foreign elements
  • Fixed CreateElement<TElement>() depending on reflection that trimming can break; IElement, IHtmlElement and ISvgElement now throw instead of returning an arbitrary element @​michaelthyregod
  • Fixed IHtmlParser.ParseFragment to keep an SVG or MathML context element in its namespace (and an annotation-xml context's encoding), instead of parsing as if the context were an HTML element of the same name, and to find a form ancestor of the context, so a nested <form> start tag is ignored as with innerHTML
  • Fixed inserting a detached template into its own contents not throwing a HierarchyRequestError
  • Fixed AwaitEventAsync removing its listener off-thread while a dispatch was still running (#​1397) @​michaelthyregod
  • Fixed event listener registration racing a dispatch on another thread @​michaelthyregod
  • Fixed IHtmlSelectElement.SelectedIndex gaining a setter; set Options.SelectedIndex to change the selection (#​1395) @​SimonCropp
  • Added AwaitEventAsync overload taking a CancellationToken @​michaelthyregod
  • Added trimming and Native AOT compatibility (IsAotCompatible) for the .NET 8 and .NET 10 targets (#​1398) @​michaelthyregod
  • Added trim-safe generic overloads of SubmitAsync, Attr, VirtualResponse.Headers and ToDictionary, which calls with an anonymous object bind to when recompiled; the Object overloads are now obsolete @​michaelthyregod
  • Released 1.9.0 by @​FlorianRappl in Release 1.9.0 AngleSharp/AngleSharp#1399

New Contributors

Full Changelog: AngleSharp/AngleSharp@v1.8.6...v1.9.0

1.8.6

Released on Sunday, October 25 2026

What's Changed

  • Removed temporary copies when serializing text that needs no HTML escaping @​perfloop-agent in Avoid rebuilding unescaped text during HTML serialization AngleSharp/AngleSharp#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 Decode URLSearchParams as UTF-8 and treat + as a space AngleSharp/AngleSharp#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 Release 1.8.6 AngleSharp/AngleSharp#1391

New Contributors

Full Changelog: AngleSharp/AngleSharp@v1.8.5...v1.8.6

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: AngleSharp
  dependency-version: 1.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Oct 31, 2026
@github-actions

github-actions Bot commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

🤖 Dependabot triage

🧑 Needs a human — infra-secret.

The auto-merge workflow fails because it calls gh pr merge --auto --merge, but this repository does not allow merge commits (only squash/rebase are permitted), causing a GraphQL error unrelated to the dependency bump itself. This is a repository/workflow configuration issue, not something fixable by editing the dependency version or product code.

No dependency version was changed. See doc/handwritten/for-maintainers/workflows/dependabot-autofix.en.md.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants