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
+
+
+
+
+
+
+
+
+
+
+