w3c / webdriver-bidi

Bidirectional WebDriver protocol for browser automation
https://w3c.github.io/webdriver-bidi/
356 stars 40 forks source link

Update goals in the explainer document #15

Open jgraham opened 4 years ago

jgraham commented 4 years ago

Copying in feedback from email (it may make sense to split this into multiple issues if any of this is contraversial):

christian-bromann commented 4 years ago
  • we want a standard featureset that covers all the important cross-browser use cases

Can we define this standard feature set as a goal too? If I remember correctly there was a general consensus around the fact that the WebDriver spec needs to add more capabilities to meet todays developer needs. While the current BiDi discussion is more around the transport layer I wonder if we could add functionality on top of the current spec leveraging the new protocol capabilities. In my point of view the current protocol lacks in ability to:

If there would be a scope for such feature set in the explainer it would help participants to chime in with proposals. Even if the consensus is not to add anything new but agreeing on including such capabilities later on, proposals can be written with the new BiDi structure in mind.

jgraham commented 4 years ago

Can we define this standard feature set as a goal too?

Fully agree that we should consider features on top of WebDriver 1.0 to be in-scope; note the first point above "we should be looking to provide the functionality that allows existing remote-automation libraries with browser-specific backends (or browser-specific features) to use a standard backend. This includes e.g. puppeteer, playwright, cypress, selenium, saucelabs.".

Concretely I suggest we proceed by splitting the new spec work up into several documents covering different parts of the stack e.g. core, script execution, logging, etc. Where there are not so many cross-dependencies that will allow us to iterate faster with different people working on different parts of the protocol. Of course care will be needed to ensure we end up with a coherent design, so careful review and refactoring will be required. But it avoids head-of-line blocking (means we don't need the whole core done before we can have a proposal for how logging should work, for example).

foolip commented 4 years ago

There was some discussion of this in the WebDriver/BiDi 2020-04-20 meeting, linking here for ease of discovery. The discussion was short, and mostly about the "easy mapping to native devtools protocol" goal. Not all implementations will necessarily be build on top of a devtools protocol, so this isn't an intrinsic goal.

However, when the implementation is layered that way there will be considerations about whether to support concurrent use of both protocols (for ease of transition), whether IDs are the same, etc.

foolip commented 4 years ago

The goals are now in https://github.com/w3c/webdriver-bidi/blob/master/explainer.md#goals (no change, just moved around)