<!DOCTYPE html>
<body>
<script src="../resources/runner.js"></script>
<script>
// Use the threaded parser if available:
if (window.internals && window.internals.settings.setThreadedHTMLParser)
    window.internals.settings.setThreadedHTMLParser(true);

var specURL = "resources/html5.html";

var iframe = document.createElement("iframe");
iframe.style.display = "none";  // Prevent creation of the rendering tree, so we only test HTML parsing.
iframe.sandbox = '';  // Prevent external script loads which could cause write() to return before completing the parse.
document.body.appendChild(iframe);

PerfTestRunner.prepareToMeasureValuesAsync({done: onCompletedRun, unit: 'ms'});

iframe.onload = function() {
    var now = PerfTestRunner.now();
    PerfTestRunner.measureValueAsync(now - then);
    then = now;
    iframe.src = specURL;
}
var then = PerfTestRunner.now();
iframe.src = specURL;

function onCompletedRun() {
    iframe.onload = null;
    // FIXME: This should probably remove the iframe, but that currently
    // causes the threaded-parser to never send the load event for the main page.
    // document.body.removeChild(iframe);
}
</script>
</body>
