<html>
<script>
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }
    if (window.internals)
        internals.setAlwaysAllowLocalWebarchive(true);
    onload = function() {
        frame = document.createElement("iframe");
        frame.src = "resources/mainresource-null-mimetype.webarchive";
        frame.onload = function() {
            if (window.testRunner)
                testRunner.notifyDone();
        }
        document.body.appendChild(frame);
    }
</script>
</html>
