<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.dumpChildFramesAsText();
    testRunner.waitUntilDone();
}

doneCount = 0;

window.addEventListener('message', function(evt) {
    if (evt.data == 'done') {
        ++doneCount;

        if (doneCount > 1) {
            if (window.testRunner)
                testRunner.notifyDone();
            return;
        }

        var iframe = document.createElement('iframe');
        iframe.src = "http://127.0.0.1:8080/security/resources/canvas-cors-subtest.html";
        document.body.appendChild(iframe);
    }
});
</script>
<iframe src="http://127.0.0.1:8000/security/resources/canvas-cors-subtest.html"></iframe>
