aboutsummaryrefslogtreecommitdiffstats
path: root/components/shared/script_layout
diff options
context:
space:
mode:
authoreri <epazos@igalia.com>2024-10-29 22:42:22 +0000
committerGitHub <noreply@github.com>2024-10-29 22:42:22 +0000
commit01820e2a8a28bcf3b8e1b17863984d8f729ca79b (patch)
tree99df04833606ca839535daff4b0e75488556a18a /components/shared/script_layout
parent43d1601016e03fe83fe9b8a526357de1d5fc4122 (diff)
downloadservo-01820e2a8a28bcf3b8e1b17863984d8f729ca79b.tar.gz
servo-01820e2a8a28bcf3b8e1b17863984d8f729ca79b.zip
Improve how intrinsic sizes work for videos (#31746)
* feat: patch for video layout sizes added rebase from main 2024/10/05 Co-authored-by: Josh Matthews <josh@joshmatthews.net> Signed-off-by: eri <epazos@igalia.com> * feat: take width and height parameters if provided Signed-off-by: eri <epazos@igalia.com> * chore: tidy the code and update test expectations Signed-off-by: eri <epazos@igalia.com> * feat: handle removing poster Signed-off-by: eri <epazos@igalia.com> * chore: update test expectations and remove debug code Signed-off-by: eri <epazos@igalia.com> * fix: issues after rebasing to main Signed-off-by: eri <epazos@igalia.com> * feat: pass src remove test and tidy Signed-off-by: eri <epazos@igalia.com> * chore: clippy fixes Signed-off-by: eri <epazos@igalia.com> * chore: update passing test expectations Signed-off-by: eri <epazos@igalia.com> * fix object-position-svg test Signed-off-by: eri <epazos@igalia.com> * fix unintentional override of video size and resize events Signed-off-by: eri <epazos@igalia.com> * change how resize events are sent to better match the spec Signed-off-by: eri <epazos@igalia.com> * simplify poster mutation handling Co-authored-by: Oriol Brufau <obrufau@igalia.com> Signed-off-by: eri <eri@inventati.org> * improved handling of intrinsic sizes - differentiate between natural size and css size - presentational attributes - fallback ratio for video element - handle more cases where the src/poster are added/removed - aspect ratio hints Signed-off-by: eri <epazos@igalia.com> * update test expectations Signed-off-by: eri <epazos@igalia.com> * fix cleaning current frame Signed-off-by: eri <epazos@igalia.com> * update test expectations Signed-off-by: eri <epazos@igalia.com> * Apply suggestions from code review Co-authored-by: Oriol Brufau <obrufau@igalia.com> Signed-off-by: eri <eri@inventati.org> * More code review suggestions Signed-off-by: eri <epazos@igalia.com> * Prevent aspect-ratio:auto from pulling the ratio from the default object size As resolved in https://github.com/w3c/csswg-drafts/issues/7524#issuecomment-1204462924 Signed-off-by: Oriol Brufau <obrufau@igalia.com> --------- Signed-off-by: eri <epazos@igalia.com> Signed-off-by: eri <eri@inventati.org> Signed-off-by: Oriol Brufau <obrufau@igalia.com> Co-authored-by: Josh Matthews <josh@joshmatthews.net> Co-authored-by: Oriol Brufau <obrufau@igalia.com>
Diffstat (limited to 'components/shared/script_layout')
-rw-r--r--components/shared/script_layout/lib.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/components/shared/script_layout/lib.rs b/components/shared/script_layout/lib.rs
index 228fd03556e..6963c98acc0 100644
--- a/components/shared/script_layout/lib.rs
+++ b/components/shared/script_layout/lib.rs
@@ -163,8 +163,21 @@ pub struct PendingImage {
pub origin: ImmutableOrigin,
}
+#[derive(Clone, Copy, Debug)]
+pub struct MediaFrame {
+ pub image_key: webrender_api::ImageKey,
+ pub width: i32,
+ pub height: i32,
+}
+
+pub struct MediaMetadata {
+ pub width: u32,
+ pub height: u32,
+}
+
pub struct HTMLMediaData {
- pub current_frame: Option<(ImageKey, i32, i32)>,
+ pub current_frame: Option<MediaFrame>,
+ pub metadata: Option<MediaMetadata>,
}
pub struct LayoutConfig {