Commit graph

91 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
c9b9e30776 Bug 1738663 - Add a pref to expose all shorthands in the computed style. r=layout-reviewers,mats
Make it always false for now, as we still need a solution for
layout-dependent shorthands like margin, padding, border, etc.

Differential Revision: https://phabricator.services.mozilla.com/D130039
2021-11-02 14:22:51 +00:00
Emilio Cobos Álvarez
7c1b2c19fd Bug 1738658 - Serialize text-decoration using Servo. r=layout-reviewers,mats
The code introduced in the preceding patch deals with currentColor correctly,
so we should be able to do this now.

This uncovers a bug in the existing serialization code when a non-auto
text-decoration-thickness was used, caught by
css/css-text-decor/parsing/text-decoration-computed.html.

Differential Revision: https://phabricator.services.mozilla.com/D130018
2021-11-02 14:21:38 +00:00
Emily McDonough
3517e4a3ea Bug 1732802 - Exclude properties that are not valid in style rules from getComputedStyle r=emilio
This should specifically fix page-size being exposed on nsComputedDOMStyle.

Differential Revision: https://phabricator.services.mozilla.com/D126741
2021-09-27 22:43:20 +00:00
Emilio Cobos Álvarez
9e80cd9710 Bug 1708384 - Properly hide -moz-context-properties from content. r=dholbert
Depends on D114481

Differential Revision: https://phabricator.services.mozilla.com/D114482
2021-05-12 21:45:18 +00:00
Emilio Cobos Álvarez
41179cf5d6 Bug 1708384 - Properly hide -moz-control-character-visibility from content. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D114481
2021-05-12 21:45:18 +00:00
Emily McDonough
2af314b97a Bug 1647845 Part 1 - Ignore any properties which aren't valid for a style rule when generating CSS2Properties and testing properties r=emilio
To know the valid rules for each property, we need to put this information
into the Servo prop list and add an appropriate getter to Longhand/Shorthand.

Differential Revision: https://phabricator.services.mozilla.com/D105825
2021-03-22 19:08:59 +00:00
Butkovits Atila
cfce9044e0 Backed out 2 changesets (bug 1647845) for causing build bustages. CLOSED TREE
Backed out changeset 8822a2e578f2 (bug 1647845)
Backed out changeset 5a44095128e0 (bug 1647845)
2021-03-19 01:07:18 +02:00
Emily McDonough
ceb69cd8fa Bug 1647845 Part 1 - Ignore any properties which aren't valid for a style rule when generating CSS2Properties and testing properties r=emilio
To know the valid rules for each property, we need to put this information
into the Servo prop list and add an appropriate getter to Longhand/Shorthand.

Differential Revision: https://phabricator.services.mozilla.com/D105825
2021-03-18 22:26:24 +00:00
Noemi Erli
b4700b1965 Backed out 2 changesets (bug 1647845) for causing assertions in nsStyleStruct.cpp CLOSED TREE
Backed out changeset 1564d93002de (bug 1647845)
Backed out changeset bc1815fb4405 (bug 1647845)
2021-03-16 23:01:50 +02:00
Emily McDonough
6f8201b62d Bug 1647845 Part 1 - Ignore any properties which aren't valid for a style rule when generating CSS2Properties and testing properties r=emilio
To know the valid rules for each property, we need to put this information
into the Servo prop list and add an appropriate getter to Longhand/Shorthand.

Differential Revision: https://phabricator.services.mozilla.com/D105825
2021-03-16 19:54:27 +00:00
Emilio Cobos Álvarez
0f118f30e5 Bug 1404140 - Remove the GetCSNeedsLayoutFlush flag, as it is unneeded now. r=heycam
MANUAL PUSH: Would need to reorder the stack manually (https://bugzilla.mozilla.org/show_bug.cgi?id=1481539)

Differential Revision: https://phabricator.services.mozilla.com/D40300
2019-08-03 04:10:55 +02:00
Emilio Cobos Álvarez
bb56a14ed1 Bug 1562269 - Serialize grid-auto-rows / grid-auto-columns with Servo. r=boris
Two less properties, now that we're not using nsStyleCoord for them we can do
this.

Unfortunately the grid resolved value code needs to serialize it still, so this
doesn't remove as much code.

Also fix the script since the generated file was renamed.

Differential Revision: https://phabricator.services.mozilla.com/D36349
2019-06-28 21:14:56 +02:00
Emilio Cobos Álvarez
bb47a90d4f Bug 1543401 - Use rust lengths for row-gap / column-gap. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D26915

--HG--
extra : moz-landing-system : lando
2019-04-10 16:00:03 +00:00
Emilio Cobos Álvarez
e907efd510 Bug 1542178 - Serialize more non-problematic properties with Servo. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D26786
2019-04-10 17:16:37 +02:00
Emilio Cobos Álvarez
5d34d16593 Bug 1542178 - Fix ToResolvedValue implementation for caret-color, and serialize some color properties with Servo. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D26785
2019-04-10 17:16:35 +02:00
Bogdan Tara
48a5da4868 Backed out 5 changesets (bug 1542178) for for test_flexbox_flex_shorthand.html failures CLOSED TREE
Backed out changeset 7fbaca51f682 (bug 1542178)
Backed out changeset e5a602010961 (bug 1542178)
Backed out changeset 152985a87c01 (bug 1542178)
Backed out changeset 7da7a8bc596a (bug 1542178)
Backed out changeset 0a7766ece186 (bug 1542178)
2019-04-10 17:54:45 +03:00
Emilio Cobos Álvarez
5ed1d87b92 Bug 1542178 - Serialize more non-problematic properties with Servo. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D26786

--HG--
extra : moz-landing-system : lando
2019-04-10 12:11:04 +00:00
Emilio Cobos Álvarez
6d76b07bd5 Bug 1542178 - Fix ToResolvedValue implementation for caret-color, and serialize some color properties with Servo. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D26785

--HG--
extra : moz-landing-system : lando
2019-04-10 12:10:49 +00:00
Emilio Cobos Álvarez
c028706efc Bug 1541913 - Use Servo lengths for column-width. r=boris
Depends on D26154

Differential Revision: https://phabricator.services.mozilla.com/D26155

--HG--
extra : moz-landing-system : lando
2019-04-04 18:29:57 +00:00
Emilio Cobos Álvarez
70e3f8ffcd Bug 1535165 - Use cbindgen for touch-action. r=dholbert
And rename the constants to not be prefixed by TOUCH_ACTION_, since that's part
of the type name anyway.

Differential Revision: https://phabricator.services.mozilla.com/D23413

--HG--
extra : moz-landing-system : lando
2019-03-18 18:01:55 +00:00
Emilio Cobos Álvarez
e66fb8488c Bug 1535165 - Use cbindgen for text-decoration-line. r=dholbert,boris
Differential Revision: https://phabricator.services.mozilla.com/D23412

--HG--
extra : moz-landing-system : lando
2019-03-18 17:58:16 +00:00
Daniel Holbert
99a091abb7 Bug 1532833: Use servo code to serialize CSS 'contain' property. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D22260

--HG--
extra : moz-landing-system : lando
2019-03-06 16:50:05 +00:00
Emilio Cobos Álvarez
f3861e094c Bug 1532856 - Serialize radii with servo. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D22231

--HG--
extra : moz-landing-system : lando
2019-03-06 04:47:47 +00:00
Emilio Cobos Álvarez
25098daaaa Bug 1532122 - Make word-spacing, letter-spacing, and line-height use Rust lengths. r=boris
This also adopts the resolution from [1] while at it, making letter-spacing
compute to a length, serializing 0 to normal rather than keeping normal in the
computed value, which matches every other engine.

This removes the SMIL tests for percentages from letter-spacing since
letter-spacing does in fact not support percentages, so they were passing just
by chance.

[1]: https://github.com/w3c/csswg-drafts/issues/1484

Differential Revision: https://phabricator.services.mozilla.com/D21850

--HG--
extra : moz-landing-system : lando
2019-03-04 18:19:40 +00:00
Emilio Cobos Álvarez
f02f6a3545 Bug 1218257 - Use rust lengths for the SVG lengths. r=boris
As it turns out we need this to avoid losing precision both during painting and
during serialization.

This patch also changes to serialize `context-value` if it's the computed value.

I could keep the previous behavior, but it makes no sense to serialize the
initial value. We're the only ones to support this value anyway, and I couldn't
find a definition or spec for this.

Also update tests and expectations for:

 * New unexpected passes.
 * Always serializing the unit in getComputedStyle.
 * Calc and interpolation support.

Chrome also always serializes the unit in getComputedStyle, so I'm pretty sure
this is compatible with them. Chrome is inconsistent and keeps numbers in
specified style, but that's inconsistent with itself and with other quirky
lengths, so I updated the tests instead.

Differential Revision: https://phabricator.services.mozilla.com/D21819
2019-03-03 00:16:24 +01:00
Emilio Cobos Álvarez
6250346acd 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
2019-02-25 22:07:16 -08:00
Cosmin Sabou
a499294d09 Backed out 4 changesets (bug 1516454, bug 1530247) for multiple failures on Linux x64 asan. CLOSED TREE
Backed out changeset 180c7672c57c (bug 1516454)
Backed out changeset a460a4d0a66c (bug 1516454)
Backed out changeset c6ab8d3dd19a (bug 1530247)
Backed out changeset 43862dc87e0b (bug 1516454)
2019-02-26 00:49:27 +02:00
Emilio Cobos Álvarez
5ed1049145 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
2019-02-25 12:42:33 -08:00
Emilio Cobos Álvarez
99549860f7 Bug 1529058 - Use Rust types from transform-origin / perspective-origin. r=mattwoodrow
Depends on D20381

Differential Revision: https://phabricator.services.mozilla.com/D20382

--HG--
extra : moz-landing-system : lando
2019-02-19 20:28:47 +00:00
Emilio Cobos Álvarez
c4ae51b99d Bug 1529058 - Use Rust types for perspective and z-index. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D20381

--HG--
extra : moz-landing-system : lando
2019-02-19 23:04:45 +00:00
Emilio Cobos Álvarez
c9cb04e111 Bug 1527972 - Use Rust types for some misc properties. r=jwatt
-moz-tab-size, border-image-outset and border-image-slice.

This is not a particularly interesting patch, just removes some code. We can
remove way more code when a few related properties are also ported.

Differential Revision: https://phabricator.services.mozilla.com/D19825
2019-02-19 15:22:40 +01:00
Hiroyuki Ikezoe
64a777f7b5 Bug 1528834 - Implement scroll-snap-align parser and serializer. r=emilio
https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-align

Differential Revision: https://phabricator.services.mozilla.com/D20205

--HG--
extra : moz-landing-system : lando
2019-02-18 23:10:08 +00:00
Hiroyuki Ikezoe
0a5721ad9c Bug 1528640 - Implement scroll-padding parser and serializer. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D20103

--HG--
extra : moz-landing-system : lando
2019-02-18 02:46:09 +00:00
Emilio Cobos Álvarez
b44ff327e9 Bug 1520154 - Move cursor to cbindgen. r=boris
The only reason it was on style_traits is so that they could use it from some
other crates, but Servo eventually ends up getting the value from an integer, so
may as well pass it around and do that in the end of the process anyway.

Differential Revision: https://phabricator.services.mozilla.com/D16557
2019-01-16 14:13:07 +01:00
Ryan Hunt
9f09201ef2 Bug 1305957 part 2 - Add 'overflow-anchor' CSS property. r=emilio
https://drafts.csswg.org/css-scroll-anchoring/#exclusion-api

Differential Revision: https://phabricator.services.mozilla.com/D13265

--HG--
extra : rebase_source : 14d4a6282274b125a6153a05daff5d93e34a29b7
extra : source : c66c00f7329619d53bc14ec615a0d92f06b6a892
2018-11-21 22:33:15 -06:00
Bogdan Tara
6d78d1e2c9 Backed out 15 changesets (bug 1305957) for ASAN failures CLOSED TREE
Backed out changeset 4d5eb85d3155 (bug 1305957)
Backed out changeset 51c86d025ecb (bug 1305957)
Backed out changeset d8eef8f3e396 (bug 1305957)
Backed out changeset 950bf6ad1ef2 (bug 1305957)
Backed out changeset b4cb2cbebdb6 (bug 1305957)
Backed out changeset bfca5019a9cc (bug 1305957)
Backed out changeset e76b842c7b7f (bug 1305957)
Backed out changeset d9445a5f3458 (bug 1305957)
Backed out changeset d9052f7b34d9 (bug 1305957)
Backed out changeset e7124fecb721 (bug 1305957)
Backed out changeset bdb766faa867 (bug 1305957)
Backed out changeset 3033401ef320 (bug 1305957)
Backed out changeset 6b96050386f6 (bug 1305957)
Backed out changeset c66c00f73296 (bug 1305957)
Backed out changeset 6bd0bdab93cb (bug 1305957)
2019-01-10 18:49:22 +02:00
Ryan Hunt
53ae64fd5e Bug 1305957 part 2 - Add 'overflow-anchor' CSS property. r=emilio
https://drafts.csswg.org/css-scroll-anchoring/#exclusion-api

Differential Revision: https://phabricator.services.mozilla.com/D13265

--HG--
extra : rebase_source : eaef41c6fecb8e90850c617b5b1d3602f91990b2
extra : histedit_source : 3beb002b612e4caf22538928acffd702f70adf92
2018-11-21 22:33:15 -06:00
Emilio Cobos Álvarez
b78489b8af Bug 1518098 - Rename LengthOrPercentage to LengthPercentage. r=jwatt#style
It does not represent `<length> | <percentage>`, but `<length-percentage>`, so
`LengthOrPercentage` is not the right name.

This patch is totally autogenerated using:

rg 'LengthOrPercentage' servo | cut -d : -f 1 | sort | uniq > files
for file in $(cat files); do sed -i "s#LengthOrPercentage#LengthPercentage#g" $file; done

Differential Revision: https://phabricator.services.mozilla.com/D15812

--HG--
extra : moz-landing-system : lando
2019-01-07 12:42:42 +00:00
Daniel Holbert
7258ebe69e Bug 1514309 part 2: Remove C++ serialization code for CSS {align,justify}-{content,items,self} properties. r=emilio
(Also remove stale decl for DoGetOverflowY, which cleanup_computed_getters.py
found for me.)

Differential Revision: https://phabricator.services.mozilla.com/D14618

--HG--
extra : moz-landing-system : lando
2018-12-14 21:27:18 +00:00
Emilio Cobos Álvarez
4591031b65 Bug 1513012 - Move overflow to use cbindgen. r=heycam
It's one of the most annoying / hacky mako bits we have.

Differential Revision: https://phabricator.services.mozilla.com/D14084
2018-12-11 03:07:08 +01:00
Emilio Cobos Álvarez
0b0dd2d95f Bug 1512328 - Use cbindgen for a couple more CSS properties. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D13886
2018-12-07 15:06:07 -05:00
Emilio Cobos Álvarez
b54948124d Bug 1509717 - Use cbindgen for border-style and outline-style. r=heycam
I'm pretty sure the FIXME I left in the outline-style code is a bug,
but I want to clean this up further and I didn't want to fix it without adding
a test.

Differential Revision: https://phabricator.services.mozilla.com/D12859

--HG--
extra : moz-landing-system : lando
2018-11-30 05:27:28 +00:00
Emilio Cobos Álvarez
0112d2ebe1 Bug 1507305 - Use Servo to serialize most of the already-exposed shorthands. r=heycam
Skip mask and text-decoration for now since there's a single test-case failing
for each that seem worth fixing in a different bug:

 * For mask, there's the case of setting mask: url(foo.svg#bar), which we test
   we serialize absolutely. But given we're uncomputing it we don't serialize
   the resolved URL. Chrome doesn't either so we could just change the test, but
   even if we decided to do it we probably should do it in a separate bug.

 * For text-decoration, we need to resolve the value, when it's an interpolation
   between currentcolor and other color. Right now that returns the empty string
   which is not great:

     https://searchfox.org/mozilla-central/rev/d850d799a0009f851b5535580e0a8b4bb2c591d7/servo/components/style/values/specified/color.rs#194

   So I need to come up with something. Probably we need to implement the "hard"
   version of the serialization code that doesn't reuse the animation machinery.

   Definitely a separate bug though.

While at it, also serialize all <position> longhands with Servo, so that I can
clean up the tests.

Differential Revision: https://phabricator.services.mozilla.com/D11948

--HG--
extra : moz-landing-system : lando
2018-11-15 04:10:08 +00:00
Emilio Cobos Álvarez
d16b7e3e9a Bug 1507127 - Also move page-break-inside outside of mako. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D11876

--HG--
extra : moz-landing-system : lando
2018-11-15 08:16:23 +00:00
Emilio Cobos Álvarez
7cefd0df6a Bug 1507127 - Move the page-break-{before,after} properties to not use mako. r=heycam
And respect the computed value of `left` / `right` / etc.

Differential Revision: https://phabricator.services.mozilla.com/D11872

--HG--
extra : moz-landing-system : lando
2018-11-15 08:15:13 +00:00
Cosmin Sabou
007b66c1f5 Merge mozilla-inbound to mozilla-central. a=merge 2018-11-13 06:23:01 +02:00
Boris Chiou
89eee2303f Bug 1505200 - Part 2: Serialize Rotate by servo. r=emilio
So we can drop a lot of code.

Depends on D11247

Differential Revision: https://phabricator.services.mozilla.com/D11401

--HG--
extra : moz-landing-system : lando
2018-11-12 19:21:22 +00:00
Boris Chiou
a2c42ba3de Bug 1505156 - Percentage values of translate are serialized as percent for computed values. r=emilio
Basically, we rewrite the type of generics::transform::Translate and its
ToCss to match the spec. Besides, we always serialize Translate by servo,
so we could drop a lot of duplicated code.

Differential Revision: https://phabricator.services.mozilla.com/D11206

--HG--
extra : moz-landing-system : lando
2018-11-08 22:41:00 +00:00
Emilio Cobos Álvarez
56f2b4fded Bug 1505786 - Implement overflow-wrap: anywhere. r=xidorn,jfkthame
Per https://github.com/w3c/csswg-drafts/issues/2682

Differential Revision: https://phabricator.services.mozilla.com/D11328

--HG--
extra : moz-landing-system : lando
2018-11-08 22:39:34 +00:00
Boris Chiou
d781fa81ce Bug 1500107 - Fix the default behavior of scale:<number>{1}. r=birtles
The current spec says: "If only the X value is given, the Y value
defaults to the same value.", so we should update the behavior.

Besides, we also update the serialization, so we serialization both
specified and computed value by servo. We enable the preference
for all the css-transforms, so some of them are passed now.

Differential Revision: https://phabricator.services.mozilla.com/D10638

--HG--
extra : moz-landing-system : lando
2018-11-06 23:44:24 +00:00