Status: FAIL | Duration: 19ms | Subtests: 0/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi
/css/css-fonts/font-display/font-display.html
<!DOCTYPE html> <html class="reftest-wait"> <title>Test for font-display @font-face descriptor</title> <meta name="timeout" content="long"> <link rel="help" href="https://drafts.csswg.org/css-fonts-4/#font-display-desc"> <link rel="match" href="font-display-ref.html"> <link rel="preload" href="/fonts/Ahem.ttf?pipe=trickle(d0)" as="font" crossorigin> <style> .hidden { display: none; } </style> <p>Tests how text with a font that takes <i>delay</i> seconds to load look like after <i>T</i> seconds from load start.</p> <table id="container"> <tr> <th>T[sec]</th> <th>delay[sec]</th> <th>block</th> <th>swap</th> <th>fallback</th> <th>optional</th> </tr> </table> <script> var fontDisplayValues = ['block', 'swap', 'fallback', 'optional']; var configs = [{time: 0, delay: 1000}, {time: 1000, delay: 0}, {time: 1000, delay: 500}, {time: 1000, delay: 3000}, {time: 5000, delay: 2000}, {time: 5000, delay: 4000}, {time: 5000, delay: 8000}]; function makeFontFaceDeclaration(family, config, display) { url = '/fonts/Ahem.ttf?pipe=trickle(d' + config.delay / 1000 + ')'; return '@font-face { font-family: ' + family + '; src: url("' + url + '"); font-display: ' + display + '; }'; } var maxTime = Math.max.apply(null, configs.map((config) => config.time)); var table = document.getElementById('container'); window.onload = function() { for (var config, i = 0; config = configs[i]; i++) { var tr = document.createElement('tr'); tr.classList.add('hidden'); var td1 = document.createElement('td'); td1.textContent = config.time / 1000; tr.appendChild(td1); var td2 = document.createElement('td'); td2.textContent = config.delay / 1000; tr.appendChild(td2); for (var display, j = 0; display = fontDisplayValues[j]; j++) { var family = [display, config.time, config.delay].join('-'); var rule = makeFontFaceDeclaration(family, config, display); document.styleSheets[0].insertRule(rule, 0); var td = document.createElement('td'); td.textContent = 'a'; td.style.fontFamily = family + ', Arial'; tr.appendChild(td); } table.appendChild(tr); if (config.time == 0) { setTimeout((function(tr){ tr.classList.remove('hidden'); document.documentElement.classList.remove("reftest-wait"); }).bind(null, tr), maxTime); } else { setTimeout((function(tr){tr.classList.remove('hidden')}).bind(null, tr), maxTime - config.time); } } } </script> </html>
/css/css-fonts/font-display/font-display-ref.html
<!DOCTYPE html> <title>Test for font-display @font-face descriptor</title> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <style> .ahem { font-family: Ahem; } .arial { font-family: Arial; } </style> <p>Tests how text with a font that takes <i>delay</i> seconds to load look like after <i>T</i> seconds from load start.</p> <table> <tr> <th>T[sec]</th> <th>delay[sec]</th> <th>block</th> <th>swap</th> <th>fallback</th> <th>optional</th> </tr> <tr> <td>0</td> <td>1</td> <td></td> <td class="arial">a</td> <td></td> <td class="arial">a</td> </tr> <tr> <td>1</td> <td>0</td> <td class="ahem">a</td> <td class="ahem">a</td> <td class="ahem">a</td> <td class="ahem">a</td> </tr> <tr> <td>1</td> <td>0.5</td> <td class="ahem">a</td> <td class="ahem">a</td> <td class="ahem">a</td> <td class="arial">a</td> </tr> <tr> <td>1</td> <td>3</td> <td></td> <td class="arial">a</td> <td class="arial">a</td> <td class="arial">a</td> </tr> <tr> <td>5</td> <td>2</td> <td class="ahem">a</td> <td class="ahem">a</td> <td class="ahem">a</td> <td class="arial">a</td> </tr> <tr> <td>5</td> <td>4</td> <td class="ahem">a</td> <td class="ahem">a</td> <td class="arial">a</td> <td class="arial">a</td> </tr> <tr> <td>5</td> <td>8</td> <td class="arial">a</td> <td class="arial">a</td> <td class="arial">a</td> <td class="arial">a</td> </tr> </table>