WebDriver/Meetings/2018-08-13
From MozillaWiki
Contents
Agenda
- Serialization of Marionette data with Serde (organizing data structures)
- How detailed do we want to have tests for message body validation in wdspec (vs. the client)
- Marionette protocol versioning (1481444 for context)
Minutes
Serialization to Marionette
- whimboo
- Different ways to serialise to the expected JSON string.
- We have ToMarionette, which simply creates a HashMap and puts the fields into it.
- The other way is that we pick the data structures we have in the webdriver crate and serialse these [to Marionette?]
- I donât want to use data structures from webdriver and use those for serialisation to Marionette.
- It might work at the moment, but we canât expect this in the future.
- We should put everything we need for Marionette into separate data structures.
- ato
- I agree. Client request deserialised into webdriver data structures.
- Then geckodriver is a thin layer that internally translates into Marionette data structures.
- whimboo
- I want to do this in stages.
- There are couple of more bugs blocked by this work.
How detailed do we want to have tests for message body validation in wdspec (vs. the client)
- whimboo
- As you know Iâve written tonnes of tests for the WebDriver spec serialisation, but nothing for Marionette.
- For each command there is a parameter and a response, keys/values.
- We have Rust unit tests for testing some of these data structures.
- I would like to move some of these tests into WPT.
- ato
- There is precedence for bounds and types checks in wdspec.
- There is certainly an intention that we want to have that for all commands in WPT.
- I think it would be especially useful for Set Window Rect and Get Window Rect, and possibly Execute Script.
- Because there have been conformance problems with the more data-intensive commands in the past.
- whimboo
- I am anxious of introducing regressions.
- I will do some of this work as follow-ups.
Marionette protocol versioning
- ato
- Significant people have problems with running geckodriver because of outdated and no longer supported versions of Firefox
- It's in the wiki, the changelog, and as port of the release announcement
- We would like to have at least the minimum version of Firefox
- Most browsers are getting released together with drivers to used with
- Our problem is which version of geckodriver can be used with which version of Firefox because we span multiple releases
- David
- I'm fully behind that and I think it is valuable
- Henrik
- For me using the Marionette protocol version would be confusing compared to the Firefox version
- ato
- Could use the semver crate of Rust in geckodriver
- Currently Marionette initialize all the modules which is resource intensive - better to have it on request
- Maybe it's better to only bump the Marionette protocol version only on invasive changes
- Lets send the version number of Firefox, parse it and check for the range
- whimboo
- I wonder to mitigate this issue we can find out what it is with Selenium that enables the addons logging.
- We are not seeing this logging output using geckodriver (WPT) or when driving Marionette directly.
- Is Selenium still preparing profiles?
- dburns
- https://github.com/SeleniumHQ/selenium/blob/master/javascript/firefox-driver/webdriver.json#L33
ACTION: dburns to take care of removing extension prefs from Selenium or the whole file
Work week
Looks like September 24th. Need to check with Mandy.
ACTION: dburns to talk to Mandy
Status updates
- ato
- Worked on hiding Firefox stdout/stderr if log level is info level or higher (1399441)
- More work than I anticipated because not all log lines is exactly a single line, so need to teach Marionette to output structured log messages.
- Fixing excessive Marionette output (1482829)
- Worked on hiding Firefox stdout/stderr if log level is info level or higher (1399441)
- whimboo
- [geckodriver] Lots and lots of Serde work happened for all WebDriver commands, whereby custom :moz commands still need work and tests. All commands beside specific new session, and action commands are working.
- Great Rust-Meetup with Florian Gilcher as speaker about Futures (including usages in hyper)
- Intermittent Failures
- Intermittent failure comments on Bugzilla partly working again after last weeks regression (Bug 1453760)
- Page load regression for Firefox UI SSL tests by move from mozqa.com -> badssl.com (Bug 1478848)
- Lots of EdgeNeedsSweepUnbarrieredSlow assertions and crashes lately (Bug 1482029) - We have to get Marionette to correctly symbolicate assertion stacks!
- [wdspec] Patch to get intermittent Set Window Rect tests passing for MacOS (Bug 1482042)
(Spoken status updates in bold.)
PTO/travel (đ)
- Monday 27 August is a bank holiday in the UK