From 59f8cb3cc4ea93d5f8cb88229c930d2155d5f27f Mon Sep 17 00:00:00 2001 From: Mirko Pecora Date: Mon, 3 Aug 2026 15:32:14 +0200 Subject: [PATCH 1/2] fix(domRenderer): adjust crossOrigin handling for data: URI --- src/core/dom-renderer/domRenderer.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/core/dom-renderer/domRenderer.ts b/src/core/dom-renderer/domRenderer.ts index 83cc89c..79ee0c2 100644 --- a/src/core/dom-renderer/domRenderer.ts +++ b/src/core/dom-renderer/domRenderer.ts @@ -822,7 +822,6 @@ function updateNodeStyles(node: DOMNode | DOMText) { if (!node.imgEl) { node.imgEl = document.createElement('img'); node.imgEl.alt = ''; - node.imgEl.crossOrigin = 'anonymous'; node.imgEl.setAttribute('aria-hidden', 'true'); node.imgEl.setAttribute('loading', 'lazy'); node.imgEl.removeAttribute('src'); @@ -944,7 +943,6 @@ function updateNodeStyles(node: DOMNode | DOMText) { if (!node.imgEl) { node.imgEl = document.createElement('img'); node.imgEl.alt = ''; - node.imgEl.crossOrigin = 'anonymous'; node.imgEl.setAttribute('aria-hidden', 'true'); node.imgEl.setAttribute('loading', 'lazy'); node.imgEl.removeAttribute('src'); @@ -1472,6 +1470,13 @@ export class DOMNode extends EventEmitter implements IRendererNode { this.hideMaskedBackgroundLayer(); this.imgEl.style.display = ''; this.imgEl.dataset.pendingSrc = pendingSrc; + // crossOrigin + data: URI fails to load on old WebKit engines (e.g. PS4 WebMAF) — + // only request CORS for real network sources, never for inlined base64 images. + if (pendingSrc.startsWith('data:')) { + this.imgEl.removeAttribute('crossorigin'); + } else { + this.imgEl.crossOrigin = 'anonymous'; + } this.imgEl.src = pendingSrc; this.imgEl.dataset.rawSrc = pendingSrc; this.imgEl.dataset.pendingSrc = ''; From 3518160a01ce72db5f8e79fad46fd87fa31b7790 Mon Sep 17 00:00:00 2001 From: Mirko Pecora Date: Fri, 7 Aug 2026 00:37:40 +0200 Subject: [PATCH 2/2] fix(applySubTextureScaling): remove redundant early return condition --- src/core/dom-renderer/domRendererUtils.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/core/dom-renderer/domRendererUtils.ts b/src/core/dom-renderer/domRendererUtils.ts index 11a6252..fe6fc87 100644 --- a/src/core/dom-renderer/domRendererUtils.ts +++ b/src/core/dom-renderer/domRendererUtils.ts @@ -120,7 +120,6 @@ export function applySubTextureScaling( if (!regionW || !regionH) return; const targetW = node.props.w || regionW; const targetH = node.props.h || regionH; - if (targetW === regionW && targetH === regionH) return; const naturalW = img.naturalWidth || regionW; const naturalH = img.naturalHeight || regionH; const scaleX = targetW / regionW;