commit | 509b63ccdbeb5db07a222f6c005581f361b26948 | [log] [tgz] |
---|---|---|
author | Morten Stenshorne <mstensho@chromium.org> | Tue Jan 17 20:47:41 2023 |
committer | Blink WPT Bot <blink-w3c-test-autoroller@chromium.org> | Tue Jan 17 21:03:36 2023 |
tree | c0cbde4d05e35373748bfa0db7fe83f0b0bc03b0 | |
parent | 9310c09f82db6060a37e91dd91617cf31daf798b [diff] |
Allow un-balanced columns even if column size is unconstrained. Back in the days, the spec actually said that column-fill:auto should be disregarded if block-size was unconstrained. But this was changed a long time ago. The last version of the spec said this was https://www.w3.org/TR/2011/CR-css3-multicol-20110412/#cf : "In continuous media, this property will only be consulted if the length of columns has been constrained. Otherwise, columns will automatically be balanced." This requirement is gone here: https://www.w3.org/TR/2017/WD-css-multicol-1-20171005/#cf With this change, we'll only balance columns if column-fill is 'balance', and not if column-fill is 'auto'. There's one exception: We still balance content before a column spanner (regardless of what the column-fill property says). In addition to making sense, it's a spec requirement: https://www.w3.org/TR/css-multicol-1/#valdef-column-span-all Gecko has been doing this for years already. If block-size is unconstrained and column-fill is auto, it still means that we need to know the column block-size before laying out. The new test multicol-fill-auto-004.html illustrates this. All columns in a row needs to have the same block-size. To achieve this we just re-use the same mechanism that we use for the initial column balancing pass, except that we don't assume any implicit breaks. This called for a rename of CalculateBalancedColumnBlockSize() to ResolveColumnAutoBlockSize(), with a new parameter that says whether or not to assume implicit/soft breaks. If an unconstrained column-fill:auto multicol container is nested inside another multicol container that is to be balanced, we also need to balance the inner multicol in the initial column balancing pass of the outer multicol, so that the outer columns don't get overstretched. The new test multicol-fill-balance-026.html illustrates this. This CL fixes 3 existing tests, in addition to the new test columnfill-auto-max-height-003.html . The two other new tests pass without this CL as well. Bug: 1156312, 967329 Change-Id: If41c50376fcd3a84457d603a5cb3fecb2aa2f917 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4173395 Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org> Reviewed-by: Alison Maher <almaher@microsoft.com> Commit-Queue: Morten Stenshorne <mstensho@chromium.org> Cr-Commit-Position: refs/heads/main@{#1093508}
The web-platform-tests Project is a cross-browser test suite for the Web-platform stack. Writing tests in a way that allows them to be run in all browsers gives browser projects confidence that they are shipping software that is compatible with other implementations, and that later implementations will be compatible with their implementations. This in turn gives Web authors/developers confidence that they can actually rely on the Web platform to deliver on the promise of working across browsers and devices without needing extra layers of abstraction to paper over the gaps left by specification editors and implementors.
The most important sources of information and activity are:
wpt:matrix.org
matrix channel; includes participants located around the world, but busiest during the European working day.If you'd like clarification about anything, don't hesitate to ask in the chat room or on the mailing list.
Clone or otherwise get https://github.com/web-platform-tests/wpt.
Note: because of the frequent creation and deletion of branches in this repo, it is recommended to “prune” stale branches when fetching updates, i.e. use git pull --prune
(or git fetch -p && git merge
).
See the documentation website and in particular the system setup for running tests locally.
The wpt
command provides a frontend to a variety of tools for working with and running web-platform-tests. Some of the most useful commands are:
wpt serve
- For starting the wpt http serverwpt run
- For running tests in a browserwpt lint
- For running the lint against all testswpt manifest
- For updating or generating a MANIFEST.json
test manifestwpt install
- For installing the latest release of a browser or webdriver server on the local machine.wpt serve-wave
- For starting the wpt http server and the WAVE test runner. For more details on how to use the WAVE test runner see the documentation.On Windows wpt
commands must be prefixed with python
or the path to the python binary (if python
is not in your %PATH%
).
python wpt [command]
Alternatively, you may also use Bash on Ubuntu on Windows in the Windows 10 Anniversary Update build, then access your windows partition from there to launch wpt
commands.
Please make sure git and your text editor do not automatically convert line endings, as it will cause lint errors. For git, please set git config core.autocrlf false
in your working tree.
The master branch is automatically synced to wpt.live and w3c-test.org.
Save the Web, Write Some Tests!
Absolutely everyone is welcome to contribute to test development. No test is too small or too simple, especially if it corresponds to something for which you've noted an interoperability bug in a browser.
The way to contribute is just as usual:
git checkout -b topic
../wpt lint
as described above.If you spot an issue with a test and are not comfortable providing a pull request per above to fix it, please file a new issue. Thank you!