-
RRSAgent
-
jgraham
RRSAgent, this meeting spans midnight
-
RRSAgent
ok, jgraham; I will not start a new log at midnight
-
AutomatedTester
Chair: AutomatedTester
-
AutomatedTester
present+
-
jgraham
-
jgraham
present+
-
simonstewart
present+
-
bwalderman
present+
-
AutomatedTester
Meeting: Browser Tools- and Testing WG, Day 2, TPAC 2019, Fukuoka
-
AutomatedTester
rrsagent, this meeting spans midnight
-
RRSAgent
ok, AutomatedTester; I will not start a new log at midnight
-
jgraham
RRSAgent, make logs public
-
RRSAgent
I have made the request, jgraham
-
Hexcles
present+
-
jgraham
RRSAgent, create minutes v2
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html jgraham
-
mmerrell
present+
-
» Hexcles what is v2
-
JohnChen
present+
-
ato
present+
-
ato
Chair: AutomatedTester
-
drousso
present+
-
diemol
present+
-
mmerrell
topic: bi-directional communication
-
CalebRouleau
present+
-
ato
-
titusfortner
present+
-
mmerrell
everyone should mark themself present
-
MikeSmith
present+
-
brrian
present+
-
simonstewart
I hast marked mineself as being present
-
cb
present+
-
JohnJansen
present+
-
zghadyali
present+
-
scheib
present+
-
mmerrell
AutomatedTester: continuation of the bi-di talk. centered around proper examples
-
mmerrell
... need to start from implementation and go backward
-
JohnChen
q+
-
» Zakim sees JohnChen on the speaker queue
-
bwald_
present+
-
mmerrell
AutomatedTester: start with "loading", how we'd do navigation
-
mmerrell
CalebRouleau: first thing would be to target a navigation (across tabs)
-
brrian
q+
-
» Zakim sees JohnChen, brrian on the speaker queue
-
AutomatedTester
ack JohnChen
-
» Zakim sees brrian on the speaker queue
-
mmerrell
JohnChen: we start with how nav is initiated. the DevTools method is that every tab is a separate tab, and choosing which tab needs to navigate is significant
-
mmerrell
.. page.navigate() has 2 params, the tab (the target) and the URL
-
simonstewart
-
mmerrell
... 3 other events: page.frameStartedLoading(), happens when the HTML is received. before that, nav is tentative (not committed yet), but once loading actually begins, a page.load event is fired
-
mmerrell
... page.frameStopLoading event indicates the loading is done
-
AutomatedTester
q?
-
» Zakim sees brrian on the speaker queue
-
jgraham
scribenick: mmerrell
-
mmerrell
... chrome monitors for these events, and makes decisions based on that. This is how loading happens with CDP
-
mmerrell
brrian: why are we talking about this?
-
mmerrell
AutomatedTester: we're trying to use an example of a command, and working backward
-
Hexcles
s/frameStopLoading/frameStoppedLoading/
-
AutomatedTester
ack brrian
-
» Zakim sees no one on the speaker queue
-
mmerrell
brrian: is this part of the use case we talked about yesterday?
-
bwald_
q+
-
» Zakim sees bwald_ on the speaker queue
-
mmerrell
JohnChen: yes
-
mmerrell
brrian: this seems like a duplicate
-
mmerrell
jgraham: if the use cases don't include this the use cases are wrong
-
AutomatedTester
RRSAgent: make minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html AutomatedTester
-
bwald_
q-
-
» Zakim sees no one on the speaker queue
-
mmerrell
jgraham: the point isn't to discuss every command, the point is to cover things that are fundamental to the protocol, of which navigation is one
-
simonstewart
q+
-
» Zakim sees simonstewart on the speaker queue
-
mmerrell
jgraham: there should be some way in the bi-di protocol to initiate navigation, the requests, responses, etc. We need to discuss this, because it's the base part of the framework for the whole conversation
-
JohnChen
q?
-
» Zakim sees simonstewart on the speaker queue
-
JohnChen
q+
-
» Zakim sees simonstewart, JohnChen on the speaker queue
-
mmerrell
brrian: this isn't part of the use cases
-
mmerrell
CalebRouleau: we should be discussing navigation because it's more contentious, while we're here in the room, rather than discussing something like logging, where we'll probably agree on everything
-
mmerrell
lukebjerring: it's easier to start with a use case that involves every part of the protocol
-
mmerrell
jgraham: nav is a necessary component of a rewrite of the protocol
-
mmerrell
simonstewart: it's not necessary, but it's already in there
-
simonstewart
s/but it's/and it's/
-
mmerrell
jgraham: but we've already demonstrated that the discussion has been incomplete
-
mmerrell
simonstewart: if the purpose here is a re-do of the bi-di protocol, then it makes sense to do load. if it's to discover the shape of how to do it, that discussion is worth having
-
AutomatedTester
q?
-
» Zakim sees simonstewart, JohnChen on the speaker queue
-
AutomatedTester
ack simonstewart
-
» Zakim sees JohnChen on the speaker queue
-
drousso
q+
-
» Zakim sees JohnChen, drousso on the speaker queue
-
AutomatedTester
ack JohnChen
-
» Zakim sees drousso on the speaker queue
-
mmerrell
JohnChen: one use case was the request modification (intercept), which has been covered in the CDP
-
simonstewart
q+
-
» Zakim sees drousso, simonstewart on the speaker queue
-
mmerrell
JohnChen: we could insert an event in front of the loading call, which would allow this kind of interception in a way that is non-blocking, which fosters an async loading of the page in parallel with the intercept
-
AutomatedTester
ack drousso
-
» Zakim sees simonstewart on the speaker queue
-
jgraham
q+
-
» Zakim sees simonstewart, jgraham on the speaker queue
-
CalebRouleau
q+
-
» Zakim sees simonstewart, jgraham, CalebRouleau on the speaker queue
-
mmerrell
drousso: the idea of loading a page, and intercepting a request, are two separate things entirely. It's not necessary to talk about these things at the same time... the only thing that overlaps is that they're going across the netork
-
bwald_
q+
-
» Zakim sees simonstewart, jgraham, CalebRouleau, bwald_ on the speaker queue
-
mmerrell
... a lot of what's being proposed comes down to data, and we need to discuss the shape of what it is and how it goes, not about the combinations of these concerns in a specific implementation
-
mmerrell
JohnChen: whatever script is running on the page disappears once the load event changes
-
simonstewart
q-
-
» Zakim sees jgraham, CalebRouleau, bwald_ on the speaker queue
-
mmerrell
drousso: you should be able to send a script to the driver, which executes just prior to a load event
-
mmerrell
CalebRouleau: but JavaScript can't do everything we want, so we need to talk about it as a separate issue
-
mmerrell
jgraham: this comes down to script execution, though, not bi-di fundamentals. We need to understand the nature of the bi-di communication in order to agree on how to proceed in this conversation
-
mmerrell
CalebRouleau: this is getting too meta, so I suggest getting back to concrete examples
-
AutomatedTester
q?
-
» Zakim sees jgraham, CalebRouleau, bwald_ on the speaker queue
-
bwald_
q-
-
» Zakim sees jgraham, CalebRouleau on the speaker queue
-
ato
q+
-
» Zakim sees jgraham, CalebRouleau, ato on the speaker queue
-
-
mmerrell
CalebRouleau: we should talk about logging, which will give us the context that fosters agreement on a framework or bi-di
-
JohnJansen
q?
-
» Zakim sees jgraham, CalebRouleau, ato on the speaker queue
-
brrian
q+
-
» Zakim sees jgraham, CalebRouleau, ato, brrian on the speaker queue
-
bwald_
q+
-
» Zakim sees jgraham, CalebRouleau, ato, brrian, bwald_ on the speaker queue
-
mmerrell
jgraham: talking about logging risks too deep a dive into a simple use case, where we'll get distracted from discussing the nature of bi-di communication
-
ato
q-
-
» Zakim sees jgraham, CalebRouleau, brrian, bwald_ on the speaker queue
-
simonstewart
q+
-
» Zakim sees jgraham, CalebRouleau, brrian, bwald_, simonstewart on the speaker queue
-
mmerrell
AutomatedTester: with logging, we *won't* discuss the particulars of logging, we'll stick to the fundamentals of the packets and how they look
-
mmerrell
bwald_: that will include transports, correct?
-
AutomatedTester
q?
-
» Zakim sees jgraham, CalebRouleau, brrian, bwald_, simonstewart on the speaker queue
-
mmerrell
jgraham: yes, but there's a risk that we're leaving too much out
-
mmerrell
[general agreement on moving forward]
-
mmerrell
simonstewart: we should also include the handshake
-
JohnJansen
I will paste this again to make sure everyone has read Google's description:
docs.google.com/document/d/1eJx437A…Q49lYYD3GspDUwZ6KpKDgcE2eR00g/edit#
-
mmerrell
jgraham: has the position changed since TPAC 2018? the conclusion was around a capability that included "bi-di". Has that changed?
-
AutomatedTester
q?q?
-
» Zakim sees jgraham, CalebRouleau, brrian, bwald_, simonstewart on the speaker queue
-
mmerrell
JohnChen: our prototype allows for that capability, which "upgrades" the connection to one that goes via a websocket, but which doesn't exactly hand back a websocket connection. It keeps the websocket connetion between the client and the browser, not exposing it further
-
mmerrell
simonstewart: the top-level return payload should include the "upgrade URL", but which can be re-written
-
ato
q?
-
» Zakim sees jgraham, CalebRouleau, brrian, bwald_, simonstewart on the speaker queue
-
mmerrell
RESOLVED: Bi-di is always enabled. An optional capability, defaulting to true, indicating that bi-di is desired. When a new session is established, the return value of the new session contains the new top-level property of the bi-directional URL
-
» ato RRSAgent, make minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html ato
-
AutomatedTester
scribenick: automatedtester
-
simonstewart
q?
-
» Zakim sees jgraham, CalebRouleau, brrian, bwald_, simonstewart on the speaker queue
-
jgraham
q-
-
» Zakim sees CalebRouleau, brrian, bwald_, simonstewart on the speaker queue
-
CalebRouleau
q-
-
» Zakim sees brrian, bwald_, simonstewart on the speaker queue
-
AutomatedTester
CalebRouleau: are we going to be doing 1 URL or multiple
-
AutomatedTester
simonstewart: 1
-
AutomatedTester
ack brrian
-
» Zakim sees bwald_, simonstewart on the speaker queue
-
brrian
-
simonstewart
q-
-
» Zakim sees bwald_ on the speaker queue
-
mmerrell
scribenick: mmerrell
-
mmerrell
brrian: I propose that we send commands in events. We can work through examples, but it needs to go via JSON, which can include binary data
-
AutomatedTester
q?
-
» Zakim sees bwald_ on the speaker queue
-
mmerrell
brrian: there are . alot of tools available for generating code that can use this, incl C, JS, C#, etc. We should discuss
-
mmerrell
jgraham: is this close to existing implementations?
-
mmerrell
bwald_: we should start with JSON RPC. I second
-
AutomatedTester
ack bwald_
-
» Zakim sees no one on the speaker queue
-
mmerrell
... CDP is basically already JSON RPC, only missing a couple things
-
simonstewart
q-
-
» Zakim sees no one on the speaker queue
-
mmerrell
brrian: one difference is that JSON RPC is very particular about one request, one response. You have to batch things together. We should write tests for this, but ultimately adhere to the JSON RPC protocol
-
mmerrell
bwald_: it's proposed that the bi-directional WebDriver protocol uses JSON RPC
-
mmerrell
jgraham: we would need to study the standard more before agreeing to this
-
ato
q+
-
» Zakim sees ato on the speaker queue
-
mmerrell
JohnChen: there are some pieces to this that would be a challenge for us to conform to, particularly around notifications and identification of these responses
-
AutomatedTester
ack ato
-
» Zakim sees no one on the speaker queue
-
simonstewart
q+
-
» Zakim sees simonstewart on the speaker queue
-
mmerrell
ato: I don't think we can use JSON RPC. We are fundamentally constrained by existing clients. We need to be able to proxy existing RPC clients, which would require a fundamental rewrite of all clients
-
mmerrell
... we shouldn't change the fundamental transport protocol
-
mmerrell
... there's a corpus of clients which already use a protocol. This would be an unnecessary change
-
mmerrell
jgraham: what's the advantage of using JSON RPC, as opposed to the CDP version of the JSON that's being carried over?
-
mmerrell
brrian: it's a spec. I don't want to be required to conform to weird CDP bugs
-
AutomatedTester
q?
-
» Zakim sees simonstewart on the speaker queue
-
simonstewart
q-
-
» Zakim sees no one on the speaker queue
-
mmerrell
ato: I would like to use a more well-defined message formatting, but I'm not sure the JSON RPC is the right answer. We should nail down the specifics before we do this. JSON RPC is a good guidepost, but we shouldn't assume it will solve all our problems, and may require additional specprose for how to define these things, and it may get very complicated very quickly
-
mmerrell
lukebjerring: can we have a translation layer? this would allow us to transition clients over time
-
Hexcles
q+
-
» Zakim sees Hexcles on the speaker queue
-
mmerrell
CalebRouleau: what problems are there in the CDP right now that would prevent us from using it as a guideline?
-
mmerrell
simonstewart: we shouldn't start from an existing implementation and work backward, we should start with what we need and define the protocol as required
-
cb
q+
-
» Zakim sees Hexcles, cb on the speaker queue
-
brrian
q+
-
» Zakim sees Hexcles, cb, brrian on the speaker queue
-
mmerrell
jgraham: the mistake we've made is "making small changes to things that work, and spending years fostering adoption", when we should instead focus on solving user problems, as evidenced by the heavy usage of CDP
-
simonstewart
q?
-
» Zakim sees Hexcles, cb, brrian on the speaker queue
-
mmerrell
jgraham: we're making a mistake by talking about the transport layer, in that we're missing the actual use case. Let's defer making a resolution at the moment, because we haven't moved through the conversation enough, guided by real knowledge of the existing issues
-
AutomatedTester
ack Hexcles
-
» Zakim sees cb, brrian on the speaker queue
-
AutomatedTester
ack cb
-
» Zakim sees brrian on the speaker queue
-
mmerrell
Hexcles: the WD spec is still a single-direction protocol. We haven't started to talk about how to make them truly bi-di, but there's nothing in the JSON RPC spec that directly encourages bi-directional communication
-
Hexcles
s/the WD spec/the JSON RPC spec/
-
mmerrell
cb: adoption of tools is a whole other problem. Cypress, Puppeteer, etc., all use the CDP itself, so making the spec more friendly to the CDP would be a benefit to the spec, and we'd be missing a lot of use cases by ignoring it
-
AutomatedTester
ack brrian
-
» Zakim sees no one on the speaker queue
-
AutomatedTester
Zakim close the queue
-
mmerrell
brrian: there's a lot of concern about the difference between what we want and what JSON RPC offers. I've personally found it to be quite easy to follow, and made no practical difference to the amount of change. The benefit was that we can say we conform, and that our packets will be predictable
-
mmerrell
brrian: having written 3 implementations in 3 languages, I can say it's trivial
-
mmerrell
jgraham: JSON RPC is roughly the shape of how the transport protocol should go, but there are particulars to its adoption
-
mmerrell
ato: we have concerns about version pinning as well as the server-side events as they come across. I have ideas for a transition plan, but we need to address the concerns before we can resolve
-
mmerrell
jgraham: we agree that we can't adopt the JSON RPC spec without having studied it further
-
simonstewart
q+
-
» Zakim sees simonstewart on the speaker queue
-
MikeSmith
AutomatedTester: start from .. transports roughly agreed
-
AutomatedTester
ack simonstewart
-
» Zakim sees no one on the speaker queue
-
CalebRouleau
q+
-
» Zakim sees CalebRouleau on the speaker queue
-
MikeSmith
simonstewart: How to send references to browsing contexts, frames
-
MikeSmith
... something like ExecuteScript
-
MikeSmith
CalebRouleau: WD curently has notion of "you are attached this to this specific handle"
-
bwald_
q+
-
» Zakim sees CalebRouleau, bwald_ on the speaker queue
-
MikeSmith
simonstewart: I think we will allow to communicate with multiple handles
-
MikeSmith
... [example of communication with ServiceWorker]
-
MikeSmith
CalebRouleau: send to any browsing context, and get events back from any?
-
MikeSmith
simonstewart: yes
-
CalebRouleau
ack
-
CalebRouleau
q?
-
» Zakim sees CalebRouleau, bwald_ on the speaker queue
-
AutomatedTester
ack CalebRouleau
-
» Zakim sees bwald_ on the speaker queue
-
CalebRouleau
ack CalebRouleau
-
» Zakim sees bwald_ on the speaker queue
-
MikeSmith
ato: "control" messages, example, if you want to get browser-internal logs, that might not require a target ID
-
jgraham
q+
-
» Zakim sees bwald_, jgraham on the speaker queue
-
MikeSmith
... some commands make sense in a global scope, some make sense in scope of a single browsing context
-
MikeSmith
jgraham: JS realms, global object is a JS realm
-
AutomatedTester
ack bwald_
-
» Zakim sees jgraham on the speaker queue
-
AutomatedTester
ack jgraham
-
» Zakim sees no one on the speaker queue
-
MikeSmith
jgraham: important to distinguish between browsing contexts and targets
-
drousso
q?
-
» Zakim sees no one on the speaker queue
-
drousso
q+
-
» Zakim sees drousso on the speaker queue
-
MikeSmith
... it's important to be able to target more than just window globals
-
MikeSmith
... [inject script case]
-
MikeSmith
jgraham: should be possible to specify either a browsing context, or a target, or
-
AutomatedTester
ack drousso
-
» Zakim sees no one on the speaker queue
-
brrian
q+
-
» Zakim sees brrian on the speaker queue
-
MikeSmith
drousso: similar to how Web Inspector already works
-
ato
q+
-
» Zakim sees brrian, ato on the speaker queue
-
MikeSmith
... we include a target ID in every message
-
AutomatedTester
ack brrian
-
» Zakim sees ato on the speaker queue
-
CalebRouleau
q?
-
» Zakim sees ato on the speaker queue
-
CalebRouleau
q+
-
» Zakim sees ato, CalebRouleau on the speaker queue
-
AutomatedTester
ack ato
-
» Zakim sees CalebRouleau on the speaker queue
-
MikeSmith
brrian: SafariDriver has an internal protocol in which the browsing context is passed around with every command
-
MikeSmith
ato: what we have now requires a lot of context-switching
-
MikeSmith
... that makes sense in WebDriver's view of the world
-
MikeSmith
... [which maps to how a user sees and does things]
-
brrian
q+
-
» Zakim sees CalebRouleau, brrian on the speaker queue
-
MikeSmith
... but I have a sense that the bidi protocol is a bit lower than that
-
simonstewart
q+
-
» Zakim sees CalebRouleau, brrian, simonstewart on the speaker queue
-
MikeSmith
... so some of the things we have held true so far might no longer hold true in the bidi protocol
-
MikeSmith
ato: ability to associate a message going over bidi with a specific browsing context, without needing to switch into that context
-
jgraham
ack CalebRouleau
-
» Zakim sees brrian, simonstewart on the speaker queue
-
simonstewart
q-
-
» Zakim sees brrian on the speaker queue
-
jgraham
ack brrian
-
» Zakim sees no one on the speaker queue
-
ato
RESOLUTION: It should be possible for command request messages to target a particular target/browsing context.
-
simonstewart
q+
-
» Zakim sees simonstewart on the speaker queue
-
ato
q+
-
MikeSmith
brrian: for random clients, let's make it as foolproof as possible
-
» Zakim sees simonstewart, ato on the speaker queue
-
MikeSmith
RRSAgent, make minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html MikeSmith
-
AutomatedTester
ack simonstewart
-
» Zakim sees ato on the speaker queue
-
MikeSmith
simonstewart: we want to reformulate WebDriver on top of the bidi communication thing
-
CalebRouleau
q?
-
» Zakim sees ato on the speaker queue
-
MikeSmith
... have world where we can do everything in the same protocol
-
AutomatedTester
ack ato
-
» Zakim sees no one on the speaker queue
-
MikeSmith
i/transports roughly agreed/scribenick: MikeSmith
-
MikeSmith
ato: we should continue to bear in mind that we enable that kind of programming model that is being use by, for example, Puppeteer
-
MikeSmith
... message indexing is really important
-
MikeSmith
... we would agree that every request wof this bidi protocol should have exactly one response
-
MikeSmith
... that case is not implicit in JSON-RPC
-
simonstewart
q?
-
» Zakim sees no one on the speaker queue
-
MikeSmith
RRSAgent, make minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html MikeSmith
-
MikeSmith
ato: additional complication of CDP, the fact that does not have a target that is not a browsing context but is instead an execution context
-
MikeSmith
s/that does not have/that has
-
MikeSmith
ato: you get an event back telling you that a new execution context has been created
-
CalebRouleau
q?
-
» Zakim sees no one on the speaker queue
-
MikeSmith
AutomatedTester: what is left to do?
-
MikeSmith
jgraham: so bunch of stuff we been doing by reference to CDP
-
MikeSmith
... wrapping messages to root them to a target
-
MikeSmith
... we too want to do it that way?
-
brrian
q+
-
» Zakim sees brrian on the speaker queue
-
MikeSmith
simonstewart: new thing in CDP, where yo uhave a session ID and you prepart a message and send to it a single WebSocket connection
-
MikeSmith
drousso: we are similar to that
-
MikeSmith
jgraham: do we weant to replicate that design?
-
MikeSmith
simonstewart: no
-
MikeSmith
jgraham: artifact of the way that devtools needed to operate
-
CalebRouleau
q+
-
» Zakim sees brrian, CalebRouleau on the speaker queue
-
simonstewart
q+
-
» Zakim sees brrian, CalebRouleau, simonstewart on the speaker queue
-
MikeSmith
jgraham: the reason they added that wrapper way is because they did not want to change the existing protocol they had, which assumed a single browsing context
-
MikeSmith
simonstewart: looks definitely like a historical artifact
-
MikeSmith
... double-encoding JSON
-
MikeSmith
CalebRouleau: gross
-
MikeSmith
... we don't want that
-
AutomatedTester
ack brrian
-
» Zakim sees CalebRouleau, simonstewart on the speaker queue
-
bwald_
q+
-
» Zakim sees CalebRouleau, simonstewart, bwald_ on the speaker queue
-
MikeSmith
brrian: we have a similar implementation detail
-
ato
q+
-
» Zakim sees CalebRouleau, simonstewart, bwald_, ato on the speaker queue
-
simonstewart
q-
-
» Zakim sees CalebRouleau, bwald_, ato on the speaker queue
-
MikeSmith
... I don't think we should expose any of that
-
MikeSmith
CalebRouleau: target will be consistent across a browsing context
-
MikeSmith
... not just doing what CDP does
-
MikeSmith
jgraham: do we adopt the syntactic pattern that already exists? or do we do something more sane?
-
MikeSmith
brrian: the existing devtools mechanism comes from things that are specific to debugging
-
CalebRouleau
q-
-
» Zakim sees bwald_, ato on the speaker queue
-
MikeSmith
... and we are not making this feature for debugging needs
-
AutomatedTester
ack bwald_
-
» Zakim sees ato on the speaker queue
-
simonstewart
q-
-
» Zakim sees ato on the speaker queue
-
MikeSmith
bwald_: process-switching is an implementation detail
-
MikeSmith
... I don't see any reason to abandon the current model of the browser as we are using for WebDriver now
-
jgraham
q?
-
» Zakim sees ato on the speaker queue
-
AutomatedTester
ack ato
-
» Zakim sees no one on the speaker queue
-
simonstewart
q+
-
» Zakim sees simonstewart on the speaker queue
-
MikeSmith
ato: conflation of targets and execution contexts
-
ato
-
MikeSmith
.. Firefox is working on a implementation of CDP
-
MikeSmith
... see the doc as the URL above
-
MikeSmith
... a target can be a tab (as opposed to a browsing context)
-
MikeSmith
... you can route individual messages using the session ID
-
jgraham
q+
-
» Zakim sees simonstewart, jgraham on the speaker queue
-
AutomatedTester
ack simonstewart
-
» Zakim sees jgraham on the speaker queue
-
MikeSmith
simonstewart: so we connect, and the thing we want to do is, register a listener (say)
-
MikeSmith
... we will have a command name, a list of arguments
-
AutomatedTester
q?
-
» Zakim sees jgraham on the speaker queue
-
MikeSmith
... how do we say which execution context it will be run in?
-
MikeSmith
JohnChen: WebDriver process is normally implicit
-
MikeSmith
... but in bidi it is is different
-
MikeSmith
simonstewart: context ID
-
MikeSmith
ato: historially CDP did not support site isolation
-
MikeSmith
... so there are artifacts in it that were based on assuming that
-
AutomatedTester
q?
-
» Zakim sees jgraham on the speaker queue
-
bwald_
q+
-
» Zakim sees jgraham, bwald_ on the speaker queue
-
MikeSmith
ato: important thing is for the context ID to be a serializable value that can be passed around
-
MikeSmith
simonstewart: we haev a window handle, but not for a frame
-
ato
q+
-
» Zakim sees jgraham, bwald_, ato on the speaker queue
-
MikeSmith
jgraham: we do
-
MikeSmith
ato: we have this is the spec but not implemented
-
MikeSmith
ato: CDP is both an HTTP API and a socket API
-
MikeSmith
ato: can auto-attach
-
MikeSmith
... (which changes the implicit target, btw, and not sure we want that part of it)
-
AutomatedTester
q?
-
» Zakim sees jgraham, bwald_, ato on the speaker queue
-
MikeSmith
ato: a service worker is not a browsing context
-
MikeSmith
ato: we are inventing a super-abstraction above browsing contexts
-
AutomatedTester
ack bwald_
-
» Zakim sees jgraham, ato on the speaker queue
-
MikeSmith
bwald_: getting an event back to the client when a mutation occurs
-
MikeSmith
... maybe need a way to pass in a function go get message back to client
-
AutomatedTester
ack ato
-
» Zakim sees jgraham on the speaker queue
-
MikeSmith
ato: how to identify JS object, we should talk about
-
MikeSmith
... in CDP you can return anything; for example, a JS object
-
jgraham
q-
-
» Zakim sees no one on the speaker queue
-
MikeSmith
simonstewart: element ID in the WebDriver spec is because we were limited by the serialization mechanism
-
simonstewart
q+
-
» Zakim sees simonstewart on the speaker queue
-
AutomatedTester
ack simonstewart
-
» Zakim sees no one on the speaker queue
-
MikeSmith
simonstewart: element IDs are the JS object reference
-
MikeSmith
... window handle is the target iD for browser context
-
MikeSmith
bwald_: message passing?
-
MikeSmith
... supply a postMessage ID
-
MikeSmith
ato: is that in CDP?
-
mmerrell
we're also introducing a new id for the frame
-
MikeSmith
CalebRouleau: is there a reason CDP does not have this?
-
MikeSmith
drousso: in devtools we have direct access to the engine
-
MikeSmith
CalebRouleau: how does Puppeteer do this?
-
mmerrell
Simon, can you summarize the last point about the frame ID so that we have your telling on record?
-
MikeSmith
ato: you can pass in fuctions, inner functions, or Promises
-
» MikeSmith simonstewart, see above request from mmerrell
-
MikeSmith
bwald_: CDP pollutes the global namespace [to do the similar thing]
-
simonstewart
Summary: Add a new "get context" function to existing webdriver. If the "current context" is a top level browsing context, this will return the current window handle. For a frame, it's "something" that we create. In both cases, the "context id" can be passed to bidi to use as a target id
-
ato
q+
-
» Zakim sees ato on the speaker queue
-
mmerrell
thanks
-
MikeSmith
ato: current CDP primitive is conceptually very similar to what we were are already doing in WebDriver
-
MikeSmith
... primitive for script execution without a lifetime
-
MikeSmith
simonstewart: there is a no synchronous thing for this in CDP
-
MikeSmith
jgraham: there is no blocking
-
MikeSmith
ato: another model is the Promise style [in addition to return-by-value]
-
MikeSmith
simonstewart: get the communication part sorted out first
-
MikeSmith
jgraham: existing clients provida a way to create a custom event stream in JS?
-
MikeSmith
ato: there is a way in Puppeteer
-
MikeSmith
[discussion of handling of bootstrap scripts]
-
MikeSmith
jgraham: this is how extensions work, basically
-
MikeSmith
... so conceptually is already exists
-
AutomatedTester
ack ato
-
» Zakim sees no one on the speaker queue
-
MikeSmith
ato: connections in the API, for a script injection, for a single browsing context, there soucld be multiple execution context
-
MikeSmith
... some execution contexts may be privileged
-
MikeSmith
ato: each service worker can have mulitple JS realms?
-
MikeSmith
s/?/
-
MikeSmith
jgraham: theoretically, yes, but in practice, no
-
AutomatedTester
q?
-
» Zakim sees no one on the speaker queue
-
MikeSmith
RRSAgent, make minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html MikeSmith
-
MikeSmith
simonstewart: if you send an element from the remote end to local end, how do you know which context it has come from?
-
MikeSmith
ato: I don't think it does in CDP, but there is a way to query for it
-
MikeSmith
simonstewart: ... which is very inefficient
-
MikeSmith
bwald_: included in the event, is how we should do it
-
MikeSmith
CalebRouleau: to implement this in ChromeDriver will be a pain and inefficient
-
MikeSmith
[JohnChen explains why]
-
simonst__
present+
-
ato
s/simonst__//
-
MikeSmith
JohnChen: have not found an efficient way to map element ID
-
MikeSmith
CalebRouleau: in JS land
-
MikeSmith
JohnChen: low-level, the IDs that devtools know about are not exposable to JS [in an easy way]
-
MikeSmith
s/JS [in an easy way]/JS
-
MikeSmith
jgraham: when do runscript in CDP, you get back a reference to an object
-
MikeSmith
... but what WebDriver wants is not that
-
MikeSmith
... so you would need to query again to get what we would need
-
MikeSmith
JohnChen: so we could do what we need but it will require additional roundtrips
-
MikeSmith
drousso: similarly for us in Sfari
-
MikeSmith
RRSAgent, make minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html MikeSmith
-
simonstewart
-
jgraham
-
mmerrell
scribenick: mmerrell
-
» Hexcles and lukebjerring heading out. It was nice meeting you. See you around next time!
-
projector_webdriver
hello
-
mmerrell
your name is brrian
-
drousso
present+
-
AutomatedTester
-
mmerrell
topic: ato's comments on bidi
-
mmerrell
ato: good progress was made this morning, but we need to make sure follow-up actions are taken in order to prevent a repeat conversation next year
-
mmerrell
... [ato takes an action to make some detailed proposals around these decisions]
-
mmerrell
topic: long-running new session
-
mmerrell
simonstewart: context: new session is synchronous--request new session, and the wait can be forever
-
ato
ACTION: ato to draft proposal for the bi-di protocol interop terminology we discussed this morning
-
» RRSAgent records action 1
-
mmerrell
simonstewart: this can take unreasonably long, and given that it's a blocking call, this can be "bad"
-
mmerrell
cb: queuing and throttling from grid/vendors is another use case
-
mmerrell
simonstewart: networks are [not very good]. We need to have an async new session
-
ato
Unrelated to the current topic, here is an example of some CDP protocol chatter:
taskcluster-artifacts.net/FQEINPSIQ…JTbg/0/public/logs/live_backing.log
-
mmerrell
simonstewart: request a new session, a token is returned, which you can use to track on your own to see the progress
-
mmerrell
mmerrell: similar to the async nature of the AWS API
-
mmerrell
simonstewart: I have a draft implementation for this
-
simonste_
-
AutomatedTester
q?
-
» Zakim sees no one on the speaker queue
-
mmerrell
jgraham: use cases all seem to be for intermediary nodes, right? drivers are usually on local machine, so is this really a concern for non-local nodes, or can it just be implemented on intermediary nodes?
-
mmerrell
simonstewart: I want it to be consistent, so we should only have to write the code once.
-
ato
q+
-
» Zakim sees ato on the speaker queue
-
mmerrell
simonstewart: might not need to be the highest priority, but this would be a benefit
-
mmerrell
ato: is this how VM requisition works in the cloud?
-
mmerrell
simonstewart: that seems to be the case
-
mmerrell
ato: we should model this kind of API on known-good usages of such a library
-
mmerrell
simonstewart: a good usecase for this on a local machine would be for queueing multiple requests
-
ato
-
mmerrell
AutomatedTester: what are the session creation events?
-
ato
-
mmerrell
simonste_: the first stage is that the request is queued, then being created, then created
-
ato
“A remote end that is not an intermediary node has at most one active session at a given time.”
-
ato
Also:
-
ato
“A remote end has an associated maximum active sessions (an integer) that defines the number of active sessions that are supported. This may be “unlimited” for intermediary nodes, but must be exactly one for a remote end that is an endpoint node.”
-
mmerrell
simonste_: in the creation process, there are events we'd like to know about that might be interesting for the client to discover
-
simonstewart
present+
-
Lan
present+
-
» ato rrsagent, please draft minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html ato
-
titusfortner
oh, yes, so a single driver, but most drivers can have multiple processes
-
ato
You may have multiple processes on systems that support that.
-
titusfortner
right; except safaridriver, which is why I thought this might be more interesting for Safari, but doing it in series is probably better than parallel. anyway confusion resolved, thank you!
-
mmerrell
mmerrell: would it be good to expound on the AWS example?
-
ato
q?
-
» Zakim sees ato on the speaker queue
-
ato
ack ato
-
» Zakim sees no one on the speaker queue
-
cb
q+
-
» Zakim sees cb on the speaker queue
-
mmerrell
simonstewart: roughly, though it will require some more investigation. But we're heading in the right direction, with some open questions about how to return lists of events, etc
-
ato
s/bwald_//
-
mmerrell
simonstewart: this would be greatly helped with a bidi implementation
-
mmerrell
JohnChen: you'd see a connection token that you could use to track the status of various events
-
ato
s/simonste_/simonstewart/g
-
mmerrell
CalebRouleau: which in Chrome's case will likely be nothing
-
mmerrell
JohnChen: there will probably be a few interesting cases, in the case of queuing in particular
-
mmerrell
simonstewart: yeah, when you want to query capacity
-
ato
s/bwald_/bwalderman/g
-
» ato rrsagent, make minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html ato
-
mmerrell
JohnChen: that's actuallyone place where Chrome is not spec-compliant--it won't queue sessions, it will just create them on-demand
-
AutomatedTester
q?
-
» Zakim sees cb on the speaker queue
-
ato
present- bwald_
-
AutomatedTester
ack cb
-
» Zakim sees no one on the speaker queue
-
» ato mmerrell: I fixed up the wrong nicknames in the logs by using regexp
-
mmerrell
cb: there is already an end-point to query the state of a session. why couldn't we just use that, rather than creating a whole new mechanism for async session management?
-
mmerrell
simonstewart: there will be other cases where you'd need this kind of information, e.g. different versions of grid, or SL, etc
-
ato
q+
-
» Zakim sees ato on the speaker queue
-
mmerrell
cb: as an implementer you'd want to use the async version, correct?
-
mmerrell
simonstewart: yes
-
mmerrell
cb: would you then get rid of the synchronized method?
-
titusfortner
q+
-
» Zakim sees ato, titusfortner on the speaker queue
-
mmerrell
simonstewart: we'd likely reformulate the sync to use the async, and just appear to be synched
-
mmerrell
jgraham: should this be a parameter to the existing endpoint? why create a new endpoint?
-
mmerrell
brrian: wha'ts the fallback if you have the extra param and it doesn't come back correctly?
-
ato
q?
-
» Zakim sees ato, titusfortner on the speaker queue
-
mmerrell
jgraham: it would make the return type polymorphic
-
AutomatedTester
ack ato
-
» Zakim sees titusfortner on the speaker queue
-
mmerrell
ato: question regarding security: with WebDriver, you can't query open sessions. Will this break that?
-
mmerrell
simonstewart: you can't get a list of sessions--you get a request key, and you query on that request key
-
mmerrell
simonstewart: you don't get access to others that you don't already know about
-
mmerrell
AutomatedTester: would this be implicitly handled in client bindings?
-
mmerrell
[general assent]
-
diemol
q+
-
» Zakim sees titusfortner, diemol on the speaker queue
-
mmerrell
AutomatedTester: the end user won't know or care?
-
mmerrell
[general yes]
-
AutomatedTester
ack titusfortner
-
» Zakim sees diemol on the speaker queue
-
mmerrell
titusfortner: chromedriver.new() currently blocks on that call. How do we handle that?
-
mmerrell
simonstewart: the user will never know
-
mmerrell
titusfortner: the token we get back--should that be the same UUID?
-
mmerrell
simonstewart: no, there should be no requirement around that... that should be able to be determined by the implementing bindings
-
mmerrell
jgraham: another argument for adding a param rather than a new endpoint
-
mmerrell
jgraham: this would make it even easier to foster backward compatibility
-
mmerrell
ato: but you'd still need an endpoint to query the status
-
mmerrell
ato: but you'd still need an endpoint to query the status?
-
mmerrell
[general yes]
-
mmerrell
ato: you have to account for whether or not you're hitting an older version of the server, without the new endpoint
-
mmerrell
simonstewart: there needs to be a mechanism to query for the async support. extra parameter is one way, new endpoint is another
-
mmerrell
jgraham: this needs to be considered a session capability, not a browser capability
-
mmerrell
ato: sending as an "alwaysMatch" capability would risk rejection on an older driver
-
mmerrell
ato: there would have to be merging of the capabilities dict on all the drivers, resulting in combinatorial explosion of logic for processing them all
-
mmerrell
jgraham: you could keep retrying with the capabilities
-
mmerrell
ato: this is why it should be a HEAD request, to query the server's capability
-
mmerrell
simonstewart: based on the agreement from yesterday, we decided we should keep passing the capabilities through
-
mmerrell
titusfortner: from a user standpoint, I'd rather see a new endpoint, and if it fails, hit the older sync version
-
AutomatedTester
q?
-
» Zakim sees diemol on the speaker queue
-
mmerrell
simonstewart: this is why ato requested a HEAD to gauge capability
-
mmerrell
titusfortner: so every session creation request is 3 separate requests?
-
mmerrell
simonstewart: yes, similar (but better) to an older version of this
-
mmerrell
titusfortner: what are the bindings going to do to optimize this?
-
mmerrell
simonstewart: 3 requests: one to get the token, one to query readiness, and one to engage?
-
ato
q+
-
» Zakim sees diemol, ato on the speaker queue
-
mmerrell
simonstewart: the middle request would give you the state of the request
-
simonstewart
q?
-
» Zakim sees diemol, ato on the speaker queue
-
AutomatedTester
ack diemol
-
» Zakim sees ato on the speaker queue
-
ato
ack diemol
-
» Zakim sees ato on the speaker queue
-
CalebRouleau
a?
-
CalebRouleau
q?
-
» Zakim sees ato on the speaker queue
-
AutomatedTester
ack ato
-
» Zakim sees no one on the speaker queue
-
mmerrell
diemol: how does the grid keep track of all the tokens?
-
mmerrell
simonstewart: through the hub
-
mmerrell
ato: how do you get the capabilities of the session?
-
mmerrell
simonstewart: you hit the endpoint that returns the capabilities?
-
mmerrell
ato: but we don't get that yet
-
mmerrell
simonstewart: we should add that
-
mmerrell
simonstewart: we used to have that, but we removed it
-
mmerrell
action: Simon to finish PR around the async session request
-
» RRSAgent records action 2
-
» ato RRSAgent, draft minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html ato
-
mmerrell
topic: Pointer spec modification
-
mmerrell
AutomatedTester: suggestion from Microsoft for scrollwheel, from Samsung
-
mmerrell
JohnJansen: pointer spec modification request is to allow MS to create new request in this repo to add new tests for this repo
-
mmerrell
... writing new tests is basically impossible
-
mmerrell
... like to merge this into the new tests... e.g. how fat is the pen, what tilt is the pen
-
ato
s/Sfari/Safari/
-
mmerrell
... like to create new bindings for this, to TestActions in the WD spec. WinAppDriver can't run in WPT, which is very challenging for engineers
-
» ato rrsagent, draft minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html ato
-
mmerrell
... MS would like to write tests for this once it's merged
-
mmerrell
AutomatedTester: does this handle proximity cases for a pen?
-
ato
q+
-
» Zakim sees ato on the speaker queue
-
mmerrell
JohnJansen: "tangential pressure" is what that's called. One of the new events
-
mmerrell
jgraham: what's the issue regarding running the tests?
-
mmerrell
JohnJansen: they all fail, but they currently can't actually run
-
mmerrell
... it's frustrating to write the tests now when we know they're going to fail. Need to update the Python bindings in order to make them run
-
mmerrell
jgraham: why would spec changes block you from making progress on this? it's ok to make changes as a result of creating a proposal for an implementation
-
mmerrell
JohnJansen: we want to merge this now so we don't have to continue to wait
-
mmerrell
ato: we can't make this process completely atomic
-
mmerrell
CalebRouleau: this process shouldn't block you from making progress on something that will eventually be a proposal
-
mmerrell
JohnJansen: the priorities won't be written until after the changes are merged
-
mmerrell
jgraham: working group policy is that we don't make changes until the tests are written or passing
-
mmerrell
JohnJansen: the team we're relying on to write these tests is blocked awaiting official movement on the spec
-
AutomatedTester
q?
-
» Zakim sees ato on the speaker queue
-
AutomatedTester
ack ato
-
» Zakim sees no one on the speaker queue
-
mmerrell
CalebRouleau: WPT doesn't use selenium--it shouldn't be required that the WD spec changes in order to write WPT
-
mmerrell
AutomatedTester: this might dovetail into the discussion around the scrollwheel, but for the moment we need to decide whether to merge this or not
-
mmerrell
ato: the important thing is that it can't land in something we publish until the tests are complete
-
mmerrell
jgraham: should we provide an exception to the spec policy to provide for this?
-
mmerrell
ato: we should find out from JohnJansen's colleague what the particular blocker is to making progress. They should be able to move forward without breaking any rules or feeling any risk of having to redo or lose work
-
mmerrell
AutomatedTester: we should meet next week
-
JohnJansen
ACTION: JohnJansen schedule meeting with AutomatedTester to chat with Timotius re: Test for Pointer Modificatoin
-
» RRSAgent records action 3
-
ato
q+
-
» Zakim sees ato on the speaker queue
-
mmerrell
topic: Scroll Wheel Request
-
mmerrell
AutomatedTester: we agreed last year that we need a scrolling action of some sort, but we haven't made progress
-
mmerrell
AutomatedTester: we have Lan here to help with use cases
-
mmerrell
Lan: devtool protocol has an Action for mouse wheel, but this hsouldn't be part of the Point actions. It should be its own kind of action
-
mmerrell
ato: why is mouse wheel not associated with the mouse device?
-
mmerrell
Lan: it is associated with mouse, but it should be decoupled from the mouse--scrolling actions can happen without input from the mouse
-
simonstewart
q+
-
» Zakim sees ato, simonstewart on the speaker queue
-
mmerrell
ato: something like mouse wheel introduces questions: what does the wheel actually do? most things are definite (XY coordinates, etc), but mouse wheel motions are vague, and based on preferences set in the system or browser
-
mmerrell
jgraham: but we have this kind of ambiguity in plenty of other input devices, and these things break across systems on occasion
-
mmerrell
ato: compared to a mouse click or button press, the wheel is less deterministic
-
AutomatedTester
q?
-
» Zakim sees ato, simonstewart on the speaker queue
-
simonstewart
-
mmerrell
jgraham: you still end up generating DOM events that are predictable with a mouse wheel, so we should be able to model this interoperable behavior like anything else
-
JohnJansen
q?
-
» Zakim sees ato, simonstewart on the speaker queue
-
JohnJansen
q+
-
» Zakim sees ato, simonstewart, JohnJansen on the speaker queue
-
mmerrell
jgraham: it's the same as measuring the mouse motion itself--we measure by deltas. This is just a slightly different mechanism for measuring a slightly different input device
-
mmerrell
Lan: we propose extending the action API, by adding the delta of the mouse wheel, or one "tick" as defined by the mouse hardware
-
mmerrell
simonstewart: right, as ato says, we don't measure movement, we measure deltas by CSS pixels
-
mmerrell
simonstewart: looking at the events generated by the wheel in the spec above, it's still measured by CSS pixels
-
ato
-
ato
Funky example.
-
mmerrell
simonstewart: there should still be a new type, and we would allow these deltas to be recorded, which would map well down to the expected event
-
brrian
q?
-
» Zakim sees ato, simonstewart, JohnJansen on the speaker queue
-
brrian
q+
-
» Zakim sees ato, simonstewart, JohnJansen, brrian on the speaker queue
-
jgraham
-
simonstewart
ack simonstewart
-
» Zakim sees ato, JohnJansen, brrian on the speaker queue
-
ato
ack ato
-
» Zakim sees JohnJansen, brrian on the speaker queue
-
mmerrell
jgraham: the above PR for "pointer wheel" might be good enough as-is
-
mmerrell
simonstewart: this needs a test
-
mmerrell
jgraham: with tests, if Lan agrees, this should be good enough
-
mmerrell
Lan: would a WPT be good enough?
-
mmerrell
[room says yes]
-
mmerrell
JohnJansen: for implementation of this, Windows cares whether you're swiping or turning the wheel here. How do we mimic the hardware here?
-
mmerrell
ato: we don't
-
mmerrell
AutomatedTester: if you're using a finger, wouldn't that be a pointer gesture?
-
mmerrell
JohnJansen: yes, we already account for these swiping gestures. The wheel is different
-
mmerrell
CalebRouleau: this is just creating the web events, it has no hardware interaction
-
mmerrell
jgraham: does scrolling with your finger create web events?
-
mmerrell
AutomatedTester: no, it's a touch-and-drag
-
mmerrell
action: ask for tests on the above PR
-
» RRSAgent records action 4
-
simonstewart
q?
-
» Zakim sees JohnJansen, brrian on the speaker queue
-
AutomatedTester
ack JohnJansen
-
» Zakim sees brrian on the speaker queue
-
ato
ScribeNick: ato
-
ato
brrian: This doesn’t have a scroll wheel.
-
ato
jgraham: It seems totally reasonable for the driver to complain if the scroll wheel is not supported on the platform.
-
AutomatedTester
ack brrian
-
» Zakim sees no one on the speaker queue
-
JohnJansen
(bbrian was pointing to his phone re: no mouse)
-
ato
-
ato
ato: "wheel" event is being emulated on macOS.
-
ato
brrian: There’s no way to scroll on these devices using WebDriver.
-
ato
jgraham: Is the proposal that we also have a generic scroll API?
-
ato
simonstewart: Last year we did the scrollToElement in the middle of an action chain,
-
ato
simonstewart: scrollIntoView in the middle of actions.
-
AutomatedTester
q?
-
» Zakim sees no one on the speaker queue
-
AutomatedTester
scribenick: AutomatedTester
-
AutomatedTester
brrian: we are going to need a mechanism that allows use to scroll
-
AutomatedTester
jgraham: yes, we agreed on this last year that would allow us to move to an element and we can move that
-
AutomatedTester
ato: yes, but no one has actually specified that
-
AutomatedTester
jgraham: there is the argument, why do scrollwheel or just normal scroll
-
AutomatedTester
ato: we need both so that we can have the wheel DOM events
-
AutomatedTester
resolution: create scroll as discussed last year as well as item for something that gives off wheel events
-
ato
ScribeNick: ato
-
ato
Topic: Automasting PWAs or other "site as app" web content
-
ato
JohnJansen: We have large teams around building PWAs, like Twitter.
-
ato
JohnJansen: Testing these things isn’t just about testing the DOM as WebDriver expose it.
-
ato
... But also things like service worker.
-
ato
... It spans in a weird way the area between the web platform and other things around you.
-
ato
... Is testing service worker in WebDriver in scope? Or should we look into other solutions?
-
ato
simonstewart: We have alluded to it in our earlier bi-di discussion, that automating different execution contexts and JS realms are in scope.
-
ato
AutomatedTester: What would be different from testing Outlook as a PWA, as opposed to Outlook in a browser? What are the expectations that would be different?
-
ato
JohnJansen: There’s no address bar, the frame of the browser is different, and the features that PWAs access could be in service workers which we can’t yet access from WebDriver.
-
ato
JohnJansen: Media queries would be interesting.
-
ato
... They could be, for example, completely full screen.
-
ato
bwald_: They are likely to be productivity apps, they might be using the native file system.
-
ato
bwald_: There’s not way to WebDriver to mock these things so the page thinks it’s interacting with a real file system.
-
ato
AutomatedTester: Take files as an example: are those APIs only going to be available to PWAs and not websites?
-
ato
JohnJansen: There’s talk about extending the Permissions API to cover PWAs.
-
ato
ato: Permissions API already has a WebDriver extension, and it has an implementation in Chrome.
-
ato
bwald_: Let’s say you use this API to grant geolocation to a page.
-
ato
bwald_: Why grant it permission if it can’t interact with it?
-
ato
bwald_: Are there external tools that drive these tools?
-
ato
JohnChen: A website wants to access my web cam, a popup will ask me if I want to grant permissions.
-
ato
jgraham: In bi-di you would get an event that this popup appeared.
-
ato
ato: In WebDriver you have this strange API similar to the unhandled prompt behaviour.
-
ato
CalebRouleau: But we don’t have a way to mock out the devices at all.
-
AutomatedTester
q?
-
» Zakim sees no one on the speaker queue
-
ato
bwald_: File API lets you access native file system and this might popup a native widget for selecting a file.
-
ato
bwald_: This is not automatable with WebDriver.
-
ato
jgraham: We can do interaction with <input type=file> but it’s just very hard to model this in a nice way over a command-response based API.
-
ato
... Let’s hope we get bi-di before we really need to implement this.
-
ato
AutomatedTester: Conclusion is that this falls within the scope of the WG.
-
ato
... Making sure that people actually use us for wider review (horizontal review) whenever these changes are coming up, especially for Fugu, is important.
-
ato
JohnJansen: I didn’t know that the Permissions WG had extended WebDriver.
-
ato
... Is there a reference from WebDriver to their spec?
-
ato
ato: No, the relationship is the other way around.
-
jgraham
-
ato
ScribeNick: ato
-
» ato RRSAgent, draft minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html ato
-
ato
s/a?//
-
zcorpan
present+
-
boaz
scribenick: boaz
-
boaz
present+ Boaz Sender
-
ato
s/Boaz Sender//
-
ato
present+ boaz
-
boaz
topic: Guidelines for Spec Authors
-
boaz
rileyg: I work on chrome on apis like web bluetooth and usb. These apis are difficult to test because they don't follow the normal web testing workflow. They rely on a hardware device and need a mock of that. Or if you are web developer, you might have real hardware and want to use web driver to drive your app with the peripheral attached.
-
boaz
rileyg: I struggle with adding web driver commands because I have to land patches on 7 places.
-
boaz
AutomatedTester: are your spec prose changes to webdriver, or to an automation section to an existing spec?ou
-
ato
q+
-
» Zakim sees ato on the speaker queue
-
mmerrell
s/rileyg/reillyg/g
-
boaz
reillyg: an existing automatioin section, now that I am aware of that.
-
JohnJansen
rrsagent, make minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html JohnJansen
-
boaz
AutomatedTester: now that you have extension points, is there anything else that we can make simpler?
-
mmerrell
s/tioin/tion/
-
boaz
reillyg: plumbing a new command through web driver layers of the web driver spec, cdp, chrom/saf/ff-driver, etc.
-
boaz
reillyg: anything we could do to reduce the number of places, would be great. and any guidelines that you could offer woudl be helpful.
-
boaz
AutomatedTester: I think some of this is browser specific.
-
boaz
AutomatedTester: for a spec author, we want to focus on how easy it is to write spec prose. and potentially any plumbing that may need to change to the client. what you need to do in your own browser is somewhat orthogonal.
-
ato
q?
-
» Zakim sees ato on the speaker queue
-
boaz
reillyg: when I write my spec I can take my idl and copy/past that into a file in my browser codebase and then there are tools I have to plumb the interfaces into my engine.
-
boaz
reillyg: I'd like to see a similar tool for my chromedriver code.
-
boaz
brrian: is there anything else reducable about this?
-
boaz
reillyg: I'm complaining about how many projects I have to touch.
-
boaz
simonstewart: you should only need to define the endpoints, and put it into one implementation
-
boaz
jgraham: it is legitimate that we dont have a lot of idl and you need to do a lot of extra work around that. I dont think having that would help you right tests.
-
boaz
brrian: I could make an ingester
-
AutomatedTester
q?
-
» Zakim sees ato on the speaker queue
-
boaz
brrian: but it hasn't been a pain point
-
boaz
jgraham: I think it is a bit of a pain point.
-
boaz
brrian: its not a painpoint because there are ~12 endpoints, and not 100s of js apis
-
AutomatedTester
ack ato
-
» Zakim sees no one on the speaker queue
-
boaz
ato: the concrete feedback to this working group is that it daunting to add new web driver commands, and we should take that seriously
-
boaz
ato: historically it has been difficult to map things you want to test onto the req/resp flow. we are now working on a bidirectional protocol. I think this will make it a lot easier to add extensions for specs that currently aren't tested.
-
boaz
ato: permissions for example, we had to contort ourselves and make a weird api to fit into the current model.
-
boaz
ato: however, this is all complicated in different ways depending on the various tech stacks. chrome may be harder than safari.
-
boaz
ato: I think we should take the step to document our expectations of how people are going to use web driver
-
boaz
ato: this is connectied to what I said before this topic started. we should gather these things.
-
boaz
brrian: I agree
-
ato
q?
-
» Zakim sees no one on the speaker queue
-
boaz
CalebRouleau: we have that
-
boaz
ato: we could use that
-
boaz
CalebRouleau: good
-
boaz
reillyg: we only have a few dozen web driver commands because it is confusing for people
-
boaz
AutomatedTester: yah
-
boaz
AutomatedTester: if we link to prior art would be helpful. if we looked at the docs for wdspec, this would help things.
-
boaz
ato: and this would have solved microsoft's problem of not understanding the process.
-
simonstewart
q?
-
» Zakim sees no one on the speaker queue
-
boaz
simonstewart: is it obvious who to reach out to for help
-
boaz
reillyg: well, we have a problem inside chrome, because I don't know who owns chromedriver.
-
boaz
CalebRouleau: he is sitting here (points to right)
-
boaz
simonstewart: myself and david are the webdriver editors
-
boaz
simonstewart: we can help you
-
boaz
simonstewart: what made this so hard?
-
boaz
reillyg: I will take as an action item to reach out to people in my org.
-
boaz
simonstewart: but what could we have done?
-
boaz
ato: I think we are bad at following up on issues being filed.
-
boaz
jgraham: I think there are also some issues with extensions.
-
boaz
q?
-
» Zakim sees no one on the speaker queue
-
boaz
jgraham: also, wrt to web idl, I think there is a possible opportunity for using a schema language when we write down bidi
-
bwald_
q+
-
» Zakim sees bwald_ on the speaker queue
-
simonstewart
-
jgraham
-
bwald_
q-
-
» Zakim sees no one on the speaker queue
-
boaz
resolution: research having a more formalized schema for defining the transport layer
-
zcorpan
RESOLVED: research having a more formalized schema for defining the transport layer
-
boaz
reillyg: there is also this issue where web driver is overloaded, both web driver and selenium, and I don't know if I need to add my work to both, and it would be nice to have tools for this
-
boaz
ato: in the interest in making progress, what we should do
-
boaz
action: cb to draft some high level documentation containing who is owning the driver, how to add wpt tests, putting the web driver api we have now and putting it in swager yaml and publish it so it can be consumable
-
» RRSAgent records action 5
-
mmerrell
s/swager/swagger
-
boaz
ato: I think the most important thing for us to do in terms of our expectations is to say what web driver cannot do
-
boaz
CalebRouleau: are you saying you discourage permissions?
-
boaz
ato: if bi-di were a serious conversation when permissions was happening, I would have discouraged it.
-
AutomatedTester
q?
-
» Zakim sees no one on the speaker queue
-
boaz
q?
-
» Zakim sees no one on the speaker queue
-
CalebRouleau
s/saying you discourage/saying you would have discouraged/
-
jgraham
RRSAgent, make minutes v2
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html jgraham
-
jgraham
close the queue
-
jgraham
q?
-
» Zakim sees no one on the speaker queue
-
jgraham
q+
-
» Zakim sees jgraham on the speaker queue
-
jgraham
q-
-
» Zakim sees no one on the speaker queue
-
jgraham
Zakim, close the queue
-
Zakim
ok, jgraham, the speaker queue is closed
-
jgraham
RRSAgent, stop
-
» RRSAgent is not logging
-
jgraham
RRSAgent, make minutes v2
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html jgraham
-
JohnJansen
-
AutomatedTester
-
» gsnedders oh have you all stopped?
-
» gsnedders I was about to ask if y'all have dinner plans but this seems like it'll be uneffective now
-
AutomatedTester
gsnedders: maybe ping James or Andreas. I am heading home tonight
-
» gsnedders wonders how to even effectively ping them :)
-
ato
RRSAgent: make minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html ato
-
ato
s/close the queue//
-
ato
s/scribenick: boaz//
-
ato
s/ScribeNick: ato//
-
ato
s/bi-directional communication/Bi-directional communication/
-
ato
s/long-running new session/Long-running New Session command/
-
ato
s/Scroll Wheel Request/Scroll wheel action primitive/
-
ato
s/Guidelines for Spec Authors/Guidelines for spec authors/
-
ato
RRSAgent: make minuts
-
RRSAgent
I'm not logging. I don't understand 'make minuts', ato. Try /msg RRSAgent help
-
ato
RRSAgent: make minutes
-
RRSAgent
I have made the request to generate
w3.org/2019/09/20-webdriver-minutes.html ato
-
ato
RRSAgent: sod off
-
RRSAgent
I'm not logging. I don't understand 'sod off', ato. Try /msg RRSAgent help
-
ato
RRSAgent: fuck off
-
RRSAgent
I'm not logging. I don't understand 'fuck off', ato. Try /msg RRSAgent help
-
ato
RRSAgent: go away
-
RRSAgent
I'm not logging. I don't understand 'go away', ato. Try /msg RRSAgent help
-
ato
RRSAgent: you're excused
-
RRSAgent
I'm not logging. I don't understand 'you're excused', ato. Try /msg RRSAgent help
-
ato
RRSAgent: leave
-
RRSAgent
-
RRSAgent
ACTION: ato to draft proposal for the bi-di protocol interop terminology we discussed this morning [1]
-
RRSAgent
-
RRSAgent
ACTION: Simon to finish PR around the async session request [2]
-
RRSAgent
-
RRSAgent
ACTION: JohnJansen schedule meeting with AutomatedTester to chat with Timotius re: Test for Pointer Modificatoin [3]
-
RRSAgent
-
RRSAgent
ACTION: ask for tests on the above PR [4]
-
RRSAgent
-
RRSAgent
ACTION: cb to draft some high level documentation containing who is owning the driver, how to add wpt tests, putting the web driver api we have now and putting it in swager yaml and publish it so it can be consumable [5]
-
RRSAgent
-
» Zakim excuses himself; his presence no longer seems to be needed