Commit Graph

109 Commits

Author SHA1 Message Date
Tommy D. Rossi 81988c3305 show cli examples in welcome 2026-01-27 13:29:03 +01:00
Tommy D. Rossi d4107d1ddd fix(extension): detach child sessions on parent detach 2026-01-26 15:04:37 +01:00
Tommy D. Rossi d51d8b8e72 feat(cdp): allow iframe targets and serialize extension builds 2026-01-26 14:56:17 +01:00
Tommy D. Rossi 4d2606253b add source param in CDP messages 2026-01-26 13:07:59 +01:00
Tommy D. Rossi dc771ddc1d sync tab state for automated tabs 2026-01-26 12:56:27 +01:00
Tommy D. Rossi 0fb9d2c229 Clamp extension log payloads 2026-01-25 15:01:40 +01:00
Tommy D. Rossi d4e49b2d5d nn 2026-01-25 14:58:00 +01:00
Tommy D. Rossi a15b06082b Add stable extension ID for development builds
Inject manifest key via vite plugin for dev/test builds (not production).
This ensures all developers get the same extension ID: pebbngnfojnignonigcnkdilknapkgid

- Update vite.config.mts to inject key when !PRODUCTION
- Update release script to use PRODUCTION=true
- Replace old hardcoded dev extension ID in all files
2026-01-25 11:19:51 +01:00
Tommy D. Rossi f9869a59f2 refactor: move welcome.html to src/, simplify vite build config, cleanup cli.ts formatting 2026-01-23 23:57:25 +01:00
Tommy D. Rossi 8ab0fda2b7 fix: preserve tabs during relay reconnects 2026-01-21 21:20:29 +01:00
Tommy D. Rossi 93fdcb6b35 feat: first extension with active tabs keeps connection instead of being replaced
- Server rejects new extension (code 4002) if existing has active tabs
- Idle extensions (no tabs) can still be replaced
- Extension properly enters polling mode when rejected during handshake
- /extension/status now returns activeTargets count for smarter reconnection
2026-01-21 19:09:37 +01:00
Tommy D. Rossi cc699670b4 fix: clarify error messages when another Playwriter extension connects 2026-01-16 13:07:24 +01:00
Tommy D. Rossi b86e215570 Create CHANGELOG.md 2026-01-15 12:51:23 +01:00
Tommy D. Rossi 8b9fe157b4 fix: improve connection reliability with global timeout and IPv4
- Use 127.0.0.1 instead of localhost to avoid DNS/IPv6 resolution issues
- Add 15s global timeout wrapper around connect() to prevent hanging forever
- Reduce HTTP retry attempts from 30 to 5 (maintainLoop retries anyway)
- Fix WebSocket cleanup: close socket on timeout to prevent orphaned connections
- Improve settled state tracking in WebSocket connection promise
2026-01-14 12:13:25 +01:00
Tommy D. Rossi 1fd0242277 Allow attaching to our own extension pages while blocking other extensions 2026-01-14 12:07:28 +01:00
Tommy D. Rossi e87f801700 release: playwriter@0.0.40, extension@0.0.67 2026-01-05 10:12:42 +01:00
Tommy D. Rossi 8e62b657cc fix: query playwriter tab group by title instead of caching ID
- Remove global playwriterGroupId cache that could become stale
- Query chrome.tabGroups by title on each sync instead
- Use batch chrome.tabs.ungroup() with array of IDs instead of loops
- Fixes issue where group wasn't created after debugger detach/reattach
2026-01-04 16:09:32 +01:00
Tommy D. Rossi 1ad94f3930 release: playwriter@0.0.39, extension@0.0.66
- fix icon not updating on WS disconnect
- increase aria-labels auto-hide timeout to 30s
2026-01-03 17:38:28 +01:00
Tommy D. Rossi f9a2312a58 diconnect tabs on close of ws 2026-01-03 17:36:18 +01:00
Tommy D. Rossi 22a255e1dd refactor extension with ConnectionManager. log memory usage 2026-01-02 14:41:37 +01:00
Tommy D. Rossi a53342f36a add reload packge.json script 2026-01-02 14:41:05 +01:00
Tommy D. Rossi 90179dea17 handle connecting ws 2026-01-01 03:12:30 +01:00
Tommy D. Rossi ef6ab59351 Fix auto-enable to work without delay by skipping duplicate Target.attachedToTarget
Move auto-create logic from onOpen to Target.setAutoAttach handler so it runs
synchronously in the CDP command flow. Add skipAttachedEvent option to extension's
attachTab to prevent sending Target.attachedToTarget when the relay will send it
via the Target.setAutoAttach response handler.
2026-01-01 02:53:10 +01:00
Tommy D. Rossi 178387ec97 Persistent WS connection and auto-create initial tab
- Connect WS at extension startup via maintainConnection() loop
- Auto-retry every 5 seconds silently (no connecting badge)
- Never disconnect WS based on tab count
- Rename ConnectionState 'disconnected' to 'idle', remove global 'connecting'
- Fix race condition with tabGroupQueue for syncTabGroup/disconnectEverything/onTabUpdated
- Add auto-create initial tab when Playwright connects (PLAYWRITER_AUTO_ENABLE env var)
- Add test for auto-create feature
2026-01-01 01:14:16 +01:00
Tommy D. Rossi be1b9514d3 Add ping/pong keep-alive to prevent service worker termination 2025-12-31 16:15:17 +01:00
Tommy D. Rossi 02fda90578 add more logs on detach 2025-12-31 16:07:57 +01:00
Tommy D. Rossi 3d0d280f6a Fix context menu duplicate ID crash and add global error logging 2025-12-31 15:45:32 +01:00
Tommy D. Rossi b19b7ae72d change colors of badges 2025-12-30 14:19:33 +01:00
Tommy D. Rossi 449cd45e71 use addScriptToEvaluateOnNewDocument 2025-12-30 14:00:40 +01:00
Tommy D. Rossi 8eedbcf2e1 bump 2025-12-30 13:54:12 +01:00
Tommy D. Rossi e729cc4fa5 Copy Playwriter Element Reference' 2025-12-30 13:32:53 +01:00
Tommy D. Rossi 2b862c436e add tabs permission to extension manifest 2025-12-30 13:28:29 +01:00
Tommy D. Rossi 9df46c48ca release: playwriter@0.0.30, extension@0.0.56 2025-12-30 13:26:28 +01:00
Tommy D. Rossi 802abde340 fix: only skip disconnect for connecting tabs, not all non-connected 2025-12-30 13:25:44 +01:00
Tommy D. Rossi 561a5d3730 do not detach not connected tabs 2025-12-30 13:21:58 +01:00
Tommy D. Rossi cdc5d127a5 Update types.ts 2025-12-30 13:09:26 +01:00
Tommy D. Rossi 626c5ee3de Use npx -y and @latest in welcome page config example 2025-12-29 22:14:48 +01:00
Tommy D. Rossi a4803cab99 Enable/disable extension when tabs are manually added/removed from playwriter group 2025-12-29 21:51:08 +01:00
Tommy D. Rossi ba84eb5ac1 add right context menu for pinning 2025-12-28 23:36:20 +01:00
Tommy D. Rossi 92b301c1c0 sync icons on extension first load 2025-12-28 22:15:08 +01:00
Tommy D. Rossi 59161f6147 nn 2025-12-28 22:13:58 +01:00
Tommy D. Rossi a4e7ce10bd move cdp-relay and protocol out of extension subfolder 2025-12-28 21:05:04 +01:00
Tommy D. Rossi 63856afb0b fix Runtime.enable race condition with event-based synchronization
Replace arbitrary sleep(200ms) with proper wait for Runtime.executionContextCreated
event in the relay server. This ensures pages are fully ready before Runtime.enable
returns to Playwright, fixing intermittent 'page not found' errors.
2025-12-28 20:29:21 +01:00
Tommy D. Rossi 9b115ea2eb set tabs to connecting on extension replace 2025-12-28 12:20:50 +01:00
Tommy D. Rossi f1f6b2f015 Update background.ts 2025-12-27 19:51:13 +01:00
Tommy D. Rossi e63dc52c68 Update background.ts 2025-12-27 18:33:19 +01:00
Tommy D. Rossi c2d13c0363 add editor. use different port in tests 2025-12-26 00:01:05 +01:00
Tommy D. Rossi 150ad47307 fix about:blank gray icon and add auto-recovery after extension replacement 2025-12-22 19:29:25 +01:00
Tommy D. Rossi c84edb0afe support about blank 2025-12-22 18:17:32 +01:00
Tommy D. Rossi 2decaf6b83 refactor: add sleep utility, reduce extension wait to 1s, add comments for CDP race condition 2025-12-21 17:43:11 +01:00