mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-10 01:59:31 +00:00
LibWeb: Recompute targetStep during "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. I don't have a way to reproduce it, but I've seen trouble caused by navigables disappearing, which causes the history step numbers to be disturbed.
This commit is contained in:
parent
3ff6137121
commit
ac48222ed7
Notes:
github-actions[bot]
2024-10-14 05:48:20 +00:00
Author: https://github.com/awesomekling
Commit: ac48222ed7
1 changed files with 4 additions and 0 deletions
|
@ -704,6 +704,10 @@ TraversableNavigable::HistoryStepResult TraversableNavigable::apply_the_history_
|
||||||
if (navigable->has_been_destroyed())
|
if (navigable->has_been_destroyed())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
|
||||||
// 7. Let (scriptHistoryLength, scriptHistoryIndex) be the result of getting the history object length and index given traversable and targetStep.
|
// 7. Let (scriptHistoryLength, scriptHistoryIndex) be the result of getting the history object length and index given traversable and targetStep.
|
||||||
auto history_object_length_and_index = get_the_history_object_length_and_index(target_step);
|
auto history_object_length_and_index = get_the_history_object_length_and_index(target_step);
|
||||||
auto script_history_length = history_object_length_and_index.script_history_length;
|
auto script_history_length = history_object_length_and_index.script_history_length;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue