mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-21 07:29:53 +00:00
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:
parent
18cf540bfb
commit
17e5289524
Notes:
github-actions[bot]
2025-09-09 08:26:40 +00:00
Author: https://github.com/Psychpsyo
Commit: 17e5289524
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6135
Reviewed-by: https://github.com/gmta ✅
7 changed files with 412 additions and 8 deletions
|
@ -232,7 +232,7 @@ ErrorOr<void> ViewTransition::capture_the_old_state()
|
|||
return Error::from_string_literal("The snapshot containing block is too large.");
|
||||
|
||||
// 6. Set transition’s initial snapshot containing block size to the snapshot containing block size.
|
||||
m_initial_snapshot_containing_block_size = CSSPixelSize { snapshot_containing_block.width().raw_value(), snapshot_containing_block.height().raw_value() };
|
||||
m_initial_snapshot_containing_block_size = snapshot_containing_block.size();
|
||||
|
||||
// 7. For each element of every element that is connected, and has a node document equal to document, in paint
|
||||
// order:
|
||||
|
@ -856,8 +856,8 @@ ErrorOr<void> ViewTransition::update_pseudo_element_styles()
|
|||
// 1. Return failure if any of the following conditions is true:
|
||||
|
||||
// - capturedElement’s new element has a flat tree ancestor that skips its contents.
|
||||
for (auto* ancestor = captured_element->new_element->parent(); ancestor; ancestor = ancestor->parent()) {
|
||||
if (as<DOM::Element>(*ancestor).skips_its_contents())
|
||||
for (auto ancestor = captured_element->new_element->parent_element(); ancestor; ancestor = ancestor->parent_element()) {
|
||||
if (ancestor->skips_its_contents())
|
||||
return Error::from_string_literal("capturedElement’s new element has a flat tree ancestor that skips its contents.");
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue