Skip to content

feat(browser): 网页宽度自动适配与 50% 缩放下限【已审核 PR】 - #1932

Open
Andreaseszhang wants to merge 2 commits into
proma-ai:mainfrom
Andreaseszhang:fix/browser-auto-zoom-202608311955
Open

feat(browser): 网页宽度自动适配与 50% 缩放下限【已审核 PR】#1932
Andreaseszhang wants to merge 2 commits into
proma-ai:mainfrom
Andreaseszhang:fix/browser-auto-zoom-202608311955

Conversation

@Andreaseszhang

Copy link
Copy Markdown
Contributor

概述

为 Proma 内置受管浏览器增加固定宽度网页的自动适配能力。浏览器面板变窄时自动降低网页 zoom,变宽时按实际页面宽度逐级恢复,最低支持 50%,并避免测量过程中先闪回 100% 导致的视觉闪烁。

改动

  • apps/electron/src/main/lib/browser-auto-zoom.ts — 新增页面宽度测量语义、100% 至 50% 的分级 zoom、固定宽 body 处理、固有宽度缓存和有限逐级探测。
  • apps/electron/src/main/lib/browser-auto-zoom.test.ts — 覆盖 layout viewport 选择、固定宽 body、50% 回升、所有缩放档位、非法输入和探测上限。
  • apps/electron/src/main/lib/browser-controller.ts — 接入 WebContentsView 的自动适配、owner zoom 坐标换算、导航代际失效、主进程防抖、动态复测和收敛保护。

测试方法

  1. bun test ./apps/electron/src/main/lib/browser-auto-zoom.test.ts
  2. git diff --check origin/main...HEAD
  3. 手动验证窄窗口固定宽页面的缩小、扩大和回升路径。

备注

  • 自动缩放只作用于受管浏览器 WebContentsView,不改变 Proma 主界面缩放。
  • 已处理固定宽 body 被误判为 viewport、当前 zoom 下 scrollWidth 被 clamp、窗口 resize 期间重复测量等问题。
  • Fresh PR worktree 缺少 node_modules,因此未在该 worktree 运行完整 typecheck;纯算法单测与 diff 检查已通过。

Made with Proma · GitHub

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant