- Add on_TabCreatedEvent handler to BrowserSession to apply viewport settings
- Update _cdp_set_viewport to accept optional target_id parameter
- All tabs (initial and new) now get viewport through unified event handler
This ensures consistent viewport configuration across all tabs when
viewport is explicitly set in the browser profile, while respecting
the natural window sizing when viewport is not configured.
Implements _cdp_get_origins() method to capture localStorage and sessionStorage
using cdp-use's typed DOMStorage client. This enables proper session
persistence for applications that store authentication tokens in browser storage
rather than cookies.
- Adds _cdp_get_origins() to enumerate all frames and extract unique origins
- Uses cdp-use's DOMStorage.getDOMStorageItems to retrieve localStorage/sessionStorage
- Updates _cdp_get_storage_state() to include origins in storage state
- Handles errors gracefully with debug logging for individual storage failures
- Uses try-finally to ensure DOMStorage is properly disabled even on errors
- Encapsulates storage extraction logic in helper functions for clarity
- Add BrowserStopEvent handler to properly stop monitoring when browser closes
- Await LoadStorageStateEvent dispatch to ensure storage is loaded before navigation
- Clean up monitoring task on browser stop to prevent CDP connection errors
This ensures storage state is properly loaded before the browser starts navigating
and prevents error logs from monitoring attempts after the browser has closed.
- Changed `_get_recent_events_str` method in `dom_watchdog.py` to return recent events as JSON instead of CSV, enhancing data structure and usability.
- Updated tests in `test_browser_event_ClickElementEvent.py`, `test_browser_event_NavigateToUrlEvent.py`, and others to reflect changes in event handling and improve error handling.
- Marked several tests as skipped due to known issues, ensuring clarity in test results.