The test suites in this directory are synced with third-party repos.

The tests in wpt are imported from https://github.com/web-platform-tests/wpt,
and changes in the wpt directory are automatically upstreamed, usually within
24 hours.

Use tools/wpt_import.py to update the tests from the tip of tree in those
repositories.

It is safe and okay to check in generic baselines for any tests that fail.
The baselines will not be overwritten or upstreamed.

For more information on this process and Blink's handling of the W3C's
test suites, see https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md.
