script: Generate only a single frame during "update the rendering" (#38858)

Instead of generating a frame for every display list, which might be one
rendered frame per `<iframe>`, generate only a single frame per call to
"update the rendering." This should make rendering more efficient when
there are `<iframe>`s present and also open up optimizations for
non-display list frames.

Testing: This could potentially reduce flashing of content during
rendering
updates, but that is very difficult to test.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Martin Robinson 2025-08-26 09:09:10 -07:00 committed by GitHub
parent 4f68508624
commit e7a963cca0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 40 additions and 10 deletions

View file

@ -441,6 +441,15 @@ bitflags! {
const BuiltStackingContextTree = 1 << 2;
const BuiltDisplayList = 1 << 3;
const UpdatedScrollNodeOffset = 1 << 4;
const UpdatedCanvasContents = 1 << 5;
}
}
impl ReflowPhasesRun {
pub fn needs_frame(&self) -> bool {
self.intersects(
Self::BuiltDisplayList | Self::UpdatedScrollNodeOffset | Self::UpdatedCanvasContents,
)
}
}