This should fix the following two "expected to fail" tests:
- getComputedStyle(elem) for url() listStyleImage uses the resolved URL
and elem.style uses the original URL
- getComputedStyle(elem) for url() listStyle uses the resolved URL
and elem.style uses the original URL
This more concrete wrapper type can write a prefix the very first time something
is written to it. This allows removing plenty of useless monomorphisations caused
by the former W/SequenceWriter<W> pair of types.
Improve LRU cache behavior in SelectorFlagsMap
This code used to insert duplicate entries to avoid expensive shuffling of the LRU cache. With uluru this is no longer necessary, because reordering the cache is cheap.
Now it uses the `LRUCache::find` method from uluru 0.2 to update entries in-place. This should increase cache hits by eliminating unnecessary evictions.
This PR also updates `arrayvec` because `uluru` depends on it, and `immeta` because it depends on `arrayvec`.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes do not require tests because they don't change behavior
<!-- 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/19512)
<!-- Reviewable:end -->
Replace rustc_serialize with serde_json in style_tests
#12410 Stop using rustc_serialize
Replaced rustc_serialize with serde_json in
- [ ] ~~components/config/Cargo.toml~~
- [ ] ~~components/config/lib.rs~~
- [ ] ~~components/config/prefs.rs~~
- [ ] ~~components/script_traits/Cargo.toml~~
- [ ] ~~components/script_traits/lib.rs~~
- [ ] ~~components/script_traits/webdriver_msg.rs~~
- [ ] ~~components/webdriver_server/Cargo.toml~~
- [ ] ~~components/webdriver_server/lib.rs~~
- [X] tests/unit/style/Cargo.toml
- [X] test/unit/style/lib.rs
- [X] test/unit/style/properties/scaffolding.rs
PR checks:
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [X] These changes fix (partially) #12410.
- [X] These changes do not require tests because functionality was not changed or a test itself was edited
<!-- 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/18710)
<!-- Reviewable:end -->
This introduces DeclarationSource, to see if a declaration has been parsed or
set from CSSOM in a declaration block.
The Servo_DeclarationBlock_SetFoo and similar callers are changed to
DeclarationSource::CssOm because their semantics are more CSSOM-y, but it
shouldn't matter since they should all be checked before hand with
Servo_DeclarationBlock_PropertyIsSet.
… rather than the start location of the current construct.
This likely places the error just *after* of the unexpected token
whereas before would be best, but that’s likely a much bigger change.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1378861
Serializing childrenonly
Rebased from #17896.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#14975 (github issue number if applicable).
- [x] 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/18747)
<!-- Reviewable:end -->
I'm about to introduce more state here to implement optimizations for custom
property cascading, so this abstraction is useful to encapsulate that state.