From 3fbdfe5af4948efe54b6a2cf90c40bddcc221dd3 Mon Sep 17 00:00:00 2001 From: Mirko Pecora Date: Tue, 21 Jan 2025 18:46:02 +0100 Subject: [PATCH 1/3] fix: font face descriptors in chrome 38 --- .../text-rendering/font-face-types/WebTrFontFace.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/core/text-rendering/font-face-types/WebTrFontFace.ts b/src/core/text-rendering/font-face-types/WebTrFontFace.ts index aa7ba600..054f7e23 100644 --- a/src/core/text-rendering/font-face-types/WebTrFontFace.ts +++ b/src/core/text-rendering/font-face-types/WebTrFontFace.ts @@ -49,7 +49,7 @@ export class WebTrFontFace extends TrFontFace { const determinedDescriptors = this.descriptors; // Convert TrFontFaceDescriptors to CSS FontFaceDescriptors - const cssDescriptors: FontFaceDescriptors = { + let cssDescriptors: FontFaceDescriptors = { style: determinedDescriptors.style, weight: typeof determinedDescriptors.weight === 'number' @@ -61,7 +61,11 @@ export class WebTrFontFace extends TrFontFace { display: determinedDescriptors.display, }; - const fontFace = new FontFace( + cssDescriptors = Object.fromEntries( + Object.entries(cssDescriptors).filter(([, value]) => value !== undefined), + ); + + var fontFace = new FontFace( fontFamily, `url(${fontUrlWithoutParentheses})`, cssDescriptors, @@ -71,14 +75,12 @@ export class WebTrFontFace extends TrFontFace { fontFace .load() .then(() => { - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion (this.loaded as boolean) = true; this.emit('loaded'); }) .catch(console.error); } else { // Default font - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion (this.loaded as boolean) = true; this.emit('loaded'); } From 23b4c2bc20dc04e307171b74d0d50a067e101482 Mon Sep 17 00:00:00 2001 From: Mirko Pecora Date: Wed, 22 Jan 2025 10:24:31 +0100 Subject: [PATCH 2/3] fix: var --- src/core/text-rendering/font-face-types/WebTrFontFace.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/text-rendering/font-face-types/WebTrFontFace.ts b/src/core/text-rendering/font-face-types/WebTrFontFace.ts index 054f7e23..06e9fe62 100644 --- a/src/core/text-rendering/font-face-types/WebTrFontFace.ts +++ b/src/core/text-rendering/font-face-types/WebTrFontFace.ts @@ -65,7 +65,7 @@ export class WebTrFontFace extends TrFontFace { Object.entries(cssDescriptors).filter(([, value]) => value !== undefined), ); - var fontFace = new FontFace( + const fontFace = new FontFace( fontFamily, `url(${fontUrlWithoutParentheses})`, cssDescriptors, From c561874356b7e3559cc384926706e6862c2fa7ad Mon Sep 17 00:00:00 2001 From: Mirko Pecora Date: Thu, 23 Jan 2025 17:41:09 +0100 Subject: [PATCH 3/3] fix: compatibily --- src/core/text-rendering/font-face-types/WebTrFontFace.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/core/text-rendering/font-face-types/WebTrFontFace.ts b/src/core/text-rendering/font-face-types/WebTrFontFace.ts index 06e9fe62..3dd42e97 100644 --- a/src/core/text-rendering/font-face-types/WebTrFontFace.ts +++ b/src/core/text-rendering/font-face-types/WebTrFontFace.ts @@ -61,9 +61,12 @@ export class WebTrFontFace extends TrFontFace { display: determinedDescriptors.display, }; - cssDescriptors = Object.fromEntries( - Object.entries(cssDescriptors).filter(([, value]) => value !== undefined), - ); + for (const k in cssDescriptors) { + const key = k as keyof FontFaceDescriptors; + if (cssDescriptors[key] === undefined) { + delete cssDescriptors[key]; + } + } const fontFace = new FontFace( fontFamily,