40 lines
1.0 KiB
HTML
40 lines
1.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script>
|
|
if (window.internals) {
|
|
internals.invalidateFontCache();
|
|
internals.clearMemoryCache();
|
|
}
|
|
if (window.testRunner) {
|
|
testRunner.waitUntilDone();
|
|
testRunner.dumpAsText();
|
|
}
|
|
</script>
|
|
<style>
|
|
@font-face {
|
|
font-family: "WebFont";
|
|
src: url("../../resources/Ahem.otf") format("opentype");
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
This test passes if there is no ASSERT in debug mode. This happens when:
|
|
<ol>
|
|
<li>No one uses the CSS Font Loading API</li>
|
|
<li>A font starts loading</li>
|
|
<li>Someone uses the CSS Font Loading API, causing us to create Javascript wrappers for our internal objects</li>
|
|
<li>The font finishes loading</li>
|
|
</ol>
|
|
The bug occurs when the wrappers do not correctly understand that there are in-flight loads already happening.
|
|
<div style="font-family: 'WebFont';">Hello</div>
|
|
<script>
|
|
document.body.offsetTop; // Force layout, which starts fonts loading
|
|
document.fonts.ready.then(function() {
|
|
if (window.testRunner)
|
|
testRunner.notifyDone();
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|