Skip to content

fix(driver): strip BiDi webSocketUrl capability before forwarding (fix #15415) - #15605

Open
tenderdeve wants to merge 1 commit into
tauri-apps:devfrom
tenderdeve:fix/15415-strip-bidi-capabilities
Open

tenderdeve wants to merge 1 commit into
tauri-apps:devfrom
tenderdeve:fix/15415-strip-bidi-capabilities

Conversation

@tenderdeve

Copy link
Copy Markdown
Contributor

Closes #15415.

WebdriverIO 9+ defaults to WebDriver BiDi and auto-injects webSocketUrl: true into alwaysMatch to negotiate it. tauri-driver forwards capabilities verbatim to the native driver but does not proxy the BiDi websocket, and the WebKitWebDriver bundled with pre-2.46 WebKitGTK (current Ubuntu LTS / noble) rejects sessions that request BiDi — so session creation fails for every wdio 9+ user unless they manually set wdio:enforceWebDriverClassic.

Since tauri-driver has no BiDi support to forward to in the first place, webSocketUrl can never be honored. Strip it from alwaysMatch and every firstMatch entry in map_capabilities so the inner driver gets a capability set it accepts. BiDi is additive, so clients fall back to classic WebDriver seamlessly — no regression for WebKit ≥2.46.

Added a unit test covering the strip on both alwaysMatch and firstMatch.

Note: tauri-driver's server module is #[cfg(any(target_os = "linux", windows))], so the test does not build on a macOS host; verified with cargo check/clippy -p tauri-driver --tests --target x86_64-unknown-linux-gnu (clean) and it runs under CI on Linux/Windows.

@tenderdeve
tenderdeve requested a review from a team as a code owner June 29, 2026 10:17
@github-actions

Copy link
Copy Markdown
Contributor

Package Changes Through 85fa984

There are 1 changes which include tauri-driver with patch

Planned Package Versions

The following package releases are the planned based on the context of changes in this pull request.

package current next
tauri-driver 2.0.6 2.0.7

Add another change file through the GitHub UI by following this link.


Read about change files or the docs at github.com/jbolda/covector

…tauri-apps#15415)

WebdriverIO 9+ defaults to WebDriver BiDi and auto-injects `webSocketUrl: true`
into the requested capabilities. tauri-driver forwards capabilities verbatim to
the native driver but does not proxy the BiDi websocket, and the WebKitWebDriver
bundled with pre-2.46 WebKitGTK (current Ubuntu LTS) rejects sessions that
request BiDi, so session creation failed for wdio 9+ users.

Strip `webSocketUrl` from `alwaysMatch` and every `firstMatch` entry in
`map_capabilities`. BiDi is additive, so clients fall back to classic WebDriver.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

tauri-driver v2.0.6: BiDi capabilities not stripped when forwarding to WebKitWebDriver (wdio 9+ rejected)

1 participant