16:47:10 RRSAgent has joined #webdriver 16:47:10 logging to https://www.w3.org/2022/12/14-webdriver-irc 16:47:17 Zakim has joined #webdriver 16:49:26 Meeting: WebDriver 16:49:44 Agenda: https://www.w3.org/wiki/WebDriver/2022-12-BiDi#Agenda 16:51:02 RRSAgent: make logs public 16:51:05 RRSAgent: make minutes 16:51:05 I have made the request to generate https://www.w3.org/2022/12/14-webdriver-minutes.html jgraham 16:57:51 patrickangle_ has joined #webdriver 17:00:32 brwalder has joined #webdriver 17:02:50 present+ 17:02:59 present+ 17:03:03 present+ 17:03:03 present+ 17:03:13 present+ 17:03:22 Topic: WebDriver Build fixups 17:03:29 present+ 17:04:08 q+ 17:04:14 Scribe: jgraham 17:04:46 jgraham: Made a PR to fix the build for HTML changes. Doesn't fix the underlying problems, but enough to allow other work to go ahead. 17:04:52 ack sadym 17:05:04 present+ 17:05:09 sadym: I'm happy to review this, but I'm not a formal approver for WebDriver 17:05:30 present+ 17:05:39 Simon: I an approve 17:05:48 jgraham: We don't have codeowners any more 17:05:59 sadym: I don't have enough access to do reviews. 17:06:29 jgraham: We should give sadym permissions to do reviews 17:06:55 Topic: shared IDs 17:07:04 github: https://github.com/w3c/webdriver-bidi/pull/180 17:07:52 sadym: PR with Node cache on the WebDriver spec, so we don't have different caches for Element, ShadowRoot. 17:08:08 sadym: I haven't looked at this PR, but it's just a unification of the storage. 17:08:18 simons has joined #webdriver 17:08:29 sadym: Next PRs remove the restriction that Element ID has to be a UUID. 17:08:37 present+ 17:08:49 sadym: We propose that it has to be a unique string, but the formatting is implementation defined. 17:08:56 q+ 17:09:59 simons: The reason for UUIDs was to ensure that there's no clash, it doesn't matter what the identifier is. Tends to be used on the local end in hashing, so it needs to be unique across reloads. An incremental number per page won't work. UUIDs have the required properties. 17:11:03 jgraham: Also the ID shouldn't have additional internal struture that implementations might try to parse out and depend on 17:12:06 sadym: We were planning to rely on that to share ids between classic and bidi. Our idea was to use backendNodeId, which is a unique per-navigable number that increases, and we'd add a prefix of the navigable. That will avoid some implementation problems for us. 17:12:31 q+ 17:12:44 q+ 17:13:10 q+ 17:13:40 jgraham: That seems a bit worrying. Maybe you could apply a transform that would make the identifier hard to parse, but still retain the information you need. 17:13:43 ack jgraham 17:13:45 ack simons 17:14:47 simons: If we allow identifiers to not be UUIDs, we should fobid the "/" character, because people use these directly in URLs. We can also base64 encode to avoid the internal structure being exposed. 17:14:59 simons: That would make it look like a random string of letters and numbers. 17:15:33 q- 17:15:40 sadym: Should we specify that it should be not parseable or not? This PR is mainly about switching away from UUIDs, and we need more than 128bits of information. 17:15:45 ack whimboo 17:16:18 whimboo: I'm worried about session id; we shouldn't change that from a UUID since we depend on that for security 17:16:45 q+ 17:17:09 jgraham: I think this is just about element ids. But maybe there's also a concern if they're guessable 17:17:30 ack simons 17:18:02 q+ 17:18:04 simons: Element ids have another constraint that not only are they unique but they must be 1:1 with elements 17:18:13 sadym: That was the motivation for this change. 17:18:19 ack patrickangle_ 17:20:14 patrickangle_: In this proposal are you thinking that if you ran a bunch of WebDriver tests and then closed the browser and then re-ran the same tests later would you get different element ids the next time, or would they be fully predictable 17:20:49 patrickangle_: I'm concerned that if the element ids were constant between tests, people would write tests that depend on the specific ids, and won't be interoperable. 17:21:09 sadym: It will have an id from the renderer, which will be unique 17:21:55 jgraham: That sounds like there might be a component that people would depend on 17:22:09 simons: This would make it harder to write interoperable tests. 17:22:28 sadym: We could hide it by base64 encoding or similar. 17:22:38 sadym: Do we agree that we don't have to stick to the UUID? 17:23:03 simons: We agree that we don't have to stick to the UUID, but there are properties it gives us that are important, and that's causing concerns 17:24:35 jgraham: I think the concerns would be solved if there was a reversible transformation using some per-session random data (e.g. the session id), because that would prevent just hardcoding expectation. 17:24:42 q? 17:25:59 sadym: Two more PRs, which are technical changes. These both depend on teh Node cache changes, so we should discuss after that's merged. 17:26:11 Topic: Element Origin (for BiDI actions) 17:26:19 GitHub: https://github.com/w3c/webdriver/pull/1653 17:28:24 I'll take a look at it 17:28:41 jgraham: New PR for deserializing element origins in classic is up. This allows passing steps in, so that classic can have exactly the same behaviour, but BiDi can use the BiDi serialization. This is blockingn landing actions / input support in BiDi. 17:29:02 Topic: Don't break lines in some blocks by sadym-chromium 17:29:11 GitHub: https://github.com/w3c/webdriver-bidi/pull/208 17:30:31 sadym: This PR adds a restriction to not add breaks in specific markdown constructs to make it easier to search in the markdown. We've added some tooling to help enforce this. This PR will involve lots of editing changes to the spec, so it would be nice to land it soon to avoid the need to rebase it and other PRs. 17:31:43 jgraham: I will try to look at that. We'll need to coordinate to avoid conflicts when landing 17:32:09 Topic: Update spec to align with HTML changes 17:32:19 GitHub: https://github.com/w3c/webdriver-bidi/issues/91 17:37:20 jgraham: The HTML spec has been updated with navigables taking on the role of "things that can be navigated" which we previously called [Browsing] Contexts. Proposal is that we use the `context` name in parameters to refer to a navigable and document that it's a legacy feature. For cases where we really want to refer to a specific document/window we could use the sharedId of the Document. Then a 17:37:26 question is if we're OK with keeping the `browsingContext` module name, given that it doesn't really mean that, or if we think it's worthwhile to change it now. 17:37:34 q+ 17:37:47 ack whimboo 17:38:08 q+ 17:38:12 whimboo: Would it be possible to have a context module and some kind of alias to keep compatibility for a while? 17:38:22 whimboo: Especially for events. 17:39:12 q+ 17:39:14 jgraham: I think it's theoretically possible, but it might be a lot of effort; not sure if it would be worthwhile 17:39:17 ack simons 17:39:40 simons: I think there are few enough implementations that we could do the rename now and it would be reasonably safe. 17:39:49 ack sadym 17:39:51 q+ 17:40:15 sadym: From our perspective we can change the naming, the question is what's a good naming. 17:41:08 jgraham: context in parameters, or browsingContext the module name? 17:41:55 sadym: browsingContext in the module name is confusing 17:42:08 ack whimboo 17:42:33 whimboo: How much of BiDi is already shipping in Selenium? Could that cause problems if browsers change? 17:43:37 simons: We ship every six weeks. The functionality isn't being used much yet, so I think it will be fine to make a change now. We can communicate the information to users if needed. It's not ideal, but it's not yet in heavy use and it's still marked as experimetnal, so people should be able to upgrade quickly. 17:43:53 whimboo: Each browser should try to do this change at the same time. 17:44:29 simons: That would help, but we can also pin browsers until everyone has made the change. It would be nice for everyone to upgrade at the same time. 17:44:29 q+ 17:44:32 ack sadym 17:44:53 sadym: There is a way to pin the specific versions of browsers in selenium? 17:45:39 simons: Selenium ships with Selenium-Manager which will download the requested version of a browser if people specify it. It's not like Puppeteer where there's a 1:1 correspondence between the library and the browser. 17:46:36 jgraham: Sounds like if we made the change now we could all agree to ship in the new year. But we need to agree a name. 17:47:44 whimboo: What are the options? 17:48:07 jgraham: context, page, … 17:48:29 whimboo: navigable might not be stable over time, context seems pretty generic 17:49:33 jgraham: I will write this up on the PR 17:49:43 target 17:49:55 q+ 17:50:54 Topic: Using handle and sharedId in the same request? 17:51:06 GitHub: https://github.com/w3c/webdriver-bidi/pull/180 17:51:09 https://github.com/w3c/webdriver-bidi/pull/180#discussion_r1048476526 17:52:01 sadym: I get a Node from evaluate and then I send the same node as an argument to callFunction in a sandbox: what should happen? Should we fail? 17:52:18 simons: The local end won't know the two ids refer to the same element. 17:53:20 simons: sharedId will be the same, but handle depends on the sandbox. Do we want to allow having both handle and sharedId in the argument to the function? In a sandbox the handle won't be valid but the sharedId will still be valid. How should we handle that? 17:53:44 simons: What's the expected behaviour from a user? They would expect that the command would work. 17:54:06 q+ 17:54:10 ack sadym 17:54:36 simons: We should look at this from a user point of view and figure out what they'd expect to happen in reasonable cases. 17:55:25 sadym: As a user I'd expect I can reuse the data I got over the wire directly in a different realm and ignore the fact that the handle doesn't resolve in the other realm. 17:56:50 q+ 17:59:41 jgraham: In this case it seems like just looking at sharedId will probably match user expectations. But it leads to weird edge cases where the data doesn't match. The biggest question is whether this kind of structural typing could lead us into difficulties in the future where there isn't such an obvious choice. If we set the precendent now that we're going to go with a DWIM design we might regret not 17:59:47 being more strict later on. 17:59:56 ack jgraham 18:00:02 ack wimboo 18:00:06 ack whimboo 18:00:46 whimboo: This problem only occurs if you request ownership of the Node. Otherwise we only have sharedId. So you'd need to disown the element in the original realm later on. 18:01:38 RRSAgent: make minutes 18:01:38 I have made the request to generate https://www.w3.org/2022/12/14-webdriver-minutes.html jgraham 18:04:29 simons has joined #webdriver 18:07:47 simons has joined #webdriver 19:09:53 is it expected that I'm a member of the WG and not a contributor on GitHub? https://github.com/orgs/w3c/teams?query=members%3Ame makes it look like I'm not a member of any team derived from the W3C group? (cc sideshowbarker, maybe?) 20:21:51 Expected by whom? 20:22:14 I didn't think we had teams derived from W3C groups, so if we do that's news 20:33:01 Zakim has left #webdriver 22:03:43 karlcow_ has joined #webdriver 22:09:16 "is it expected that I'm a member..." <- I think we have no mechanism for auto-populating teams based in WG membership. At least I know I've always just created and populated teams manually. The only Github integration I can think of that's WG-aware is the IPR-checker bot that runs when you submit a PR. That knows whether you're a member of the WG 23:39:54 "I think we have no mechanism for..." <- I thought that was how https://github.com/orgs/w3c/teams/w3c-group-32061-members was maintained 🤷 23:47:16 "I thought that was how https://..." <- Ah yeah, you're right. But I've personally at least never thought about using those control push access for a repo. I don't think they still need to be manually associated for that. Or maybe there's some automation for it that I'm not aware of (but should be...) 23:49:42 That said, I guess some groups may not want everybody in the group to have push access to their repo 23:52:00 Oh for sure, I was just surprised I couldn't label issues in the WebDriver repo ☹️