<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}
if (window.internals)
    internals.setAlwaysAllowLocalWebarchive(true);
window.location="resources/video-in-webarchive.webarchive";
</script>
