WebDriver/Meetings/2018-08-13

From MozillaWiki
Jump to: navigation, search

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)
  • 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