16:01:20 RRSAgent has joined #webdriver 16:01:24 logging to https://www.w3.org/2025/07/09-webdriver-irc 16:01:28 Zakim has joined #webdriver 16:02:04 Meeting: WebDriver-BiDi 16:02:20 Agenda: https://www.w3.org/wiki/WebDriver/2025-07-BiDi#Agenda 16:02:35 RRSAgent, make logs public 16:02:43 RRSAgent: make minutes 16:02:44 I have made the request to generate https://www.w3.org/2025/07/09-webdriver-minutes.html jgraham 16:03:00 present+ 16:03:51 present+ 16:03:55 scribe+ 16:04:00 present+ 16:04:02 present_ 16:04:03 present+ 16:04:04 present+ 16:04:09 present+ 16:04:29 Scribe: tidoust 16:04:33 Chair: jgraham 16:04:52 Aish has joined #webdriver 16:04:54 Topic: Support UrlPattern for network interception 16:04:57 Topic: Support UrlPattern for network interception 16:05:09 github: https://github.com/w3c/webdriver-bidi/issues/919 16:05:57 spectranaut_ has joined #webdriver 16:06:04 Henrik: Polyfill in Chrome, custom implementation in Firefox. Idea is to rather change our spec and make use of UrlPattern. 16:06:07 q+ 16:06:08 ... Any concern? 16:06:15 ack next 16:06:18 ack jgraham 16:06:37 jgraham: This was the intent right from the start but UrlPattern wasn't stable yet. 16:07:09 ... I know there are compatibility concerns though. How breaking would the change be? 16:07:39 ... Maybe asking Alex in the issue would be a good way to tell! 16:08:01 Topic: Extend "setLocaleOverride" command 16:08:02 Topic: Extend "setLocaleOverride" command 16:08:12 github: https://github.com/w3c/webdriver-bidi/issues/774 16:09:14 q+ 16:09:18 Alexandra: It would better to have a single command. There may be parameters to set. 16:09:19 jimevans has joined #webdriver 16:09:24 present+ 16:09:29 ack next 16:10:09 q+ 16:10:19 sadym: I don't mind. I started drafting a related command recently. My proposal is we land override and see how to extend locale with the user agent. 16:10:25 ack next 16:11:11 jgraham: In CDP, it bundles up setting the accept-language headers and various other bits. I was wondering about dependency with user-agent that I was missing. 16:11:25 sadym: It's more about getting the proper hints. 16:12:23 jgraham: We discussed a more generic mechanism. Setting extra HTTP headers would be a more generic approach in particular. 16:12:42 Maksim: Do we need we don't need anything specific for language? 16:13:11 jgraham: It depends on how we specify things. For Accept-language, it should override. 16:13:30 ... In some cases, it may make sense that we duplicate the headers. In some cases, it does not. 16:13:47 ... I'm broadly in favor of having a point in the spec that deals with locales. 16:13:55 s/locales/locale 16:14:24 Blaze: What if I ask a language that is nonsense? 16:14:48 q+ 16:14:53 ... I want to specify at what level we're dealing with this. This may dictate how we go about this. 16:14:56 ack next 16:15:51 jgraham: My understanding is the use case is having a straightforward way to pretend to be a browser with a specific locale without having the entire OS configured to that locale and timezone. 16:16:16 ... I think it's just about having a relatively easy to override most of the web exposed information linked to a locale at the browser level. 16:16:29 s/easy/easy way/ 16:16:54 q+ 16:16:56 Blaze: I guess my question is about delegation. 16:17:00 q+ 16:17:05 s/delegation/validation/ 16:17:15 ack next 16:17:44 sasha: On the validation, we do have on the spec level the validation that the provided string is supposed to be match a valid language tag. 16:18:09 I think validation is a good reason for having a more specific endpoint for this vs just setExtraHeaders 16:18:16 ... Browser will only provide supported locales, and try to match the closest one to the requested one. 16:18:33 Blaze: Thanks for clarifying. 16:18:35 ack next 16:19:11 sadym: We can extend the validation with specifically supported locales by the browser if it would help somehow. 16:19:35 jgraham: That makes sense. I think that's a great argument for having a more specific endpoint for this. 16:19:50 Topic: Do we want to wontfix the "click and wait for navigation" entry from the BiDi roadmap planning doc? 16:21:21 Henrik: I compare our implementation in Firefox with the one in Chrome for "Click and wait for navigation". Is this still a requirement? Should BiDi not implement this but rather wait for the client to look at it? 16:21:31 q+ 16:21:38 ... Otherwise, a 250ms delay gets introduced and that's quite a lot. 16:21:54 ack next 16:22:02 ... We need more feedback from David and Simon. I'm happy to wait until next meeting and continue the discussion in the GitHub issue. 16:22:28 jimevans: Personally, I can see ways that we can change the code of Selenium once we move to BiDi to sort of mimic the current classic behavior. 16:22:46 q+ 16:22:54 ... I do know that waiting for a navigation following a click is something that many Selenium users expect. 16:23:13 ... They expect that the next statement does not run before navigation is "complete", whatever that means. 16:23:39 ... I know a fair number of Selenium users do rely on that behavior in any case. 16:24:05 ... I can take it back to Selenium steering committee and figure out whether that's something we may want to change. 16:24:07 ack next 16:24:39 jgraham: This behavior definitely makes sense in Classic. You need the browser to figure things out for you. 16:25:20 ... In the BiDi case, the browser does not really have more information. The user probably knows better whether a click is going to trigger a navigation or do something else. 16:25:31 q+ 16:25:33 ... Having the client more in control in BiDi makes sense. 16:25:37 ack next 16:26:24 q+ 16:26:48 jimevans: I agree that the client code would be the right place to take that decision. I just cannot decide from a Selenium perspective. From a technical perspective, I agree we should not have that in the spec. I need feedback from other Selenium project leads though. 16:26:54 ack next 16:27:54 henrik: If you do some random cases, you don't necessarily know what is going to cause a navigation. If you have an event listener attached to an element, there may be a delay before navigation takes place. It's unpredictable. 16:27:58 Agreed that you don't always know, just that sometimes you know, especially in test scenarios 16:27:59 q+ 16:28:04 ack next 16:28:42 jimevans: If you wouldn't mind creating an issue, that would create a space to crystallize that discussion. 16:29:13 Topic: Initial draft of `emulation.setDisableScriptingOverride` 16:29:21 github: https://github.com/w3c/webdriver-bidi/issues/746 16:30:05 sadym: I started to specify to disable scripting override. Do we want to enable JavaScript execution if the user explicity denied it. In CDP, that's not possible. 16:30:37 ... The question is for Selenium folks if they're aware of scenarios where user disabled scripting but we still want to enable it via the protocol. 16:30:40 q+ 16:30:45 ack next 16:31:41 q+ 16:31:59 jgraham: As a security barrier, it seems pretty thin. The fact that the code can already run whatever script it wants means that disabling it in some contexts does not give much protection. 16:32:25 ack next 16:32:30 ... Testing could benefit from the ability to enabling execution. 16:33:06 jimevans: From the Selenium side of things, the only data point that I really have are past requests for being able to execute a test with JavaScript disabled. 16:33:43 .... Using Classic, that was a non starter because some things depended on JS running in the browser, e.g., isDisplayed. 16:33:59 q+ 16:33:59 ... We've always told people they couldn't run things with JS disabled. 16:34:10 jamesn has joined #webdriver 16:34:35 ... If there's a way we could do that with BiDi, I think that some users will find that useful. 16:34:49 ack next 16:35:29 ... Personally, I'm a little agnostic about this particular feature. I don't know how much benefit it would be. If it's easy to do, maybe we should do it. I don't know the cost/benefit. 16:36:09 sadym: If we have a very strong signal from e.g., Selenium users, we could implement that, otherwise we're unlikely to do it. 16:36:56 ... The way I specified things, I added a hook in HTML which allows to bypass the check on JS being disabled. 16:37:06 q+ 16:37:11 ack next 16:37:16 q+ 16:38:07 jgraham: On our side, I don't think not doing it is going to be a blocker. It just seems "silly" not to do it. 16:38:11 ack next 16:38:25 sadym: Another question was: top level navigables only or nested levels as well? 16:38:28 q+ 16:38:32 ack next 16:39:37 jgraham: I don't know of use cases. Unlike with setViewport where it applies to top level, here there's no technical restriction. 16:39:58 ... Maybe we should do it in a way where we can extend the command later to work with non top level traversables. 16:40:26 ... Maybe by returning an error for the case we don't want to support today, and then later on return something if we want to extend. 16:40:42 Topic: Initial draft of `emulation.setUserAgentOverride` 16:40:49 github: https://github.com/w3c/webdriver-bidi/issues/448 16:41:33 sadym: It looks straightforward except one thing. The value is not scoped to something, so I attempted to tie it to a navigable or a browsing context. 16:41:40 q+ 16:41:45 ack next 16:41:52 s/browsing context/user context 16:42:42 jgraham: Each request that originates from a window has a way to get to the navigable. We do that for requestNetworkInterception. 16:43:18 ... There are things where you can't quite figure out what the window is, e.g., Service Workers. 16:44:19 https://www.w3.org/TR/webdriver-bidi/#get-navigable-for-request 16:44:45 q+ 16:45:08 ... We put a hook in Fetch that hooks into WebDriver BiDi to return the user agent. Instead of returning a constant, the hook should ask BiDi to return the appropriate user agent value for this request. 16:45:31 ack next 16:46:09 jdescottes: I just looked at the algorithm. We do hook from the Fetch spec as James mentioned. I think you should be able to build on that. 16:46:39 ... This algorithm might not be able to catch things from a worker, but I guess you can extend it. It was meant for things originating from a window. Feel free to update! 16:47:01 Topic: Add support for "default" value for "sameSite" cookie attribute in WebDriver Classic 16:47:10 github: Add support for "default" value for "sameSite" cookie attribute in WebDriver Classic 16:47:20 github: https://github.com/w3c/webdriver/issues/1908 16:48:18 sasha: We add the "default" value for "sameSite" cookie in BiDi because we had a situation where you could read cookies through document.cookie but not set them with the cookie API. 16:49:15 ... The question is whether we should do the same for Classic as well. The main question for me here is Classic is even more vague about cookies. Lax and Strict. But it also says that sameSite should be no. 16:49:38 ... I think Chrome for Classic works in this case. Maybe it would be acceptable to let browsers return values that work for them. 16:49:49 q+ 16:49:58 ... Is it OK to introduce a change? Would it break something, for example for Selenium? 16:50:00 ack next 16:50:24 jimevans: That's not going to cause anything breaking from a Selenium perspective. 16:50:46 q+ 16:50:46 ... We're still working on how to translate our cookie handling code in Selenium to use BiDi. Any change we make here, we can adapt to. 16:50:51 ack next 16:51:53 jgraham: In general, cookies have changed a lot recently and the Classic spec has not... It was written when cookies were slightly simpler. We didn't have the complexity that BiDi deals with now. 16:52:11 q+ 16:52:17 ... How much time do we want to spend fixing that vs. getting people to move to BiDi is a good question. 16:52:19 ack jimevans 16:53:11 jimevans: I don't think that it's going to adversly affect Selenium even if we update the Classic spec. If spec and browser implementations change, then Selenium code will change to it. 16:53:36 RRSAgent: make minutes 16:53:37 I have made the request to generate https://www.w3.org/2025/07/09-webdriver-minutes.html jgraham 16:53:43 ... So no objection to changing Classic here. 16:53:45 q+ 16:54:03 ack next 16:54:10 ... Same question about how much time to spend on Classic vs. BiDi. 16:55:03 sasha: Maybe the way it works now is acceptable. You cannot set anymore the cookies with sameSite ... There will be no error, but the cookie cannot be set. 16:55:15 ... If it's an acceptable behavior for clients, that's fine. 16:55:51 jgraham: It the current situation leads to data loss, that may be a good motivation to fix things. 16:55:57 Topic: `emulation.setTimezoneOverride` 16:56:06 github: https://github.com/w3c/webdriver-bidi/issues/749 16:56:15 sadym: It's a call for action. Please take a look! 16:56:43 Topic: Allow errorText for `network.fetchError` to be implementation defined 16:56:51 topic: https://github.com/w3c/webdriver-bidi/issues/631 16:56:57 Topic: Allow errorText for `network.fetchError` to be implementation defined 16:57:03 github: https://github.com/w3c/webdriver-bidi/issues/631 16:57:56 jdescottes: Heads-up. We have a TODO in the spec for the network fetcher event. I looked about error texts. I couldn't find anything. I'm suggesting to lead this as implementation defined. 16:57:58 q+ 16:58:08 ack next 16:58:26 Scribe: jgraham 16:58:55 q+ 16:59:02 tidoust: I18n review will ask about error text we're going to show to users, but it doesn't say anything about what language the text is in, whether it's ltr or rtl etc. 16:59:13 ack next 16:59:26 q+ 16:59:44 jdescottes: In practice, all Firefox error messages should be in English, but that's indeed not a guarantee for all implementations. 17:00:26 jgraham: In practice, we assumed that these implementation defined texts are essentially static in code and in one language only. 17:00:54 ack next 17:00:57 ... However, if there's a request from i18n group to provide additional info in the responses, we can probably amend the responses to add the information. 17:01:16 RRSAgent: make minutes 17:01:17 I have made the request to generate https://www.w3.org/2025/07/09-webdriver-minutes.html jgraham 17:01:23 zakim, bye 17:01:23 leaving. As of this point the attendees have been jgraham, jdescottes, sasha, sadym, whimboo, lauromoura, jimevans 17:01:23 Zakim has left #webdriver 17:01:37 present+ 17:01:48 RRSAgent, make minutes 17:01:50 I have made the request to generate https://www.w3.org/2025/07/09-webdriver-minutes.html tidoust 17:02:12 RRSAgent, bye 17:02:12 I see no action items