diff --git a/changelog.d/check-canvas-extract-permission.fix b/changelog.d/check-canvas-extract-permission.fix new file mode 100644 index 000000000..9d4cfe36d --- /dev/null +++ b/changelog.d/check-canvas-extract-permission.fix @@ -0,0 +1 @@ +Check for canvas extract permission when initializing favicon service diff --git a/src/services/favicon_service/favicon_service.js b/src/services/favicon_service/favicon_service.js index df603bb46..9cbe65449 100644 --- a/src/services/favicon_service/favicon_service.js +++ b/src/services/favicon_service/favicon_service.js @@ -1,3 +1,19 @@ +const checkCanvasExtractPermission = () => { + const canvas = document.createElement('canvas'); + canvas.width = 1; + canvas.height = 1; + + const ctx = canvas.getContext('2d'); + if (!ctx) return false; + + ctx.fillStyle = '#0f161e'; + ctx.fillRect(0, 0, 1, 1); + + const { data } = ctx.getImageData(0, 0, 1, 1); + + return data.join(',') === '15,22,30,255'; +}; + const createFaviconService = () => { const favicons = [] const faviconWidth = 128 @@ -5,6 +21,8 @@ const createFaviconService = () => { const badgeRadius = 32 const initFaviconService = () => { + if (!checkCanvasExtractPermission()) return; + const nodes = document.querySelectorAll('link[rel="icon"]') nodes.forEach(favicon => { if (favicon) {