Bug 1530247 - Turn the Servo serialization property whitelist into a blacklist. r=boris

It's easier to see what remains that way. Done with the following script:

```
execfile("layout/style/ServoCSSPropList.py")
for p in data:
  if p.type() != "longhand":
    continue
  if "GetCSNeedsLayoutFlush" in p.flags or "SerializedByServo" in p.flags or "Internal" in p.flags:
    continue
  print(p.name)
```

Ran like:

```
$ python print.py | sort
```

From the objdir.

Differential Revision: https://phabricator.services.mozilla.com/D20965
This commit is contained in:
Emilio Cobos Álvarez 2019-02-24 19:32:28 -08:00
Родитель f665caf87e
Коммит 6250346acd
1 изменённых файлов: 88 добавлений и 89 удалений

Просмотреть файл

@ -60,91 +60,93 @@ def method(prop):
return prop.camel_case[1:]
return prop.camel_case
# Colors, integers and lengths are easy as well.
#
# TODO(emilio): This will go away once the rest of the longhands have been
# moved or perhaps using a blacklist for the ones with non-layout-dependence
# but other non-trivial dependence like scrollbar colors.
SERIALIZED_PREDEFINED_TYPES = [
"Appearance",
"AlignContent",
"AlignItems",
"AlignSelf",
"BackgroundRepeat",
"BackgroundSize",
"BorderImageRepeat",
"BorderStyle",
"BreakBetween",
"BreakWithin",
"Clear",
"ClipRectOrAuto",
"Color",
"Content",
"CounterIncrement",
"CounterReset",
"Cursor",
"FillRule",
"Float",
"FontFamily",
"FontFeatureSettings",
"FontLanguageOverride",
"FontSize",
"FontSizeAdjust",
"FontStretch",
"FontStyle",
"FontSynthesis",
"FontVariant",
"FontVariantAlternates",
"FontVariantEastAsian",
"FontVariantLigatures",
"FontVariantNumeric",
"FontVariationSettings",
"FontWeight",
"Integer",
"ImageLayer",
"JustifyContent",
"JustifyItems",
"JustifySelf",
"Length",
"LengthPercentage",
"NonNegativeLength",
"NonNegativeLengthPercentage",
"NonNegativeLengthPercentageOrAuto",
"ListStyleType",
"OffsetPath",
"Opacity",
"OutlineStyle",
"OverflowWrap",
"Position",
"Quotes",
"Resize",
"Rotate",
"Scale",
"TextAlign",
"Translate",
"TimingFunction",
"TransformOrigin",
"TransformStyle",
"UserSelect",
"background::BackgroundSize",
"basic_shape::ClippingShape",
"basic_shape::FloatAreaShape",
"position::HorizontalPosition",
"position::VerticalPosition",
"url::ImageUrlOrNone",
"Appearance",
"OverscrollBehavior",
"OverflowAnchor",
"OverflowClipBox",
"ScrollSnapAlign",
"ScrollSnapType",
"Float",
"Overflow",
"BorderImageSlice",
"NonNegativeLengthOrNumberRect",
"NonNegativeLengthOrNumber",
"ZIndex",
"Perspective",
# TODO(emilio): Get this to zero.
LONGHANDS_NOT_SERIALIZED_WITH_SERVO = [
"animation-delay",
"animation-duration",
"animation-iteration-count",
"animation-name",
"border-bottom-left-radius",
"border-bottom-right-radius",
"border-end-end-radius",
"border-end-start-radius",
"border-image-width",
"border-spacing",
"border-start-end-radius",
"border-start-start-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-image-width",
"border-spacing",
"box-shadow",
"caret-color",
"color",
"column-count",
"column-gap",
"column-rule-width",
"column-width",
"contain",
"display",
"fill",
"fill-opacity",
"filter",
"flex-basis",
"flex-grow",
"flex-shrink",
"grid-auto-columns",
"grid-auto-flow",
"grid-auto-rows",
"grid-column-end",
"grid-column-start",
"grid-row-end",
"grid-row-start",
"grid-template-areas",
"initial-letter",
"letter-spacing",
"marker-end",
"marker-mid",
"marker-start",
"max-block-size",
"max-height",
"max-inline-size",
"max-width",
"min-block-size",
"min-height",
"min-inline-size",
"min-width",
"-moz-binding",
"-moz-box-flex",
"-moz-force-broken-image-icon",
"-moz-osx-font-smoothing",
"-moz-outline-radius-bottomleft",
"-moz-outline-radius-bottomright",
"-moz-outline-radius-topleft",
"-moz-outline-radius-topright",
"outline-width",
"paint-order",
"row-gap",
"scrollbar-color",
"scroll-snap-points-x",
"scroll-snap-points-y",
"stroke",
"stroke-dasharray",
"stroke-dashoffset",
"stroke-miterlimit",
"stroke-opacity",
"stroke-width",
"text-decoration-line",
"text-emphasis-position",
"text-emphasis-style",
"text-overflow",
"text-shadow",
"touch-action",
"transition-delay",
"transition-duration",
"transition-property",
"vertical-align",
"-webkit-text-stroke-width",
"will-change",
"word-spacing",
]
def serialized_by_servo(prop):
@ -160,10 +162,7 @@ def serialized_by_servo(prop):
# resistfingerprinting stuff.
if prop.keyword and prop.name != "-moz-osx-font-smoothing":
return True
if prop.predefined_type in SERIALIZED_PREDEFINED_TYPES:
return True
# TODO(emilio): Enable the rest of the longhands.
return False
return prop.name not in LONGHANDS_NOT_SERIALIZED_WITH_SERVO
def exposed_on_getcs(prop):
if prop.type() == "longhand":