From 01f68c50edd25b6e70156f33cfc7f865df032ea7 Mon Sep 17 00:00:00 2001 From: Labhansh Agrawal Date: Thu, 13 May 2021 12:46:39 +0530 Subject: [PATCH 1/2] Update local fonts query --- addons/xterm-addon-ligatures/src/font.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/xterm-addon-ligatures/src/font.ts b/addons/xterm-addon-ligatures/src/font.ts index fca110a4..b3ba436a 100644 --- a/addons/xterm-addon-ligatures/src/font.ts +++ b/addons/xterm-addon-ligatures/src/font.ts @@ -44,8 +44,8 @@ export default async function load(fontFamily: string, cacheSize: number): Promi } const fonts: Record = {}; try { - const fontsIterator: AsyncIterableIterator = (navigator as any).fonts.query(); - for await (const metadata of fontsIterator) { + const fontsIterator: IFontMetadata[] = await (navigator as any).fonts.query(); + for (const metadata of fontsIterator) { if (!fonts.hasOwnProperty(metadata.family)) { fonts[metadata.family] = []; } From 74edc6fdd4c1b9c4202172c319b2ca88a6d89463 Mon Sep 17 00:00:00 2001 From: Labhansh Agrawal Date: Thu, 13 May 2021 18:12:07 +0530 Subject: [PATCH 2/2] Add navigator typing for fonts access --- addons/xterm-addon-ligatures/src/font.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/addons/xterm-addon-ligatures/src/font.ts b/addons/xterm-addon-ligatures/src/font.ts index b3ba436a..72872a0b 100644 --- a/addons/xterm-addon-ligatures/src/font.ts +++ b/addons/xterm-addon-ligatures/src/font.ts @@ -15,6 +15,15 @@ interface IFontMetadata { blob: () => Promise; } +interface IFontAccessNavigator { + fonts: { + query: () => Promise; + }; + permissions: { + request?: (permission: { name: string }) => Promise<{state: string}>; + }; +} + let fontsPromise: Promise> | undefined = undefined; /** @@ -28,7 +37,7 @@ export default async function load(fontFamily: string, cacheSize: number): Promi // Web environment that supports font access API if (typeof navigator !== 'undefined' && 'fonts' in navigator) { try { - const status = await (navigator as any).permissions.request?.({ + const status = await (navigator as IFontAccessNavigator).permissions.request?.({ name: 'local-fonts' }); if (status && status.state !== 'granted') { @@ -44,7 +53,7 @@ export default async function load(fontFamily: string, cacheSize: number): Promi } const fonts: Record = {}; try { - const fontsIterator: IFontMetadata[] = await (navigator as any).fonts.query(); + const fontsIterator = await (navigator as IFontAccessNavigator).fonts.query(); for (const metadata of fontsIterator) { if (!fonts.hasOwnProperty(metadata.family)) { fonts[metadata.family] = [];