Files
ladybird/Libraries/LibWeb/HTML
Andreas Kling c9fa971905 LibWeb: Don't strand a fresh navigation behind a sync history step
When a click handler calls history.replaceState and the link's
cross-document activation behavior runs in the same task, the queued
sync step runs apply-the-history-step on the navigable mid-navigation,
transitioning its ongoing navigation through "traversal" and back to
null. That aborts the link's navigate event and bails out its deferred
work, leaving the link nav abandoned.

Skip this transient when the navigable already has a fresh ongoing
navigation. No major engine reproduces the race; long term, sync
same-document nav should bypass the traversal queue entirely (matching
Chromium).

This solves the long-standing issue where clicking on a box of tea
on https://twinings.co.uk/ would freeze the browser. :^)
2026-04-27 17:24:13 +02:00
..
2025-08-23 16:04:36 -06:00
2024-11-25 21:13:53 +01:00
2026-02-18 08:02:45 -05:00
2026-02-11 16:32:20 +00:00
2026-02-11 16:32:20 +00:00