16:43:39 RRSAgent has joined #webdriver 16:43:39 logging to https://www.w3.org/2021/03/10-webdriver-irc 16:43:53 RRSAgent: silence 16:48:25 Meeting: Webdriver March 2021 Meeting 16:50:59 Chair: David Burns 16:51:13 agenda: https://www.w3.org/wiki/WebDriver/2021-03-BiDi 16:51:30 Scribe: David Burns 16:51:41 ScribeNick: AutomatedTester 16:52:17 RRSAgent: set logs public-visible 16:52:31 RRSAgent: create minutes 16:52:31 I have made the request to generate https://www.w3.org/2021/03/10-webdriver-minutes.html AutomatedTester 16:53:40 brwalder has joined #webdriver 16:54:44 present+ 16:55:00 jdescottes has joined #webdriver 16:59:44 present+ 16:59:57 RRSAgent: Make minutes v2 16:59:57 I have made the request to generate https://www.w3.org/2021/03/10-webdriver-minutes.html jgraham 17:00:43 shengfa has joined #webdriver 17:02:24 present+ 17:02:28 present+ 17:02:31 present+ 17:02:34 present+ 17:02:53 diemol has joined #webdriver 17:03:28 jimevans has joined #webdriver 17:03:34 present+ 17:03:40 present+ 17:03:46 present+ 17:03:49 present+ 17:04:01 RRSAgent: Make minutes v2 17:04:01 I have made the request to generate https://www.w3.org/2021/03/10-webdriver-minutes.html jgraham 17:04:23 https://www.w3.org/wiki/WebDriver/2021-03-BiDi 17:05:15 q? 17:06:28 Topic: Spec Naming 17:06:34 github: https://github.com/w3c/webdriver-bidi/pull/92 17:07:43 jgraham: The context is that the use of bidi can confuse people from the i18n as they use the term bidi. 17:08:35 ... I have an opinion as mentioned in the PR. It's unfortunate that there is overlap but in reality I don't think it's going to block things moving forward 17:08:54 q+ 17:09:10 ... we could change this to duplex and hope there arent other terms it conflates 17:09:17 ack foolip 17:09:22 q+ 17:10:01 foolip: I agree with jgraham here that I don't think expanding will give us much benefit 17:10:04 q? 17:10:09 ack brwalder 17:10:32 q+ 17:10:42 brwalder: I agree with jgraham and foolip here as it would break continiuty moving forward 17:10:45 ack jgraham 17:11:07 present- 17:11:17 present+ 17:11:38 I am also skeptical that changing BiDi to bidirectional is worth the trouble. 17:11:43 jgraham: in half the spec we use shorthand for bidi and for the other half we use it properly so we cvould have it corrected in a more formal way 17:12:14 s/we use shorthand for bidi/we just use WebDriver-BiDi/ 17:12:50 s/for the other half we use it properly/for the other half we use the WebDriver-BiDi Protocol/ 17:13:25 s/so we cvould have it corrected in a more formal way/we could resolve to always use Protocol in formal contexts/ 17:13:27 AutomatedTester: it's not like we're conflating it to the extreme like `window` so I don't think we need to do much other than just make it used correrctly elsewherre. It is unfortunate but there is a context here that will always be used so people can be aware. 17:13:45 q? 17:13:55 github: end topic 17:14:05 github-bot: end topic 17:14:32 topic: Navgation progress 17:14:43 github: https://github.com/w3c/webdriver-bidi/issues/43 17:14:57 jgraham: there a comment in https://github.com/w3c/webdriver-bidi/issues/43#issuecomment-795507208 17:15:22 ... and I am working on the assumption that we have a way to navigate 17:15:48 ... and that we want a way for people to "wait" on certain events or DOM Ready 17:16:13 ... there mig 17:16:30 ... there might be work on fixing the html spec 17:16:54 ... and this for navigations that happen in the client or events that hapepn on the web like links 17:17:22 ... fragments are a special case as they are synchronous 17:18:01 ... and comparing with CDP, that only shares the lifecycle events 17:18:19 ... and we don't need the whole raft of events 17:18:57 ... we are likely to know some of the end points of the navigation, like a download, would need to be shared 17:19:46 q? 17:19:56 q+ 17:20:05 ack foolip 17:21:07 foolip: there are 2 things like network idle and network almost idle don't appear to be in any spec so we could have that as out of scope 17:21:23 I strongly prefer to mirror navigation timing and other existing specs. 17:21:44 q+ 17:22:05 ... we can have this mirror real world specs 17:22:30 ... and I think that whimboo said that he exspects people to ask for this striaght away 17:22:46 ... and I agree with bj on this that we should follow other specs 17:23:00 ack brwalder 17:23:18 brwalder: for clients that want to use network idle as the stopping point 17:23:33 ... we would need to intro the concept of a netwrok requests 17:23:41 ... which we currently dont have 17:24:10 Per https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pagegotourl-options it looks like "load" is the default of Puppeteer, which is a relief :) 17:24:20 ... any work on network requests would need to be done before we move onto network idle and leave it out of scope for now 17:24:26 q? 17:24:44 It looks like "networkidle2" is a possible value for waitUntil in puppeteer, so not the default but exposed 17:25:07 present+ 17:25:20 github-bot: end topic 17:25:40 topic: Using navigable terminology 17:25:44 github: https://github.com/w3c/webdriver-bidi/issues/91 17:26:33 jgraham: in the spec we have the browsing context module 17:27:17 ... [describes how this changes in the site isolation case] 17:27:43 ... Jake Archibald is improving the html spec around navigable terminology 17:28:04 ... so what changes do we want to make? 17:28:30 ... we have the browser context id and in webdriver http we use it for navigation 17:29:05 ... should we change the concept of browsing context module to a navigable object? 17:29:25 q? 17:29:27 q+ 17:29:39 ack foolip 17:30:01 foolip: I just had a quick look at Jakes PR 17:30:20 ... could you summarize what this means for us? 17:30:48 ... or we can change the name or... 17:31:24 jgraham: I don't know how this works for iframes but I think the relationship is that a browsing context lives within a navigable 17:31:35 ... I think this is how it works 17:31:57 ... a navigable will own a series of browsing contexts as you traverse history 17:32:28 foolip: and this clarifies that a navigable is not similar to browsing context 17:32:38 ... and we need to adapt to be more like html 17:33:08 jgraham: and perhaps my bias is kicking in and I need to double check everything 17:33:30 ... I think we can just replace browsing context here with navigable for how we want to use it 17:34:28 ... one use case we need to think about is if I return a window handle via executescript should it return a navigable or the window id? how would that work 17:34:30 q? 17:35:05 ... I don't think we need to decide now but we need to sort this soon as it will be a backwards breaking change 17:35:16 ... so if we can try have an opinion soon 17:36:11 github-bot: end topic 17:36:38 topic: Ownership of serialised objects 17:36:47 github: https://github.com/w3c/webdriver-bidi/issues/90 17:38:01 sadym: in the serialization there is an open question about what do we do when we return an object. in CDP we release objects after a define time 17:38:34 ... there is one solution as suggested by jgraham that we keep track of everything until a page navigation is complete 17:39:01 ... or have a way for the client to say that the scope is now complete and release all the objects no longer needed 17:39:11 q? 17:39:15 q+ 17:39:19 ack jgraham 17:39:29 q+ 17:39:35 jgraham: I think that is clear thatr we need something like this 17:40:19 ... the use case is "return an array containing data that cant be fully serialsed as its too deeply nested" and then it get's GCed and you can't get it 17:40:49 ... and I think that we will need to al.low the users to explicitly clean this up especially for single page apps 17:41:34 ... we don't want to have a situation where webdriver just creates leaks as it's constantly holding onto life time references 17:42:02 ... and it might be good to know what references do we want to hold onto 17:42:30 ... do we just need 1 root object or smaller references of what we have accvessed 17:43:02 sadym: my opinion if we expose something to a user we should give them something to allow gc 17:43:44 q? 17:43:50 ... if we try save memory by picking something that does by value and some by reference it wont be an economic solution 17:43:54 ack brwalder 17:44:38 brwalder: on the subject of holding strong refernce on the root object and not on the nested object 17:44:59 ... the main difference between cdp and bidi is that we return a large tree 17:45:10 ... so we can just hold the root object 17:45:43 ... while in cdp you have to go through the nested object and then assigning a key 17:45:54 ... so we can just keep what we have and it should be fine 17:46:24 q+ 17:46:39 sadym: that is a good point but there may be a situation where we can't fully serilize and allow users to get the rest 17:47:01 brwalder: I am not sure how that works in cdp 17:47:30 ... but in bidi if we keep the strong reference to the object then it woudlnt be gc'ed 17:47:56 ... and if we can't fully serialise it in the first tree that the client would be able to get it in a 2nd call 17:48:33 ... and we would need to document that in a specific way 17:48:35 q? 17:48:40 ack jgraham 17:49:10 jgraham: the disadvantage with a nested object and hold a reference to the root object 17:49:36 ... and then it something else comes along and updates it then there will be data missing 17:49:48 q+ 17:49:53 q+ 17:50:18 ... if we create it at a nested model it will be hard for clients to work 17:50:28 simonstewart has joined #webdriver 17:50:41 ... and holding onto the root will be a good first step and easier to implement 17:50:44 present+ 17:51:10 sadym: what about a command to explicitly release ? 17:51:29 q+ 17:51:37 jgraham: that makes sense and we need to make sure that they are tied to the lifetime of the window object 17:51:57 ... the session would have weakref to a realm to a map to a strong reference 17:52:05 q? 17:52:09 ack foolip 17:52:51 foolip: it would be nice if we return an id if we keep a reference and if we dont then ther eis no id 17:53:08 ... and cdp does have the concept of object groups 17:53:30 q? 17:53:43 ack brwalder 17:53:57 CDP releaseObjectGroup is https://chromedevtools.github.io/devtools-protocol/tot/Runtime/#method-releaseObjectGroup 17:54:19 brwalder: I just wanted to addess jgraham 's comment on just holding a strong reference and something modifies it 17:55:02 ... I am not convinced it a flaw in the spec and it's a general flaw in JS since that is by ref and not by val 17:55:16 ... so it's not really on us to solve this 17:55:29 q? 17:55:35 ack bj 17:55:47 So a case where this could be a problem is where you e.g. log a js value and later expand it and see the value after it was modified not the value at the time it was logged 17:56:14 bj: object groups in cdp and webinspector are done by injected scripts to a page so they disappear when the page navigates 17:56:23 q+ 17:56:50 ... so I don't think there much value in adding a system to explicitly clear 17:57:00 ... and we've had it working as normal 17:57:09 q? 17:57:28 brwalder: I think bj 's concern is valid 17:58:37 btw, objectGroup is a parameter to the main evaluateJavaScript command in WebKit's protocol. Which is how console code is able to do anything sensible with it. Other objects are not in a specific object group. 17:58:40 ... if we introduce something like this to bidi we are going to hope users know what to do to do gc 17:59:18 ... and since we can return a tree we don't need the idea of object groups because the tree is the object group 18:00:46 RRSAgent: make minutes v2 18:00:46 I have made the request to generate https://www.w3.org/2021/03/10-webdriver-minutes.html jgraham 18:01:07 github-bot: end topic 18:01:30 RRSAgent: make minutes v2 18:01:30 I have made the request to generate https://www.w3.org/2021/03/10-webdriver-minutes.html AutomatedTester 18:01:52 RRSAgent: bye 18:01:52 I see no action items