Commit graph

321 commits

Author SHA1 Message Date
Simon Sapin
f9150af936 Keep track of the number of important and normal declarations in a block
… instead of the presence (`bool` flags) of each.

This allows removing `recalc_any` which iterated over the `Vec`.
2016-08-21 10:41:26 +02:00
Simon Sapin
a175c9981e Only cascade at a priority level rules that have declarations of that priority. 2016-08-21 03:40:37 +02:00
Simon Sapin
16bbc2f26e Merge normal and important declarations in style rules.
Have a single Vec instead of two. Fix #3426
2016-08-21 03:40:35 +02:00
Simon Sapin
4062899fd8 Import SelectorMap back from the selectors crate.
Nobody else uses it, and I want to make breaking changes to it.
2016-08-21 03:40:30 +02:00
Simon Sapin
bc71e8b65b Add some fmt::Debug implementations 2016-08-21 03:40:28 +02:00
Simon Sapin
477cae67df Unreverse declarations in memory. 2016-08-21 03:40:27 +02:00
Simon Sapin
31864954ed Typo fixes 2016-08-21 03:40:26 +02:00
Simon Sapin
ab846ab196 Make parsing of keyframe declaration blocks spec-compliant.
Exclude animation properties.
2016-08-21 03:40:24 +02:00
Anthony Ramine
51768844ed Update euclid to 0.10.1 2016-08-21 03:03:45 +02:00
Simon Sapin
24fbb26475 Add an Importance enum replacing booleans to indicate !important. 2016-08-21 00:30:22 +02:00
bors-servo
609d47b44f Auto merge of #12878 - Manishearth:clip-path, r=heycam
stylo: Support clip-path

Todo:

 - [x] `set_clip_path` (probably needs a bunch of gecko bindings for running constructors/destructors)
 - [ ] Ensure that I've ordered the coordinates correctly
 - [ ] Check that it works
 - [x] Might want to convert NS_STYLE_FILL_RULE and NS_RADIUS to enum classes

Depends on:

 - https://github.com/servo/rust-bindgen/pull/29
 - https://github.com/Manishearth/gecko-dev/compare/servo:stylo...Manishearth:clip-path

<!-- 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/12878)
<!-- Reviewable:end -->
2016-08-19 14:24:08 -05:00
Manish Goregaokar
3895b7118e
Handle clip-path in stylo 2016-08-19 23:36:37 +05:30
bors-servo
07b217368f Auto merge of #12924 - servo:selectors-ser, r=nox
Update selectors to 0.10, with ToCss serialization.

<!-- Please describe your changes on the following line: -->
r? @emilio

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

<!-- 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/12924)
<!-- Reviewable:end -->
2016-08-19 13:01:29 -05:00
Emilio Cobos Álvarez
46afc56c41
stylo: Implement support for the contents property. 2016-08-18 15:59:38 -07:00
Emilio Cobos Álvarez
d85a60e366
stylo: Use the improved version of Gecko_GetStyleContext() 2016-08-18 15:56:03 -07:00
Simon Sapin
84fed1a62f Add missing try!() around write!()
Fixes "unused result" warning.
2016-08-18 15:43:09 +02:00
Manish Goregaokar
1d32422fe8 Add clip-path 2016-08-18 11:38:40 +05:30
bors-servo
b61c45639a Auto merge of #12572 - craftytrickster:10933/shorthands, r=emilio
10933/shorthands

<!-- Please describe your changes on the following line: -->
This implements the serialization of nearly all of the css shorthand properties with the following exceptions:

1. font - this may be implemented correctly, but I am not 100% sure
2. border-radius - I do not know how to implement this, since I am not familiar with how the property works
3. background - this is implemented, but I think that the implementation might be a tiny bit off.

---
<!-- 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 #10933  (github issue number if applicable). Also fixes issue #11448

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

<!-- 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/12572)
<!-- Reviewable:end -->
2016-08-17 12:17:48 -05:00
Manish Goregaokar
2fdbce0743
Resync bindings 2016-08-17 13:19:20 +05:30
Manish Goregaokar
0d4d1b539e Add safer bindings for refcounted types across ffi 2016-08-17 12:30:31 +05:30
David Raifaizen
3831c0650c Adding support for correct shorthand serialization 2016-08-16 22:28:51 -04:00
bors-servo
49431be44a Auto merge of #12838 - emilio:viewport, r=SimonSapin
Fix restyling on viewport resize.

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

Fixes https://github.com/servo/servo/issues/12835

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

<!-- 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/12838)
<!-- Reviewable:end -->
2016-08-16 13:48:20 -05:00
Emilio Cobos Álvarez
9e88a495c8
style: Introduce a generic way of gathering information from the cascade, and use it for viewport units. 2016-08-16 10:58:16 -07:00
Emilio Cobos Álvarez
babb2b7160
stylo: Remove misleading comments re. break-before and break-after.
They're alias, and the deprecated property is page-break-xxx, not break-xxx.
2016-08-15 22:59:54 -07:00
Emilio Cobos Álvarez
6bce4c8c20
stylo: Use Arc::get_mut().unwrap() instead of make_mut.
It's infallible, so no point in using make_mut.
2016-08-15 22:59:35 -07:00
Emilio Cobos Álvarez
b1091dff58
stylo: Regenerate the world. 2016-08-15 22:58:32 -07:00
Michael Howell
ad4b9aab45 Rebuild the writing_mode with cached style reuse
Fixes #11818
2016-08-12 15:24:56 -07:00
bors-servo
a22913569c Auto merge of #12795 - Wafflespeanut:word_spacing, r=Manishearth
Support 'word-spacing' for geckolib

**These changes haven't been tested yet!**

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

- [ ] 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/12795)
<!-- Reviewable:end -->
2016-08-11 22:02:01 -05:00
Martin Robinson
6259df5e2d Update to euclid 0.8 2016-08-12 03:12:06 +02:00
Bobby Holley
7f417728d4 Update bindings. 2016-08-10 12:07:12 -07:00
Bobby Holley
1cd76c2917 Handle enum classes for clonable properties. 2016-08-10 12:07:10 -07:00
Ravi Shankar
69c422f581 Support 'word-spacing' for geckolib 2016-08-10 15:03:28 +05:30
bors-servo
3b676bc85d Auto merge of #12783 - Wafflespeanut:word_spacing, r=Manishearth
Prefer length and percentage for word spacing

<!-- Please describe your changes on the following line: -->
The goal is to make use of `LengthOrPercentage` for word spacing in `ShapingOptions`, but since it makes use of `f32` which doesn't implement `Hash`, we're going for `NotNan<f32>` from [ordered-float](https://github.com/reem/rust-ordered-float/), which supports hashing. Instead of implementing `Hash` for `LengthOrPercentage` and thereby the inner types like `CSSFloat`, `CalcLengthOrPercentage`, etc., we convert it to `(Au, NotNan<f32>)`.

---
<!-- 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: -->
- [ ] There are tests for these changes

<!-- 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/12783)
<!-- Reviewable:end -->
2016-08-09 10:13:30 -05:00
Anthony Ramine
fc58cc01f4 Fix interpolation of CalcLengthOrPercentage (fixes #12765) 2016-08-09 14:47:38 +02:00
Ravi Shankar
a04028eede Prefer length and percentage for word spacing 2016-08-09 17:53:40 +05:30
Bobby Holley
8f991f76bd stylo: Use AtomicUsize to store our initial computed values. 2016-08-05 13:42:38 -07:00
bors-servo
0fc0db67c6 Auto merge of #12680 - Manishearth:basic-shape, r=SimonSapin
style: Add support for parsing and serialization of <basic-shape>s

Still WIP: I still need to use this somewhere and make serialization minimal. I'm not sure if I should do either in this PR.
The only other browser that handles basic shapes doesn't serialize correctly either (https://bugzilla.mozilla.org/show_bug.cgi?id=1290864), so that's not something we need to get done now.

As far as using this somewhere, I have the following options:

 - Merge this now, work on using it in stylo in a followup.
 - Just write extensive unit tests for parsing/serialization for now (stylo in a followup)
 - Use this for clip-path in stylo only (which I intend to do anyway, just not sure if I should do it in this PR)
 - Use this for clip-path in Servo (I'd rather not do this; this would be a huge change requiring a lot more layout knowledge than I currently have)

Thoughts? Review? @SimonSapin @bholley

<!-- 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/12680)
<!-- Reviewable:end -->
2016-08-05 06:27:24 -05:00
Bobby Holley
b916ad0a85 Convert currentColor crash into a warning. 2016-08-03 17:55:02 -07:00
Bobby Holley
f0f39904a2 Explicitly allocate and deallocate our initial computed values.
This allows us to trigger style struct destructors before Gecko's leak checking
runs.
2016-08-03 17:20:21 -07:00
Manish Goregaokar
d1e45f78af
Add serialize_four_sides, use for serializing BorderRadius 2016-08-02 19:22:03 +05:30
Manish Goregaokar
eb82cc25ef
Add Polygon to basic_shape.rs 2016-08-02 15:57:28 +05:30
Manish Goregaokar
44e33bcdc5
Move Position into its own values module 2016-08-02 15:57:23 +05:30
Manish Goregaokar
2580c1dc6e
Add InsetRect, move BorderRadius to basic_shape.rs 2016-08-02 15:57:20 +05:30
bors-servo
f16aac0e5d Auto merge of #12651 - heycam:background-position, r=Manishearth
Add support for background-position in geckolib.

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

r? @Manishearth

---
<!-- 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: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because this is a geckolib-only change

<!-- 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/12651)
<!-- Reviewable:end -->
2016-08-01 20:41:56 -05:00
Cameron McCormack
77e57aab5b Add support for background-position in geckolib. 2016-07-29 17:12:50 +08:00
bors-servo
7e39efa2df Auto merge of #12631 - Manishearth:stylo-unsafe-coord, r=bholley
stylo: Use unsafe accessors for coord data

depends on https://bugzilla.mozilla.org/show_bug.cgi?id=1290061

r? @bholley

<!-- 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/12631)
<!-- Reviewable:end -->
2016-07-29 03:38:14 -05:00
Manish Goregaokar
a0f203a3a8
stylo: Use unsafe accessors for coord data; regen bindings 2016-07-29 13:13:36 +05:30
Cameron McCormack
baa339f4af Store UrlExtraData in {specified,computed}::Image::Url. 2016-07-29 14:22:35 +08:00
Cameron McCormack
00677e27fd Pull UrlExtraData up to values.rs. 2016-07-29 13:16:04 +08:00
bors-servo
d6266c7cee Auto merge of #12599 - Manishearth:sync, r=heycam
Resync stylo bindings

Now at gecko-dev 13b9d03a21091cfcd797ab89decec2dde9114781

<!-- 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/12599)
<!-- Reviewable:end -->
2016-07-26 10:07:15 -05:00