servo/components/style
Oriol Brufau d67bf49bd9 Implement outlines in layout-2020
This only covers the CSS2 properties: 'outline-width', 'outline-style',
'outline-color', and the shorthand 'outline'.

CSS UI 3 introduced 'outline-offset', which is left for a follow-up.

'outline-color: invert' isn't included either, but note CSS UI says that
conformant UAs may ignore the 'invert' value on platforms that do not
support color inversion of the pixels on the screen.

Tests that are now passing:
- /_mozilla/css/input_insertion_point_empty_a.html
- /_mozilla/css/outlines_simple_a.html
- /_mozilla/css/stacking_context_overflow_relative_outline_a.html
- /_mozilla/mozilla/getPropertyPriority.html
- /css/CSS2/ui/outline-color-001.xht
- /css/CSS2/ui/outline-color-002.xht
- /css/CSS2/ui/outline-color-007.xht
- /css/CSS2/ui/outline-color-008.xht
- /css/CSS2/ui/outline-color-013.xht
- /css/CSS2/ui/outline-color-018.xht
- /css/CSS2/ui/outline-color-023.xht
- /css/CSS2/ui/outline-color-024.xht
- /css/CSS2/ui/outline-color-025.xht
- /css/CSS2/ui/outline-color-031.xht
- /css/CSS2/ui/outline-color-036.xht
- /css/CSS2/ui/outline-color-041.xht
- /css/CSS2/ui/outline-color-046.xht
- /css/CSS2/ui/outline-color-047.xht
- /css/CSS2/ui/outline-color-048.xht
- /css/CSS2/ui/outline-color-049.xht
- /css/CSS2/ui/outline-color-050.xht
- /css/CSS2/ui/outline-color-051.xht
- /css/CSS2/ui/outline-color-052.xht
- /css/CSS2/ui/outline-color-053.xht
- /css/CSS2/ui/outline-color-054.xht
- /css/CSS2/ui/outline-color-058.xht
- /css/CSS2/ui/outline-color-059.xht
- /css/CSS2/ui/outline-color-061.xht
- /css/CSS2/ui/outline-color-062.xht
- /css/CSS2/ui/outline-color-069.xht
- /css/CSS2/ui/outline-color-070.xht
- /css/CSS2/ui/outline-color-071.xht
- /css/CSS2/ui/outline-color-072.xht
- /css/CSS2/ui/outline-color-073.xht
- /css/CSS2/ui/outline-color-074.xht
- /css/CSS2/ui/outline-color-075.xht
- /css/CSS2/ui/outline-color-079.xht
- /css/CSS2/ui/outline-color-081.xht
- /css/CSS2/ui/outline-color-082.xht
- /css/CSS2/ui/outline-color-089.xht
- /css/CSS2/ui/outline-color-090.xht
- /css/CSS2/ui/outline-color-091.xht
- /css/CSS2/ui/outline-color-092.xht
- /css/CSS2/ui/outline-color-093.xht
- /css/CSS2/ui/outline-color-094.xht
- /css/CSS2/ui/outline-color-095.xht
- /css/CSS2/ui/outline-color-099.xht
- /css/CSS2/ui/outline-color-101.xht
- /css/CSS2/ui/outline-color-102.xht
- /css/CSS2/ui/outline-color-109.xht
- /css/CSS2/ui/outline-color-110.xht
- /css/CSS2/ui/outline-color-111.xht
- /css/CSS2/ui/outline-color-112.xht
- /css/CSS2/ui/outline-color-113.xht
- /css/CSS2/ui/outline-color-114.xht
- /css/CSS2/ui/outline-color-115.xht
- /css/CSS2/ui/outline-color-119.xht
- /css/CSS2/ui/outline-color-121.xht
- /css/CSS2/ui/outline-color-122.xht
- /css/CSS2/ui/outline-color-130.xht
- /css/css-ui/outline-001.html
- /css/css-ui/outline-002.html
- /css/css-ui/outline-004.html
- /css/css-ui/outline-007.html
- /css/css-ui/outline-008.html
- /css/css-ui/outline-016.html
- /css/css-ui/outline-018.html
- /css/css-ui/outline-021.html
- /css/css-ui/outline-022.html
- /css/css-ui/outline-color-001.html
- /css/css-ui/outline-style-011.html
- /css/css-ui/outline-style-012.html
- /css/css-ui/outline-style-013.html
- /css/css-ui/outline-style-014.html
- /css/css-ui/parsing/outline-color-computed.html
- /css/css-ui/parsing/outline-color-valid-mandatory.html
- /css/css-ui/parsing/outline-shorthand.html
- /css/css-ui/parsing/outline-style-computed.html
- /css/css-ui/parsing/outline-style-valid.html
- /css/css-ui/parsing/outline-width-valid.html
- /css/css-ui/translucent-outline.html

Also improvements in:
- /_mozilla/mozilla/calc.html
- /css/css-ui/animation/outline-color-interpolation.html
- /css/css-ui/animation/outline-width-interpolation.html
- /css/css-ui/inheritance.html
- /css/css-ui/outline-017.html
- /css/css-ui/parsing/outline-valid-mandatory.html
- /css/css-ui/parsing/outline-width-computed.html
- /css/cssom/cssom-setProperty-shorthand.html
- /css/cssom/getComputedStyle-resolved-colors.html
- /css/cssom/serialize-values.html
- /css/cssom/shorthand-values.html

New failures:
- /css/CSS2/ui/outline-applies-to-005.xht
- /css/CSS2/ui/outline-applies-to-006.xht
- /css/CSS2/ui/outline-color-applies-to-005.xht
- /css/CSS2/ui/outline-color-applies-to-006.xht
- /css/CSS2/ui/outline-style-applies-to-005.xht
- /css/CSS2/ui/outline-style-applies-to-006.xht
- /css/CSS2/ui/outline-width-applies-to-005.xht
- /css/CSS2/ui/outline-width-applies-to-006.xht
  Al of these fail because tables are not implemented yet.
- /css/css-ui/outline-offset.html
  Fails because outline-offset is not implemented yet.
- /css/css-ui/outline-with-padding-001.html
  Fails because the outline doesn't include overflowing contents.
  I don't think this is required by the spec, Firefox fails too.
2023-05-02 02:37:10 +02:00
..
counter_style Updated cssparser dependency to 0.29. 2021-11-18 16:16:46 +01:00
gecko Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
gecko_bindings style: Inline nsTArray::deref. 2021-02-26 16:44:05 +01:00
gecko_string_cache Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
invalidation Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
media_queries style: Move Ratio into independent files. 2021-02-26 16:44:05 +01:00
properties Implement outlines in layout-2020 2023-05-02 02:37:10 +02:00
rule_tree style: Export a size to fix a test that was trying to use a now-private type. 2020-04-23 05:07:02 +02:00
servo Ensure reflow damage is calculated when hypothetical box changes. 2022-03-14 12:20:46 -04:00
sharing Upgrade to uluru 2 2021-07-15 18:28:12 +02:00
stylesheets Updated cssparser dependency to 0.29. 2021-11-18 16:16:46 +01:00
use_counters style: Support css use counters for unimplemented properties. 2019-09-12 22:34:16 +02:00
values Bump euclid to 0.22 2023-01-26 08:59:21 +01:00
animation.rs animations: Don't convert linear easing to a bezier 2020-06-24 17:19:25 +02:00
applicable_declarations.rs style: Rustfmt recent changes. 2019-11-30 20:45:07 +01:00
attr.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
author_styles.rs style: Remove support for XBL resources. 2019-05-07 12:55:29 +02:00
bezier.rs Update MPL license to https (part 4) 2018-11-19 14:47:27 +01:00
bloom.rs style: Update smallvec to 1.0. 2019-12-16 14:23:56 +01:00
build.rs Add build github actions workflows for mac/windows/linux. 2021-02-26 04:20:22 -05:00
build_gecko.rs Do not use deprecated bindgen methods 2021-04-17 07:11:25 +02:00
Cargo.toml */Cargo.toml: use the shmem feature for the dependency on the selectors cratre 2023-02-14 13:05:59 -06:00
context.rs Upgrade to uluru 2 2021-07-15 18:28:12 +02:00
custom_properties.rs Update nightly rustc. 2021-11-01 08:46:18 -04:00
data.rs Remove unused code from selector and style crates 2019-06-07 15:14:21 +02:00
dom.rs style: Make next_in_preorder generate slightly better code. 2021-02-26 16:44:05 +01:00
dom_apis.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
driver.rs Implement concept of dirty root 2020-05-19 16:26:36 +02:00
element_state.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
encoding_support.rs style: Remove some unused extern crate declarations now that style is in rust 2018. 2020-06-18 23:51:18 +02:00
error_reporting.rs Make use of RefCell::try_borrow_unguarded 2019-04-12 19:02:07 +02:00
font_face.rs Updated cssparser dependency to 0.29. 2021-11-18 16:16:46 +01:00
font_metrics.rs Rustfmt recent changes. 2019-12-16 14:23:56 +01:00
global_style_data.rs feat: shorten thread names 2021-07-19 00:57:48 +09:00
hash.rs Update MPL license to https (part 4) 2018-11-19 14:47:27 +01:00
lib.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
logical_geometry.rs Rustfmt recent changes. 2019-12-16 14:23:56 +01:00
macros.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
matching.rs style: Use Option::as_deref() in style code. 2021-02-26 16:44:05 +01:00
parallel.rs Update arrayvec. 2022-04-01 01:14:13 -04:00
parser.rs Rustfmt. 2021-02-26 16:44:05 +01:00
README.md Update link 2020-04-28 09:09:54 -07:00
rule_cache.rs style: Undo minor debugging change. 2019-11-30 20:45:07 +01:00
rule_collector.rs style: Avoid some allocations in selector serialization. 2021-02-26 16:44:05 +01:00
scoped_tls.rs Replace ScopedTLS::unsafe_get by ScopedTLS::into_slots 2020-04-05 01:20:39 +02:00
selector_map.rs style: Make stylesheet invalidation faster. 2021-02-26 16:44:05 +01:00
selector_parser.rs Rustfmt. 2021-02-26 16:44:05 +01:00
shared_lock.rs style: build / rebase fixes. 2020-06-18 23:51:17 +02:00
str.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
style_adjuster.rs Miscellaneous build / tidy fixes. 2021-02-26 17:53:55 +01:00
style_resolver.rs Rustfmt. 2021-02-26 16:44:05 +01:00
stylesheet_set.rs Rustfmt. 2021-02-26 16:44:05 +01:00
stylist.rs style: Minor cleanup of our @page rule setup. 2021-02-26 16:44:05 +01:00
thread_state.rs Update MPL license to https (part 4) 2018-11-19 14:47:27 +01:00
traversal.rs style: Use Option::as_deref() in style code. 2021-02-26 16:44:05 +01:00
traversal_flags.rs style: Cleanup unused style traversal flags. 2019-04-12 12:20:07 +02:00

servo-style

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