16:59:33 RRSAgent has joined #webdriver 16:59:37 logging to https://www.w3.org/2023/12/13-webdriver-irc 16:59:38 Zakim has joined #webdriver 17:00:23 present 17:00:45 present+ 17:01:34 Meeting: WebDriver BIDi 17:01:45 present+ 17:01:50 Agenda: https://www.w3.org/wiki/WebDriver/2023-12-BiDi#Agenda 17:03:44 present+ 17:03:46 CHair: jgraham 17:03:52 present+ 17:03:53 ScribeMick: jgraham 17:03:59 ScribeNick: jgraham 17:04:01 lola_ has joined #webdriver 17:04:03 present+ 17:04:03 present+ 17:04:04 present+ 17:04:12 present+ 17:04:16 present+ 17:04:17 Topic: Generate browser-compat-data from CDDL 17:05:57 present+ 17:06:34 github: https://github.com/w3c/webdriver-bidi/issues/619 17:07:21 whimboo: A while ago I asked about documenting APIs on MDN. We delayed this. Classic has a few commands documented. Might not be trivial to document everything, but we could focus first on BCD. This would allow filling in the tables on MDN with compatibility across versions. Clients could also use this data. This would be a good start for documentation. Tools like e.g. VSCode could also consume it. 17:07:31 cb has joined #webdriver 17:08:01 whimboo: All the data is in JSON files. Might be work to manually create it. But we have CDDL blocks which are used to generate TS in the Chromium implementation. We could maybe use that generation code to generate BCD data and keep it up to date. 17:08:07 present+ 17:08:28 whimboo: Would like to get some feedback on this. We could start with some manual work if that's easier. 17:08:31 q? 17:08:37 q+ 17:08:42 ack next 17:09:00 q+ 17:10:10 jrandolf: CDDL has a native representation for JSON. The tool for generating TS is not canonical, but there is one for JSON. The parser can validate JSON files. I'm not sure if the tool fits for this scenario. 17:10:26 q+ 17:10:48 whimboo: The main question is whether this would be useful at all. 17:11:03 ack next 17:11:30 whimboo: everyone of us would have to update the json files for the release versions in their browser 17:12:05 MaksimSadym: Are we talking about generating JSON from the spec, or about the browser returning the protocol version it supports? 17:13:12 whimboo: we need a list of all the commands and events that we support. Generating full documentation is harder. Would like to know which version of the browser implements each API. 17:13:17 ack next 17:13:18 q+ 17:14:18 cb: From the client perspective this would be very helpful either as a file or as an endpoint in the driver. In the client we could help them understand why a command isn't working. 17:14:29 q+ 17:15:26 jgraham: BCD already exists. The request is to be able to generate that specific format from the CDDL 17:15:30 ack nex 17:15:32 ack next 17:16:49 jrandolf: The problem to solve is building a browser compat table? Isn't the point of these meetings to standardise and implement everything in BiDi? What do these files actually specify? That someone doesn't implement a specific feature? 17:16:55 current source of BiDi support comes from https://docs.google.com/spreadsheets/d/1bkiPU5eDBCqFkx5p_VSBx_OK8gy9TeHRKQVPHKMATGQ/edit?pli=1#gid=0 17:18:05 jgraham: No, the point is which version of the browser first implements a BiDi feature 17:18:40 Good point 17:19:01 gsnedders: Other specs might also define custom extension points e.g. permissions. In a browser that didn't support permissions that extension wouldn't be implemented, and that's useful to document. Might add more features in the future and existing implementations might not support them. 17:19:34 gsnedders: The current BiDi implementations use CDDL directly? [not really] 17:20:31 q+ 17:20:54 gsnedders: So there's not just a way to get the copy of the CDDL emedded in the browser version to work out which APIs are being implemented. But we could generate empty implementations from the spec and maybe automatically add browser data from implementations that use CDDL directly. 17:21:00 ack next 17:21:19 ack next 17:21:53 jrandolf: I think it would be nice if other vendors also used the CDDL as a way to version what they do. Could use that to generate a compat table if they trim the CDDL to what they support. 17:22:27 Topic: Backward compatibility for "get coordinates relative to an origin" fails for "wheel.scroll" actions and a "pointer" origin 17:22:28 We could presumably also just mechanically try running commands and see if they return "unknown command". 17:22:35 Github: https://github.com/w3c/webdriver/issues/1758 17:23:12 gsnedders: Mmm, indeed, we can have a cron job that tries this. 17:23:24 whimboo: Scroll needs coodindates, which makes it look like a pointer. Should we add wheel as a pointer type? 17:23:50 gsnedders: Does pointer events have something we can copy here? 17:25:23 jgraham: This only makes sense for mouse-type pointers I think. Easiest might be to just add coordinates to scroll and if you want it in sync with the pointer position you have to do that manually. 17:25:52 q+ 17:25:52 jgraham: We should have the discussion on the github issue. 17:25:56 ack next 17:26:07 jrandolf: Isn't scroll already based on the current point? 17:26:28 whimboo: For wheel input source there aren't coordinates, it's not synced with the pointer position. 17:26:43 jrandolf: Could we use the coordinates from mouse events? 17:27:40 jgraham: That seems unsafe, because it changes the behaviour of tests 17:27:56 gsnedders: What's the current behaviour? 17:29:53 [discussion of current behaviour] 17:30:23 jrandolf: Chromium seems to use current mouse position 17:30:39 gsnedders: I think SafariDriver probably does that too, but I'm not sure 17:30:47 whimboo: There could be multiple mice 17:31:42 gsnedders: Someone should write a test to demonstrate the current behaviour 17:31:45 whimboo: I wrote a test 17:32:22 whimboo: I'll comment on the issue with the current behaviours 17:32:44 Topic: Clarify how browsing context groups and sharedIds work? 17:32:52 github: https://github.com/w3c/webdriver-bidi/issues/597 17:34:24 MaksimSadym: The specification uses Browsing Context group to talk about contexts that can access each other. But the HTML spec doesn't match that. Firefox allows accessing elements from multiple documents, but Chrome doesn't, what's correct here? 17:34:29 q+ 17:34:51 ScribeNick: jdescottes 17:35:17 gsnedders: > * <@gsnedders:mozilla.org> whimboo nothing in `webdriver/tests/classic/perform_actions/wheel.py` seems to check `clientX`/`clientY` 17:35:17 strange. I will check later when I'm back. Have to run now 17:37:17 jgraham (IRC): Spec is wrong as mentioned, because html changed def of browingcontext group. Documents in the same cluster can reach each other. They can access each others runtimes. It is intended that if you hae an element in a doc and return it, globals that can access this element should also be able to use the returned value. I think Firefox implementation is right, but spec needs to be updated. Shared ids are shared across all BCs 17:37:17 that can reach each other 17:38:00 Maksim Sadym: in classic you can reference only elements in the same browsing context, right? 17:38:18 jgraham (IRC): correct 17:39:07 Maksim Sadym: if you get an element by bidi and try to use it with classic, should it work? 17:40:05 Maksim Sadym: Want to make sure this is expected behavior and will check the spec 17:40:56 jgraham (IRC): behavior in classic is that you can only return and use elements from the same browsing context. BiDi is more flexible 17:41:26 Maksim Sadym: So we don't allow to reference bidi links in classic if it's in another browsing context? 17:41:33 jgraham (IRC): correct 17:42:11 Sam Sneddon [:gsnedders]: if you change classic's bc to be the correct frame or window you can use the reference from bidi 17:42:49 jgraham (IRC): yes, ids are global, classic will just check it's an element of the current doc 17:43:19 Topic: Clarify `script.addPreloadScript` behavior with a duplicated `context` in `contexts`. 17:43:29 github: https://github.com/w3c/webdriver-bidi/issues/617 17:44:14 Topics: Cookies status 17:44:29 github: https://github.com/w3c/webdriver-bidi/pull/501 17:45:05 jgraham (IRC): What is the status of cookies PR 17:45:10 q+ 17:45:16 ack next 17:45:18 q+ 17:45:24 q- 17:46:28 Lola: PR in a good place. Mike has implemented feedback on the issues. Now, looking for non-mozilla, non-google feedback. Someone from Apple should have a look. 17:46:43 Sam Sneddon [:gsnedders]: Will take a look or will find someone 17:46:47 ack next 17:47:26 q+ 17:47:52 Maksim Sadym: Partition key: do we get the actual cookie partition or do we just get the filter provided. 17:48:28 ack next 17:49:31 lola_ has joined #webdriver 17:49:46 jgraham (IRC): All cookies should be in the same partition of the cookie store. But if chrome works differently we should change that 17:50:36 q+ 17:50:57 Sam Sneddon [:gsnedders]: Not opposed to returning the partition key but might end up in a situation where browsers return what was passed 17:51:11 ack next 17:53:02 jgraham (IRC): will not always return what was passed in because you pass a context. In short term, maybe easiest to return it for each cookie. It will add protocol overhead. Could have a base partition key, potentially updated by each cookie if needed. Pushes complexity on the client 17:53:02 s/Not opposed to returning the partition key but might end up in a situation where browsers return what was passed/CHIPS, as Chrome is currently planning on shipping (or now shipping?), has different cookies having different partitions (or rather: some partitioned and some not). But we're probably moving towards all browsers having all cookies either partitioned or blocked, so we'd end up with every browser basically just returning what was 17:53:02 passed as an argument./ 17:53:27 Maksim Sadym: can proceed with current approach. No critical issue from implementation perspective 17:54:51 q+ 17:55:21 Sam Sneddon [:gsnedders]: other question: in cases where cookies are not sent to 3rd party contexts (eg currently Safari), people will want to know if cookies where sent to frames. 17:55:34 ack next 17:55:49 s/Safari/Safari, depending on the Storage Access API/ 17:58:06 jgraham (IRC): easiest way to tell is to intercept request and see where cookies are sent. Not clear if we need to add a feature to support this use case. 17:58:07 Could have isStorageAccess key as part of the partition key. Should comment on the issue 17:59:31 Sam Sneddon [:gsnedders]: need to come to a conclusion whether what we want to do storage api should block the cookies api 17:59:40 jgraham (IRC): Someone from apple should look at it and say if the basic design is good enough 18:00:08 jgraham (IRC): Maksim should do a concrete proposal for different partition keys 18:00:16 Maksim Sadym: not a blocker, we can proceed 18:01:11 q? 18:01:16 RRSAgent: make logs public 18:01:20 RRSAgent: make minutes 18:01:21 I have made the request to generate https://www.w3.org/2023/12/13-webdriver-minutes.html jgraham 18:01:28 zakim, bye 18:01:28 leaving. As of this point the attendees have been jrandolf, JimEvans, MaksimSadym, jgraham, whimboo, lola_, lightning00blade, sasha, jdescottes, cb 18:01:28 Zakim has left #webdriver 18:02:38 RRSAgent, bye 18:02:38 I see no action items