From c104904b260eb44decc14b13bb4954c38b10c4a5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:36:15 +0000 Subject: [PATCH 1/2] Initial plan From 574a5a83b2d9ab5083042825049adc574cd2bef9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:38:40 +0000 Subject: [PATCH 2/2] Fix XSS (js/xss-through-dom): replace innerHTML with safe DOM APIs in methoddriven4.html --- .../paper2poster/assets/layouts/methoddriven4.html | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ResearchStudio-Reel/skills/paper2poster/assets/layouts/methoddriven4.html b/ResearchStudio-Reel/skills/paper2poster/assets/layouts/methoddriven4.html index fa227a1..dea6a4c 100644 --- a/ResearchStudio-Reel/skills/paper2poster/assets/layouts/methoddriven4.html +++ b/ResearchStudio-Reel/skills/paper2poster/assets/layouts/methoddriven4.html @@ -1553,21 +1553,25 @@

Takeaway < Array.from(sec.children).forEach(walk2); const badge = document.createElement("div"); badge.className = "dbg-badge dbg-section"; - let html = `${id} ${Math.round(actual)}px`; + let txt = `${id} ${Math.round(actual)}px`; if (hasContent && actual > 0) { const fullRatio = ((cb - secRect.top) / sc) / actual; // Verdict label lives on the content bbox below — keep the // per-section badge compact. - html += ` ratio=${(fullRatio * 100).toFixed(1)}%`; + txt += ` ratio=${(fullRatio * 100).toFixed(1)}%`; } + badge.textContent = txt; if (estimates && estimates[id] != null) { const est = estimates[id]; const delta = Math.round(actual - est); const cls = delta >= 0 ? "dbg-delta-pos" : "dbg-delta-neg"; const sign = delta >= 0 ? "+" : ""; - html += ` est=${est} Δ${sign}${delta}`; + const span = document.createElement("span"); + span.className = cls; + span.textContent = `est=${est} Δ${sign}${delta}`; + badge.appendChild(document.createTextNode(" ")); + badge.appendChild(span); } - badge.innerHTML = html; sec.appendChild(badge); }); stampBboxes();