diff options
author | Martin Robinson <mrobinson@igalia.com> | 2025-04-04 19:06:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-04 17:06:34 +0000 |
commit | fb344ba4e9ace1a2ebe09f0fb7c56be1e8ee4720 (patch) | |
tree | f7b85aa0dd1276bd72c4a211a3443b2ee07f76e2 /components/script/dom/element.rs | |
parent | 7c89e24f344fcef5ab858ff752cdd22624b8d66b (diff) | |
download | servo-fb344ba4e9ace1a2ebe09f0fb7c56be1e8ee4720.tar.gz servo-fb344ba4e9ace1a2ebe09f0fb7c56be1e8ee4720.zip |
constellation: Stop assuming that the viewport is shared by all WebViews (#36312)
The `Constellation` previously held a `window_size` member, but this
assumes that all `WebView`s have the same size. This change removes that
assumption as well as making sure that all `WebView`s pass their size
and HiDIP scaling to the `Constellation` when they are created.
In addition
- `WindowSizeData` is renamed to `ViewportDetails`, as it was
holding more than just the size and it didn't necessarily correspond to
a "window." It's used for tracking viewport data, whether for an
`<iframe>` or the main `WebView` viewport.
- `ViewportDetails` is stored more consistently so that conceptually an
`<iframe>` can also have its own HiDPI scaling. This isn't something
we necessarily want, but it makes everything conceptually simpler.
The goal with this change is to work toward allowing per-`WebView` HiDPI
scaling and sizing. There are still some corresponding changes in the
compositor to make that happen, but they will in a subsequent change.
Testing: This is covered by existing tests. There should be no behavior
changes.
Fixes: This is part of #36232.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r-- | components/script/dom/element.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index db0b4c63c5f..8193c99c896 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -4344,7 +4344,7 @@ impl Element { if (in_quirks_mode && doc.GetBody().as_deref() == self.downcast::<HTMLElement>()) || (!in_quirks_mode && *self.root_element() == *self) { - let viewport_dimensions = doc.window().window_size().initial_viewport.round().to_i32(); + let viewport_dimensions = doc.window().viewport_details().size.round().to_i32(); rect.size = Size2D::<i32>::new(viewport_dimensions.width, viewport_dimensions.height); } |