mdn / browser-compat-data

This repository contains compatibility data for Web technologies as displayed on MDN
https://developer.mozilla.org
Creative Commons Zero v1.0 Universal
4.96k stars 1.99k forks source link

Get WebDriver BiDi compatibility data added #20207

Open whimboo opened 1 year ago

whimboo commented 1 year ago

What type of issue is this?

Missing compatibility data

What information was incorrect, unhelpful, or incomplete?

As of now we have WebDriver classic implementations rarely supported: https://github.com/mdn/browser-compat-data/tree/main/webdriver/commands

With the rise of WebDriver BiDi I would like to get better browser compat data into this repository.

My first question would be how it should be organized. Given that the BiDi specification builds on top of classic I was thinking of having a top-level webdriver folder and then 2 sub-folders; one for classic and one for bidi. But I'm not sure if that can easily be changed. So what would be your proposal?

What browsers does this problem apply to, if applicable?

Firefox

What did you expect to see?

Nothing to see yet but I would like to get new compat data added for Firefox, with the hope that Chrome will follow-up as well.

Did you test this? If so, how?

No

Can you link to any release notes, bugs, pull requests, or MDN pages related to this?

Right now I maintain a WebDriver BiDi status spreadsheet manually. And by moving data to this repository it could be very much simplified.

@chrisdavidmills could you still help us with the initial decision? Thanks!

Do you have anything more you want to share?

No response

MDN URL

No response

MDN metadata

No response

queengooborg commented 1 year ago

Hey @whimboo, thanks for opening an issue regarding this! WebDriver is a category that we have hardly touched since migration from the wiki (assuming it's been modified at all). It would be great to have some assistance with that category!

What is the relation between WebDriver "classic" and WebDriver BiDi? It sounds like BiDi is like a new major version and a direct successor to the classic version, am I correct in assuming this?

whimboo commented 1 year ago

WebDriver classic lays the foundation for the remote automation protocol, which is widely adopted by different frameworks for automation and testing. It's based on the HTTP protocol and as such only allows simple command / response scenarios.

WebDriver BiDi (bi-directional) instead is built on-top of a WebSocket connection and as such also allows the browser to send messages to the client whenever a certain event in the page under automation has occurred.

Clients for WebDriver classic can opt-in for BiDi and then can use both classic and/or BiDi for the required tasks. The future is clearly WebDriver BiDi and we are working towards in making all the classic APIs available in BiDi as well, so that classic could be deprecated in the future. As such it is a separate protocol but uses terms from classic and is also able to exchange data with classic (eg. DOM Element references).

As of now we are still going to push fixes to classic but most likely no new big feature. That means both specifications are active.

I'm looking forward to how it could be structured on MDN. Thanks!

whimboo commented 1 year ago

@queengooborg do you know when the meeting will happen when this issue gets discussed? If possible I would like to participate. Thanks.

queengooborg commented 1 year ago

We host bi-weekly meetings at 10am London / 2am Pacific, with the next one being on July 11th. Feel free to send me an email at queen@gooborg.com and I can send you an invite!

We may or may not discuss this during that meeting, as we have other priorities as well, but I've got it added to the agenda!

whimboo commented 1 year ago

That's sad but I won't be around for that meeting. In case you do not discuss it I'm happy to join one of the next ones instead.

queengooborg commented 1 year ago

Hey @whimboo -- this topic hasn't really come up during the BCD calls, so I'm just going to make a recommendation for what I think we should do:

For now, let's leave the commands folder as-is, to avoid creating a major semver bump. Later on, we can consider renaming it to classic or otherwise updating it.

Then, let's add a new bidi subfolder, which will contain all the WebDrive BiDi data!

whimboo commented 1 year ago

@queengooborg thanks. So you are saying that we should have not two distinct top-level folders for these two protocols but combine them both under webdriver?

whimboo commented 1 year ago

@queengooborg thanks. So you are saying that we should have not two distinct top-level folders for these two protocols but combine them both under webdriver?

CC'ing @Elchi3 as well in case for additional feedback to this question.

Elchi3 commented 1 year ago

I think the proposal is to have:

And later (if needed) to move the classic commands to a classic folder:

Would that work?

whimboo commented 11 months ago

@Elchi3 this sounds good! Lets see what we can do here. For now I've filed https://github.com/w3c/webdriver-bidi/issues/619 to maybe allow us to auto-generate the JSON files based on the CDDL definitions in the WebDriver BiDi spec. I'll put this as a discussion item for our next monthly WebDriver meeting.