<!DOCTYPE html>
<meta charset="utf-8">
<title>Test the sequence of events when reporting iframe timing.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/resource-loaders.js"></script>
<body>
<script>
    promise_test(async t => {
        const href = new URL('resources/download.asis', location.href);
        const iframe = document.createElement('iframe');
        iframe.src = href;
        const errored = new Promise(resolve => iframe.addEventListener('error', resolve));
        const loaded = new Promise(resolve => iframe.addEventListener('load', resolve));
        document.body.appendChild(iframe);
        const timeout = 2000;
        t.add_cleanup(() => iframe.remove());
        const expired = new Promise(resolve => t.step_timeout(resolve, timeout));
        await Promise.any([loaded, expired, errored]);
        const entries = performance.getEntriesByType('resource').filter(({name}) => name.startsWith(href));
        assert_equals(entries.length, 0);
    }, 'Iframes should not report resource timing for non-handled mime-types (downloads)');
</script>
</body>