Skip to content

Commit

Permalink
Fix window.frameElement to return an actual element
Browse files Browse the repository at this point in the history
Closes #2271.
  • Loading branch information
domenic committed Aug 18, 2018
1 parent 760e36c commit 0c4deec
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 2 deletions.
2 changes: 1 addition & 1 deletion lib/jsdom/browser/Window.js
Expand Up @@ -181,7 +181,7 @@ function Window(options) {
return window._globalProxy;
},
get frameElement() {
return window._frameElement;
return idlUtils.wrapperForImpl(window._frameElement);
},
get frames() {
return window._globalProxy;
Expand Down
2 changes: 1 addition & 1 deletion test/web-platform-tests/to-run.yaml
Expand Up @@ -346,7 +346,7 @@ auxiliary-browsing-contexts/opener-setter.window.html: [fail, Not implemented]
auxiliary-browsing-contexts/opener.html: [timeout, Unknown]
browsing-context-names/**: [timeout, Not implemented]
browsing-context.html: [fail, Unknown]
nested-browsing-contexts/frameElement.sub.html: [timeout, Unknown]
nested-browsing-contexts/frameElement.sub.html: [timeout, Nested browsing contexts for embed/object; cross-origin handling; MessageEvent' source...]
nested-browsing-contexts/window-parent-null.html: [fail, Unknown]
nested-browsing-contexts/window-top-null.html: [fail, Unknown]
noreferrer-null-opener.html: [timeout, Unknown]
Expand Down
@@ -0,0 +1,32 @@
<!-- Based on https://github.com/web-platform-tests/wpt/blob/203c34855f6871d6e55eaf7b55b50dad563f781f/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>HTML Test: window.frameElement</title>
<link rel="author" title="Intel" href="http://www.intel.com/" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<!-- t1 (same-origin)-->
<iframe id="iframe_0"></iframe>
<iframe id="iframe_1" src="./resources/frameElement-nested-frame.html"></iframe>

<script>
test(function() {
assert_equals(window.frameElement, null,
"The frameElement attribute should be null.");
}, "The window's frameElement attribute must return null if it is not a nested browsing context");

var t1 = async_test("The window's frameElement attribute must return its container element if it is a nested browsing context");
window.addEventListener("load", t1.step_func_done(function() {
assert_equals(frames[0].frameElement, document.getElementById("iframe_0"),
"The frameElement attribute should be the first iframe element.");
assert_equals(document.getElementById("iframe_1").contentWindow[0].frameElement,
document.getElementById("iframe_1").contentDocument.getElementById("f1"),
"The frameElement attribute should be the frame element in 'resources/frameElement-nested-frame.html'.");
}));
</script>
</body>
</html>
@@ -0,0 +1,7 @@
<!DOCTYPE html>
<meta charset="utf-8"/>
<title>HTML Test: child browsing context created by the frame element</title>
<link rel="author" title="Intel" href="http://www.intel.com/" />
<frameset>
<frame id="f1" name="frame">
</frameset>

0 comments on commit 0c4deec

Please sign in to comment.