mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 17:55:07 +02:00
This also fixes a bug in the view transitions code that was required to get the imported test to pass. The code for setting the initial containing block size just did not set the right thing, since doing so would trigger an error later on. That later error resulted from walking up the tree, without considering that the document element has a parent that is not itself an element. (and then doing element things to it)
51 lines
1.3 KiB
HTML
51 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<meta name="timeout" content="long">
|
|
<html>
|
|
<title>View transitions: rAF is not issued while render-blocked</title>
|
|
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
|
|
<link rel="author" href="mailto:khushalsagar@chromium.org">
|
|
|
|
<script src="../../dom/events/scrolling/scroll_support.js"></script>
|
|
<script src="../../resources/testharness.js"></script>
|
|
<script src="../../resources/testharnessreport.js"></script>
|
|
|
|
<style>
|
|
div {
|
|
width: 100px;
|
|
height: 100px;
|
|
background: blue;
|
|
contain: paint;
|
|
view-transition-name: target;
|
|
}
|
|
</style>
|
|
|
|
<div id=target></div>
|
|
|
|
<script>
|
|
let renderBlocked = true;
|
|
|
|
promise_test(async () => {
|
|
assert_implements(document.startViewTransition, "Missing document.startViewTransition");
|
|
await waitForCompositorReady();
|
|
return new Promise(async (resolve, reject) => {
|
|
requestAnimationFrame(() => {
|
|
document.startViewTransition(() => {
|
|
return new Promise(async (inner_resolve) => {
|
|
step_timeout(() => {
|
|
renderBlocked = false;
|
|
inner_resolve();
|
|
}, 1000);
|
|
});
|
|
});
|
|
|
|
requestAnimationFrame(() => {
|
|
if (renderBlocked)
|
|
reject();
|
|
else
|
|
resolve();
|
|
});
|
|
});
|
|
});
|
|
}, "rAF is blocked until prepare callback");
|
|
</script>
|