| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| <script> |
| "use strict"; |
| |
| description('Check that we properly handle nested document loads during unload events. Passes if we do not debug assert.'); |
| |
| window.jsTestIsAsync = true; |
| |
| function finishTest() { |
| testPassed('Load succeeded.'); |
| finishJSTest(); |
| } |
| |
| function runTest() { |
| let topFrame = document.documentElement.appendChild(document.createElement("iframe")); |
| topFrame.id = 'topFrame'; |
| |
| let aFrame = topFrame.contentDocument.documentElement.appendChild(document.createElement("iframe")); |
| aFrame.id = 'aFrame'; |
| |
| aFrame.contentWindow.onunload = () => { |
| topFrame.src = "javascript:''"; |
| |
| let bFrame = topFrame.contentDocument.appendChild(document.createElement("iframe")); |
| bFrame.id = 'bFrame'; |
| |
| bFrame.contentWindow.onunload = () => { |
| topFrame.src = "javascript:''"; |
| |
| let doc = topFrame.contentDocument; |
| |
| topFrame.onload = () => { |
| topFrame.onload = () => { |
| topFrame.onload = null; |
| let s = doc.createElement("form"); |
| s.action = "javascript:alert(location)"; |
| s.submit(); |
| }; |
| |
| topFrame.src = "resources/subframe-success.html"; |
| }; |
| |
| }; |
| }; |
| |
| topFrame.src = "javascript:''"; |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| </body> |
| </html> |