From a76fbc3b9b82038ab44c04d6379cc2d45e5cecd8 Mon Sep 17 00:00:00 2001 From: Igor Soarez Date: Sat, 14 Nov 2026 09:15:15 +0000 Subject: tabs: one window for every agent; inactive tabs take input; background off by default Measured in Brave on 2026-11-14: an inactive tab takes trusted CDP clicks, key presses, text and mouse moves, and Page.captureScreenshot renders it live. Only mouseWheel hangs, waiting for a frame. The upstream guard that refused input to every hidden page was wrong for inactive tabs, and it is what made a window per session look necessary. - New sessions' tabs open inactive in the user's last focused window, in the session's tab group; a window is created only when none is open. - New groups start collapsed, unless their tab is the one showing, and expand when a tab in them is brought forward. Existing groups keep the user's setting. - Input is refused up front only in a minimized window (untested there). - chrome_scroll scrolls hidden pages by script instead of the wheel. - Focus emulation on attach, so blur-sensitive menus stay open. - Background mode is off by default. Calls still default to background; background:false or chrome_tab activate brings a tab forward. - Agent guidance, tool descriptions and docs say so. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index ba81f0b..24664cb 100644 --- a/README.md +++ b/README.md @@ -77,9 +77,9 @@ Run `/chrome revoke` when finished. Use `/chrome authorize` again whenever you w ## Safety - **Per-session approval.** Pi's Chrome tools require `/chrome authorize`. `/chrome revoke` locks them and requests cleanup of that session's owned automation tabs. Cleanup preserves existing user tabs. -- **Separate targets by default.** Page actions without an explicit target use a session-owned automation window or tab. The agent can deliberately target an existing tab when your task calls for it. +- **Separate targets by default.** Page actions without an explicit target use a session-owned automation tab, opened inactive in your window inside the session's tab group (collapsed), or in a new window only when none is open. The agent can deliberately target an existing tab when your task calls for it. - **Local transport, not a sandbox.** The bridge binds to `127.0.0.1:17318` and rejects browser-origin command requests. It does not authenticate arbitrary non-browser local callers; it is not protection against hostile processes on your machine. -- **Background mode:** `/chrome background on` (default) blocks pi-chrome tools from directly bringing Chrome to the front or switching your selected tab. Use `/chrome background off` to allow those actions, and `/chrome background status` to check the setting. +- **Background mode:** off by default (fork). Calls work in the background unless an agent passes `background:false` to bring its tab forward; inactive tabs take clicks, typing and screenshots without that. `/chrome background on` blocks bringing Chrome to the front or switching your selected tab outright; `/chrome background status` shows the setting. ### Limits -- cgit v1.2.3