Skip to content

feat(browser): add support for authenticated remote browser profiles#895

Merged
steipete merged 4 commits intoopenclaw:mainfrom
mukhtharcm:feat/chrome-browser-improvements
Jan 16, 2026
Merged

feat(browser): add support for authenticated remote browser profiles#895
steipete merged 4 commits intoopenclaw:mainfrom
mukhtharcm:feat/chrome-browser-improvements

Conversation

@mukhtharcm
Copy link
Copy Markdown
Member

Summary

This PR adds support for authenticated remote browser profiles (e.g., Browserless) using HTTP Basic Auth and Playwright WebSocket connections.

Changes

  • cdp.ts / chrome.ts / server-context.ts: Added logic to extract credentials from the CDP URL and inject them into Authorization headers for HTTP CDP requests.
  • server-context.ts: Updated to switch between "Local" (CDP) and "Remote" (Playwright) logic for listing, opening, and closing tabs. Remote profiles now use persistent Playwright connections instead of stateless HTTP requests.
  • pw-session.ts: Updated connection logic to support authenticated WebSocket endpoints by converting the HTTP CDP URL to a WebSocket URL with credentials and using chromium.connect for remote sessions.

Commits

  1. feat(browser): add support for authenticated remote CDP profiles
  2. feat(browser): add support for remote playwright websocket auth

@steipete steipete force-pushed the feat/chrome-browser-improvements branch from 1907847 to bf15c87 Compare January 16, 2026 08:31
@steipete steipete merged commit 3b1b14b into openclaw:main Jan 16, 2026
20 of 22 checks passed
@steipete
Copy link
Copy Markdown
Contributor

Landed via temp rebase onto main.\n\n- Gate: pnpm lint && pnpm build && pnpm test\n- Land commit: bf15c87\n- Merge commit: 3b1b14b\n\nThanks @mukhtharcm!

steipete pushed a commit to mukhtharcm/clawdbot that referenced this pull request Jan 17, 2026
…le tab operations

For remote CDP profiles (e.g., Browserless), tab operations now use Playwright's
persistent connection instead of stateless HTTP requests. This ensures tabs
persist across operations rather than being terminated after each request.

Changes:
- pw-session.ts: Add listPagesViaPlaywright, createPageViaPlaywright, and
  closePageByTargetIdViaPlaywright functions using the cached Playwright connection
- pw-ai.ts: Export new functions for dynamic import
- server-context.ts: For remote profiles (!cdpIsLoopback), use Playwright-based
  tab operations; local profiles continue using HTTP endpoints
- server-context.ts: Fix ensureTabAvailable to not require wsUrl for remote
  profiles since Playwright accesses pages directly

This is a follow-up to openclaw#895 which added authentication support for remote CDP
profiles. The original PR description mentioned switching to persistent Playwright
connections for tab operations, but only the auth changes were merged.
zooqueen pushed a commit to hanzoai/bot that referenced this pull request Mar 6, 2026
zooqueen pushed a commit to hanzoai/bot that referenced this pull request Mar 6, 2026
…mprovements

feat(browser): add support for authenticated remote browser profiles
zooqueen pushed a commit to hanzoai/bot that referenced this pull request Mar 6, 2026
…le tab operations

For remote CDP profiles (e.g., Browserless), tab operations now use Playwright's
persistent connection instead of stateless HTTP requests. This ensures tabs
persist across operations rather than being terminated after each request.

Changes:
- pw-session.ts: Add listPagesViaPlaywright, createPageViaPlaywright, and
  closePageByTargetIdViaPlaywright functions using the cached Playwright connection
- pw-ai.ts: Export new functions for dynamic import
- server-context.ts: For remote profiles (!cdpIsLoopback), use Playwright-based
  tab operations; local profiles continue using HTTP endpoints
- server-context.ts: Fix ensureTabAvailable to not require wsUrl for remote
  profiles since Playwright accesses pages directly

This is a follow-up to openclaw#895 which added authentication support for remote CDP
profiles. The original PR description mentioned switching to persistent Playwright
connections for tab operations, but only the auth changes were merged.
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.

2 participants