Opening this issue to discuss whether it would be possible for us to collect compatibility information for WebDriver-(BiDi). cc @whimboo BCD issue: https://github.com/mdn/browser-compat-data/issues/20207 WebDriver-Bidi issue: https://github.com/w3c/webdriver-bidi/issues/619 Currently, the data lives in a spreadsheet: https://docs.google.com/spreadsheets/d/1bkiPU5eDBCqFkx5p_VSBx_OK8gy9TeHRKQVPHKMATGQ/edit?pli=1&gid=1960491400#gid=1960491400 As usual, we need two things, (1) we need a way to get to know about (new) features and (2) we need a way to test these features using minimal test code to determine if a feature works in a browser. ### (1) Getting to know about features For Web APIs, we find out about new API via webref/idl files and our custom idls. For WebDriver-Bidi there seem to be CDDL files analog to this. - They can be generated from the spec at https://github.com/w3c/webdriver-bidi. - Here's a gist that shows an example https://gist.github.com/Elchi3/13c08b12773dc5b5a58e5cf19d0f4238 - There is a CDDL parser: https://www.npmjs.com/package/cddl - Or you can get TypeScript directly: https://www.npmjs.com/package/cddl2ts - With this information we could generate a list of BCD features as discussed in https://github.com/w3c/webdriver-bidi/issues/619 Q: Is the same available for WebDriver-classic or should we have a custom list of features (which would live in https://github.com/openwebdocs/mdn-bcd-collector/tree/main/custom)? Q: If we don't want to get in the business of parsing CDDLs now, we could make custom list of features which will have to update manually as the spec changes. ### (2) Testing WebDriver features and determining version numbers Once we have (1) in place, we know which sorts of webdriver(-bidi) features exist and now we need to collect compat information, that is: in which browser versions do we have support for these features? - See https://wpt.fyi/results/webdriver for WPT tests. (they are probably not minimal enough, though, according to Henrik) - Need to create a new test builder for webdriver in https://github.com/openwebdocs/mdn-bcd-collector/tree/main/test-builder - Might need [custom](https://github.com/openwebdocs/mdn-bcd-collector/blob/main/custom/tests.yaml) tests for certain WebDriver features Q: Which sort of tests come to mind here? I'm assuming there is no simple way to just call a method like `navigator.webdriver.supports('foo')` (fantasy API, analog to `CSS.supports('foo')`) and determine support? How would we tests WebDriver features? Once (2) is in place as well, we can create BCD features with compatibility data collected and we can then send that to the BCD repository on a regular basis.