Processes incoming CDP events, updates internal state for network requests and JavaScript dialogs, then triggers registered callbacks.
async def process_event(self, event_data: CDPEvent):
"""
Process received event and trigger callbacks.
Handles special events (network requests, dialogs) and updates
internal state before triggering registered callbacks.
"""
event_name = event_data.get('method')
if not event_name:
logger.warning(f'Discarding event without method: {str(event_data)[:200]}')
return
logger.debug(f'Processing event: {event_name}')
if 'Network.requestWillBeSent' in event_name:
self._update_network_logs(event_data)
if 'Page.javascriptDialogOpening' in event_name and 'params' in event_data:
self.dialog = JavascriptDialogOpeningEvent(
method=event_name,
... (truncated -- full source via MCP)
See the full source, get the GitHub permalink, and search 40K more like it.
Get a free API key