blob: 6ade24bd4d85b9ffcb5b49dd6931c3f10cf4c103 [file] [log] [blame]
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Blob and GC</title>
<meta name="help" href="https://fetch.spec.whatwg.org/#request">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../resources/gc.js"></script>
</head>
<body>
<script>
async function createBlobAndGetURL()
{
const blob = new Blob([new ArrayBuffer(1024)]);
const url = internals.blobInternalURL(blob);
assert_true(await internals.isBlobInternalURLRegistered(url));
return url;
}
promise_test(async () => {
if (!window.internals)
return Promise.reject("no internals");
const url = await createBlobAndGetURL();
let counter = 0;
do {
gc();
await new Promise(resolve => setTimeout(resolve, 50));
} while (await internals.isBlobInternalURLRegistered(url) && counter++ < 100)
assert_false(await internals.isBlobInternalURLRegistered(url));
}, "A GCed blob should get unregistered");
</script>
</body>
</html>