<!doctype html>
<meta charset="utf-8">
<title>Iframe's contentDocument should only change after its pending load has matured.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body></body>
<script>
async_test(function(t) {
    var iframe = document.createElement("iframe");
    document.body.appendChild(iframe);
    var checkedDuringParse = false;
    iframe.onload = t.step_func_done(function() {
        testContentDocument();
        assert_true(checkedDuringParse);
    });

    let url = "support/iframe-that-checks-contentDocument.html";
    window.testContentDocument = t.step_func(function() {
        assert_true(iframe.contentDocument.location.toString().includes(url));
        checkedDuringParse = true;
    });

    assert_equals(iframe.contentDocument.location.toString(), "about:blank");
    iframe.src = url + "?pipe=trickle(d2)";
    // The location of the contentDocument should not change until the new document has matured.
    assert_equals(iframe.contentDocument.location.toString(), "about:blank");
}, "contentDocument should only change after a load matures.");
</script>
