How to fix Puppeteer ExtensionTransport tasks and session management

Puppeteer

Puppeteer now dispatches each CDP message in its own JavaScript task by scheduling dispatch with setTimeout. This ensures a separate event loop turn for every message, which browsers require. It also fixes the page attach event to occur on the tab target session.

function dispatchCDPMessage(msg) {
  // schedule the CDP message in its own task
  setTimeout(() => {
    sendCdpMessage(msg);
  }, 0);
}