blob: 303f4b24c179cc7efba346ed266c1f9b804e09c3 [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>CSS subresources of a clean stylesheet should populate resource timing entries, but not for imported stylesheets</title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<link href='http://localhost:8080/security/resources/loading-subresources.php' rel='stylesheet' type='text/css' crossorigin="anonymous">
</head>
<body>
<div id="mydiv" style="font: 12px 'ahem'">Test</div>
<script>
if (window.internals) {
internals.clearMemoryCache();
internals.invalidateFontCache();
}
const waitOnLoad = new Promise((resolve) => {
window.onload = resolve;
})
function waitFor(delay)
{
return new Promise(resolve => setTimeout(resolve, delay));
}
document.fonts.ready.then(async () => {
await waitOnLoad;
let hasImport = false;
let hasImage = false;
let hasCursor = false;
let hasFont = false;
let counter = 0;
while (++counter < 20) {
const entries = performance.getEntries();
if (!hasImport)
hasImport = entries.some(entry => entry.name.includes('imported-loading-subresources.css'));
if (!hasImage)
hasImage = entries.some(entry => entry.name.includes('abe-allow-star.php?image'));
if (!hasCursor)
hasCursor = entries.some(entry => entry.name.includes('abe-allow-star.php?cursor'));
if (!hasFont)
hasFont = entries.some(entry => entry.name.includes('Ahem.woff'));
if (hasImport && hasFont && hasCursor)
break;
await waitFor(50);
}
mydiv.innerHTML = "";
assert_true(hasImport, "import");
assert_false(hasImage, "image");
assert_true(hasCursor, "cursor");
assert_true(hasFont, "font");
done();
})
</script>
</body>
</html>