mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-03-22 21:37:22 +00:00
LibWeb: Use the global object to access the performance object
Previously, we were accessing the performance through the current window object. Thus caused a crash when `animate()` was called on an element within a document with no associated window object. The global object is now used to access the performance object in places where a window object is not guaranteed to exist.
This commit is contained in:
committed by
Andreas Kling
parent
eebdc7bc88
commit
558fef237c
@@ -0,0 +1 @@
|
||||
PASS (didn't crash)
|
||||
@@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<script src="../../include.js"></script>
|
||||
<script>
|
||||
test(() => {
|
||||
const divElement = document.createElement("div");
|
||||
const newDocument = document.implementation.createDocument("http://www.w3.org/1999/xhtml", "html");
|
||||
newDocument.documentElement.appendChild(divElement)
|
||||
animation = divElement.animate({}, {});
|
||||
println("PASS (didn't crash)");
|
||||
});
|
||||
</script>
|
||||
@@ -4185,8 +4185,9 @@ void Document::ensure_animation_timer()
|
||||
m_animation_driver_timer->stop();
|
||||
return;
|
||||
}
|
||||
|
||||
update_animations_and_send_events(window()->performance()->now());
|
||||
auto* window_or_worker = dynamic_cast<HTML::WindowOrWorkerGlobalScopeMixin*>(&realm().global_object());
|
||||
VERIFY(window_or_worker);
|
||||
update_animations_and_send_events(window_or_worker->performance()->now());
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user