Skip to content

Commit

Permalink
HTML: compare window sizing for noopener/noreferrer
Browse files Browse the repository at this point in the history
  • Loading branch information
annevk authored and Marcos Cáceres committed Jul 23, 2019
1 parent 38af51b commit 15003c2
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const windowProps = ["innerWidth", "innerHeight"];

["noopener", "noreferrer"].forEach(openerStyle => {
async_test(t => {
const channelName = "34342" + openerStyle + "8907";
const channel = new BroadcastChannel(channelName);
window.open("support/sizing-target.html?" + channelName, "", openerStyle);
channel.onmessage = t.step_func_done(e => {
// Send message first so if asserts throw the popup is still closed
channel.postMessage(null);

for(const prop of windowProps) {
assert_equals(window[prop], e.data[prop]);
}
});
}, `window.open() with ${openerStyle} should have equal viewport width and height`);
});
17 changes: 17 additions & 0 deletions html/browsers/the-window-object/support/sizing-target.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<!DOCTYPE html>
<script>
const windowProps = ["innerWidth", "innerHeight"];
const windowPropsObj = {};
const channelName = location.search.substr(1);
const channel = new BroadcastChannel(channelName);
for (const prop of windowProps) {
windowPropsObj[prop] = window[prop];
}
channel.postMessage(windowPropsObj);

// Because messages are not delivered synchronously and because closing a
// browsing context prompts the eventual clearing of all task sources, this
// document should not be closed until the opener document has confirmed
// receipt.
channel.onmessage = () => { window.close() };
</script>

0 comments on commit 15003c2

Please sign in to comment.