Skip to content

Background tabs may not finish rendering until activated | 后台 Tab 需激活后才能完成页面渲染 #230

Description

@Ljy-0827

问题

BrowserSkill 使用侧边栏 Tab 展示浏览器画面时,首帧通常需要等待 10–15 秒。手动切换到 Browser Skill Tab 后,画面会立即出现。

使用前台或 PiP 窗口没有这个问题,但会产生较多窗口,影响使用体验。

复现步骤

  1. 启用 BrowserSkill 和 dsh-better-sidebar
  2. 保持另一个侧边栏 Tab 处于激活状态。
  3. 启动 BrowserSkill session 并打开网页。
  4. 等待 Browser Skill Tab 自动创建或复用。
  5. 观察首帧需要 10–15 秒;手动切换过去后立即加载完成。

原因分析

BrowserSkill 用 --no-active 在后台创建 Tab 后,该页面处于 visibility=hidden。Chrome 会暂停 requestAnimationFrame 并节流部分后台任务。页面虽然可能已经触发 load,但依赖可见帧的渲染、水合或尺寸计算仍未完成,因此看起来一直在加载。用户激活 Tab 后,这些任务立即恢复,页面随即显示完成。

Chromium 对后台页面的节流也可能进一步增加延迟。

建议修改

新 session 创建后,无论观察 Tab 是否可见,都生成一次首帧。首帧完成后,继续保持现有策略:只有视图可见时才进行周期截图。

修复后应满足:

  • 隐藏 Tab 也能及时准备好首帧。
  • 不需要用户手动切换 Tab。
  • 不抢占窗口焦点,也不需要 PiP。
  • 隐藏状态下不会持续截图。

Activity

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions