diff --git a/components/script/dom/webidls/Window.webidl b/components/script/dom/webidls/Window.webidl index d9a87650413..60cc45f5161 100644 --- a/components/script/dom/webidls/Window.webidl +++ b/components/script/dom/webidls/Window.webidl @@ -33,6 +33,7 @@ readonly attribute Window frames; //[Replaceable] readonly attribute unsigned long length; //[Unforgeable] readonly attribute WindowProxy top; + readonly attribute Window top; // attribute any opener; //readonly attribute WindowProxy parent; readonly attribute Window parent; diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index be9a3ccc5df..b781d7e19a1 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -442,6 +442,15 @@ impl<'a> WindowMethods for &'a Window { self.parent().unwrap_or(self.Window()) } + // https://html.spec.whatwg.org/multipage/#dom-top + fn Top(self) -> Root { + let mut window = self.Window(); + while let Some(parent) = window.parent() { + window = parent; + } + window + } + fn Performance(self) -> Root { self.performance.or_init(|| { Performance::new(self, self.navigation_start, diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/034.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/034.html.ini deleted file mode 100644 index b1b921d5860..00000000000 --- a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/034.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[034.html] - type: testharness - [ scheduler: innerHTML adding frames with JS in] - expected: FAIL - diff --git a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/039.html.ini b/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/039.html.ini deleted file mode 100644 index 3fdc17dfa9c..00000000000 --- a/tests/wpt/metadata/old-tests/submission/Opera/script_scheduling/039.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[039.html] - type: testharness - [ scheduler: IFRAMEs added with DOM] - expected: FAIL -