Engine

Parity matrix

The complete capability matrix for WebDriver BiDi — every module, command, and event mapped against the bl engine, its user intention, CLI/MCP exposure, Skill workflow, and Chrome support.

Every WebDriver BiDi capability, tracked against the bl engine in public. Expand a row (+) for the implementation description, source evidence, arguments, risk, and verification detail.

Spec capabilities

89

65 commands · 24 events

Engine coverage

100%

89 covered · 0 gaps

How it's covered

89 native

0 shimmed / consumed / lifecycle

Verification baseline

82 integrated

82 verified · 0 awaiting runtime verification · 0 not integrated · 7 other

tracking W3C WD 2026-06-29 · last verified 2026-07-16

Read the matrix as two separate questions

Engine answers "can the bl engine reach this capability?" — that is the parity score. CLI / MCP answer "does a curated surface exist for it?" — a deliberate product decision, not a mirror of the spec. Internal in a surface column is not a gap; Missing in the engine column is. Verified on Chrome is evidence-gated: it only reads "Verified" when a direct engine parity test passed against Chrome. The expanded row carries the full record — ID, Skill workflow (the Skill teaches the CLI and implements no browser capability of its own), engine test status, Chrome's own BiDi support, and the evidence behind each claim.

Showing 89 of 89 capabilities · engine parity is tracked separately from CLI/MCP exposure

DetailsCapabilityUser intentEngineCLIMCPVerified on Chrome
session.statusInspect protocol health and readinessNativeInternalNot exposedVerified
session.newStart a browser automation sessionNativebl startbrowser_startVerified
session.endStop the current automation sessionNativebl stopbrowser_stopVerified
session.subscribeSubscribe the engine to browser eventsNativeProposedProposedVerified
session.unsubscribeRelease browser event subscriptionsNativeProposedProposedVerified
browser.closeTerminate the owned browser processNativeInternalbrowser_session_close(partial)Verified
browser.createUserContextCreate an isolated named browser sessionNativebl session new <name>browser_session_createVerified
browser.getClientWindowsInspect browser window stateNativeInternalbrowser_get_windowVerified
browser.getUserContextsList isolated browser sessionsNativebl session listbrowser_session_listVerified
browser.removeUserContextClose an isolated named browser sessionNativebl session close <name>browser_session_closeVerified
browser.setClientWindowStateResize, move or change browser window stateNativeInternalbrowser_set_windowVerified
browser.setDownloadBehaviorChoose download behavior and destinationNativebl download dir <path>browser_download_set_dirVerified
browsingContext.activateSwitch to and focus a tabNativebl tab switch <tab>browser_tab_switchVerified
browsingContext.captureScreenshotCapture page or element evidenceNativebl screenshot [url] [--full-page] [--annotate]browser_screenshotVerified
browsingContext.closeClose a tabNativebl tab closebrowser_tab_closeVerified
browsingContext.createOpen a new tab or windowNativebl tab new [url]browser_tab_newVerified
browsingContext.getTreeList tabs and inspect nested frame hierarchyNativebl tabs / bl tabs --treebrowser_tab_list / browser_context_treeVerified
browsingContext.handleUserPromptAccept or dismiss a browser dialogNativebl dialog accept [text] / bl dialog dismissbrowser_dialog_accept / browser_dialog_dismissVerified
browsingContext.locateNodesResolve semantic locators and durable element referencesNativebl find / bl map(partial)browser_find / browser_map(partial)Verified
browsingContext.navigateNavigate the active pageNativebl open <url>browser_openVerified
browsingContext.printExport the page as PDFNativebl pdfbrowser_pdfVerified
browsingContext.reloadReload the active pageNativebl reloadbrowser_reloadVerified
browsingContext.setBypassCSPTemporarily bypass Content Security Policy for debuggingNativeInternalInternalNot verified
browsingContext.setViewportSet viewport and device pixel ratioNativebl viewport <width> <height>browser_set_viewportVerified
browsingContext.startScreencastStart video recordingNativebl screencast startbrowser_screencast_startNot verified
browsingContext.stopScreencastStop video recordingNativebl screencast stopbrowser_screencast_stopNot verified
browsingContext.traverseHistoryNavigate backward or forwardNativebl back / bl forwardbrowser_back / browser_forwardVerified
browsingContext.contextCreatedKeep the tab/session registry synchronizedNativeInternalInternalVerified
browsingContext.contextDestroyedRemove closed tabs and recover active-tab stateNativeInternalInternalVerified
browsingContext.navigationStartedObserve navigation lifecycle internallyNativeInternalInternalVerified
browsingContext.fragmentNavigatedTrack same-document fragment navigationNativeInternalInternalVerified
browsingContext.historyUpdatedTrack History API state and URL updatesNativeInternalInternalVerified
browsingContext.domContentLoadedObserve DOM readiness internallyNativeInternalInternalVerified
browsingContext.loadObserve completed page navigation internallyNativeInternalInternalVerified
browsingContext.downloadWillBeginCorrelate download-start metadata internallyNativeInternalInternalPartial
browsingContext.downloadEndWait for the next download to finishNativebl download wait [--timeout <ms>]browser_wait_downloadPartial
browsingContext.navigationAbortedDetect interrupted navigation internallyNativeInternalInternalVerified
browsingContext.navigationCommittedTrack committed navigation internallyNativeInternalInternalVerified
browsingContext.navigationFailedDetect failed navigation internallyNativeInternalInternalVerified
browsingContext.userPromptClosedClear completed prompt state and unblock internal waitsNativeInternalInternalVerified
browsingContext.userPromptOpenedDetect and inspect a browser dialogNativebl dialog wait|infobrowser_dialog_wait / browser_dialog_infoVerified
emulation.setForcedColorsModeThemeOverrideTest forced-colors renderingNativebl media --forced-colors <mode>(shim)browser_emulate_media(shim)Not verified
emulation.setGeolocationOverrideTest a geographic locationNativebl geolocation <lat> <lng>(shim)browser_set_geolocation(shim)Verified
emulation.setLocaleOverrideSet Locale OverrideNativebl emulate environment --locale <tag>browser_emulate_environmentVerified
emulation.setNetworkConditionsSet Network ConditionsNativebl emulate environment --offlinebrowser_emulate_environmentVerified
emulation.setScreenSettingsOverrideTest screen dimensions and DPRNativebl viewport(partial)browser_set_viewport(partial)Verified
emulation.setScreenOrientationOverrideSet Screen Orientation OverrideNativeInternalInternalVerified
emulation.setUserAgentOverrideSet User Agent OverrideNativebl emulate environment --user-agent <text>browser_emulate_environmentVerified
emulation.setScriptingEnabledSet Scripting EnabledNativebl emulate environment --no-scriptingbrowser_emulate_environmentVerified
emulation.setScrollbarTypeOverrideSet Scrollbar Type OverrideNativeInternalInternalNot verified
emulation.setTimezoneOverrideTest time-zone-sensitive behaviorNativebl emulate environment --timezone <zone>page_clock_set_timezone; browser_emulate_environmentVerified
emulation.setTouchOverrideSet Touch OverrideNativeInternalInternalVerified
network.addDataCollectorCapture request or response bodies for forensic evidenceNativeInternalInternalVerified
network.addInterceptAdd a network route or mockNativeInternalInternalVerified
network.continueRequestContinue or modify an intercepted requestNativeInternalInternalVerified
network.continueResponseContinue or modify an intercepted responseNativeInternalInternalVerified
network.continueWithAuthAnswer an intercepted authentication challengeNativeInternalInternalVerified
network.disownDataRelease a piece of collected network dataNativeInternalInternalVerified
network.failRequestAbort a matching network requestNativeInternalInternalVerified
network.getDataRead a collected request or response bodyNativeInternalInternalVerified
network.provideResponseFulfill a request with a mocked responseNativeInternalInternalVerified
network.removeDataCollectorRemove a network data collectorNativeInternalInternalVerified
network.removeInterceptRemove a network route or mockNativeInternalInternalVerified
network.setCacheBehaviorBypass or restore the network cacheNativeInternalInternalVerified
network.setExtraHeadersSet request headers safelyNativeInternalInternalVerified
network.authRequiredObserve an intercepted authentication challengeNativeInternalInternalVerified
network.beforeRequestSentObserve a request before it is sentNativeInternalInternalVerified
network.fetchErrorObserve a failed or aborted network requestNativeInternalInternalVerified
network.responseCompletedObserve a completed network responseNativeInternalInternalVerified
network.responseStartedObserve a response as its headers arriveNativeInternalInternalVerified
script.addPreloadScriptInstall an init script before page codeNativeInternalInternalVerified
script.disownRelease retained script handlesNativeInternalInternalVerified
script.callFunctionExecute an engine function or element operationNativeInternalInternalVerified
script.evaluateEvaluate JavaScript in the active pageNativebl eval <expression>browser_evaluateVerified
script.getRealmsEnumerate JavaScript realmsNativeInternalInternalVerified
script.removePreloadScriptRemove an installed init scriptNativeInternalInternalVerified
script.messageReceive channel messages from page scriptNativeInternalInternalVerified
script.realmCreatedTrack realm creationNativeInternalInternalVerified
script.realmDestroyedTrack realm destructionNativeInternalInternalVerified
storage.getCookiesList or retrieve cookiesNativebl cookies get|listbrowser_cookie_get / browser_cookie_listVerified
storage.setCookieSet a cookieNativebl cookies setbrowser_cookie_setVerified
storage.deleteCookiesDelete matching cookiesNativebl cookies delete|clearbrowser_cookie_delete / browser_cookie_clearVerified
log.entryAddedInspect console output and page errorsNativebl console list|wait|clearbrowser_console_list / browser_console_wait / browser_console_clearVerified
input.performActionsPerform clicks, typing, mouse, touch and drag gesturesNativebl click|type|mouse|dragbrowser_click / browser_type / browser_mouse_* / browser_dragVerified
input.releaseActionsGuarantee input-state cleanupNativeInternalInternalVerified
input.setFilesUpload local filesNativebl upload <locator> <files...>browser_uploadVerified
input.fileDialogOpenedDetect and handle a file chooserNativeInternalInternalVerified
webExtension.installInstall a browser extensionNativeInternalInternalVerified
webExtension.uninstallUninstall a browser extensionNativeInternalInternalVerified

Capability names link to their section in the tracked specification snapshot; source evidence cites the engine file and line the audit verified (the engine is closed-source, so the citation itself is the evidence). See the status model for what each label means.