You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Web panes render with Electron's deprecated <webview> tag (lib/components/web-pane.tsx), which is the root cause of the "some pages break" reports: Cloudflare/bot walls, OAuth popup handoffs, render glitches, black-flash. Migrate to the supported WebContentsView — a native Chromium view the main process positions with setBounds().
Full, code-grounded design (every anchor is a real file:line) lives in plan/webcontentsview-migration.md.
Decisions (locked)
Straight replacement, no feature flag — few/no users; upgrade over dual-support.
Overlay occlusion = hybrid — persistent header is inset (view never covers it); transient DOM overlays (URL navigator, find bar, spinner, consent modal) use freeze-and-swap (capturePage() → still image while the overlay is up, restore on close).
Electron pinned 41.3.0 (WebContentsView available).
Why
Web panes render with Electron's deprecated
<webview>tag (lib/components/web-pane.tsx), which is the root cause of the "some pages break" reports: Cloudflare/bot walls, OAuth popup handoffs, render glitches, black-flash. Migrate to the supportedWebContentsView— a native Chromium view the main process positions withsetBounds().Full, code-grounded design (every anchor is a real file:line) lives in
plan/webcontentsview-migration.md.Decisions (locked)
capturePage()→ still image while the overlay is up, restore on close).configureWebPaneSession()verbatim (the Chrome-UA +sec-ch-uarewrite) — it's session-level.Phases
WebPaneManagerfoundation (create/bounds/visible/destroy, shared session, state push, window-close cleanup since WebContentsView webContents don't self-destruct). Foundation committed955c9d92(dormant); renderer swap next._blankhandlers on the owned webContents). Fixes Web pane opened by click/agent is not saved to the chooser URL history #98 (record opening URL on create).web_pane_content/eval/mouse/click/reloadstraight to webContents, deleting the renderer round-trip).left:-9999em, livesetBoundson split-drag, verify context-menu crash electron#44898, pop-out reparent). Fixes Closing a web pane reverts a sibling web pane to its first page #99 (per-pane persistent view = no remount-to-first-page) and Web pane: right-click → Inspect in a SPLIT (dock DevTools inside the pane, not a detached window) #125 (a real webContents host can dock DevTools in a split — impossible for a<webview>guest).<webview>+webviewTag, drop@electron/remoteweb-pane usage + deadweb-pane-*-resultIPC. Full regression.Rolled up into this epic (closed)
navigator.userAgentDatacleanly on the owned webContents.<webview>).Related (kept open, cross-linked)
Work lands on
canary.