W3C

– DRAFT –
WebDriver-BiDi

13 April 2022

Attendees

Present
brwalder, jdescottes, jgraham, patrickangle, whimboo, whimboo1
Regrets
-
Chair
-
Scribe
jgraham

Meeting minutes

RRSAgent: Make logs public

RRSAgent: Make minutes

BrowsingContext.getTree parameter rename

github: https://github.com/w3c/webdriver-bidi/pull/190

Proposal is to rename the return value parameter to 'root' since it's the root of the tree

jgraham: Any concerns? Otherwise review on GitHub would be appreciated.

whimboo1: If approved I can make the relevant test changes.

Actions

github: https://github.com/w3c/webdriver-bidi/pull/175

jgraham: Proposal for actions is now up and not a draft. Changes in WebDriver spec were merged. One open question: how to handle the element origins without using the magic web element reference identifier from webdriver. Proposal is to have a {type: "element", sharedId: <id>} object, and for simplicity also support it in WebDriver classic.

jgraham: Second problem is where to keep state. Current setup is state per session but brwalder proposed state per top-level context

brwalder: State per top-level context would make it clearer whether other contexts should get events when e.g. the pointer moves. This is also more generic and closer to puppeteer.

jgraham1: Sounds closer to the gecko model at present anyway

brwalder: That's also how things work in Chromium.

jgraham1: Sounds like we should implement that model. I'll make a PR against the WebDriver classic spec. Although it's a breaking change it seems like it's closer to the model that people are actually implementing.

screenshots

github: https://github.com/w3c/webdriver-bidi/pull/183

jgraham: Proposal is a minimum viable screenshot implementation with just a single format and no full-page support yet.

jgraham: Any concerns with the API design or the feature?

whimboo1: Which features are we going to have? If there are goign to be a lot of new features in the future we might want a new module. How does it compare to CDP?

jgraham: I think we're unlikely to end up with lots of commands here; maybe one more for captureVideo. Everything else could be parameters. So not a lot of API surface.

User Prompt Handling

github: https://github.com/w3c/webdriver-bidi/issues/191

whimboo1: We can trigger prompts via BiDi at the moment, but don't have any handling at the moment. In HTTP we have a prompt handling capability to auto-close prompts. Do we want to keep using this approach, or do something else?

brwalder: Want to consider making this more event driven. Rather than having to include parameters per command or include a capability, it might be more useful to have an event that fires when a prompt opens to accept or dismiss a prompt. We could run those whilst other commands are still pending.

whimboo1: Similar to CDP, with Page.javascriptDialogOpening + command

<whimboo1> Types of prompts in CDP: https://chromedevtools.github.io/devtools-protocol/tot/Page/#type-DialogType

jgraham: Yes to events. Do we also want to have a global default handler so that clients don't have to handle these explicitly all the time?

brwalder: People with classic WebDriver tests might not be prepared to go all in on events yet, so supporting the capability might be a good idea.

jgraham: Users with existing content will likely still be using HTTP; that feature won't go away there. But it would be interesting to hear from client authors if they want to implement this themselves or if it makes a big difference to push it to the browser side.

whimboo: How do HTTP Auth dialogs work in CDP? We didn't implement this for WebDriver classic.

brwalder: Network request interception is used for HTTP Auth, not interacting with the dialog. Dealing with HTTP layer the request goes to CDP first and then it can provide credentials. If nothing else provides credentials then the dialog is a fallback.

jgraham: I think we should follow that model closely for BiDi

brwalder: Dialog for HTTP auth credentials might not be specified, just common behaviour.

jgraham1: Agreed that we shouldn't depend on that being a dialog

RRSAgent: make minutes

MikeSmith: Do you know why the minutes are mostly missing? Seems like RRSAgent has the full logs at least.

Minutes manually created (not a transcript), formatted by scribe.perl version 185 (Thu Dec 2 18:51:55 2021 UTC).

Diagnostics

Succeeded: s/spec/test/

Maybe present: jgraham1, MikeSmith, RRSAgent