Skip to content

Commit

Permalink
add (back) caching
Browse files Browse the repository at this point in the history
  • Loading branch information
marcustyphoon committed Jan 23, 2025
1 parent a2adc57 commit 2dee86f
Showing 1 changed file with 18 additions and 14 deletions.
32 changes: 18 additions & 14 deletions src/features/accesskit/disable_gifs.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,20 +112,24 @@ const processGifs = function (gifElements) {

const sourceUrlRegex = /(?<=url\(["'])[^)]*?\.gifv?(?=["']\))/g;

const createPausedUrl = (sourceUrl) => new Promise(resolve => {
const image = new Image();
image.crossOrigin = 'anonymous';
image.src = sourceUrl;
image.onload = () => {
const canvas = document.createElement('canvas');
canvas.width = image.naturalWidth;
canvas.height = image.naturalHeight;
canvas.getContext('2d').drawImage(image, 0, 0);
canvas.toBlob(blob =>
resolve(URL.createObjectURL(blob))
);
};
});
const pausedUrlCache = {};
const createPausedUrl = (sourceUrl) => {
pausedUrlCache[sourceUrl] ??= new Promise(resolve => {
const image = new Image();
image.crossOrigin = 'anonymous';
image.src = sourceUrl;
image.onload = () => {
const canvas = document.createElement('canvas');
canvas.width = image.naturalWidth;
canvas.height = image.naturalHeight;
canvas.getContext('2d').drawImage(image, 0, 0);
canvas.toBlob(blob =>
resolve(URL.createObjectURL(blob))
);
};
});
return pausedUrlCache[sourceUrl];
};

const processBackgroundGifs = function (gifBackgroundElements) {
gifBackgroundElements.forEach(async gifBackgroundElement => {
Expand Down

0 comments on commit 2dee86f

Please sign in to comment.