servo/components/style
bors-servo 1e0321f7dd Auto merge of #12469 - emilio:stylo, r=bholley
style: Rewrite the restyle hints code to allow different kinds of element snapshots.

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

<!-- Either: -->
- [x] These changes do not require tests because refactoring.

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

This is a rewrite for how style interfaces with its consumers in order to allow
different representations for an element snapshot.

This also changes the requirements of an element snapshot, requiring them to
only implement MatchAttr, instead of MatchAttrGeneric. This is important for
stylo since implementing MatchAttrGeneric is way more difficult for us given the
atom limitations. This also allows for more performant implementations in the
Gecko side of things.

I don't want to get this merged just yet, mainly because the stylo part is not
implemented, but I'd like early feedback from @bholley and/or @heycam: How do
you see this approach? I don't think we'll have much problem to implement
MatchAttr for our element snapshots, but... worth checking.

r? @heycam

<!-- 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/12469)
<!-- Reviewable:end -->
2016-07-21 16:54:34 -05:00
..
properties Make nsStyleUnion sugar use traits 2016-07-21 13:35:47 +05:30
animation.rs style: Add a new Timer structure to the shared style context, and basic infrastructure for controlling animations. 2016-07-20 09:05:53 -07:00
attr.rs style: Rewrite the restyle hints code to allow different kinds of element snapshots, and use it for Gecko. 2016-07-21 14:24:04 -07:00
bezier.rs Move util::bezier to style 2016-02-14 19:45:24 +01:00
build.rs Detect python2.7.exe on windows 2016-07-08 18:50:59 +10:00
cache.rs Move util::cache to style. 2016-07-08 16:44:47 +02:00
Cargo.toml All our Cargo.toml files should contain an MPL-2.0 license field. 2016-07-14 10:26:34 -05:00
context.rs style: Add a new Timer structure to the shared style context, and basic infrastructure for controlling animations. 2016-07-20 09:05:53 -07:00
custom_properties.rs Some fixes in style 2016-07-12 20:00:24 +05:30
data.rs Have a concrete SelectorImpl type everywhere in the style crate. 2016-07-20 08:42:46 +02:00
dom.rs style: Rewrite the restyle hints code to allow different kinds of element snapshots, and use it for Gecko. 2016-07-21 14:24:04 -07:00
element_state.rs Add some documentation to the style crate. 2016-06-27 17:33:14 +02:00
error_reporting.rs Add some documentation to the style crate. 2016-06-27 17:33:14 +02:00
font_face.rs Add some documentation to the style crate. 2016-06-27 17:33:14 +02:00
gecko_conversions.rs Address review comments 2016-07-19 11:29:13 +05:30
gecko_glue.rs Move geckolib/properties.mako.rs to style/properties/gecko.mako.rs 2016-07-20 08:40:22 +02:00
gecko_selector_impl.rs Remove some type aliases that are now just re-exports. 2016-07-20 08:42:47 +02:00
gecko_values.rs Make nsStyleUnion sugar use traits 2016-07-21 13:35:47 +05:30
keyframes.rs style: Fix timing-function overriding from the keyframe declaration list. 2016-07-07 16:05:28 -07:00
lib.rs style: Add a new Timer structure to the shared style context, and basic infrastructure for controlling animations. 2016-07-20 09:05:53 -07:00
logical_geometry.rs Make the style crate almost build on stable Rust. 2016-06-22 15:44:13 +02:00
matching.rs style: Add a new Timer structure to the shared style context, and basic infrastructure for controlling animations. 2016-07-20 09:05:53 -07:00
media_queries.rs Move some unit type definitions to style_traits. 2016-07-11 12:14:27 +02:00
parallel.rs Move util::workqueue to style 2016-07-04 21:56:09 +02:00
parser.rs Add some documentation to the style crate. 2016-06-27 17:33:14 +02:00
README.md docs: Add style overview. 2016-05-04 00:34:03 +02:00
refcell.rs Add commit hash to be reverted in FIXME comment. 2016-06-23 16:14:33 +02:00
restyle_hints.rs style: Rewrite the restyle hints code to allow different kinds of element snapshots, and use it for Gecko. 2016-07-21 14:24:04 -07:00
selector_impl.rs stylo: Update generated bindings 2016-07-21 14:24:05 -07:00
selector_matching.rs style: Rewrite the restyle hints code to allow different kinds of element snapshots, and use it for Gecko. 2016-07-21 14:24:04 -07:00
sequential.rs Remove lifetimes from T{Node,Element,Document}. 2016-03-14 14:31:57 -07:00
servo_selector_impl.rs style: Rewrite the restyle hints code to allow different kinds of element snapshots, and use it for Gecko. 2016-07-21 14:24:04 -07:00
sink.rs Move util::vec::ForgetfulSink to style::sink and simplify it 2016-07-04 16:48:14 +02:00
str.rs Move util::str to style 2016-07-05 10:43:54 +02:00
stylesheets.rs Have a concrete SelectorImpl type everywhere in the style crate. 2016-07-20 08:42:46 +02:00
tid.rs Move util::tid to style 2016-07-05 10:36:38 +02:00
timer.rs style: Add a new Timer structure to the shared style context, and basic infrastructure for controlling animations. 2016-07-20 09:05:53 -07:00
traversal.rs Have a concrete SelectorImpl type everywhere in the style crate. 2016-07-20 08:42:46 +02:00
values.rs Rename ComputedValuesStruct to ComputedValues. 2016-07-20 08:42:45 +02:00
viewport.rs Rename ComputedValuesStruct to ComputedValues. 2016-07-20 08:42:45 +02:00
workqueue.rs Move util::workqueue to style 2016-07-04 21:56:09 +02:00

servo-style

Style system for Servo, using rust-cssparser for parsing.