LibWeb: Suppress rendering due to view transitions

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)
This commit is contained in:
Psychpsyo 2025-09-09 09:45:52 +02:00 committed by Jelle Raaijmakers
commit 17e5289524
Notes: github-actions[bot] 2025-09-09 08:26:40 +00:00
7 changed files with 412 additions and 8 deletions

View file

@ -2456,11 +2456,9 @@ bool Navigable::has_a_rendering_opportunity() const
// accounting for hardware refresh rate constraints and user agent throttling for performance reasons,
// but considering content presentable even if it's outside the viewport.
// A navigable has no rendering opportunities if its active document is render-blocked
// or if it is suppressed for view transitions;
// otherwise, rendering opportunities are determined based on hardware constraints
// A navigable's rendering opportunities are determined based on hardware constraints
// such as display refresh rates and other factors such as page performance
// or whether the document's visibility state is "visible".
// or whether its active document's visibility state is "visible".
// Rendering opportunities typically occur at regular intervals.
// FIXME: Return `false` here if we're an inactive browser tab.