mirror of
https://github.com/SerenityOS/serenity.git
synced 2026-11-07 04:29:30 -10: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. (cherry picked from commit ac48222ed7b497b13343ec79a234ba432ffd29e2)
This commit is contained in:
1 parent
999f7c5eb5
commit
0897967771
1 file changed
+4
@@ -680,6 +680,10 @@ TraversableNavigable::HistoryStepResult TraversableNavigable::apply_the_history_
|
||||
if (navigable->has_been_destroyed())
|
||||
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.
|
||||
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;
|
||||
|
||||
Reference in new issue
Block a user