feat: browser-side annotation screenshots for web preview
Capture the preview/browser iframe DOM with snapDOM (html-to-image fallback) so web annotation screenshots match the visible viewport, without a headless Chromium dependency. - Preserve document scroll via viewport crop and re-bake nested scroll (e.g. the Starlight sidebar) deterministically on the clone - Pin position:fixed elements to their measured viewport rect so headers and sidebars land correctly in the crop - Extract preview capture/proxy helpers into lib/preview/screenshot-capture.ts to slim down ContextPanel - Guard the external preview proxy against SSRF to private, loopback and reserved/link-local addresses (incl. cloud metadata) - Fully validate preview bridge messages before formatting/use - Warn on the empty browser tab that pages run with full access, so users browse untrusted sites knowingly
This commit is contained in:
@@ -842,6 +842,8 @@ export const dict: Record<I18nKey, string> = {
|
||||
'contextPanel.browser.addressAria': '瀏覽器網址',
|
||||
'contextPanel.browser.empty': '網頁瀏覽器',
|
||||
'contextPanel.browser.emptyHint': '在上方輸入網址開始瀏覽',
|
||||
'contextPanel.browser.inspectUnavailable': '無法從瀏覽器面板檢查此頁面。',
|
||||
'contextPanel.browser.trustNotice': '在此開啟的頁面以對 OpenChamber 的完整存取權限執行 — 檢查與截圖需要此權限。僅開啟你信任的網站:惡意頁面可能讀取你的資料或以你的身分執行操作。',
|
||||
'contextPanel.tab.closeTabAria': '關閉 {label} 分頁',
|
||||
'contextPanel.actions.collapsePanel': '摺疊面板',
|
||||
'contextPanel.actions.expandPanel': '展開面板',
|
||||
|
||||
Reference in New Issue
Block a user