From 994d767ae51d95457e36169aa38702a1bed8a7e5 Mon Sep 17 00:00:00 2001 From: Oriol Brufau Date: Fri, 19 Sep 2025 21:38:12 +0200 Subject: [PATCH] script: Return `None` for `offsetParent` on root `` and all `` elements (#39397) We were returning null for all `` elements, but now we will check for the root element instead. We were also returning null for "the body element", now we will return null for all `` elements even if they aren't "the body element". This part diverges from the spec, but matches what all browsers do. https://github.com/w3c/csswg-drafts/issues/12834 Testing: Adding new test Fixes: #10521 Signed-off-by: Oriol Brufau Co-authored-by: Martin Robinson --- components/script/dom/html/htmlelement.rs | 2 +- tests/wpt/meta/MANIFEST.json | 7 +++ .../offsetParent-body-and-html.html | 47 +++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 tests/wpt/tests/css/cssom-view/offsetParent-body-and-html.html diff --git a/components/script/dom/html/htmlelement.rs b/components/script/dom/html/htmlelement.rs index 67cee0543e2..90196897106 100644 --- a/components/script/dom/html/htmlelement.rs +++ b/components/script/dom/html/htmlelement.rs @@ -462,7 +462,7 @@ impl HTMLElementMethods for HTMLElement { /// fn GetOffsetParent(&self) -> Option> { - if self.is_body_element() || self.is::() { + if self.is::() || self.upcast::().is_root() { return None; } diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 6416fd04c6d..e65ff27179f 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -631326,6 +631326,13 @@ {} ] ], + "offsetParent-body-and-html.html": [ + "ed83b317088c01e6ff23025b12f20a0144f897ed", + [ + null, + {} + ] + ], "offsetParent-fixed.html": [ "a2c4255a77729066fedc1ba21101cb123a396380", [ diff --git a/tests/wpt/tests/css/cssom-view/offsetParent-body-and-html.html b/tests/wpt/tests/css/cssom-view/offsetParent-body-and-html.html new file mode 100644 index 00000000000..ed83b317088 --- /dev/null +++ b/tests/wpt/tests/css/cssom-view/offsetParent-body-and-html.html @@ -0,0 +1,47 @@ + + +CSSOM View: offsetParent + + + + + + + + + + +