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

* 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

* 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

* 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

* 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

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

Reply via email to