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

64%

57 covered · 32 gaps

How it's covered

38 native

19 shimmed / consumed / lifecycle

Verification baseline

57 integrated

awaiting runtime verification — 0 verified so far · 32 not integrated

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

Read the matrix as two separate questions

Engine answers "can the bl engine reach this capability?" — that is the parity score. CLI / MCP / Skill 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. Skill entries record documented CLI workflows — the Skill teaches the CLI and implements no browser capability of its own. Chrome columns are evidence-gated and tracked independently from Browserlane's implementation.

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

DetailsIDCapabilityKindUser intentEngineCLIMCPSkillOn ChromeVerification
BIDI-001session.statuscommandInspect protocol health and readinessNativeNot exposedProposedN/AIntegrated · test pendingTest pending
BIDI-002session.newcommandStart a browser automation sessionNativebl startbrowser_startDocumentedIntegrated · test pendingTest pending
BIDI-003session.endcommandStop the current automation sessionNativebl stopbrowser_stopDocumentedIntegrated · test pendingTest pending
BIDI-004session.subscribecommandSubscribe the engine to browser eventsNativeProposedProposedPlannedIntegrated · test pendingTest pending
BIDI-005session.unsubscribecommandRelease browser event subscriptionsNativeProposedProposedPlannedIntegrated · test pendingTest pending
BIDI-006browser.closecommandTerminate the owned browser processLifecycle alternativebl daemon stopProposed (raw)N/AIntegrated · test pendingTest pending
BIDI-007browser.createUserContextcommandCreate an isolated named browser sessionNativebl session new <name>browser_session_createDocumentedIntegrated · test pendingTest pending
BIDI-008browser.getClientWindowscommandInspect browser window stateNativebl windowbrowser_get_windowDocumentedIntegrated · test pendingTest pending
BIDI-009browser.getUserContextscommandList isolated browser sessionsNativebl session listbrowser_session_listDocumentedIntegrated · test pendingTest pending
BIDI-010browser.removeUserContextcommandClose an isolated named browser sessionNativebl session close <name>browser_session_closeDocumentedIntegrated · test pendingTest pending
BIDI-011browser.setClientWindowStatecommandResize, move or change browser window stateNativebl window <width> <height>browser_set_windowDocumentedIntegrated · test pendingTest pending
BIDI-012browser.setDownloadBehaviorcommandChoose download behavior and destinationNativebl download dir <path>browser_download_set_dirDocumentedIntegrated · test pendingTest pending
BIDI-013browsingContext.activatecommandSwitch to a pageNativebl page switch <page>browser_switch_pageDocumentedIntegrated · test pendingTest pending
BIDI-014browsingContext.captureScreenshotcommandCapture page or element evidenceNativebl screenshotbrowser_screenshotDocumentedIntegrated · test pendingTest pending
BIDI-015browsingContext.closecommandClose a pageNativebl page closebrowser_close_pageDocumentedIntegrated · test pendingTest pending
BIDI-016browsingContext.createcommandOpen a new tab or windowNativebl page new [url]browser_new_pageDocumentedIntegrated · test pendingTest pending
BIDI-017browsingContext.getTreecommandList pages and framesNativebl pages --treebrowser_context_treeDocumentedIntegrated · test pendingTest pending
BIDI-018browsingContext.handleUserPromptcommandAccept or dismiss a browser dialogNativebl dialog accept|dismissbrowser_dialog_accept / browser_dialog_dismissDocumentedIntegrated · test pendingTest pending
BIDI-019browsingContext.locateNodescommandResolve semantic locators and durable element refsShimmedbl snapshot / bl find(partial)browser_snapshot / browser_find(partial)DocumentedIntegrated · test pendingTest pending
BIDI-020browsingContext.navigatecommandNavigate the active pageNativebl open <url>browser_openDocumentedIntegrated · test pendingTest pending
BIDI-021browsingContext.printcommandExport the page as PDFNativebl pdfbrowser_pdfDocumentedIntegrated · test pendingTest pending
BIDI-022browsingContext.reloadcommandReload the active pageNativebl reloadbrowser_reloadDocumentedIntegrated · test pendingTest pending
BIDI-023browsingContext.setBypassCSPcommandTemporarily bypass Content Security Policy for debuggingMissingNot exposedProposed (raw)N/ANot integratedNot tested
BIDI-024browsingContext.setViewportcommandSet viewport and device pixel ratioNativebl viewport <width> <height>browser_set_viewportDocumentedIntegrated · test pendingTest pending
BIDI-025browsingContext.startScreencastcommandStart video recordingNativebl screencast startbrowser_screencast_startDocumentedIntegrated · test pendingTest pending
BIDI-026browsingContext.stopScreencastcommandStop video recordingNativebl screencast stopbrowser_screencast_stopDocumentedIntegrated · test pendingTest pending
BIDI-027browsingContext.traverseHistorycommandNavigate backward or forwardNativebl back / bl forwardbrowser_back / browser_forwardDocumentedIntegrated · test pendingTest pending
BIDI-028browsingContext.contextCreatedeventKeep the page/session registry synchronizedConsumed eventInternalInternalN/AIntegrated · test pendingTest pending
BIDI-029browsingContext.contextDestroyedeventRemove closed pages and recover active-page stateConsumed eventInternalInternalN/AIntegrated · test pendingTest pending
BIDI-030browsingContext.navigationStartedeventObserve Navigation StartedMissingProposedProposedPlannedNot integratedNot tested
BIDI-031browsingContext.fragmentNavigatedeventObserve Fragment NavigatedConsumed eventProposedProposedPlannedIntegrated · test pendingTest pending
BIDI-032browsingContext.historyUpdatedeventObserve History UpdatedMissingProposedProposedPlannedNot integratedNot tested
BIDI-033browsingContext.domContentLoadedeventObserve Dom Content LoadedMissingProposedProposedPlannedNot integratedNot tested
BIDI-034browsingContext.loadeventObserve LoadConsumed eventProposedProposedPlannedIntegrated · test pendingTest pending
BIDI-035browsingContext.downloadWillBegineventWait for and identify a downloadConsumed eventbl download wait(partial)ProposedDocumentedIntegrated · test pendingTest pending
BIDI-036browsingContext.downloadEndeventWait for download completionConsumed eventbl download wait(partial)ProposedDocumentedIntegrated · test pendingTest pending
BIDI-037browsingContext.navigationAbortedeventObserve Navigation AbortedMissingProposedProposedPlannedNot integratedNot tested
BIDI-038browsingContext.navigationCommittedeventObserve Navigation CommittedMissingProposedProposedPlannedNot integratedNot tested
BIDI-039browsingContext.navigationFailedeventObserve Navigation FailedMissingProposedProposedPlannedNot integratedNot tested
BIDI-040browsingContext.userPromptClosedeventTrack prompt completion and unblock waitsConsumed eventInternalProposedN/AIntegrated · test pendingTest pending
BIDI-041browsingContext.userPromptOpenedeventDetect and inspect a browser dialogConsumed eventbl dialog wait|infobrowser_dialog_wait / browser_dialog_infoDocumentedIntegrated · test pendingTest pending
BIDI-042emulation.setForcedColorsModeThemeOverridecommandTest forced-colors renderingShimmedbl media --forced-colors <mode>(shim)browser_emulate_media(shim)DocumentedIntegrated · test pendingTest pending
BIDI-043emulation.setGeolocationOverridecommandTest a geographic locationShimmedbl geolocation <lat> <lng>(shim)browser_set_geolocation(shim)DocumentedIntegrated · test pendingTest pending
BIDI-044emulation.setLocaleOverridecommandSet Locale OverrideMissingProposedProposedPlannedNot integratedNot tested
BIDI-045emulation.setNetworkConditionscommandSet Network ConditionsMissingProposedProposedPlannedNot integratedNot tested
BIDI-046emulation.setScreenSettingsOverridecommandTest screen dimensions and DPRLifecycle alternativebl viewport(partial)browser_set_viewport(partial)DocumentedIntegrated · test pendingTest pending
BIDI-047emulation.setScreenOrientationOverridecommandSet Screen Orientation OverrideMissingProposedProposedPlannedNot integratedNot tested
BIDI-048emulation.setUserAgentOverridecommandSet User Agent OverrideMissingProposedProposedPlannedNot integratedNot tested
BIDI-049emulation.setScriptingEnabledcommandSet Scripting EnabledMissingProposedProposedPlannedNot integratedNot tested
BIDI-050emulation.setScrollbarTypeOverridecommandSet Scrollbar Type OverrideMissingProposedProposedPlannedNot integratedNot tested
BIDI-051emulation.setTimezoneOverridecommandTest time-zone-sensitive behaviorNativeNot exposedpage_clock_set_timezoneN/AIntegrated · test pendingTest pending
BIDI-052emulation.setTouchOverridecommandSet Touch OverrideMissingProposedProposedPlannedNot integratedNot tested
BIDI-053network.addDataCollectorcommandCapture request or response bodies for forensic evidenceMissingProposedProposedPlannedNot integratedNot tested
BIDI-054network.addInterceptcommandAdd a network route or mockNativeInternalNot exposedN/AIntegrated · test pendingTest pending
BIDI-055network.continueRequestcommandContinue or modify an intercepted requestNativeInternalNot exposedN/AIntegrated · test pendingTest pending
BIDI-056network.continueResponsecommandContinue ResponseMissingProposedProposedPlannedNot integratedNot tested
BIDI-057network.continueWithAuthcommandContinue With AuthMissingProposedProposedPlannedNot integratedNot tested
BIDI-058network.disownDatacommandDisown DataMissingProposedProposedPlannedNot integratedNot tested
BIDI-059network.failRequestcommandAbort a matching network requestNativeInternalNot exposedN/AIntegrated · test pendingTest pending
BIDI-060network.getDatacommandGet DataMissingProposedProposedPlannedNot integratedNot tested
BIDI-061network.provideResponsecommandFulfill a request with a mocked responseNativeInternalNot exposedN/AIntegrated · test pendingTest pending
BIDI-062network.removeDataCollectorcommandRemove Data CollectorMissingProposedProposedPlannedNot integratedNot tested
BIDI-063network.removeInterceptcommandRemove a network route or mockNativeInternalNot exposedN/AIntegrated · test pendingTest pending
BIDI-064network.setCacheBehaviorcommandSet Cache BehaviorMissingProposedProposedPlannedNot integratedNot tested
BIDI-065network.setExtraHeaderscommandSet request headers safelyShimmedInternalNot exposedN/AIntegrated · test pendingTest pending
BIDI-066network.authRequiredeventObserve Auth RequiredMissingProposedProposedPlannedNot integratedNot tested
BIDI-067network.beforeRequestSenteventObserve Before Request SentConsumed eventProposedProposedPlannedIntegrated · test pendingTest pending
BIDI-068network.fetchErroreventObserve Fetch ErrorConsumed eventProposedProposedPlannedIntegrated · test pendingTest pending
BIDI-069network.responseCompletedeventObserve Response CompletedConsumed eventProposedProposedPlannedIntegrated · test pendingTest pending
BIDI-070network.responseStartedeventObserve Response StartedMissingProposedProposedPlannedNot integratedNot tested
BIDI-071script.addPreloadScriptcommandInstall an init script before page codeNativeInternalNot exposedN/AIntegrated · test pendingTest pending
BIDI-072script.disowncommandRelease retained script handlesMissingNot exposedProposed (raw)N/ANot integratedNot tested
BIDI-073script.callFunctioncommandExecute an engine function or element operationNativeInternalInternalN/AIntegrated · test pendingTest pending
BIDI-074script.evaluatecommandEvaluate JavaScript in the active pageNativebl eval <expression>browser_evaluateDocumentedIntegrated · test pendingTest pending
BIDI-075script.getRealmscommandGet RealmsMissingProposedProposedPlannedNot integratedNot tested
BIDI-076script.removePreloadScriptcommandRemove an installed init scriptMissingNot exposedProposedN/ANot integratedNot tested
BIDI-077script.messageeventObserve MessageConsumed eventProposedProposedPlannedIntegrated · test pendingTest pending
BIDI-078script.realmCreatedeventObserve Realm CreatedMissingProposedProposedPlannedNot integratedNot tested
BIDI-079script.realmDestroyedeventObserve Realm DestroyedMissingProposedProposedPlannedNot integratedNot tested
BIDI-080storage.getCookiescommandList or retrieve cookiesNativebl cookies get|listbrowser_cookie_get / browser_cookie_listDocumentedIntegrated · test pendingTest pending
BIDI-081storage.setCookiecommandSet a cookieNativebl cookies setbrowser_cookie_setDocumentedIntegrated · test pendingTest pending
BIDI-082storage.deleteCookiescommandDelete matching cookiesNativebl cookies delete|clearbrowser_cookie_delete / browser_cookie_clearDocumentedIntegrated · test pendingTest pending
BIDI-083log.entryAddedeventInspect console output and page errorsConsumed eventProposedProposedPlannedIntegrated · test pendingTest pending
BIDI-084input.performActionscommandPerform clicks, typing, mouse, touch and drag gesturesNativebl click|type|mouse|dragbrowser_click / browser_type / browser_mouse_* / browser_dragDocumentedIntegrated · test pendingTest pending
BIDI-085input.releaseActionscommandGuarantee input-state cleanupMissingInternalInternalN/ANot integratedNot tested
BIDI-086input.setFilescommandUpload local filesNativebl upload <locator> <files...>browser_uploadDocumentedIntegrated · test pendingTest pending
BIDI-087input.fileDialogOpenedeventDetect and handle a file chooserMissingProposedProposedPlannedNot integratedNot tested
BIDI-088webExtension.installcommandInstall a browser extensionMissingProposedProposedPlannedNot integratedNot tested
BIDI-089webExtension.uninstallcommandUninstall a browser extensionMissingProposedProposedPlannedNot integratedNot tested

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.