<!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true ] -->
<html>
<head>
<meta name="viewport" content="width=device-width">
<script src="../../../resources/ui-helper.js"></script>
<script>
if (window.testRunner) {
  testRunner.dumpAsText();
  testRunner.setShouldLogDownloadCallbacks(true);
  testRunner.waitUntilDownloadFinished();
  testRunner.setShouldDownloadUndisplayableMIMETypes(true);
}
</script>
</head>
<body>
<p>The download should succeed.</p>
<a id="blob-url">File backed blob URL</a>
<script>
function click(elmt)
{
    if (!window.eventSender) {
        alert('Click the link to run the test.');
        return;
    }
    UIHelper.activateAt(elmt.offsetLeft + 5, elmt.offsetTop + 5);
}

function runTest()
{
    file = internals.createFile("../../../resources/Ahem.otf");
    var link = document.getElementById("blob-url");
    link.href = window.URL.createObjectURL(file);
    click(link);
}
runTest();
</script>
</body>
</html>
