Commit graph

7031 commits

Author SHA1 Message Date
Benjamin Bouvier
ecb9de4acd
style: Apply rustfmt on build_gecko.rs.
Bug: 1499359
Reviewed-by: emilio
2018-10-19 00:38:58 +02:00
Benjamin Bouvier
ff34daa384
style: Remove unused HashMap import and remove namespacing around Table.
Bug: 1499359
Reviewed-by: emilio
2018-10-19 00:38:36 +02:00
Boris Chiou
c9d39b2b19
style: Move MozLength and MaxLength into generics.
Move MozLength and MaxLength into generics, and drop the manual implementation
of ToComputedValue.

Differential Revision: https://phabricator.services.mozilla.com/D8291
2018-10-19 00:38:25 +02:00
Boris Chiou
53eb6cd667
style: Store the correct computed values for keywords for sizing properties.
In order to get the correct computed value of these keywords, we have to
make sure we store the correct computed values in sizing properties in
both inline axis and block axis.

-moz-max-content and -moz-min-content should behave as the property's
initial value in block axis. -moz-fit-content and -moz-available are not
supported in block axis, so we also treat them as initial values.

Differential Revision: https://phabricator.services.mozilla.com/D8290
2018-10-19 00:38:14 +02:00
Benjamin Bouvier
170909fc31
style: Share bindgen flags globally.
Bug: 1495669
Reviewed-by: emilio,froydnj
2018-10-19 00:37:30 +02:00
Emilio Cobos Álvarez
2c52210ba7
style: Remove PseudoElement::inherits_all.
I plan to change servo to use all: inherit on its UA sheet.

I hope the patch below should make it good enough performance-wise. And also,
it's probably broken so I don't think it's worth supporting it specially.

Differential Revision: https://phabricator.services.mozilla.com/D8686
2018-10-19 00:37:24 +02:00
Emilio Cobos Álvarez
8a47c8b2e6
style: Don't copy structs to write the same value to them.
This makes us not allocate useless style structs when you're doing something
like resetting an already-reset property, or inheriting an already-inherited
property.

Seemed simple enough that I think we should do it. In practice we don't even
should pay an extra branch because I expect the compiler to be smart enough and
merge it with the one in the mutate() call.

Differential Revision: https://phabricator.services.mozilla.com/D8685
2018-10-19 00:37:17 +02:00
Cameron McCormack
4e174ace3b
style: Use helper function to set length and copy into nsTArrays of PODs from Rust.
Differential Revision: https://phabricator.services.mozilla.com/D8058
2018-10-19 00:37:08 +02:00
Cameron McCormack
d960db340c
style: Part 11: Move Gecko borrowed FFI types to a separate header file.
Differential Revision: https://phabricator.services.mozilla.com/D8653
2018-10-19 00:36:59 +02:00
Cameron McCormack
89e4d6c049
style: Move list of Servo Boxed types to a separate header file.
Differential Revision: https://phabricator.services.mozilla.com/D8652
2018-10-19 00:36:49 +02:00
Cameron McCormack
52d054ab5f
style: Add comments to ServoBindingTypes.h
Differential Revision: https://phabricator.services.mozilla.com/D8650
2018-10-19 00:36:40 +02:00
Diego Pino Garcia
3d41f0911f
style: Implement text-transform: full-size-kana.
Bug: 1498148
Reviewed-by: xidorn
2018-10-19 00:36:27 +02:00
Noemi Erli
f68f6669f4
Backed out changeset a00b402fb8e8 (bug 1498148) for Linting failure in builds/worker/checkouts/gecko/tools/lint/wpt.yml CLOSED TREE 2018-10-19 00:36:20 +02:00
Diego Pino Garcia
8d2124d820
style: Implement text-transform: full-size-kana.
Bug: 1498148
Reviewed-by: xidorn
2018-10-19 00:36:05 +02:00
Mats Palmgren
a400285eef
style: Unship most of the -moz-appearance values that aren't supported by -webkit-appearance in other UAs.
Bug: 1496720
Reviewed-by: emilio
2018-10-19 00:35:37 +02:00
Emilio Cobos Álvarez
2d9c764e2c
style: remove unneeded cast. 2018-10-19 00:35:31 +02:00
Emilio Cobos Álvarez
42def5a011
style: Always compute angle values to degrees.
This matches the spec, https://drafts.csswg.org/css-values/#angles, which says:

> All <angle> units are compatible, and deg is their canonical unit.

And https://drafts.csswg.org/css-values/#compat, which says:

>When serializing computed values [...], compatible units [...] are converted into a single canonical unit.

And also other implementations (Blink always serializes angles as degrees in
computed style for example).

Also allows us to get rid of quite a bit of code, and makes computed angle value
representation just a number, which is nice.

Differential Revision: https://phabricator.services.mozilla.com/D8619
2018-10-19 00:35:22 +02:00
Emilio Cobos Álvarez
11fedf18d9
style: Some more nsCSSValue cleanup.
I had this around, I couldn't work on more stuff today, but I may as well land
this.

Differential Revision: https://phabricator.services.mozilla.com/D8277
2018-10-19 00:35:15 +02:00
Cameron McCormack
9865a4194c
style: Merge css::{URLValueData, ImageValue} into css::URLValue.
Differential Revision: https://phabricator.services.mozilla.com/D8061
2018-10-19 00:34:27 +02:00
Nicholas Nethercote
cd439df54f
style: Rename nsStaticAtom subclasses.
Specifically:
- nsICSSAnonBoxPseudo --> nsCSSAnonBoxPseudoStaticAtom
- nsICSSPseudoElement --> nsCSSPseudoElementStaticAtom

The `nsI` prefix isn't necessary because these are no longer XPIDL types, and
the `StaticAtom` suffix makes their meaning clearer.

Bug: 1497734
Reviewed-by: heycam
2018-10-19 00:34:02 +02:00
bors-servo
3b03f6d894
Auto merge of #20757 - emilio:animations, r=jdm
style: Some animation cleanups and fixes.

The transitions code is still terribly broken, but I ran out of time fixing it. We have nothing that stops transitions, which is just plain wrong. Most of this code should probably be rewritten, since with the current setup is pretty hard to get it right. Anyway...

Fixes #20731.
Fixes #20116.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20757)
<!-- Reviewable:end -->
2018-10-15 19:03:07 -04:00
Emilio Cobos Álvarez
561e9c81f1
style: More useful logging for transition-related stuff.
Transitions are still broken, but I found these messages more helpful than the
previous ones when diagnosing problems.
2018-10-15 14:50:13 +02:00
Emilio Cobos Álvarez
a949e9e1e8
style: Expire keyframes animations when no longer referenced by the style.
It's a long way to make this sound in general...

Fixes #20731
2018-10-15 04:52:50 +02:00
Emilio Cobos Álvarez
1ba57cbaad
style: Remove unused expired boolean in Animation::Transition.
The last caller who used was #14418, which did fix a problem but introduced
multiple. In particular, now transitions don't get expired ever, until they
finish running of course.

That is not ok, given you can have something that the user can trigger to change
the style (hi, :hover, for example), and right now that triggers new
transitions, getting this into a really funny state.

I should give fixing this a shot, but it's non-trivial at all.
2018-10-15 04:52:50 +02:00
Emilio Cobos Álvarez
d6092fae27
style: Make the transitions code make sense again. 2018-10-15 04:50:45 +02:00
Emilio Cobos Álvarez
d44bd82703
style: Cleanup some of the animation starting code. 2018-10-15 04:50:44 +02:00
Emilio Cobos Álvarez
7ed3995725
style: Stop using PseudoElement::inherits_all.
This was done that way just because Servo didn't support the `all` property at
the time.

We should do it this way and optimize it if it's slow. Though I suspect that
most of stuff doesn't actually need to be inherited, my patch at bug 1498943
should make it much faster than what it would otherwise be.
2018-10-15 02:17:03 +02:00
Emilio Cobos Álvarez
f287691f2e
style: fix tidy issues and update test expectations. 2018-10-09 22:01:38 +02:00
Emilio Cobos Álvarez
912d65a392
style: Remove some more leftover code.
Differential Revision: https://phabricator.services.mozilla.com/D7755
2018-10-09 19:45:53 +02:00
Emilio Cobos Álvarez
d833754183
style: Remove nsCSSValue usage from font code.
Really sorry for the size of the patch.

Differential Revision: https://phabricator.services.mozilla.com/D7753
2018-10-09 19:45:45 +02:00
Emilio Cobos Álvarez
7345af613a
style: Serialize a bunch of image properties with Servo.
I had to fix the conversion for BackgroundSize too, hopefully we can
simplify all this using cbindgen in the future instead of CalcValue.

Differential Revision: https://phabricator.services.mozilla.com/D7580
2018-10-09 19:45:35 +02:00
Nicholas Nethercote
0d5d5a9c82
style: Make static atom pointers constexpr.
This saves one word per static atom, per process.

The `nsGkAtoms` change is only a small part of this commit.

In regen_atoms.py:

- There is now only one link name per platform: nsGkAtoms::sAtoms[].

- But there is a new constant per atom, giving the index into
  nsGkAtoms::sAtoms[].

- And the `atom!` macro for each atom indexes into nsGkAtoms::sAtoms[] using
  the index constant.

- A couple of `*mut` pointers are now `*const`.

Elsewhere, the `(nsStaticAtom*)` casts within the `AppendElement()` calls are
necessary to avoid link errors, presumably due to some template instantiation
wrinkle.

Bug: 1449787
Reviewed-by: froydnj,emilio
2018-10-09 19:45:10 +02:00
Nicholas Nethercote
c276c8a341
style: Tweak regen_atoms.py.
Specifically, give all the string templates the ''' form, and give them all
`_TEMPLATE` suffixes. This requires slightly changing the newline handling.

Bug: 1449787
Reviewed-by: emilio
2018-10-09 19:44:45 +02:00
Ryan Hunt
7f8a3530a3
style: Implement multi-position gradient color-stops syntax.
This commit adds the multi-position gradient color-stops syntax.

GradientItem::parse_comma_separated is extended to attempt to parse
a LengthOrPercent after each color stop. If it succeeds, it appends
an additional color stop with a duplicate color and the specified
position.

This change is only to the parsing, serialization is left unchanged
as per [1].

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

Differential Revision: https://phabricator.services.mozilla.com/D7380
2018-10-09 19:44:35 +02:00
Emilio Cobos Álvarez
2cf4e9998a
style: Serialize -moz-image-region and clip with Servo.
This changes the serialization of -moz-image-region to be consistent with that
of clip(), but it's an internal property and the specified value is already
serialized by Servo so I think it's the right thing to do.

There are also no internal callers of the getter.

Differential Revision: https://phabricator.services.mozilla.com/D7069
2018-10-09 19:44:21 +02:00
Xidorn Quan
b1cc6b4598
style: Rename pref "layout.css.scrollbar-colors.enabled" to "layout.css.scrollbar-color.enabled".
Differential Revision: https://phabricator.services.mozilla.com/D7030
2018-10-09 19:44:08 +02:00
Martin Stransky
6a1078c551
style: [CSD] Enable round corners by default by -moz-gtk-csd-transparent-background media query.
Replace mozilla.widget.use-argb-visuals pref by
-moz-gtk-csd-transparent-background media query at browser.css to draw
transparent background. The media query is set by toolkit code and enabled when
compatible window manager is detected.

Differential Revision: https://phabricator.services.mozilla.com/D6658
2018-10-09 19:43:50 +02:00
Emilio Cobos Álvarez
2751df808b
style: Don't apply containing shadow-host rules to NAC.
This is a regression from bug 1487856.

Differential Revision: https://phabricator.services.mozilla.com/D6700
2018-10-09 19:43:42 +02:00
Emilio Cobos Álvarez
426683cd4b
style: Remove an outdated comment.
This was fixed, css/css-scoping/shadow-cascade-order-001.html tests it.
2018-10-09 19:43:33 +02:00
Emilio Cobos Álvarez
75bebf1618
style: Avoid walking the rule tree three times from apply_declarations.
Just once is slow enough.

Differential Revision: https://phabricator.services.mozilla.com/D6574
2018-10-09 19:43:26 +02:00
bors-servo
196bec2b87
Auto merge of #21789 - mbrubeck:deps, r=nox
Upgrade to uluru 0.3

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21789)
<!-- Reviewable:end -->
2018-09-23 05:32:17 -04:00
Matt Brubeck
7f4efd4b71 Upgrade to uluru 0.3 2018-09-22 17:24:47 -07:00
bors-servo
d2a79b39c5
Auto merge of #21787 - emilio:gecko-sync, r=emilio
style: Sync changes from mozilla-central.

See each individual commit for details.

https://bugzilla.mozilla.org/show_bug.cgi?id=1493435

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/21787)
<!-- Reviewable:end -->
2018-09-22 15:11:25 -04:00
Emilio Cobos Álvarez
1954a0a1a1
Partially revert #21746.
This reverts the relevant bits from #21746 so that style and dependencies can
build with stable.

This is important because:

 * `selectors` is a published crate.

 * Gecko compiles with stable (more or less).

I reviewed that PR under the assumption that the union feature was stable, since
untagged unions are stable since 1.19, but turns out that smallvec uses non-Copy
types in unions, which are still unstable.

This leaves the union feature used on Servo, so that it gets testing, taking
advantage of features being additive.
2018-09-22 18:51:42 +02:00
Boris Chiou
e5f8155d6c
style: Flip boolean half way for path interpolation.
According to the new svg 2 spec update (#543), we flip the flag half way for
path interpolation.

Differential Revision: https://phabricator.services.mozilla.com/D6192
2018-09-22 17:54:03 +02:00
Brad Werth
b55bfc49fb
style: Provide a specialized parse_method for mask-image to use CORS.
Differential Revision: https://phabricator.services.mozilla.com/D5714
2018-09-22 17:53:49 +02:00
Emilio Cobos Álvarez
3c6be59d22
style: Back out bug 1481866.
The behavior the WG proposed is way more subtle than what that bug implements,
including:

 * Implementing two logical overflow longhands.
 * Expanding the overflow shorthand to different longhands depending on the
   syntax of that.

Meanwhile, Blink hasn't done the swap and will ship the same behavior that we
shipped in Firefox 61 (bug 1453148), that is, overflow-x, then overflow-y.

So I think lacking a clear way forward we should revert this change and preserve
our shipped behavior.

Differential Revision: https://phabricator.services.mozilla.com/D6317
2018-09-22 17:53:26 +02:00
Xidorn Quan
0bcffa7094
style: Merge the two scrollbar color properties into scrollbar-color.
Differential Revision: https://phabricator.services.mozilla.com/D6115
2018-09-22 17:53:15 +02:00
Jonathan Kew
5c66290142
style: Use nsAtom instead of nsString for FontFamilyName.
Bug: 1490997
Reviewed-by: lsalzman
2018-09-22 17:52:38 +02:00
Andre Bogus
34b5d8fbe8 This updates the smallvec crate and enables the union feature
We had a mix of 0.6.2 and 0.6.5 (which is the current release),
this unifies to the latest version. It also enables the union
feature which removes the discriminant, reducing memory usage.
2018-09-19 07:16:30 +02:00