Skip to content

Commit 2e938a4

Browse files
committed
fix: re-fetch a font when its resource cache entry was evicted
cache.font is an unbounded seen-set but cache.resource is FIFO-capped; don't skip on the seen-set alone or an evicted font leaves a live url() that fails to embed.
1 parent 0832e72 commit 2e938a4

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

src/modules/fonts.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,9 @@ async function inlineUrlsInCssBlock(cssBlock, baseHref, useProxy = '') {
404404
out = out.replace(m[0], `url(${cache.resource.get(abs)})`)
405405
continue
406406
}
407-
if (cache.font?.has(abs)) continue
407+
// Don't skip on `cache.font.has(abs)` alone: `cache.font` is an unbounded "seen" Set but
408+
// `cache.resource` (the base64) is FIFO-capped. A seen font whose resource was evicted must
409+
// be re-fetched here, not left as a live url() that silently fails to embed.
408410

409411
try {
410412
const r = await snapFetch(abs, { as: 'dataURL', useProxy, silent: true })

0 commit comments

Comments
 (0)