15:58:41 RRSAgent has joined #webdriver 15:58:41 logging to https://www.w3.org/2021/04/14-webdriver-irc 16:00:02 Meeting: WebDriver-BiDi 16:00:03 brwalder has joined #webdriver 16:00:28 Chair: AutomatedTester 16:00:30 Agenda: https://www.w3.org/wiki/WebDriver/2021-04-BiDi#Agenda 16:00:37 Scribe: David Burns 16:00:43 Scribe: AutomatedTester 16:00:45 ScribeNick: AutomatedTester 16:01:00 Honza has joined #webdriver 16:01:02 present+ 16:01:06 present+ 16:01:09 present+ 16:01:11 RRSAgent: make logs public 16:01:16 RRSAgent: make minutes v2 16:01:16 I have made the request to generate https://www.w3.org/2021/04/14-webdriver-minutes.html jgraham 16:01:22 present+ 16:01:23 shengfa has joined #webdriver 16:01:29 present+ 16:01:32 present+ 16:01:58 present+ 16:02:16 present+ 16:03:59 RRSAgent: make minutes v2 16:03:59 I have made the request to generate https://www.w3.org/2021/04/14-webdriver-minutes.html jgraham 16:04:19 JohnChen has joined #webdriver 16:04:28 simonstewart has joined #webdriver 16:04:40 https://www.w3.org/wiki/WebDriver/2021-04-BiDi#Agenda 16:04:40 present+ 16:04:43 present+ 16:06:14 https://github.com/w3c/webdriver-bidi/issues/86 16:06:24 topic: Serial Max depth 16:06:30 github https://github.com/w3c/webdriver-bidi/issues/86 16:06:42 github: https://github.com/w3c/webdriver-bidi/issues/86 16:07:05 sadym: I was prototyping serialisation a month ago 16:07:31 q+ 16:07:42 ... and I came across this problem. I have wondered if we want a depth of 1 16:08:07 ... jgraham has asked questions before 16:08:12 ack jgraham 16:08:34 jgraham: I think the context here is the remote value serialisation 16:08:50 ... one thing here is that we are doing things differently to CDP 16:09:14 ... in Bidi we serialise everything and return it 16:09:35 ... in cdp you have to do more journeys when you have things like arrays 16:10:02 ... and we want to optimize for the use case where you are not local to the browser 16:10:34 ... and we have cases where there is a large object/array and you only want specific parts of it not the entire thing 16:10:51 ... so the question is how do we address this? 16:11:35 ... the spec has a depth property so that you can specify what we are doing 16:12:17 ... but this can allow people to send too much data... e.g. if it has 2^32-1 properties its a lot to send over the wire 16:12:43 ... and there are ways we can solve this 16:14:20 ... The main thing is that we want to have a choice that is more choice than what CDP has. We want to have a way to control the verbosity 16:14:21 q+ 16:14:23 q? 16:14:30 q+ 16:14:35 ack foolip 16:14:46 q? 16:14:52 ack sadym 16:15:08 sadym: There are definite pros for the bidi 16:15:56 ... there are times that we need to do the simplest way 16:16:13 q+ 16:16:42 ... in cdp there are ways that we can use it for the next call and optimizes for that 16:16:48 ack jgraham 16:17:23 jgraham: to the idea of using `maxDepth=1` is what makes CDP very chatty 16:17:53 ... and if you have N elements in the array you have to do N calls over the wire to populate it 16:19:05 ... if there are cases that if you know that know you need we return cases where that we return a small subset of concreate items 16:19:37 q+ 16:19:39 ... and then for events we have specific serialisation algorithms rather than trying to solve this at a global level 16:19:46 ack foolip 16:20:08 q+ 16:20:28 foolip: part of the unstated goal here is that it can be racy when on top of CDP. 16:20:49 ... I guess in the future we may need to have this as a goal in CDP in the future 16:21:10 q- 16:21:11 Doesn't this cause a problem for CDP based clients; you're just pushing the race onto them 16:21:50 q+ 16:22:06 q+ 16:22:11 q+ 16:22:29 foolip: I presume this is a problem for them too already. We are not wanting to see cdp change right now but I guess we need to solve that at some point 16:22:34 q? 16:22:45 ack brwalder 16:23:11 brwalder: I don't want this to be an implementation chat but I dont think this is a problem in CDP 16:23:32 good point, I keep forgetting about that option, brwalder 16:23:59 ... if we keep a weakmap of things then we could probably get around it 16:24:01 q? 16:24:07 ack sadym 16:24:52 sadym: Most of the time in devtools we send back the ids to the devtools 16:25:05 ... and that's how we avoid that race condition 16:25:06 q? 16:25:11 ack jgraham 16:25:39 jgraham: what's in the spec currently that does serialisation is just events 16:26:03 ... and we can have limits for it 16:26:25 ... so maxDepth=1 is fine but we will need to revisit this during script execution 16:26:30 q? 16:26:44 github: end topic 16:26:56 github-bot: end topic 16:27:16 Topic: Navigation 16:27:21 github: https://github.com/w3c/webdriver-bidi/pull/93 16:27:37 jgraham: This is mostly a status update topic 16:27:56 drousso has joined #webdriver 16:28:16 ... the Navigation part of the spec is there that uses Navigable and the events 16:28:19 whoops just remembered 16:28:21 present+ 16:28:22 :P 16:28:35 ... so could people please read the PR 16:29:25 q+ 16:29:32 q? 16:30:02 ... it does things that WebDriver and CDP doesnt do things which I think is nicer for end users 16:30:06 ack simonstewart 16:30:10 I will review, jgraham. Also, I can only join half of the call today, and will leave now. 16:30:28 s/does things/resolves relative urls/ 16:31:31 simonstewart: the reason it's not done in navigate is that I am not clever enough because it's non-trivial 16:31:51 ... most users just want to do one navigation and then user interactions to move around the rest of the site 16:32:05 ... cb may have more anecdotal data on this 16:32:09 q? 16:32:54 github-bot: end topic 16:33:16 topic: Traversing History 16:33:46 jgraham: the next thing after navigation is traversing the history 16:34:04 ... in existing clients there is a page forward/back methods 16:34:37 ... however CDP doesnt have what normal clients have. It has the ability to move to specific IDs 16:34:51 ... so do we want to standardize on the clients or what on CDP 16:35:17 ... I think that CDP is a lot more flexible compared to our clients currently 16:35:29 q? 16:37:13 AutomatedTester: while I think CDP sounds more flexible but in my experience people rarely want to move more than 1 or 2 pages(max) and 2 calls to `back` should be fine 16:37:44 q+ 16:38:25 jgraham: I can image a case where the back button could populate the history when clicked and it creates an infinite loop 16:38:45 ... so do we want to standardize on what all the clients do it 16:39:01 .. or allow more nuanced APIs 16:39:36 q+ 16:39:43 ... I am in favor of doing what clients do right now as that is the easier option 16:39:49 ack simonstewart 16:40:08 simonstewart: I support the current clients as it's simplest way 16:40:41 ... in the original spec we focused on audiences 16:40:56 ... the simpler model works well for testers 16:41:03 ... but what about spec authors 16:41:36 jgraham: I think that is valid but it would be good to get the history spec to work in the webdriver way 16:41:39 q? 16:41:47 ack sadym 16:42:27 sadym: I can think of one scenario that needs the complex version but we can add that later if we really need it 16:43:05 topic: Bidi only sessions 16:43:08 github: https://github.com/w3c/webdriver-bidi/pull/99 16:43:34 jgraham: we have been standing up the initial implementation in Gecko 16:44:11 ... one of the questions that came up was "should we allow people to start a session without going via HTTP session" 16:44:39 ... its for clients that never care about the http commands that webdriver has 16:44:58 ... and then there are existing tools like puppeteer/playwright 16:45:11 q+ 16:45:23 ... from Mozilla we don't really want to ship a http server in Firefox 16:45:56 ... or we can rewrite the webdriver http spec to show how this maps across to webdriver bidi 16:46:19 ... and I have created a PR on how this could work 16:46:55 ... [ describes what is in the PR ] 16:47:30 q? 16:47:34 ack brwalder 16:48:30 q+ 16:49:03 q+ 16:49:16 q+ 16:50:19 brwalder: in chromium we ahve a link between webdriver and browser processes that is 1:1. This is done when things are started up and we go from there. I am not against connecting to an existing browser just mentioning it 16:50:35 q? 16:50:39 ack simonstewart 16:51:27 q+ 16:51:45 simonstewart: I don't mind, from selenium, that we connect to a websocket but we need a sessionID so we can make sure that intermediary nodes route things to the right place 16:52:14 q? 16:52:30 ack drousso 16:53:55 drousso: I don't know if we want to expose the websocket because of security/privacy concerns 16:54:00 q? 16:54:05 ack jgraham 16:54:57 jgraham: I don't think we want people to have start up the standard browser and there is websocket open as that is a security nightmare 16:55:25 ... e.g you would need to tell the browser to start up with a websocket via a driver 16:56:39 ... my question is mostly around do we need to do a start a session by calling HTTP POST /SESSION first or connect to a websocket first 16:57:19 ... and to brwalder comment I think I have already handled the use case you've mentioned 16:57:37 ... [describes a use case for 2 tools running] 16:58:13 ... which won't work in the original webdriver because of the blocking commands there 16:59:42 q- 17:00:31 github-bot: end topic 17:01:05 RRSAgent: make minutes v2 17:01:05 I have made the request to generate https://www.w3.org/2021/04/14-webdriver-minutes.html jgraham 17:01:36 https://github.com/web-platform-tests/wpt/pull/28381 20:17:43 zcorpan has joined #webdriver 20:18:42 zcorpan_ has joined #webdriver 20:20:33 zcorpan has joined #webdriver 20:22:22 zcorpan_ has joined #webdriver 20:23:30 zcorpan has joined #webdriver 20:23:43 Zakim has left #webdriver 20:24:50 RRSAgent: bye 20:24:50 I see no action items