It's been a long year hasn't it? Maybe the next one will seem shorter. Although, at home in London today, it feels that if it does, it will only be for want of a leap day.
Given all that's passed since 2019, you would be forgiven for having entirely forgotten about "This Year in Web-Platform-Tests"; very much the most infrequent regular-cadence project update email at Mozilla. Nevertheless, some things have happened in web-platform-tests this year, and knowing about them might even make it easier for you to write cross-browser tests in the next year. == Testability == * Added print reftests to test paginated layout using the actual printing codepath. * Added support for using SpecialPowers in gecko-only web-platform-tests. * Added support for using testdriver functions across multiple browsing contexts and origins. * Added support for inferring test names from the content of arrow-function tests. This allows simple one-liner tests to be written with minimal boilerplate. * Introduced new testdriver commands for deleting cookies and storage access. * Filename flag .www. added to enable directly writing tests which run on a subdomain. * New testharness.js functions step_wait, step_wait_func and step_wait_done. These allow polling for a condition before continuing the test rather than using a fixed timeout. * Added assert_implements and assert_implements_optional to testharness.js. The former is intended to allow quickly checking an API is implemented before trying to use it in a way that may cause timeouts. The latter is for spec-optional features. * Added a second HTTPS port to the server config for testing origin isolation. * Added support for tests using QUIC and WebSockets-over-HTTP2. == Gecko CI == * Moved all the Mozilla-created CSS reftests under vendor-import directory to run exclusively in the wpt harness, to save CI load, and make them work just like other tests. These are being slowly moved to the main testsuite which will improve their visiblity and maintainability. * Made it possible to disable LSAN checks entirely for directories with acute leaks. * Added support for running tests in predefined groups, as part of the manifest-based-scheduling work for TaskCluster. * Configured the CI to run multiple concurrent tests in multiple Firefox instances in order to reduce the total test time. * Added support for preloading Firefox instances during test runs, to reduce the time spent waiting for Firefox to start. * Added -backlog jobs containing tests for features that gecko doesn't have current plans to implement, so they are run less frequently. == Sync == * Exported over 600 wpt changes from mozilla-central to GitHub. * Started filing bugs when changed wpt tests have untriaged failures. This is currently enabled for some DOM and CSS components; if you want this enabled for another component please let me know. == Python 3 == Perhaps the biggest single project of the year: * Converted all the wpt support code including the harness, server, and associated tooling, to work with Python 2 and 3. * Converted the custom request handler API to work with Python 3 whilst still allowing tests to put arbitrary bytes on the wire. * Converted all existing handlers to work with both Python 2 and 3 without changing any test behaviour. * Switched the upstream CI to use Python 3 for most test runs. * Switched Gecko CI to use Python 3 for wpt test jobs (I believe this is the first test type that uses mozharness to make the switch). * Switched the wpt sync bot to Python 3 (random technical note: this was done by first providing type annotations on all the functions and then making mypy pass for both Py 2 and 3. It wasn't great but I'm pretty sure it was the best thing we could have done). Python 2 support in wpt is expected to persist until February 2021. Let's hope we don't have to do such a tedious migration again. == Meta == * Finally adopted a the Code of Conduct for the web-platform-tests organisation. As always, thanks to all the people who have worked on web-platform-tests this year, at Mozilla and elsewhere. All the improvements here are the result of a huge amount of collaboration from the whole web-platform-tests community. And of course apologies for all the things I've no doubt forgotten to mention. _______________________________________________ dev-platform mailing list firstname.lastname@example.org https://lists.mozilla.org/listinfo/dev-platform