Chrome DevTools Protocol (CDP) to protokół WebSocket-based używany przez Chrome DevTools (DevTools w Chromium są napisane w HTML/CSS/JS i komunikują się z browser przez CDP) — oraz przez wszystkie narzędzia browser automation.
Domains (kategorie metod):
Page— navigation, screenshots, lifecycle eventsDOM— query elements, modify DOMNetwork— intercept requests, modify responses, throttleRuntime— execute JS, evaluate expressionsInput— dispatch mouse/keyboard eventsBrowser— manage browser-level stateStorage— cookies, localStorage, IndexedDBPerformance— metrics, traces
Łącznie ~150 metod, ~200 events, ~500 typów. Largest browser protocol w użyciu.
Praktyczne implikacje:
- Playwright i Puppeteer pod spodem to wrappery na CDP — można dropować do raw CDP gdy chcesz coś nietypowego
- Detection przez anti-bot: użycie CDP ma specyficzne signatures (Runtime.evaluate w określonych miejscach, certain event sequences)
- Wszystkie inne Chromium-based browsers (Edge, Brave, Vivaldi, Arc) wspierają CDP
- Firefox ma własny protocol (Marionette), Playwright tłumaczy oba pod jednym API
Dokumentacja: chromedevtools.github.io/devtools-protocol