Meeting minutes
<jgraham> RRSAgent: This is webdriver
https://browserstack.zoom.us/j/93609386981?pwd=dmdsK29YRVVxdXFTU2tXWjhnNnJvQT09
<jgraham> RRSAgent: make logs public
<jgraham> RRSAgent: publish minutes v2
for those just joining the channel, the meeting link is https://browserstack.zoom.us/j/93609386981?pwd=dmdsK29YRVVxdXFTU2tXWjhnNnJvQT09
if your colleagues need the link please share
<foolip> I've updated https://www.w3.org/wiki/WebDriver/2020-10-BiDi with the new URL
Follow ups from previous meetings
Automatedtester: No items to be discussed
Add initial support for subscribing to events
<foolip> https://w3c.github.io/webdriver-bidi/#events is probably the best place to start reading what landed
Foolip: can jgraham explain the model here please
jgraham: This is about enable events
<foolip> Then there's https://w3c.github.io/webdriver-bidi/#command-session-subscribe and -unsubscribe which are the other important bits.
jgraham: the tricky thing here is around timing especially around the creation of the browsing context
… in automation we have a small assumption that we have full control of the browser
… which might not be correct
… and we want to get to a stage to get events when targets are created
… and then be able to filter events based on criteria
… we have a way of enabling events of a target or for global events
… we have a global event map that tell you what has been enabled
… [discusses implementation details on how browsing context items could be done]
… the way you works in the spec is that events constantly happen and then they are passed up to the browsing context, filtered, and the up to the parent process. I know implementations will be slightly different but the spec has to be written this way due to how we hook into other specs
… if this is concerning can you raise an issue or ask a question now.
foolip: whats the significance of the tri state "thing"
jgraham: There are cases that collecting events can be inflexible [describes frames and sub frames and how they might not get all events]
simonstewart: how do you unsubscribe from events?
jgraham: there currently is a way to do that but there could be
foolip: if you wanted to disable events for a frame can be tricky. If there are race conditions or challenges with the current model can you raise an issue
jgraham: there may be use cases that are not address but we can iterate over this in the future.
<foolip> Is everyone else using a native app for this, or another browser?
Value serialization
jgraham: I have put a PR up for value serialization up
… for JavaScript objects
<foolip> What I was saying, in short: It'd be great to have feedback on the event subscription model for issues we can foresee, but impl experience will likely reveal what needs to change here. Also, I suspect there's a race when disabling events for a subframe, but will file an issue.
jgraham: I would encourage people to look at it and make comments
… it is CDP-esque but with a lot of the legacy issues from CDP removed
… the CDP issue of serializing an Array is gone so that you don't have to do N+1 to serialize an array where N is the number in the array
https://github.com/w3c/webdriver-bidi/pull/57
simonstewart: Is there any reason why we didnt put NodeID into the Nodes property
jgraham: there is something there already
simonstewart: and this is compatible with webdriver http?
jgraham: yes
brwalder: I agree that the serialization should have special attributes to work with classic webdriver. We may need to flesh out things that arent serialised in webidl. We may need to handle non-node webidl serialisation. Is there a plan?
<foolip> Well, I'm still joined in the browser, so it won't be better.
jgraham: there are definitely other types that we may want to serial. In the original PR there were generators that could be returned but I removed that
… There are going to be more platform objects that we should do something special. We're at the stage that it is easy to add those items
… we can fall back to serialising an object and just serialise all their properties
Targets, browsing contexts and realms
jgraham: This is a question and not a status update
… an outstanding question is "How do we want to talk about browsing context and realms" in terms of knowing what is there
… it makes sense to do something that is broadly compatible with CDP so we can migrate that over
… e.g. Page is a browsing context and it's also the JS execution context
… and we need to get the tree of browsing contexts below a page
<foolip> Is there an issue that summarizes this?
<brwalder> https://github.com/w3c/webdriver-bidi/issues/18
<brwalder> Also https://github.com/w3c/webdriver-bidi/issues/42
<jgraham> GitHub: https://github.com/w3c/webdriver-bidi/issues/18
jgraham: Issue 18 is the place to follow up if people dont have questions or opinions right now.
Need WebSocket library for WebDriver BiDi tests
<foolip> foolip: as a heads up, https://github.com/web-platform-tests/wpt/issues/26015 was filed yesterday, and anyone who cares about how BiDi ends up being testing in web-platform-tests might want to follow or comment there.
foolip: as a heads up, https://github.com/web-platform-tests/wpt/issues/26015 was filed yesterday, and anyone who cares about how BiDi ends up being testing in web-platform-tests might want to follow or comment there.
AutomatedTester: is it py3 only ?
foolip: it's py2 and py3
jgraham: There will be a RFC here for wpt
<jgraham> AutomatedTester: Would recommend targetting 3.7+ based on selenium experience
AutomatedTester: having done something similar to selenium I recommend that we only use python 3.7+
brwalder: If in addition to this would we be happy with asyncio?
AutomatedTester: yes, we would need to
jgraham: yes and asyncio is wher ethe py3 requirement will come from
<mathiasbynens> jgraham: really appreciate the updated PR — much simpler
RRSAgent: make notes v2
<jgraham> RRSAgent: make minutes v2