Skip to Content
CDP Domain Coverage

CDP Coverage Snapshot

Use the live bridge snapshot first:

foxbridge doctor

Current main snapshot:

  • 662 upstream CDP methods in the bundled protocol snapshot
  • 89 implemented methods
  • 203 stubbed compatibility methods
  • 370 missing methods
  • 8 foxbridge-only extensions

The tables below describe the major domains foxbridge actively handles today. They are no longer a claim that foxbridge has “13 fully implemented CDP domains” across the full upstream protocol.

Major Supported Areas

Target

MethodJuggler Mapping
setDiscoverTargetsNo-op (Juggler auto-discovers)
setAutoAttachEmits pending attachedToTarget events
createTargetBrowser.newPage
closeTargetPage.close
createBrowserContextBrowser.createBrowserContext
disposeBrowserContextBrowser.removeBrowserContext
getTargetsSession manager enumeration
attachToTargetEmit page attachment pair
activateTargetNo-op
getBrowserContextsSession manager enumeration
getTargetInfoSession lookup

Page

MethodNotes
navigateMaps loaderId from Juggler navigationId
reloadSynthetic lifecycle events emitted
closeProactive targetDestroyed emission
captureScreenshotClip/format/quality support
printToPDFReturns IO stream handle for Puppeteer v24+
getFrameTreeBuilt from session state
createIsolatedWorldTracked for re-emission on navigation
setContentVia Runtime.evaluate with document.open/write/close
getLayoutMetricsVia JS document.documentElement measurements
addScriptToEvaluateOnNewDocumentPass-through
removeScriptToEvaluateOnNewDocumentPass-through
handleJavaScriptDialogDialog ID tracking
setBypassCSPNo-op
bringToFrontNo-op
stopLoadingNo-op
getNavigationHistoryVia JS history.length
setExtraHTTPHeadersBrowser.setExtraHTTPHeaders
setDownloadBehaviorNo-op
getResourceTreeMinimal frame tree
setLifecycleEventsEnabledNo-op (always enabled)

Runtime

MethodNotes
evaluateawaitPromise via async IIFE wrapping
callFunctionOnobjectId pass-through, $eval combine
getPropertiesRuntime.getObjectProperties
releaseObjectRuntime.disposeObject
releaseObjectGroupNo-op
addBindingNo-op
discardConsoleEntriesNo-op
runIfWaitingForDebuggerNo-op

DOM

MethodNotes
getDocumentVia document.documentElement evaluation
querySelectorReturns nodeId with backendNodeId
querySelectorAllReturns array of nodeIds
describeNodeFull node description with attributes
resolveNodeResolve backendNodeId to remote object
getBoxModelElement bounding rect
getContentQuadsElement quad coordinates
getOuterHTMLElement outer HTML
getAttributesElement attributes array
scrollIntoViewIfNeededelement.scrollIntoView()
focuselement.focus()
setFileInputFilesFile input injection
removeNodeelement.remove()
setAttributeValueelement.setAttribute()

Input

MethodJuggler Method
dispatchMouseEventPage.dispatchMouseEvent
dispatchKeyEventPage.dispatchKeyEvent
insertTextPage.insertText
dispatchTouchEventPage.dispatchTouchEvent

Network

MethodJuggler Method
setCookiesBrowser.setCookies
getCookiesBrowser.getCookies
deleteCookiesBrowser.clearCookies (filtered)
clearBrowserCookiesBrowser.clearCookies
setExtraHTTPHeadersBrowser.setExtraHTTPHeaders
setRequestInterceptionBrowser.setRequestInterception
setUserAgentOverrideBrowser.setUserAgentOverride
setCacheDisabledNo-op
emulateNetworkConditionsNo-op
getResponseBodyPass-through

Fetch

MethodJuggler Method
enableBrowser.setRequestInterception
disableBrowser.setRequestInterception(false)
continueRequestBrowser.continueInterceptedRequest
fulfillRequestBrowser.fulfillInterceptedRequest
failRequestBrowser.abortInterceptedRequest
getResponseBodyBrowser.getResponseBody
continueWithAuthBrowser.handleAuthRequest
continueResponseBrowser.continueInterceptedRequest

Emulation

MethodNotes
setGeolocationOverrideBrowser.setGeolocationOverride
setUserAgentOverrideBrowser.setUserAgentOverride
setTimezoneOverrideBrowser.setTimezoneOverride
setLocaleOverrideBrowser.setLocaleOverride
setDeviceMetricsOverrideBrowser.setViewportSize
setTouchEmulationEnabledBrowser.setTouchOverride
setEmulatedMediaPage.setEmulatedMedia
setScrollbarsHiddenNo-op
setDefaultBackgroundColorOverrideNo-op
setScriptExecutionDisabledNo-op

Other Implemented

DomainMethods
AccessibilitygetFullAXTree
PerformancegetMetrics (via JS performance.timing)
IOread, close (PDF streaming)
Consoleenable, disable
BrowsergetVersion, close, getWindowForTarget, setWindowBounds

Stub Domains (No-Op Success)

These domains return {} for all methods. Puppeteer and other clients call them but don’t require real functionality:

DomainPurpose
DebuggerJS debugging
ProfilerCPU profiling
HeapProfilerHeap snapshots
MemoryMemory info
ServiceWorkerSW management
CacheStorageCache API
IndexedDBIDB inspection
LogLog entries
SecurityCertificate info
CSSStylesheet inspection
OverlayHighlight overlays
DOMStoragelocalStorage inspection
WebAuthnWebAuthn testing
MediaMedia playback
AuditsBest practices
InspectorDevTools internal
DatabaseWeb SQL
BackgroundServiceBackground fetch/sync
CastCast devices
DeviceAccessDevice permissions

Any .enable or .disable call on an unrecognized domain also returns success.


See also

Last updated on