[webkit-dev] About unprefixing CSS Grid Layout (implementation status summary included)

Manuel Rego Casasnovas rego at igalia.com
Wed Apr 27 04:39:49 PDT 2016


Hi,

as announced yesterday it seems that the WebKit prefixing policy has
been updated [1].

Right now CSS Grid Layout implementation is prefixed in WebKit and
behind a compilation flag.
We'd like to ask about the possibility to unprefix it and put it behind
a runtime flag (probably removing the compilation flag too).

The thing is that current implementation is almost the same than then
one in Chromium, which is also very similar to the support in Firefox.
In both Chromium and Firefox Grid Layout is unprefixed and behind a
runtime flag.
If we unprefix Grid Layout in WebKit too, it'd have a bunch of benefits:
* Easier to test for web authors (they don't need to add prefixes so
they don't get confused if they try examples from the spec directly and
they don't work).
* Easier to use Chromium and Firefox tests in WebKit to check
interoperability.
* Easier to run the W3C test suite (which is not complete yet) without
having to deal with the prefixes stuff.

We believe that it'd be a nice thing to do, and it'll put Safari in the
same position than other browsers that are implementing the spec.

Regarding to the status of our implementation, it's been a while since
we don't send a summary to this list (sorry about that).
Anyway my mate Javi Fernández was talking about it in the WebKit
Contributors Meeting 1 year ago [2].
In addition, we've been writing blog posts that appear in the planet
explaining the main features we've been developing.

The main tasks performed since past year were:
* Auto-placement algorithm has been complete. [3]
* Implemented spec section about implied minimum size of the grid items.
* Full support for absolute positioned items (missing alignment support).
* Progress on orthogonal flows support in the track sizing algorithm.
* Almost finished implementation of Box Alignment spec (missing baseline
alignment and some updates to the last changes in the spec). [4]
* Update track sizing algorithm due to the changes in the spec during 2015.
* Syntax changes from the spec (shorthands, gutters, etc.).
* Placement refactoring to support implicit grid before explicit grid. [5]
* Some investigation and measurements regarding performance on grids,
optimizations to be done once the implementation stabilizes. [6]
* Contribute some tests to the W3C Test Suite [7].
* Starting to support auto-repeat features.

This year we've been doing a great effort to move WebKit implementation
closer to the one in Blink. Right now most of the patches have been
ported from Blink or are on the way. We're currently working in some of
the last missing features from the spec, and we keep updating the
implementation to the changes introduced on it.

The CSS Working Group is discussing right now about the possibility to
simplify subgrids or defer it to Level 2 definitively [8]. Depending on
that decision we'll have more or less work pending to do before being
able to ship this feature.
BTW, editors are planning to move the specification to Candidate
Recommendation soon.
Also, web authors seem really excited about the possibility to use Grid
Layout for their designs.

Bye,
  Rego

[1] https://webkit.org/blog/6131/updating-our-prefixing-policy/
[2] https://trac.webkit.org/wiki/March%202015%20Meeting
[3] http://blogs.igalia.com/mrego/2015/02/25/grid-auto-placement-is-ready/
[4] http://blogs.igalia.com/jfernandez/distributing-tracks-along-grid
and http://blogs.igalia.com/jfernandez/box-alignment-and-grid-layout-ii
[5]
http://blogs.igalia.com/mrego/2016/02/01/deep-dive-into-grid-layout-placement/
[6]
http://blogs.igalia.com/jfernandez/2015/06/24/performance-on-grid-layout/
[7] https://github.com/w3c/csswg-test/tree/master/css-grid-1
[8] https://lists.w3.org/Archives/Public/www-style/2016Apr/0254.html


More information about the webkit-dev mailing list