From c0e1f328acf668fa7834115aa3a0d72f1057d79d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 17 Mar 2026 18:56:09 +0000 Subject: [PATCH 1/2] Initial plan From eebeb2c909ce8bff344f36a7302f9d282e799b99 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 17 Mar 2026 18:58:51 +0000 Subject: [PATCH 2/2] feat: add style.backgroundImage support to shadow DOM image replacements Co-authored-by: svrnm <1519757+svrnm@users.noreply.github.com> --- src/models/Monkey.js | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/models/Monkey.js b/src/models/Monkey.js index 72fbe78..2bb3f2d 100644 --- a/src/models/Monkey.js +++ b/src/models/Monkey.js @@ -319,12 +319,7 @@ class Monkey { const ownerDocument = root.ownerDocument || root if (ownerDocument && typeof ownerDocument.createTreeWalker === 'function') { - const walker = ownerDocument.createTreeWalker( - root, - NodeFilter.SHOW_ELEMENT, - null, - false - ) + const walker = ownerDocument.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, null, false) let current = walker.currentNode while (current) { @@ -345,7 +340,9 @@ class Monkey { // Guard against invalid roots that do not support querySelectorAll if (!root || typeof root.querySelectorAll !== 'function') { if (logger && typeof logger.warn === 'function') { - logger.warn('Monkey._collectOpenShadowRoots: root does not support querySelectorAll; skipping shadow root collection.') + logger.warn( + 'Monkey._collectOpenShadowRoots: root does not support querySelectorAll; skipping shadow root collection.' + ) } return shadowRoots } @@ -354,7 +351,10 @@ class Monkey { elements = root.querySelectorAll('*') } catch (e) { if (logger && typeof logger.warn === 'function') { - logger.warn('Monkey._collectOpenShadowRoots: error while querying elements from root; skipping shadow root collection.', e) + logger.warn( + 'Monkey._collectOpenShadowRoots: error while querying elements from root; skipping shadow root collection.', + e + ) } return shadowRoots } @@ -396,6 +396,20 @@ class Monkey { shadowRoot ) sum.image += this._applyOnXpathGroup(configuration, './/img', 'image', 'src', shadowRoot) + sum.image += this._applyOnXpathGroup( + configuration, + './/div[contains(@ad-test-id, "dash-image-widget-renderer")]', + 'image', + 'style.backgroundImage', + shadowRoot + ) + sum.image += this._applyOnXpathGroup( + configuration, + './/dash-kit-image-widget2/div/ui-kit-card-v1/div/div/div', + 'image', + 'style.backgroundImage', + shadowRoot + ) } }