Name Description Size
animation.rs CSS transitions and animations. 53688
applicable_declarations.rs Applicable declarations management. 9642
attr.rs Parsed representations of [DOM attributes][attr]. [attr]: https://dom.spec.whatwg.org/#interface-attr 19046
author_styles.rs A set of author stylesheets and their computed representation, such as the ones used for ShadowRoot. 2275
bezier.rs Parametric Bézier curves. This is based on `WebCore/platform/graphics/UnitBezier.h` in WebKit. 4876
bloom.rs The style bloom filter is used as an optimization when matching deep descendant selectors. 14443
build.rs 2399
build_gecko.rs 13132
Cargo.toml 3206
color
context.rs The context within which style is calculated. 25767
counter_style
custom_properties.rs Support for [custom properties for cascading variables][custom]. [custom]: https://drafts.csswg.org/css-variables/ 84479
custom_properties_map.rs The structure that contains the custom properties of a given element. 7222
data.rs Per-node data used in style calculation. 20900
dom.rs Types and traits used to access the DOM from style calculation. 33363
dom_apis.rs Generic implementations of some DOM APIs so they can be shared between Servo and Gecko. 26295
driver.rs Implements traversal over the DOM tree. The traversal starts in sequential mode, and optionally parallelizes as it discovers work. 6516
encoding_support.rs Parsing stylesheets from bytes (not `&str`). 3454
error_reporting.rs Types used to report parsing errors. 18153
font_face.rs The [`@font-face`][ff] at-rule. [ff]: https://drafts.csswg.org/css-fonts/#at-font-face-rule 25572
font_metrics.rs Access to font metrics from the style system. 2146
gecko
gecko_bindings
gecko_string_cache
global_style_data.rs Global style data 7323
invalidation
lib.rs Calculate [specified][specified] and [computed values][computed] from a tree of DOM nodes and a set of stylesheets. [computed]: https://drafts.csswg.org/css-cascade/#computed [specified]: https://drafts.csswg.org/css-cascade/#specified In particular, this crate contains the definitions of supported properties, the code to parse them into specified values and calculate the computed values based on the specified values, as well as the code to serialize both specified and computed values. The main entry point is [`recalc_style_at`][recalc_style_at]. [recalc_style_at]: traversal/fn.recalc_style_at.html Major dependencies are the [cssparser][cssparser] and [selectors][selectors] crates. [cssparser]: ../cssparser/index.html [selectors]: ../selectors/index.html 8972
logical_geometry.rs Geometry in flow-relative space. 50942
macros.rs Various macro helpers. 2045
matching.rs High-level interface to CSS selector matching. 45048
media_queries
parallel.rs Implements parallel traversal over the DOM tree. This traversal is based on Rayon, and therefore its safety is largely verified by the type system. The primary trickiness and fine print for the above relates to the thread safety of the DOM nodes themselves. Accessing a DOM element concurrently on multiple threads is actually mostly "safe", since all the mutable state is protected by an AtomicRefCell, and so we'll generally panic if something goes wrong. Still, we try to to enforce our thread invariants at compile time whenever possible. As such, TNode and TElement are not Send, so ordinary style system code cannot accidentally share them with other threads. In the parallel traversal, we explicitly invoke |unsafe { SendNode::new(n) }| to put nodes in containers that may be sent to other threads. This occurs in only a handful of places and is easy to grep for. At the time of this writing, there is no other unsafe code in the parallel traversal. 7531
parser.rs The context within which CSS code is parsed. 8054
piecewise_linear.rs A piecewise linear function, following CSS linear easing 10151
properties
properties_and_values
queries
README.md servo-style 216
rule_cache.rs A cache from rule node to computed values, in order to cache reset properties. 8150
rule_collector.rs Collects a series of applicable rules for a given element. 17981
rule_tree
scoped_tls.rs Stack-scoped thread-local storage for rayon thread pools. 2961
selector_map.rs A data structure to efficiently index structs containing selectors by local name, ids and hash. 29488
selector_parser.rs The pseudo-classes and pseudo-elements supported by the style system. 7951
servo
shared_lock.rs Different objects protected by the same lock 12000
sharing
simple_buckets_map.rs 1760
str.rs String utils for attributes and similar stuff. 5282
style_adjuster.rs A struct to encapsulate all the style fixups and flags propagations a computed style needs in order for it to adhere to the CSS spec. 38151
style_resolver.rs Style resolution for a given element or pseudo-element. 24018
stylesheet_set.rs A centralized set of stylesheets for a document. 22703
stylesheets
stylist.rs Selector matching. 155611
thread_state.rs Supports dynamic assertions in about what sort of thread is running and what state it's in. 2705
traversal.rs Traversing the DOM tree; the bloom filter. 31192
traversal_flags.rs Flags that control the traversal process. We CamelCase rather than UPPER_CASING so that we can grep for the same strings across gecko and servo. 2827
use_counters
values