fix capture

This commit is contained in:
2026-09-25 15:04:09 -07:00
parent f8bd5fce32
commit 41f5aa19a3
5 changed files with 19 additions and 16 deletions

View File

@@ -115,7 +115,7 @@ async function captureFullPage(msg) {
const windowId = msg.windowId;
if (tabId == null) throw new Error('No active tab');
const dims = await browser.tabs.sendMessage(tabId, { kind: 'get_viewport' });
const dims = await browser.tabs.sendMessage(tabId, { kind: 'get_viewport' }, { frameId: 0 });
const vw = dims.viewportWidth || 1;
const vh = dims.viewportHeight || 1;
const ph = dims.pageHeight || vh;
@@ -129,13 +129,13 @@ async function captureFullPage(msg) {
const parts = [];
for (let i = 0; i < sliceCount; i++) {
const y = Math.max(0, Math.min(i * vh, ph - vh));
await browser.tabs.sendMessage(tabId, { kind: 'scroll_to', y: y });
await browser.tabs.sendMessage(tabId, { kind: 'scroll_to', y: y }, { frameId: 0 });
await sleep(250);
const dataUrl = await browser.tabs.captureVisibleTab(windowId, { format: 'png' });
parts.push({ dataUrl: dataUrl, y: y });
}
await browser.tabs.sendMessage(tabId, { kind: 'scroll_to', y: dims.scrollY || 0 }).catch(() => {});
await browser.tabs.sendMessage(tabId, { kind: 'scroll_to', y: dims.scrollY || 0 }, { frameId: 0 }).catch(() => {});
const canvas = document.createElement('canvas');
canvas.width = Math.round(vw * dpr);