[webkit-changes] [WebKit/WebKit] 07aea4: Automatically get shorthands in StyleProperties::a...

Oriol Brufau noreply at github.com
Wed Nov 9 17:22:04 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 07aea488888970b456e3b225643c4c99da2b3648
      https://github.com/WebKit/WebKit/commit/07aea488888970b456e3b225643c4c99da2b3648
  Author: Oriol Brufau <obrufau at igalia.com>
  Date:   2022-11-09 (Wed, 09 Nov 2022)

  Changed paths:
    M Source/WebCore/css/StyleProperties.cpp
    M Source/WebCore/css/process-css-properties.py

  Log Message:
  -----------
  Automatically get shorthands in StyleProperties::asTextInternal()
https://bugs.webkit.org/show_bug.cgi?id=247688

Reviewed by Darin Adler.

StyleProperties::asTextInternal() tries to serialize declarations using
shorthands when possible. The list of shorthand candidates for each
longhand was written manually. This was a big and fragile bunch of code
that was missing various shorthands; other shorthands were only mapped
to some of their longhands but not others, causing bugs.

This patch takes advantage of matchingShorthandsForLonghand() to find
the list of shorthand candidates automatically. Note that the returned
vectors now use a different order, as described in CSSOM. I think this
shouldn't affect the previous callers of matchingShorthandsForLonghand().

To avoid the risk of breaking something, the shorthands that were not
previously used are now explicitly excluded. So this should just be a
refactoring without side-effects, hence no tests.

The change will make it simpler to fix existing bugs in follow-ups.

* Source/WebCore/css/StyleProperties.cpp:
(WebCore::shouldAvoidShorthandForLonghand):
Avoid some shorthands to preserve existing behavior.

(WebCore::StyleProperties::asTextInternal const):
The refactoring happens here.

* Source/WebCore/css/process-css-properties.py:
(GenerationContext):
Reorder vectors returned by matchingShorthandsForLonghand().

Canonical link: https://commits.webkit.org/256511@main




More information about the webkit-changes mailing list