Commit graph

2892 commits

Author SHA1 Message Date
Anthony Ramine
f658215f12 Fix Animatable impl for LengthOrPercentageOrNone 2017-06-13 10:19:23 +02:00
Anthony Ramine
43a5257a0c Introduce #[css(function)] for #[derive(ToCss)]
Any variant with this attribute gets serialised as a CSS function,
using the variant name as the function name.
2017-06-13 10:19:23 +02:00
Emilio Cobos Álvarez
e3c4d03bde
style: Reduce some code duplication and ugliness when parsing identifiers. 2017-06-11 03:12:02 +02:00
bors-servo
ff17af064b Auto merge of #17262 - Manishearth:bindings, r=Manishearth
Update bindings for StyleImageLayerRepeat

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

<!-- 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/17262)
<!-- Reviewable:end -->
2017-06-09 15:56:10 -07:00
bors-servo
061cb5f48e Auto merge of #16752 - jdm:css-parse-error, r=SimonSapin
Report more informative CSS errors

This requires https://github.com/servo/rust-cssparser/pull/143 for the final commit. There's no better way to split that work up, unfortunately, and it's extremely easy to bitrot. I would appreciate if we could expedite reviewing this work.

This is the work necessary to enable https://bugzilla.mozilla.org/show_bug.cgi?id=1352669. It makes sense to merge it separately because it's so much effort to keep it up to date with the ongoing Stylo work.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [x] There are tests for these changes

<!-- 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/16752)
<!-- Reviewable:end -->
2017-06-09 14:31:48 -07:00
Josh Matthews
27ae1ef2e7 Thread ParseError return values through CSS parsing. 2017-06-09 16:46:25 -04:00
Manish Goregaokar
fd0ac4f31e Update bindings for StyleImageLayerRepeat 2017-06-09 13:26:16 -07:00
Josh Matthews
3773a4d499 Encapsulate CSS error reporter creation for stylo. 2017-06-09 13:16:38 -04:00
Josh Matthews
fd6e54d9e3 Report CSS parse errors via enum instead of strings. 2017-06-09 13:16:32 -04:00
bors-servo
88b47b0154 Auto merge of #17253 - dadaa:bug1368610, r=hiikezoe,nox,emilio
Bug1368610 - stylo: implement primitive (bit, uXX) type of discrete animatable properties

<!-- Please describe your changes on the following line: -->
This PR is to fix https://bugzilla.mozilla.org/show_bug.cgi?id=1368610

---
<!-- 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

<!-- Either: -->
- [X] There are tests for these changes. The tests will land in dom/animation/test of m-c. Test code is patch 6 of https://bugzilla.mozilla.org/show_bug.cgi?id=1368610

<!-- 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/17253)
<!-- Reviewable:end -->
2017-06-09 10:01:35 -07:00
Daisuke Akatsuka
a3d2b67cd5 Implements properties that need to change only the animation type animatable 2017-06-09 23:47:07 +09:00
Daisuke Akatsuka
367c0a4b43 Implements numeric field type properties animatable 2017-06-09 23:46:51 +09:00
Daisuke Akatsuka
9751fb9358 Implements other bit type properties animatable 2017-06-09 23:46:37 +09:00
Daisuke Akatsuka
f358ec069c Implements gecko keyword bit type properties animatable 2017-06-09 23:46:28 +09:00
Daisuke Akatsuka
21b7b256c2 Implements bitflags properties animatable 2017-06-09 23:46:11 +09:00
bors-servo
1555f0fc41 Auto merge of #17215 - servo:derive-all-the-things, r=emilio
Derive more ToCss impls

<!-- 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/17215)
<!-- Reviewable:end -->
2017-06-09 05:00:45 -07:00
Jeremy Chen
e9cbeee9d9 Bug 1360133 - stylo: make {stop, flood}-opacity animatable.
MozReview-Commit-ID: GzNs36TjZ4E
2017-06-09 14:16:38 +08:00
bors-servo
e386e42481 Auto merge of #17223 - BorisChiou:stylo/animation/tab_size, r=hiro,Manishearth
stylo: Make -moz-{tab-size, box-flex, image-region, outline-radius} animatable.

Make -moz-tab-size, -moz-box-flex, -moz-image-region, and -moz-outline-radius animatable, so test_transitions_per_property.html doesn't get any exception of these properties.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix Bug 1370803, Bug 1370808, Bug 1370845, and Bug 1370846.
- [X] These changes do not require tests because we have test in Gecko side already.

<!-- 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/17223)
<!-- Reviewable:end -->
2017-06-08 20:00:24 -07:00
Boris Chiou
5c915bd4ae Make -moz-outline-radius-{*} animatable. 2017-06-09 10:50:27 +08:00
Hiroyuki Ikezoe
c1ec6f6913 nscsspropertyid_is_animatable handles shorthand property as well.
We consider the shorthand animatable if any of sub properties are animatable.
2017-06-09 07:03:18 +09:00
Hiroyuki Ikezoe
2b929a1cb1 Factor out a process that creates AnimationValue iterator from PropertyDeclarationBlock. 2017-06-09 07:03:11 +09:00
bors-servo
0dc7190311 Auto merge of #17227 - chenpighead:stylo-fill-opacity-animatable, r=boris
stylo: make fill-opacity animatable

This is just the servo part change. The test part will be landed in gecko directly.

Gecko bug: [Bug 1369624](https://bugzilla.mozilla.org/show_bug.cgi?id=1369624)

<!-- 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/17227)
<!-- Reviewable:end -->
2017-06-08 10:24:37 -07:00
Boris Chiou
e517d21de8 Set zero to mImageRegion.{height,width} if {bottom,right} is auto.
Let's follow how Gecko does for this part (in nsRuleNode::ComputeListData).
We set mImageRegion.height or mImageRegion.width to zero if bottom or right is
None (i.e. auto).
2017-06-09 00:35:43 +08:00
Boris Chiou
4e78755303 Make -moz-image-region animatable. 2017-06-09 00:35:28 +08:00
Boris Chiou
b3f9cb55f6 Make -moz-box-flex animatable. 2017-06-08 22:46:33 +08:00
Boris Chiou
f34b9e2317 Make -moz-tab-size animatable. 2017-06-08 22:46:16 +08:00
bors-servo
09b4f79ed3 Auto merge of #17218 - canaltinova:transform-bug, r=emilio
Don't accept an extra token at the end of transform property

The lack of `input.try` usage makes transform property to accept values like `rotate(70deg)foo`.

---
<!-- 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

<!-- Either: -->
- [X] There are tests for 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/17218)
<!-- Reviewable:end -->
2017-06-08 03:37:44 -07:00
Anthony Ramine
d55d726a21 Derive ToCss for cursor keywords 2017-06-08 11:20:40 +02:00
Anthony Ramine
c8c6f3482f Implement ToCss for str and String 2017-06-08 11:13:39 +02:00
Jeremy Chen
a21605a201 Bug 1369624 - stylo: make fill-opacity animatable.
MozReview-Commit-ID: 4iUSBtEYXuR
2017-06-08 14:38:25 +08:00
Xidorn Quan
5c643adb98 Simplify caret-color conversion. 2017-06-08 12:59:28 +10:00
Xidorn Quan
c62935577a Add separate computed Color value. 2017-06-08 12:59:26 +10:00
Xidorn Quan
742c45f859 Remove complex_color parameter. 2017-06-08 12:59:24 +10:00
Xidorn Quan
7568a19688 Merge CSSColor into Color. 2017-06-08 12:59:22 +10:00
Xidorn Quan
bf77f81ed6 Create RGBAColor for colors compute to RGBA. 2017-06-08 10:42:26 +10:00
Nazım Can Altınova
51066436fa
Don't accept an extra token at the end of transform property 2017-06-08 02:36:52 +03:00
bors-servo
eaefcbe551 Auto merge of #17211 - Manishearth:stylo-single-generic, r=heycam
stylo: Prefill default font when a single generic is set

r=heycam https://bugzilla.mozilla.org/show_bug.cgi?id=1370734

<!-- 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/17211)
<!-- Reviewable:end -->
2017-06-07 10:53:25 -07:00
Manish Goregaokar
3db0d3b4fa stylo: Prefill default font when a single generic is set 2017-06-07 09:40:15 -07:00
Manish Goregaokar
6dbca89ff5 stylo: Refactor generic font handling into a method 2017-06-07 09:39:58 -07:00
bors-servo
738483742c Auto merge of #17209 - servo:derive-all-the-things, r=emilio
Introduce more generics and more deriving

<!-- 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/17209)
<!-- Reviewable:end -->
2017-06-07 08:55:08 -07:00
Anthony Ramine
45e8b0e8c7 Support unit variants when deriving ToCss 2017-06-07 16:47:59 +02:00
bors-servo
f4a720483d Auto merge of #17202 - BorisChiou:stylo/animation/mismatched_transform, r=Manishearth,birtles
stylo: Bug 1335998 - Handle interpolation and accumulation of mismatched transform lists

These are the interdependent patches of Bug 1335998. We want to do interpolation and accumulation for mismatched transform lists, so introduce ComputedOperation::InterpolateMatrix and ComputedOperation::Accumulation. Both arms store the from_list and to_list, and resolve them until we have the layout information. For the Servo part, we haven't implemented how to read the transform lists in layout/fragment.rs, but I think it would be easy. (related issue #13267)

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1335998](https://bugzilla.mozilla.org/show_bug.cgi?id=1335998)
- [X] There are tests for these changes

<!-- 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/17202)
<!-- Reviewable:end -->
2017-06-06 23:54:41 -07:00
bors-servo
ffc47e89b3 Auto merge of #17197 - bholley:nonzero_arc, r=Manishearth
Force the NonZero optimization for servo_arc and StrongRuleNode

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

Also addressing followup feedback from https://bugzilla.mozilla.org/show_bug.cgi?id=1370107

<!-- 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/17197)
<!-- Reviewable:end -->
2017-06-06 22:42:42 -07:00
Boris Chiou
1d44c273d3 Implement an FFI and matrix conversions for matrix decomposition/interpolation/recomposition.
We use Servo backend to decompose/interpolate/recompose matrices on both
main thread and compositor thread.
2017-06-07 13:04:05 +08:00
Xidorn Quan
a87f63fa04 Create sugar for nsCSSShadowItem. 2017-06-07 13:32:19 +10:00
Xidorn Quan
3e47e6eab2 Make text-shadow reuse Shadow directly. 2017-06-07 13:32:17 +10:00
Xidorn Quan
ccd7022457 Reuse ToCss of Shadow types in drop-shadow filter. 2017-06-07 13:32:16 +10:00
Xidorn Quan
2bd1ff0450 Move ToCss impl for Shadow types to values mod. 2017-06-07 13:32:10 +10:00
Boris Chiou
1a3845b719 Convert between {Accumulate, Interpolate}Matrix and the related gecko type.
We convert ComputedOperation::{Accumulate, Interpolate}Matrix into gecko type
not on the main thread, so we cannot use nsCSSValueList_heap (which is not
thread safe so we cannot create it and destroy it on different threads).
Therefore, we use nsCSSValueSharedList to represent the cloned
from_list/to_list. In this patch, we also implement the reversing way,
i.e. Convert eCSSKeyword_{accumulate, interpolate}matrix into
{Accumulate, Interpolate}Matrix.
2017-06-07 11:31:27 +08:00
Boris Chiou
8a69132de0 Use IntoIterator for nsCSSValueList. 2017-06-07 11:31:14 +08:00