mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 09:45:06 +02:00
With apply_to() now self-contained (carrying its own replacement DocumentState rather than reading from the live entry), the clone at the traversal call site is no longer needed. The clone previously served two purposes: 1. Input snapshot: freeze entry fields before deferred population. Now solved by changing populate_session_history_entry_document() to take explicit input parameters, snapshotted before the deferred_invoke. 2. Output isolation: absorb apply_to() and post-population adjustments without mutating the live entry during unload. Now solved by storing the PopulateSessionHistoryEntryDocumentOutput on the continuation state and deferring all mutations (including the origin-based classic_history_api_state reset and navigable_target_name clear) to after_potential_unload. The post-population adjustments run unconditionally in after_potential_unload, covering both the population path and the non-population path (e.g. traversal to an already-populated error entry).
81 KiB
81 KiB