Closed Bug 1753997 Opened 10 months ago Closed 7 months ago

Enable WebDriver BiDi on release channels

Categories

(Remote Protocol :: WebDriver BiDi, enhancement, P2)

enhancement
Points:
1

Tracking

(relnote-firefox 101+, firefox101 fixed, firefox102 fixed)

RESOLVED FIXED
102 Branch
Tracking Status
relnote-firefox --- 101+
firefox101 --- fixed
firefox102 --- fixed

People

(Reporter: whimboo, Assigned: jdescottes)

References

(Blocks 1 open bug, )

Details

(Whiteboard: [bidi-m3-mvp])

Attachments

(3 files, 1 obsolete file)

Right now the WebDriver BiDi protocol as handled by the Remote Agent is only enabled for Nightly and pref'ed off on release channels:

https://searchfox.org/mozilla-central/rev/072f9e6b7f10a00e12d0a02ac713431d0a7ee368/modules/libpref/init/all.js#4455-4463

Over the last half year we've made good progress on the project and implemented the framework and on-top the first commands and events. Any code addition and change is covered by the wdspec tests.

Given that we would like to enable the WebDriver BiDi protocol on release channels. At the same time this is also required in our current Milestone 3 to get Selenium support added (bug 1753991). Their requirement is to have the protocol officially enabled in such builds.

Freddy, is there a need for an additional security review here? The WebDriver BiDi protocol uses like CDP the Remote Agent's code base including the handling of WebSockets for clients to connect, and all is enabled on release for quite some time. The only difference here is the protocol implementation, means handling of command and events.

Flags: needinfo?(fbraun)

Redirecting to Dan, who's taking care of security reviews. Happy to join the session though.

Flags: needinfo?(fbraun) → needinfo?(dveditz)
See Also: → 1754738
Depends on: 1741854
Depends on: 1759994
Depends on: 1759998
Keywords: meta
Priority: -- → P2
Summary: Enable WebDriver BiDi on release channels → [meta] Enable WebDriver BiDi on release channels
Whiteboard: [bidi-m3-mvp]
Depends on: 1719505
Flags: needinfo?(dveditz)

Dan, if you could find the time to send us the final email covering all the aspects of the security review meeting that would be kinda appreciated! Thanks a lot.

Flags: needinfo?(dveditz)
Keywords: meta
Priority: P2 → P3
Summary: [meta] Enable WebDriver BiDi on release channels → Enable WebDriver BiDi on release channels
Points: --- → 1
Priority: P3 → P2

Beside getting bug 1719505 fixed, there is only a single item left to do before we can enable the WebDriver Bidi protocol on release channels. And this is related to our documentation, which should clearly express that the used WebSocket connections aren't using TLS and as such the payload of packages can be observed. We will do this update together with necessary patches to enable BiDi on beta and release.

Flags: needinfo?(dveditz)
Assignee: nobody → jdescottes
Status: NEW → ASSIGNED

I put all the patches to enable WebDriver BiDi on release in changes planned given we're still waiting for Bug 1719505 before we can land that.

But for now the changes include:

If there's something else to take into account here, let me know.

Depends on: 1766802
Attachment #9274084 - Attachment is obsolete: true

Although it should be safe to land, the last dependency landed really close to merge day.
I prefer to wait after merge day to land and ask for an uplift afterwards.

Blocks: 1743116
Pushed by jdescottes@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/92db533a91b5
[remote] Enable WebDriver BiDi on all channels r=webdriver-reviewers,whimboo
https://hg.mozilla.org/integration/autoland/rev/c16a2b89b66a
[wdspec] Enable all BiDi wdspec tests on beta and release channels r=webdriver-reviewers,whimboo
https://hg.mozilla.org/integration/autoland/rev/b822baacbb16
[remote] Add documentation about remote hosts and origins for RemoteAgent r=webdriver-reviewers,jgraham
Status: ASSIGNED → RESOLVED
Closed: 7 months ago
Resolution: --- → FIXED
Target Milestone: --- → 102 Branch

As discussed we should wait with any uplift request until the regression bug 1767387 has been fixed.

Depends on: 1767387

Comment on attachment 9274080 [details]
Bug 1753997 - [remote] Enable WebDriver BiDi on all channels

Beta/Release Uplift Approval Request

  • User impact if declined: Selenium would like to start using WebDriver BiDi for Firefox to give access to console logs. Since they rely on the release channel, we want to enable WebDriver BiDi on the release channel to avoid blocking them here. Otherwise they would have to fallback to our partial CDP implementation which we want to phase out.

We should also uplift the followup Bug 1767387, which contains improvements to the initialization of WebDriver BiDi.
Bug 1753997 should be uplifted first and Bug 1767387 second to avoid conflicts.

The patches seem to rebase fine on the current beta (pushed to try at https://treeherder.mozilla.org/jobs?repo=try&revision=b58d5720792e6c6e8db94917f3fde19e1aa53948 for reference)

  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: Bug 1767387
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): The patches in bug 1753997 are mostly configuration change. We are updating the preference remote.active-protocols to have the same value on all channels (now set to 3 everywhere). This effectively means that the WebDriver BiDi protocol will be started when --remote-debugging-port is passed to Firefox. We are also updating the manifests for all the related tests to make sure they also run on beta and release, as well as the documentation.

Bug 1767387 improves the stability of the startup of Remote Agent by making sure to use events available on all platforms. While this is more impactful than the patches on Bug 1753997, we are mostly moving the startup of the remote protocol during the initialization of the browser.

All the relevant code is heavily tested via xpcshell tests, browser mochitests and wdspec tests.

Most importantly, those patches only impact users passing --remote-debugging-port to start Firefox and should have no effect for regular users.

  • String changes made/needed:
  • Is Android affected?: Yes
Attachment #9274080 - Flags: approval-mozilla-beta?
Attachment #9274081 - Flags: approval-mozilla-beta?
Attachment #9274085 - Flags: approval-mozilla-beta?

Comment on attachment 9274080 [details]
Bug 1753997 - [remote] Enable WebDriver BiDi on all channels

Approved for 101.0b3.

Attachment #9274080 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9274081 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Attachment #9274085 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

WebDriver BiDi was enabled on all channels in Firefox 101 (see also spec for more details about the protocol [1]). Thanks to this, third party tools such as Selenium will now be able to use WebDriver BiDi to control / interact with Firefox.

[1] https://w3c.github.io/webdriver-bidi/

relnote-firefox: --- → ?

Added to the final Fx101 relnotes.

You need to log in before you can comment on or make changes to this bug.