| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>document.domain and removed iframe interaction</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <!-- This is a test for https://crbug.com/1095145 where window |
| properties become undefined for document.domain-using removed |
| iframes --> |
| |
| <div id="log"></div> |
| |
| <script> |
| "use strict"; |
| |
| promise_test(t => { |
| return new Promise(resolve => { |
| const iframe = document.createElement("iframe"); |
| iframe.onload = t.step_func(() => { |
| const { contentWindow } = iframe; |
| assert_equals(contentWindow.status, ""); |
| resolve(); |
| }); |
| iframe.src = "/common/blank.html"; |
| document.body.append(iframe); |
| }); |
| }, "No removal, no document.domain"); |
| |
| promise_test(t => { |
| return new Promise(resolve => { |
| const iframe = document.createElement("iframe"); |
| iframe.onload = t.step_func(() => { |
| const { contentWindow } = iframe; |
| iframe.remove(); |
| assert_equals(contentWindow.status, ""); |
| resolve(); |
| }); |
| iframe.src = "/common/blank.html"; |
| document.body.append(iframe); |
| }); |
| }, "Removal, no document.domain"); |
| |
| promise_test(t => { |
| return new Promise(resolve => { |
| const iframe = document.createElement("iframe"); |
| iframe.onload = t.step_func(() => { |
| document.domain = document.domain; |
| const { contentWindow } = iframe; |
| assert_equals(contentWindow.status, ""); |
| resolve(); |
| }); |
| iframe.src = "resources/document-domain-setter.html"; |
| document.body.append(iframe); |
| }); |
| }, "No removal, document.domain"); |
| |
| promise_test(t => { |
| return new Promise(resolve => { |
| const iframe = document.createElement("iframe"); |
| iframe.onload = t.step_func(() => { |
| document.domain = document.domain; // technically we already did this above |
| const { contentWindow } = iframe; |
| iframe.remove(); |
| assert_equals(contentWindow.status, ""); |
| resolve(); |
| }); |
| iframe.src = "resources/document-domain-setter.html"; |
| document.body.append(iframe); |
| }); |
| }, "Removal, document.domain"); |
| |
| </script> |