Closed feature request

Future: extension lane per profile (today the lane is one browser, adom-you only)

John Lauer · 1mo ago ·closed by John Lauer

Backlog, per John 2026-09-14: "we do not need a separate profile yet. put that on future todo list."

Today the extension lane is one lane bound to one browser process, the adom-you profile: one lane token, one pid list, profile hard-wired in lane health. Chrome runs one process per profile, so a request for profile:"x" cannot ride the extension lane and, since 2.0.563, is refused with cdp_lane_required unless the caller passes lane:"cdp".

When wanted: make the lane per-profile (a token and a pid list per browser, lane health per profile), so profile:"x" opens an extension-lane window in its own browser with no debug port. Not needed now; adom-you is the profile that matters.

1 Reply

John Lauer · 1mo ago

Built in pup 2.0.659/2.0.660 (insiders). The extension lane is per profile: extdrive::LaneState carries the token, pids, queue, results, worker version and DevTools handle per profile, selected by a thread-local the dispatcher resets per request and lane_for / open set from the session's profile, so the existing call sites are unchanged. Each lane browser gets its own staged extension folder (extlane-) with its own port.json lane token; the worker polls /extcmd?lane= and pup routes by token (commands) and by command id (results). Measured on ConfRoomROG: an isolated window on the extension lane (no lane argument) on profile iso-8c6b05d354 read an empty cookie jar, was driven and navigated, while a default-lane window kept answering; closing it ended its browser (chromeProcsKilled 1) and removed the profile and staging; smoke, parity and the foreground gate green. Throwaway lanes are swept at boot. Not a general multi-browser API yet: no verb lists lanes, and recovery restores only the default lane (throwaway windows are fleeting by definition).

John Lauer closed this · 1mo ago

Log in to reply.