<html>
<head>
<script src="resources/sw-test-pre.js"></script>
</head>
<body>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.setShouldLogDownloadCallbacks(true);
    testRunner.waitUntilDownloadFinished();
    testRunner.setShouldDownloadUndisplayableMIMETypes(true);
    if (testRunner.setShouldDecideResponsePolicyAfterDelay)
        testRunner.setShouldDecideResponsePolicyAfterDelay(true);
}

async function doTest()
{
    await interceptedFrame("resources/service-worker-download-worker.js", "/workers/service/resources/");
    window.location = "/workers/service/resources/download-binary.php";
}
doTest();
</script>
</body>
</html>
