mirror of
https://github.com/servo/servo.git
synced 2025-07-14 19:03:40 +01:00
possible shorthands matches the linked spec. Previously substep 5 attempted to serialize the complete shorthand declaration and substep 6 skipped to the next shorthand only if the current shorthand was not serialized, but this did not catch empty serializations. The spec on the other hand specifically says that the *value* should be evaluated first and if the value is empty substep 6 should skip to the next shorthand - which is what happens now. To do this required some refactoring which mostly simplifies the code. Specifically: - append_declaration_value was refactored so that importance is not required as a arg (by moving it to the end of append_serialization) and is_overflow_with_name was removed as an arg also (initially I refactored it elsewhere, but it turns out it's no longer required at all - more below). With these changes, append_declaration_value can be used within the algorithm for to_css to obtain just the value for substep 5. - Substeps 7 and 8 of the algorithm become explicit (they were implicit before) by passing the value, shorthand and importance to append_serialization. - serialize_shorthand_to_buffer is no longer required (as the algorithm serializes the value first instead, as per the spec. A surprising result of this was that I could also remove a lot of code handling the special case of the overflow properties serialization. This is because the overflow's LonghandToCss implementation of to_css_declared already does the right thing according to the spec - it writes the single value if both overflow-x and -y are equal, and writes nothing otherwise - so that the algorithm now skips that shorthand instead rendering the longhands. |
||
---|---|---|
.. | ||
binding_tools | ||
gecko | ||
gecko_bindings | ||
gecko_string_cache | ||
properties | ||
rule_tree | ||
servo | ||
values | ||
animation.rs | ||
attr.rs | ||
bezier.rs | ||
bloom.rs | ||
build.rs | ||
build_gecko.rs | ||
cache.rs | ||
Cargo.toml | ||
cascade_info.rs | ||
context.rs | ||
custom_properties.rs | ||
data.rs | ||
dom.rs | ||
element_state.rs | ||
error_reporting.rs | ||
font_face.rs | ||
font_metrics.rs | ||
keyframes.rs | ||
lib.rs | ||
logical_geometry.rs | ||
matching.rs | ||
media_queries.rs | ||
owning_handle.rs | ||
parallel.rs | ||
parser.rs | ||
README.md | ||
restyle_hints.rs | ||
scoped_tls.rs | ||
selector_parser.rs | ||
sequential.rs | ||
sink.rs | ||
str.rs | ||
stylesheets.rs | ||
stylist.rs | ||
supports.rs | ||
thread_state.rs | ||
timer.rs | ||
traversal.rs | ||
viewport.rs |