Commit graph

21566 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
66056bd4d5 script: Fix Servo build. 2019-05-29 16:14:36 +02:00
Emilio Cobos Álvarez
70635e7815 layout: Fix servo build. 2019-05-29 16:14:35 +02:00
Emilio Cobos Álvarez
4671ef5243 style: Fix servo build. 2019-05-29 16:14:34 +02:00
Emilio Cobos Álvarez
cd2ac08eb9 atoms: Add some static atoms in code that is shared with gecko. 2019-05-29 16:14:33 +02:00
Emilio Cobos Álvarez
1994dbb1c8 style: Revert a change that ended up not being needed and busts the servo build. 2019-05-29 16:14:32 +02:00
Emilio Cobos Álvarez
e3e826d4fb style: Appease tidy. 2019-05-29 16:14:31 +02:00
Emilio Cobos Álvarez
81f40a57e4 style: Reformat recent style system changes. 2019-05-29 16:14:30 +02:00
Emilio Cobos Álvarez
87ec2cefc5 style: Tweak whitespace in Cargo.toml to match surrounding code and Gecko. 2019-05-29 16:14:30 +02:00
Martin Stransky
90d20f27b3 [Linux/Gtk] Get and use Gtk theme text color for active/pressed button,
- Follow Gtk and get theme button text color directly from "button" CSS node instead of "button label"
- Provide new -moz-gtk-buttonactivetext color for active/pressed button text color
- Replace ButtonText color with -moz-gtk-buttonactivetext when it's appropriate

Differential Revision: https://phabricator.services.mozilla.com/D30566
2019-05-29 16:14:29 +02:00
violet
e66e612452 style: Use cbindgen for text-overflow.
Differential Revision: https://phabricator.services.mozilla.com/D32285
2019-05-29 16:14:28 +02:00
Boris Chiou
73b0b7c477 style: Implement offset-rotate.
This includes style system and layout update. I add 3 extra reftests
because the original tests use ray() function as the offset-path, but we
don't support it. It'd be better to add tests using a different type of
offset-path.

The spec issue about the serialization:
https://github.com/w3c/fxtf-drafts/issues/340

Differential Revision: https://phabricator.services.mozilla.com/D32212
2019-05-29 16:14:27 +02:00
Emilio Cobos Álvarez
43444db8a8 style: Cleanup selector-matching for nested pseudo-elements, match ::slotted correctly when there's no selector before it, and add tests.
D29542 fixed the bogus checks that was making nested pseudo-elements match
author rules. This adds tests and ends up being just a cleanup, though as it
turns out we it also fixes an issue with ::slotted() matched from
Element.matches.

Differential Revision: https://phabricator.services.mozilla.com/D27529
2019-05-29 16:14:26 +02:00
Emilio Cobos Álvarez
272d9758d7 style: Fix nested-pseudo-elements matching author rules better.
This makes *|*::marker do the intended thing in UA sheets, so I think it's
better, and it's a bit less special-casey.

We may want to re-introduce the changes for pseudo-elements at some point,
depending on the WG decision, but this patch makes each_non_document_style_data
consistent with the rule collector.

The changes of each_non_document_style_data on their own should fix some bugs,
but it doesn't because:

 * This is only hit for pseudos that allow user-action-state pseudo-classes.
 * The containing shadow check worked for them anyway.
 * We don't allow any pseudo after ::slotted() or that isn't tree-abiding per
   the CSS specs (we should maybe enable one of the moz-range stuff to be
   tree-abiding).

So ::placeholder is the only one that right now fits the bill to trigger the
bugs this would fix, but it doesn't since I couldn't make ::placeholder match
:hover / :active / :focus anyhow (inside or outside a shadow tree).

I've left the ProbeMarkerPseudoStyle changes for now since they are technically
a bit more consistent than what was there before, but we could revert those if
they cause trouble, we could rely on the UA rule matching, but we would need to
change that if we allow the ::foo::before and such to match.

Differential Revision: https://phabricator.services.mozilla.com/D29542
2019-05-29 16:14:26 +02:00
Emilio Cobos Álvarez
431b9d00f5 style: Remove eStyleImageType_URL.
It was introduced in bug 1352096 to reduce complexity with Stylo (apparently).

Right now it doesn't look like it reduces any complexity, and it's a bit
annoying with some of the patches that I'm writing at the moment.

So unless there's any objection I think it should go away.

Differential Revision: https://phabricator.services.mozilla.com/D31708
2019-05-29 16:14:25 +02:00
Emilio Cobos Álvarez
8bf0f82ddc style: Remove old CSS scroll snap implementation.
This will save us some time from figuring out what's the best thing to do in
bug 1552587, so that other patches I have in flight (mainly bug 1552708) can
land, since we cannot add a single byte to nsStyleDisplay right now otherwise.

The code removed here is well isolated and not that complicated, so it seems to
me that should be easy to bring back should we have an emergency (and I commit
to doing that while preserving the nsStyleDisplay size limit if we need to :)).

Differential Revision: https://phabricator.services.mozilla.com/D32026
2019-05-29 16:14:24 +02:00
Emilio Cobos Álvarez
44926adde7 style: Use cbindgen for border-image-width.
Differential Revision: https://phabricator.services.mozilla.com/D32032
2019-05-29 16:14:23 +02:00
violet
af8e8e6a34 style: Do not report error for unknown property if its known moz prefixed version is specified.
Suppose that `prop` is a property that we haven't supported yet, while its `-moz-prop`
version is already supported.

If an author specifies in a declaration block this property in its standard form
as well as multiple verdor specific forms, as long as `-moz-prop` is specified, we
shouldn't report error for unknown property `prop`. Because that's just noise.

Differential Revision: https://phabricator.services.mozilla.com/D31998
2019-05-29 16:14:23 +02:00
violet
bd1481039f style: Add SVG geometry property support in CSS.
This patch adds SVG geometry properties to CSS, it doesn't deal with
how SVG handles them.

Differential Revision: https://phabricator.services.mozilla.com/D29937
2019-05-29 16:14:22 +02:00
violet
d552969ca1 style: Support AllowQuirks::Always option in helpers.mako.rs
Differential Revision: https://phabricator.services.mozilla.com/D29936
2019-05-29 16:14:21 +02:00
Boris Chiou
f8a2172d42 style: Make offset-distance animatable.
Use ComputedValue to animate offset-distance.

Differential Revision: https://phabricator.services.mozilla.com/D30584
2019-05-29 16:14:20 +02:00
Boris Chiou
c50829bf6e style: Implement offset-distance.
Define the offset-distance property in style system.

Differential Revision: https://phabricator.services.mozilla.com/D30582
2019-05-29 16:14:20 +02:00
Boris Chiou
d80a5d9196 style: Unpack StyleMotion and use cbindgen for OffsetPath.
Unpack StyleMotion and move its members into nsStyleDisplay, use
cbindgen to generate StyleOffsetPath.

Differential Revision: https://phabricator.services.mozilla.com/D31164
2019-05-29 16:14:19 +02:00
Jonathan Kew
8ee516b681 style: Add parsing of the loose|normal|strict values of the CSS line-break property.
Differential Revision: https://phabricator.services.mozilla.com/D30785
2019-05-29 16:14:18 +02:00
Jonathan Kew
0dc70cf7f2 style: Implement the CSS line-break property, with values "auto | anywhere".
Note that the "loose | normal | strict" values are not yet parsed/implemented.

Differential Revision: https://phabricator.services.mozilla.com/D29817
2019-05-29 16:14:18 +02:00
Emilio Cobos Álvarez
67909022a0 style: Unprefix user-select.
The CSSWG decided that our behavior regarding inheritance is what we want,
see [1].

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

Differential Revision: https://phabricator.services.mozilla.com/D11585
2019-05-29 16:14:17 +02:00
Brian Birtles
7cf2e38bb7 style: Use update() to update declarations from Servo_DeclarationBlock_SetPropertyToAnimationValue.
This method is used when updating the SMIL override style and from Web
Animations' Animation.commitStyles method. By using update we accurately return
false when no change is made to a declaration block.

For SMIL this simply acts as an optimization, meaning we can avoid updating the
SMIL override style ub some cases.

For Animation.commitStyles, however, this allows us to avoid generating
a mutation record. Normally making a redundant change to an attribute *does*
generate a mutation record but the style attribute is different. All browsers
avoid generating a mutation record for a redundant change to inline style.
This is specified in the behavior for setProperty[1] which does not update the
style attribute if updated is false.

[1] https://drafts.csswg.org/cssom/#dom-cssstyledeclaration-setproperty

Differential Revision: https://phabricator.services.mozilla.com/D30871
2019-05-29 16:14:16 +02:00
Brian Birtles
eba393cc82 Implement Animation.commitStyles.
Differential Revision: https://phabricator.services.mozilla.com/D30327
2019-05-29 16:14:16 +02:00
violet
86524c3765 style: Accept empty argument for some filters.
Filters blur(), invert(), etc. can omit argument.

Computed/specified style serialization is a little tricky w.r.t the shortest
serialization principle. Ideally we should serialize `invert(1)` to `invert()`,
but that will be a breaking change, so we always serialize them with an
argument.

Note, Blink/WetKit treat specified (but not computed) style serialization
differently when the specified one is originally without argument. Our
current behavior is the same as pre-Chromium Edge.

Differential Revision: https://phabricator.services.mozilla.com/D31720
2019-05-29 16:14:15 +02:00
Emilio Cobos Álvarez
8c8ef22e6b style: Remove some more individual-transform dead code.
Differential Revision: https://phabricator.services.mozilla.com/D31705
2019-05-29 16:14:15 +02:00
Emilio Cobos Álvarez
57998eacc5 style: Remove nsCSSValue bindings.
Depends on D31320

Differential Revision: https://phabricator.services.mozilla.com/D31321
2019-05-29 16:14:14 +02:00
Emilio Cobos Álvarez
7d3997d7ef style: Cleanup a bit the counter style code.
Use more compact types, and remove some manual implementations that can be
derived.

Differential Revision: https://phabricator.services.mozilla.com/D31315
2019-05-29 16:14:13 +02:00
Emilio Cobos Álvarez
3034d66eef style: Use cbindgen to back CSS transforms.
This avoids the expensive conversion, and cleans up a bunch.

Further cleanup is possible, just not done yet to avoid growing the patch even
more.

Differential Revision: https://phabricator.services.mozilla.com/D30748
2019-05-29 16:14:12 +02:00
Emilio Cobos Álvarez
85752fa479 style: Use OwnedSlice for will-change.
We could use ArcSlice if wanted I guess, your call. Though will change is not
supposed to be used very frequently.

Differential Revision: https://phabricator.services.mozilla.com/D30548
2019-05-29 16:14:12 +02:00
Emilio Cobos Álvarez
5f6c8d9060 style: Add bindings for box shadows, and remove nsCSSShadowArray and friends.
Differential Revision: https://phabricator.services.mozilla.com/D30547
2019-05-29 16:14:11 +02:00
Emilio Cobos Álvarez
a109fbb7c8 style: Use ArcSlice for quotes.
This saves the intermediate allocation.

Differential Revision: https://phabricator.services.mozilla.com/D30546
2019-05-29 16:14:10 +02:00
Emilio Cobos Álvarez
bbc77e3977 style: Share computed and specified value representation of -moz-context-properties.
Differential Revision: https://phabricator.services.mozilla.com/D30545
2019-05-29 16:14:10 +02:00
Emilio Cobos Álvarez
2bc4c42d45 style: Use an ArcSlice as the computed value representation of inherited list properties.
This adds a bit of complexity, which I think will pay off in the end. Removals
incoming.

Differential Revision: https://phabricator.services.mozilla.com/D30544
2019-05-29 16:14:09 +02:00
Emilio Cobos Álvarez
5e4fdf647d style: Implement ArcSlice::default().
Share a singleton to avoid allocating for empty lists.

Differential Revision: https://phabricator.services.mozilla.com/D30543
2019-05-29 16:14:08 +02:00
Emilio Cobos Álvarez
ab8776a144 style: Use OwnedSlice in the specified and computed values of most vector properties.
This is just a refactor in the right direction. Eventual goal is:

 * All inherited properties use ArcSlice<>.
 * All reset properties use OwnedSlice<> (or ThinVec<>).

No conversion happens at all, so we can remove all that glue, and also
compute_iter and co.

Of course there's work to do, but this is a step towards that.

Differential Revision: https://phabricator.services.mozilla.com/D30127
2019-05-29 16:14:07 +02:00
Emilio Cobos Álvarez
b61eb84d96 style: Use ManuallyDrop for style structs.
We destroy them manually, so it's the right thing to do.

This allows us to not run destructors of any members of nsStyle*, which in turn allows us to:

 * Remove the hack that replaced all nsStrings for nsStringReprs.
 * Remove ns{,C}StringRepr (followup)
 * Add members with destructors to the style structs (you see where I'm going :)).

Differential Revision: https://phabricator.services.mozilla.com/D30450
2019-05-29 16:14:07 +02:00
Cameron McCormack
3a22bb6c49 style: Add Gecko profiler labels for when the style threads are doing work.
Differential Revision: https://phabricator.services.mozilla.com/D30869
2019-05-29 16:14:06 +02:00
bors-servo
8dc7a25893
Auto merge of #23381 - maharsh312:master, r=jdm
Canvas Components for OffscreenCanvas

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because ___

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- 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/23381)
<!-- Reviewable:end -->
2019-05-28 23:13:23 -04:00
bors-servo
96ac540a24
Auto merge of #23461 - TheOriginalAlex:issue-23408, r=jdm
Switched from using thread for websocket requests to ipc_channel::router::ROUTER

<!-- Please describe your changes on the following line: -->
Switched from using thread for websocket requests to ipc_channel::router::ROUTER

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #23408  (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because the existing websocket tests should cover these changes

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- 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/23461)
<!-- Reviewable:end -->
2019-05-28 07:36:12 -04:00
bors-servo
2a61a0dbb0
Auto merge of #23464 - kleinph:layout-type-alias-enums, r=jdm
Use type alias enums in layout code

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22862 (GitHub issue number if applicable)

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because tests should already be there and no functional changes are made.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- 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/23464)
<!-- Reviewable:end -->
2019-05-27 09:12:25 -04:00
bors-servo
0957328ee2
Auto merge of #23453 - jdm:no-vcvars, r=paulrouget
Remove restrictions on cross-compiling on Windows.

This allows us to successfully build Servo when targeting UWP.

<!-- 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/23453)
<!-- Reviewable:end -->
2019-05-27 06:05:14 -04:00
Philipp Klein
0ed8e6f98e Use type alias enums in layout code
closes #22862
2019-05-27 10:10:10 +02:00
Alex Johnson
1c35c44c35 Fixes #23408
Switched from using thread for websocket requests to ipc_channel::router::ROUTER

Signed-off-by: Alex Johnson <hello@alex-johnson.net>
2019-05-26 09:46:48 -07:00
Josh Matthews
2875e5ccb3 Upgrade parking_lot to 0.8. 2019-05-25 07:18:06 -04:00
Paul Rouget
1758207393 Glutin update: dependencies update 2019-05-25 07:15:30 -04:00
Josh Matthews
0d831117ec Remove restrictions on cross-compiling on Windows. 2019-05-24 22:32:34 -04:00