15:55:56 RRSAgent has joined #webdriver 15:55:56 logging to https://www.w3.org/2021/05/12-webdriver-irc 15:56:01 Zakim has joined #webdriver 15:57:31 Meeting: WebDriver-BiDi 15:57:36 Chair: AutomatedTester 15:57:46 Agenda: https://www.w3.org/wiki/WebDriver/2021-05-BiDi#Agenda 15:57:58 ScriveNick: AutomatedTester 15:58:04 ScribeNick: AutomatedTester 15:58:11 RRSAgent: make logs public 15:58:16 RRSAgent: make minutes v2 15:58:16 I have made the request to generate https://www.w3.org/2021/05/12-webdriver-minutes.html jgraham 15:58:28 Honza has joined #webdriver 15:59:55 brwalder has joined #webdriver 16:00:56 shengfa_ has joined #webdriver 16:00:56 jdescottes has joined #webdriver 16:01:26 JohnChen has joined #webdriver 16:02:19 present+ 16:02:19 present+ 16:02:26 present+ 16:02:26 present+ 16:02:26 present+ 16:02:27 present+ 16:02:29 present+ 16:02:30 https://www.w3.org/wiki/WebDriver/2021-05-BiDi 16:02:58 present+ 16:03:40 present+ 16:04:14 RRSAgent: make minutes v2 16:04:14 I have made the request to generate https://www.w3.org/2021/05/12-webdriver-minutes.html jgraham 16:04:47 present+ 16:05:46 topic: Bidi client 16:05:53 github: https://github.com/web-platform-tests/wpt/pull/28381 16:05:54 simonstewart has joined #webdriver 16:05:59 present+ 16:06:13 jimevans has joined #webdriver 16:06:26 present+ 16:06:35 jgraham: there is a PR up for the bidi client. The structure is there but it doesnt have any functionality 16:07:03 ... could people please look and see if there are issues. The sooner we get this in the sooner we can write tests 16:07:35 ... it can send/receive messages but there are no predefined helper APIs 16:07:47 q? 16:08:59 topic: Navigation commands 16:09:04 github: https://github.com/w3c/webdriver-bidi/pull/93 16:09:40 jgraham: There is a PR up and a PR for the integration to HTML. brwalder and foolip have done a first pass 16:09:51 ... this is nearly ready to land 16:10:19 ...I have summarised the first first "issues" related to this 16:10:57 ... WHen we navigate and it's initiated from webdriver we have the response from the command and the events that are returned 16:11:35 ... foolip had the question that events happen and then we return the navigate request response 16:12:00 ... and does this make sense or should we respond for the command and then do the events 16:12:50 ... [describes how the promises can be responded to and the order] 16:13:01 ... the 2nd question is do we handle relative urls 16:13:50 ... and the 3rd thing is the proposal 16:14:15 ... has wait for 1 event or do we want to be like puppeteer and wait for a group of events 16:14:29 ... and since in html the event order is always guaranteed 16:14:44 ... but should we care about the network idle 16:14:58 ... so I could do with help understanding the use case 16:15:00 q? 16:16:22 ... if we are going to support an array we need to do it from the start and not patch it in later 16:16:44 ... and the last topic is around page reloading 16:17:06 ... I don't think this will be controversial and we can copy parts of puppeteer here 16:17:17 s/puppeteer/CDP/ 16:17:32 github-bot: end topic 16:18:05 topic: Script execution 16:18:10 github: https://github.com/w3c/webdriver-bidi/issues/63 16:18:49 jgraham: After we have something for navigation the next item on the list is script execution 16:19:05 ... as it can open up the rest of what we can do 16:19:19 ... what are the requirements around this. 16:19:30 q+ 16:20:01 jgraham: I have written up in the issue some of the relevant things 16:20:09 ... e.g. selectors against the DOM 16:20:48 ... and being able to overload APIs on the page e.g. Random giving a response that isn't random 16:20:53 ... and so on 16:21:20 ... the next point is there are 2 points here on where we can execute script 16:21:30 ... this can be on the page/worker 16:21:39 ... and the 2nd one is sandboxing 16:22:01 ... so that clients can install there own helpers that doesn't pollute the page 16:24:11 q+ 16:24:59 ... we want it to be a lot like executeAsyncScript from webdriver but with more features 16:25:25 ... and do we want to have it like using `arguments` or just execute as is 16:25:44 q+ 16:25:54 ... and the sandboxing seems really cool 16:26:31 ... and do we want to have something like webextensions where we limit the surface and allow people to inject using something like a `postMessage` 16:26:43 ack AutomatedTester 16:26:49 automatedtester: One of the things that might be good is that Jason Leyba, a few years ago, suggesting moving webdriver execute script to being more promised based 16:27:01 s/limit the surface/have a dedicated WebDriver DOM API surface/ 16:28:11 jgraham: the way that CDP works now is that it has an `awaitPromise` type event 16:28:38 ... and we can do something like that 16:28:41 q? 16:28:48 ack simonstewart 16:29:40 simonstewart: re: arguments... as long as we can reformulate webdriver on top then its fine. Ideally we want to update things in the simplest ways 16:29:50 jgraham: [describes 16:30:08 ... how call function works in CDP with arguments] 16:30:31 ack brwalder 16:31:04 brwalder: re: CDP something like `addBinding` or webextensions 16:31:18 ... then we would have more network roundtrips 16:32:06 ... where if we wnt for webextensions with a more `postMessage` structure then we can save a round trip as it can post straight away 16:32:35 ... and if it were the `postMessage` then it would simplify sharing snippets of code 16:32:59 ... it might be more work but it would be easier for developers and offer more functionalit 16:33:41 q? 16:33:56 github-bot: end topic 16:34:08 topic: closing a session 16:34:11 github: https://github.com/w3c/webdriver-bidi/issues/104 16:34:46 jgraham: Last time we talked about only bidi session (no http then upgrade process) 16:35:02 ... and corresponding to that we need to end the session 16:35:29 ... and this should shutdown the UA 16:35:58 ... and it should hopefully fit the requirement of implementing webdriver on top of this 16:36:11 q? 16:36:30 q+ 16:36:44 automatedtester: as long as it is like webdriver in cleaning up after itself that should be sufficient 16:36:46 ack simonstewart 16:37:56 simonstewart: my understanding is we have 1 session limit... and if we shut the browser that should fully end the session 16:38:36 jgraham: there are usecases where you would want to close the session [describes a use case around network monitoring] 16:39:03 q+ 16:39:03 ... and I am reluctant to limit the lifetime of the session to that of the browser 16:40:28 github-bot: end topic 16:40:54 topic: Multiple concurrent sessions 16:41:00 github: https://github.com/w3c/webdriver-bidi/issues/103 16:41:59 jgraham: in webdriver http it never made sense to have more than 1 session per browser due to the blocking nature of the API 16:42:15 ... however in bidi there are APIs where that limitation is not needed 16:42:21 ... and use cases 16:42:43 ... and we could have multiple tools connected to the browser 16:43:27 ... there is more complexity supporting more than 1 session 16:44:07 ... however multiple tools connected seems like a really appealing direction to go in 16:44:08 q? 16:44:16 q+ 16:45:05 sadym: from the practical side it makes sense but from implementation it could be very difficult 16:45:10 q? 16:45:12 q+ 16:45:13 ack sadym 16:45:21 ack brwalder 16:46:07 brwalder: a question, from the clients pov, how do you tell the difference between new session and new session via attach 16:46:46 jgraham: so from the client it is always connecting to the existing client (even if it started the browser) 16:46:57 ... from the protocol point of view 16:47:59 ... there are cases where we can set prefs/cli arguments but that are browser specific 16:48:40 brwalder: 16:50:02 jgraham: [describes the differences between client starting the browser and then connecting and then just connecting the browser] 16:50:57 brwalder: I just want to see how this is in practical terms for the browser 16:52:11 ...and if it joins an already running browser and it connects, how did that happen 16:52:42 jgraham: I don't think it matters, it could be another tool or the user did the right commands to get it but we connected 16:53:02 ... and we just assume the browser started the appropriate mode 16:54:11 ... so you could connect to the ws and then get a session id 16:54:30 I think supporting multiple concurrent sessions would have practical values for users, but we need to be careful about to what extreme would client be using it. i.e. They could start 200 concurrent sessions? 16:54:38 ... and you could ask again and not worry if there is a session or not 16:54:47 q? 16:55:20 ack gsnedders 16:56:41 gsnedders: without adding complexity, in safari we only 1 browser and 1 safari 16:56:57 q+ 16:57:00 q+ 16:57:08 ... there are a variety of different ways we could connect to a single browser 16:57:23 ack jgraham 16:57:27 s/safari/safaridriver/ 16:57:49 jgraham: to clarify the state of the browser would be accessible to all sessions 16:58:37 ... e.g 1 session is active (do things) and another session is passive (doing monitoring) 16:59:02 gsnedders: I am aware, just pointing out our differences to firefox and chrome 16:59:12 ack cb 16:59:42 cb: at Sauce we allow customers to connect to browser for automation and we connect to do monitoring 16:59:51 ... and we want to continue supporting that 17:00:00 ... via bidi 17:01:57 RRSAgent: make minutes v2 17:01:57 I have made the request to generate https://www.w3.org/2021/05/12-webdriver-minutes.html AutomatedTester 17:02:00 github-bot: end topic 17:02:17 RRSAgent: make minutes v2 17:02:17 I have made the request to generate https://www.w3.org/2021/05/12-webdriver-minutes.html jgraham 17:02:22 RRSAgent: stop