Commit graph

17569 commits

Author SHA1 Message Date
bors-servo
1e351ef8c4 Auto merge of #18891 - heycam:color-refactor, r=upsuper
style: add FFI functions for color parsing

Servo side of https://bugzilla.mozilla.org/show_bug.cgi?id=1408312, reviewed there by Xidorn.

<!-- 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/18891)
<!-- Reviewable:end -->
2017-10-16 04:49:33 -05:00
bors-servo
a759ded65d Auto merge of #18884 - emilio:invalidator-ltr, r=heycam
style: Use left-to-right indices in the invalidator.

This will make easier to create external invalidations that don't point to a combinator,
and also makes reasoning about the invalidator a bit easier.

<!-- 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/18884)
<!-- Reviewable:end -->
2017-10-16 03:41:54 -05:00
Cameron McCormack
1db1c7f544 style: Refactor specified::Color parsing/computation functions.
So they can be called without a context.
2017-10-16 15:56:22 +08:00
bors-servo
9b82d08dc5 Auto merge of #18879 - emilio:computed-value-flags-inherited, r=heycam
style: Not all computed value flags are really inherited.

This fixes the fishiness I noticed in:

  https://bugzilla.mozilla.org/show_bug.cgi?id=1407832

<!-- 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/18879)
<!-- Reviewable:end -->
2017-10-16 02:36:22 -05:00
Emilio Cobos Álvarez
f1cc225e97
style: Use left-to-right indices in the invalidator.
This will make easier to create external invalidations, and also makes reasoning
about the invalidator a bit easier.
2017-10-16 08:54:00 +02:00
Glenn Watson
4469f39f3f Update WR (details below):
* Add support for clip masks on text runs.
* Fix atomic ordering of items with multiple shadows.
* Update to bincode + ipc-channel with optimizations.
* Fix some plane splitting precision errors.
* Improve the anti-aliasing quality significantly.
* Add internal ClipChain support.
* Fix diacritic glyphs on Linux.
2017-10-16 16:33:24 +10:00
bors-servo
adb45eb727 Auto merge of #18888 - tigercosmos:xml, r=jdm
fix  #18776: use XML fragment serialization for innerHTML in XML documents

<!-- Please describe your changes on the following line: -->
I am not sure whether my solution is in the right way.
@jdm Can you give some advises?

---
<!-- 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
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #18776 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

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

<!-- 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/18888)
<!-- Reviewable:end -->
2017-10-16 01:27:43 -05:00
tigercosmos
c77b61193f use XML fragment serialization for outerHTML in XML documents 2017-10-16 13:28:23 +08:00
tigercosmos
06759fd0fd use XML fragment serialization for innerHTML in XML documents 2017-10-16 00:38:21 +08:00
bors-servo
7e8def9c08 Auto merge of #18886 - servo:urls, r=SimonSapin
Change AttrValue::Url to AttrValue::ResolvedUrl

Things make more sense like this.

<!-- 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/18886)
<!-- Reviewable:end -->
2017-10-15 04:53:29 -05:00
Anthony Ramine
c7b1d3054f Change AttrValue::Url to AttrValue::ResolvedUrl
There is actually only one attribute that can use that, the one for
<body background>.
2017-10-15 11:03:20 +02:00
bors-servo
a200fb4b9d Auto merge of #18876 - emilio:die-localmatchingcontext-die, r=SimonSapin
style: Do not expose LocalMatchingContext.

This type is a lot of complexity related to a very specific thing such as the
hover and active quirk.

Instead of that, move `nesting_level` to `MatchingContext`, and simplify all
this computing whether the quirk applies upfront, for each complex selector we
test.

This is less error-prone, and also allows simplifying more stuff in a bit.

Also, this makes the hover and active quirk work in Servo with no extra effort.

<!-- 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/18876)
<!-- Reviewable:end -->
2017-10-15 02:21:47 -05:00
Emilio Cobos Álvarez
dcb8c2fdc7
style: Properly use nesting_level in the invalidation code. 2017-10-14 17:03:36 +02:00
Emilio Cobos Álvarez
11485edc9e
style: Hide LocalMatchingContext.
This type is a lot of complexity related to a very specific thing such as the
hover and active quirk.

Instead of that, move `nesting_level` to `MatchingContext`, and simplify all
this computing whether the quirk applies upfront, for each complex selector we
test.

This is less error-prone, and also allows simplifying more stuff in a bit.
2017-10-14 17:03:35 +02:00
Emilio Cobos Álvarez
48c85151dc
selectors: Remove useless assertion.
The code below asserts the same in a more fine-grained way.
2017-10-14 17:03:34 +02:00
Emilio Cobos Álvarez
bcfe523c99
selectors: Reformat some signatures in selectors::matching. 2017-10-14 17:03:33 +02:00
Emilio Cobos Álvarez
6a5576085c
style: Reformat Rule::new. 2017-10-14 17:03:32 +02:00
bors-servo
de324f8b18 Auto merge of #18880 - emilio:fixup-parse-hack, r=emilio
style: Fixup the hack added in #18867.

The declaration can indeed have the same id if it contains variables, or is a
CSS keyword value.

This was making a WPT test fail, so this is tested, though Servo's WPT import
didn't catch this for some reason.

<!-- 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/18880)
<!-- Reviewable:end -->
2017-10-14 09:49:45 -05:00
Emilio Cobos Álvarez
6fbf006680
style: Fixup the hack added in #18867.
The declaration can indeed have the same id if it contains variables, or is a
CSS keyword value.

This was making a WPT test fail, so this is tested, though Servo's WPT import
didn't catch this for some reason.
2017-10-14 15:28:10 +02:00
bors-servo
8b6207c0d6 Auto merge of #18877 - emilio:closest-why, r=nox
stylo: Dumb down the return value of SelectorList_Closest.

So it builds with rust 1.21.

See: https://bugzilla.mozilla.org/show_bug.cgi?id=1408622

<!-- 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/18877)
<!-- Reviewable:end -->
2017-10-14 08:13:59 -05:00
Emilio Cobos Álvarez
b73b5b581b
style: Not all computed value flags are really inherited.
This fixes the fishiness I noticed in:

  https://bugzilla.mozilla.org/show_bug.cgi?id=1407832
2017-10-14 14:48:27 +02:00
Emilio Cobos Álvarez
e9a26f3a89
style: Update bindings. 2017-10-14 14:04:53 +02:00
bors-servo
240c05f13b Auto merge of #18838 - svanburen:remove_cssText, r=emilio
Remove cssText from CSSStyleValue

Removed from associated .rs and .webidl

<!-- Please describe your changes on the following line: -->
Not much more to add - let me know if it needs additional changes.

---
<!-- 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
- [X] These changes fix #17379 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they remove a property that previously had no tests associated with it.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

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

<!-- 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/18838)
<!-- Reviewable:end -->
2017-10-14 06:58:29 -05:00
bors-servo
2be76c5fd7 Auto merge of #18867 - emilio:parse-hack, r=heycam
style: Dishonor display: -moz-box if -webkit-box was specified before

This is a compatibility hack that Gecko supports that is apparently important for android.

I want to remove it, but let's see...

See https://bugzilla.mozilla.org/show_bug.cgi?id=1407701 for reference.

<!-- 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/18867)
<!-- Reviewable:end -->
2017-10-14 05:27:51 -05:00
Emilio Cobos Álvarez
6d694a4bcd
style: Dishonor display: -moz-box if -webkit-box was specified before.
Bug: 1407701
2017-10-14 11:31:01 +02:00
Emilio Cobos Álvarez
25c303ee62
style: Be clearer about whether a declaration comes from parsing or not.
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.
2017-10-14 11:30:59 +02:00
bors-servo
86a5135ffa Auto merge of #18870 - servo:cast, r=KiChjang
Use pointer casts instead of tramsutes to raw::TraitObject

Casting `*const T` to `*const U` with `U: Sized` is allowed even if `T: ?Sized`. This safely extracts the data pointer out of a trait object, without relying on the memory representation of trait objects.

<!-- 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/18870)
<!-- Reviewable:end -->
2017-10-13 21:43:09 -05:00
Simon Sapin
b505c9e948 Introduce an unsafe HasBaseFlow trait for base()/base_mut() casts. 2017-10-14 00:03:57 +02:00
bors-servo
4592e6e53a Auto merge of #18810 - asajeffrey:constellation-document-blocking, r=cbrewster
Document the can-block-on relationship for servo.

<!-- Please describe your changes on the following line: -->

This PR adds some documentation comments describing the can-block-on relation that is used to ensure deadlock-freedom.

---
<!-- 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
- [X] These changes fix #14704
- [X] These changes do not require tests because it's documentation

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

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

<!-- 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/18810)
<!-- Reviewable:end -->
2017-10-13 15:39:20 -05:00
Alan Jeffrey
01e17cf437 Document the can-block-on relationship for servo. 2017-10-13 15:00:16 -05:00
Simon Sapin
4c5d6fd834 Remove an unused import, fix a warning. 2017-10-13 21:57:26 +02:00
Simon Sapin
e7c53d4ca2 Use pointer casts instead of tramsutes to raw::TraitObject
Casting `*const T` to `*const U` with `U: Sized` is allowed even if `T: ?Sized`.
This safely extracts the data pointer out of a trait object,
without relying on the memory representation of trait objects.
2017-10-13 21:55:11 +02:00
bors-servo
db29af160c Auto merge of #18864 - emilio:reformat, r=jdm
style: Reformat a few signatures to follow a consistent style.

<!-- 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/18864)
<!-- Reviewable:end -->
2017-10-13 14:11:02 -05:00
bors-servo
78aaa85aec Auto merge of #18854 - servo:servo-unstable-feature, r=nox
Make optional the usage of some unstable features

With `--no-default-features --features default-except-unstable`, more crates can now be compiled on stable Rust. This will help integrate them in rustc’s regression testing and compiler performance benchmarking.

<!-- 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/18854)
<!-- Reviewable:end -->
2017-10-13 12:26:39 -05:00
Emilio Cobos Álvarez
f64f8b8be2
style: Share code for Element::Closest. 2017-10-13 17:21:31 +02:00
Emilio Cobos Álvarez
9e6c49d479
style: Share code for Element::Matches. 2017-10-13 17:21:26 +02:00
Emilio Cobos Álvarez
77f115b467
stylo: Remove unused function. 2017-10-13 17:01:36 +02:00
Emilio Cobos Álvarez
09d3a11c86
style: Reformat a couple signatures.
MozReview-Commit-ID: 7Wdvj7i8ClR
2017-10-13 17:01:31 +02:00
Emilio Cobos Álvarez
e447f819a2
style: Make InvalidationProcessor methods be &mut self.
This would allow querySelector / querySelectorAll to mutate the list of matched
nodes as it sees fit.
2017-10-13 12:17:02 +02:00
Emilio Cobos Álvarez
9034e6a732
style: Add a way to skip the "invalidation on eager pseudo invalidates self" bit. 2017-10-13 12:17:02 +02:00
Emilio Cobos Álvarez
ecdb10ef5c
Be more precise in should_process_descendants. 2017-10-13 12:17:02 +02:00
Emilio Cobos Álvarez
9e61c1962b
style: Unify invalidated_child with invalidated_descendants.
I think invalidated_descendants was buggy, and this fixes it.
2017-10-13 12:17:01 +02:00
Emilio Cobos Álvarez
557353c1f6
style: Move the bounds up in InvalidationProcessor. 2017-10-13 12:17:00 +02:00
Emilio Cobos Álvarez
a5e2f2c76c
style: Isolate all the restyling related logic in the invalidator in an InvalidationProcessor trait.
Ditto, no change in behavior.
2017-10-13 12:17:00 +02:00
Emilio Cobos Álvarez
b9b3e592dd
style: Split the invalidation collection from the invalidator step.
This is the first step in reusing the invalidation machinery for other stuff,
potentially including QuerySelector / QuerySelectorAll.
2017-10-13 12:16:59 +02:00
Simon Sapin
11bd81e115 Remove usage of unstable feature box_patterns 2017-10-13 11:11:08 +02:00
Simon Sapin
e13ae77daf Remove usage of unstable feature "raw" 2017-10-13 11:11:07 +02:00
Simon Sapin
4727b92754 Remove usage of unstable feature conservative_impl_trait in layout 2017-10-13 11:11:06 +02:00
Simon Sapin
4594b40238 Use wrappers in the nonzero crate so users don’t need unstable features 2017-10-13 11:11:05 +02:00
Simon Sapin
45fd384a91 Make use of impl trait in constellation optional 2017-10-13 11:11:03 +02:00