LibWeb: Recompute targetStep once more in "apply the history step"

This is an ad-hoc change to account for the fact that we may run
arbitrary code while waiting for the tasks in this function to complete.

Same exact idea as ac48222ed7, once again.
This commit is contained in:
Andreas Kling 2024-11-03 11:22:22 +01:00 committed by Andreas Kling
parent b82e34ed00
commit 102cf345ba
Notes: github-actions[bot] 2024-11-03 16:52:40 +00:00

View file

@ -798,6 +798,10 @@ TraversableNavigable::HistoryStepResult TraversableNavigable::apply_the_history_
// 16. Let completedNonchangingJobs be 0.
IGNORE_USE_IN_ESCAPING_LAMBDA auto completed_non_changing_jobs = 0u;
// AD-HOC: We re-compute targetStep here, since it might have changed since the last time we computed it.
// This can happen if navigables are destroyed while we wait for tasks to complete.
target_step = get_the_used_step(step);
// 17. Let (scriptHistoryLength, scriptHistoryIndex) be the result of getting the history object length and index given traversable and targetStep.
auto length_and_index = get_the_history_object_length_and_index(target_step);
IGNORE_USE_IN_ESCAPING_LAMBDA auto script_history_length = length_and_index.script_history_length;