MCPcopy Create free account
hub / github.com/aeroxy/chrome-devtools-cli / push_event

Method push_event

src/cdp.rs:409–445  ·  view source on GitHub ↗
(&mut self, event: Value)

Source from the content-addressed store, hash-verified

407 }
408
409 pub(crate) fn push_event(&mut self, event: Value) {
410 // Only route events into the persistent buffers when the event's
411 // sessionId matches the persistent page session (flatten-mode events
412 // are tagged with sessionId). Events from ad-hoc sessions (sw-logs
413 // attach, per-command live sessions) fall through and go into the
414 // general events buffer — otherwise a subsequent page `console` drain
415 // would return extension service worker logs.
416 let from_persistent_session = self
417 .persistent_session
418 .as_deref()
419 .is_some_and(|s| event["sessionId"].as_str() == Some(s));
420
421 if from_persistent_session {
422 let method = event.get("method").and_then(|v| v.as_str()).unwrap_or("");
423 match method {
424 "Network.requestWillBeSent"
425 | "Network.responseReceived"
426 | "Network.loadingFinished"
427 | "Network.loadingFailed" => {
428 self.network_events.push_back(event);
429 if self.network_events.len() > MAX_PERSISTENT_EVENTS {
430 self.network_events.pop_front();
431 }
432 return;
433 }
434 "Runtime.consoleAPICalled" | "Runtime.exceptionThrown" => {
435 self.console_events.push_back(event);
436 if self.console_events.len() > MAX_PERSISTENT_EVENTS {
437 self.console_events.pop_front();
438 }
439 return;
440 }
441 _ => {}
442 }
443 }
444 Self::push_to_buffer(&mut self.events, event);
445 }
446
447 fn push_to_buffer(events: &mut std::collections::VecDeque<Value>, event: Value) {
448 events.push_back(event);

Callers 5

send_rawMethod · 0.80
handle_dialog_helperMethod · 0.80
wait_for_event_matchMethod · 0.80
read_events_forMethod · 0.80
take_heapsnapshotFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected