From cdbe59900c779605fe608f48be91accecf141c5a Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 4 Jan 2022 08:57:35 +0000 Subject: [PATCH] Fix offscreen canvas breaking with split-brained firefox support (#7440) --- src/ContentMessages.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ContentMessages.tsx b/src/ContentMessages.tsx index 1405362c83..3e37f292d1 100644 --- a/src/ContentMessages.tsx +++ b/src/ContentMessages.tsx @@ -127,15 +127,18 @@ async function createThumbnail( } let canvas: HTMLCanvasElement | OffscreenCanvas; - if (window.OffscreenCanvas) { + let context: CanvasRenderingContext2D; + try { canvas = new window.OffscreenCanvas(targetWidth, targetHeight); - } else { + context = canvas.getContext("2d"); + } catch (e) { + // Fallback support for other browsers (Safari and Firefox for now) canvas = document.createElement("canvas"); (canvas as HTMLCanvasElement).width = targetWidth; (canvas as HTMLCanvasElement).height = targetHeight; + context = canvas.getContext("2d"); } - const context = canvas.getContext("2d"); context.drawImage(element, 0, 0, targetWidth, targetHeight); let thumbnailPromise: Promise;