<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test.js"></script>
<script>
description("Checks that setting an iframe's src attribute to a javascript URL runs the javascript asynchronously");
jsTestIsAsync = true;

let messages = "";
const expectedMessageCount = 3;
function log(msg)
{
    messages += msg;
    if (messages.length == expectedMessageCount) {
        shouldBeEqualToString("messages", "123");
        shouldBe("frame1.contentWindow", "initialFrame1Window");
        shouldBe("frame1.contentDocument", "initialFrame1Document");
        shouldBe("frame2.contentWindow", "initialFrame2Window");
        // Firefox 66 and Chrome 74 disagree here, we match Chrome.
        shouldNotBe("frame2.contentDocument", "initialFrame2Document");
        setTimeout(() => {
            shouldBe("frame2.contentWindow", "initialFrame2Window");
            shouldNotBe("frame2.contentDocument", "initialFrame2Document");
            shouldBeEqualToString("frame2.contentDocument.documentElement.textContent", "1");
            finishJSTest();
        }), 0;
    }
}
</script>
<iframe id="frame1"></iframe>
<iframe id="frame2" src="javascript:'1'"></iframe>
<script>
frame1 = document.getElementById("frame1");
frame2 = document.getElementById("frame2");
initialFrame1Window = frame1.contentWindow;
initialFrame1Document = frame1.contentDocument;
initialFrame2Window = frame2.contentWindow;
initialFrame2Document = frame2.contentDocument;
log('1');
frame1.src = "javascript:parent.log('3')";
shouldBe("frame1.contentWindow", "initialFrame1Window");
shouldBe("frame1.contentDocument", "initialFrame1Document");
log('2');
</script>
</body>
</html>
