Commit graph

17013 commits

Author SHA1 Message Date
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
bors-servo
ec00c660f0 Auto merge of #18861 - upsuper:diagnose-fix, r=Manishearth
Some fixes to diagnostic hashmap

<!-- 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/18861)
<!-- Reviewable:end -->
2017-10-13 02:11:55 -05:00
Xidorn Quan
cb2772b46c Correct the position and record count of broken canary 2017-10-13 15:39:07 +11:00
Xidorn Quan
b547e96b44 Write poison to canary when removing item from diagnostic hashmap 2017-10-13 15:19:55 +11:00
Xidorn Quan
1251537459 Rewrite cycle removal algorithm of custom properties and integrate it with substitution 2017-10-13 10:55:24 +11:00
Alan Jeffrey
70ce4689e0 Random pipeline closure is less likely to kill pending pipelines. 2017-10-12 11:50:48 -05:00
bors-servo
bc18ef7861 Auto merge of #18850 - emilio:bindgenup, r=jdm
Update bindgen.

This includes a clang-sys upgrade that removes crashes in linux32, and nothing
else.

<!-- 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/18850)
<!-- Reviewable:end -->
2017-10-12 09:06:22 -05:00
Emilio Cobos Álvarez
8c3e742cbf
Update bindgen.
This includes a clang-sys upgrade that removes crashes in linux32, and nothing
else.
2017-10-12 14:43:10 +02:00
bors-servo
55bf65021d Auto merge of #18848 - emilio:unship-but-a-bit-more-slowly, r=xidorn
stylo: Remove :-moz-system-metric pseudo-class.

Bug: 1405311
Reviewed-by: xidorn
MozReview-Commit-ID: CIF64dG1F2k

<!-- 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/18848)
<!-- Reviewable:end -->
2017-10-12 07:05:42 -05:00
Emilio Cobos Álvarez
3e9bfdd72e
stylo: Remove :-moz-system-metric pseudo-class.
Bug: 1405311
Reviewed-by: xidorn
MozReview-Commit-ID: CIF64dG1F2k
2017-10-12 14:04:32 +02:00
bors-servo
fc4de5adf5 Auto merge of #18839 - servo:stabler, r=nox
Remove some usage of unstable features

`Box::new(x)` seems to compile to exactly the same assembly as `box x` in release mode:
https://play.rust-lang.org/?gist=55ec5dd02c22fa799375d6e2e1a6e970&version=nightly

<!-- 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/18839)
<!-- Reviewable:end -->
2017-10-12 05:18:00 -05:00
Simon Sapin
0dae5c8d1f Remove unused feature flag 2017-10-12 12:10:57 +02:00
Simon Sapin
aa5761a5fb Remove usage of unstable box syntax, except in the script crate
… because there’s a lot of it,
and script still uses any other unstable features anyway.
2017-10-12 12:10:56 +02:00
Simon Sapin
796a8dc618 Remove usage of unstable feature try_from 2017-10-12 12:10:55 +02:00
bors-servo
5682eeff48 Auto merge of #18843 - upsuper:author-text-shadow, r=heycam
Remove text-shadow handling from HasAuthorSpecifiedRules

This is the Servo side change of [bug 1363088](https://bugzilla.mozilla.org/show_bug.cgi?id=1363088).

<!-- 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/18843)
<!-- Reviewable:end -->
2017-10-12 03:12:26 -05:00
bors-servo
82a013ae07 Auto merge of #18844 - jryans:stylo-visited-reparent-cascade, r=emilio
Limit visited cascade for reparenting

The specialized cascade flow in `stylist::compute_style_with_inputs` (used with
reparenting) currently computes all properties for visited styles, but we only
need visited-dependent properties.

This adds the cascade flag to reduce the work to visited-dependent properties
only, like we do for the regular cascade flow.

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

<!-- 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/18844)
<!-- Reviewable:end -->
2017-10-12 01:04:57 -05:00
J. Ryan Stinnett
0eb7d65e73 Limit visited cascade for reparenting
The specialized cascade flow in `stylist::compute_style_with_inputs` (used with
reparenting) currently computes all properties for visited styles, but we only
need visited-dependent properties.

This adds the cascade flag to reduce the work to visited-dependent properties
only, like we do for the regular cascade flow.

MozReview-Commit-ID: FGCj6GPnQOB
2017-10-11 23:50:55 -05:00
Xidorn Quan
96d0529be5 Remove text-shadow handling from HasAuthorSpecifiedRules 2017-10-12 15:20:47 +11:00
bors-servo
99e15f0f03 Auto merge of #18803 - heycam:more-custom-prop-opts, r=emilio
style: more custom properties optimizations

These help slightly with https://bugzilla.mozilla.org/show_bug.cgi?id=1405411.

<!-- 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/18803)
<!-- Reviewable:end -->
2017-10-11 22:51:51 -05:00
Cameron McCormack
c05e45fdd1 style: Skip custom properties comparison if other inherited properties changed. 2017-10-12 10:44:46 +08:00
Cameron McCormack
51c1fb681d style: Avoid cloning inherited CustomPropertiesMap when cascading properties with the same value. 2017-10-12 10:33:34 +08:00
J. Ryan Stinnett
cedc17550c Clear visited rules for text inheritance
There are two key steps when resolving text styles with `::first-line`:

1. `ResolveStyleForText` computes the initial style of the text via
   `Servo_ComputedValues_Inherit`
2. `ReparentStyleContext` is called to update style data when the first line
   of text is moved to be a child of the `::first-line` frame

Before this patch, `Servo_ComputedValues_Inherit` would clear out unvisited
rules, but visited styles (with rules inside) were cloned as-is, meaning that
step 1 might leave the text node with a style that has:

* Unvisited rules: None
* Visited rules: Some

When we later go to step 2 and re-parent onto the `::first-line` styles, we try
to cascade with these leftover visited rules.  This causes any `::first-line`
styles from our parent to be overridden by these rules which are no longer quite
right for the new frame tree.

In this patch, we resolve this by changing `StyleBuilder::for_inheritance`
(which is used by step 1's `Servo_ComputedValues_Inherit`) to also clear out
visited rules, so that we use the same logic for both unvisited and visited text
styles when reparenting onto the `::first-line` frame.

MozReview-Commit-ID: 3sgc4eGHBXs
2017-10-11 18:45:45 -05:00
bors-servo
882b22b606 Auto merge of #18829 - bholley:verify_in_drop, r=Manishearth
Verify in DiagnosticHashMap::drop

This will let us reason better about the drop_in_place crashes.

<!-- 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/18829)
<!-- Reviewable:end -->
2017-10-11 13:53:01 -05:00
Simon Sapin
4ee8f56b9c Remove usage of unstable feature ascii_ctypes 2017-10-11 20:21:07 +02:00
Simon Sapin
cbcc7d0802 Remove usage of unstable feature iterator_step_by 2017-10-11 20:17:16 +02:00
Simon Sapin
a38df68e8a Remove usage of unstable range_contains feature 2017-10-11 20:13:40 +02:00
Bobby Holley
c9b5ffb586 Verify in DiagnosticHashMap::drop. 2017-10-11 10:24:00 -07:00
bors-servo
105c5d2a06 Auto merge of #18826 - emilio:invalidation-xbl-stuff, r=heycam
style: Fix invalidation collection for XBL when quirks modes don't match.

<!-- 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/18826)
<!-- Reviewable:end -->
2017-10-11 10:59:05 -05:00
bors-servo
528d0fb409 Auto merge of #18825 - servo:urls, r=emilio
Fix a bunch of URL-reflecting IDL attributes

<!-- 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/18825)
<!-- Reviewable:end -->
2017-10-11 08:45:44 -05:00
Anthony Ramine
71b015173f Fix the form action IDL attributes
The returned string, if the attribute is present and non-empty,
should be a URL resolved against the element's document's base URL.
2017-10-11 13:56:10 +02:00
Anthony Ramine
605c679fee Fix URL attributes
URL attributes should always use AttrValue::Url, and the input should be
resolved against the document's base URL at setting time always.
2017-10-11 13:56:07 +02:00
Cameron McCormack
7e31d069be style: Support more selectors in the style sheet invalidator.
In addition to being able to invalidate just based on local name, this
also adds support for invalidating based on selectors with no ancestor
combinator in them (resulting in a RESTYLE_SELF for those elements that
match).
2017-10-11 19:02:41 +08:00
Emilio Cobos Álvarez
5723cf7d13
style: Tweak the quirks mode while collecting invalidations in XBL stuff. 2017-10-11 11:12:58 +02:00
Emilio Cobos Álvarez
bb6ff9575d
style: Store the quirks mode directly in InvalidationCollector. 2017-10-11 11:10:39 +02:00
bors-servo
b1c7a2fa6d Auto merge of #18793 - heycam:ptr-eq, r=emilio
servo_arc: Try pointer equality test first when comparing two Arcs.

This doesn't actually help https://bugzilla.mozilla.org/show_bug.cgi?id=1405411 but seems like something we should do.

<!-- 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/18793)
<!-- Reviewable:end -->
2017-10-10 20:24:48 -05:00
Cameron McCormack
9c738711bc servo_arc: Make Arc do a pointer equality check in eq and ne first. 2017-10-11 09:24:03 +08:00
Xidorn Quan
0c40ae70ed Support pseudo-element properly in HasAuthorSpecifiedRules. 2017-10-11 10:29:32 +11:00
bors-servo
be5839fae6 Auto merge of #18822 - bholley:more_hashmap_diagnostics, r=Manishearth
More hashmap diagnostics

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

<!-- 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/18822)
<!-- Reviewable:end -->
2017-10-10 16:17:20 -05:00
Bobby Holley
4b64390b81 Stuff HashMap journal into a string and verify invariants in a few more places.
The RegisterAppMemory approach isn't working for some reason.

MozReview-Commit-ID: GjGaq6GALI5
2017-10-10 14:16:56 -07:00
bors-servo
235ce65d7c Auto merge of #18820 - asajeffrey:update-swapper, r=wafflespeanut
Updated swapper to version 0.1

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

Update swapper to v0.1, which removes the skeptic dependency.

---
<!-- 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 do not require tests because updating dependencies

<!-- 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/18820)
<!-- Reviewable:end -->
2017-10-10 15:10:01 -05:00
bors-servo
b1926b4656 Auto merge of #18807 - emilio:ex-calc, r=jdm
style: Fix ex computation with more than one operand.

<!-- 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/18807)
<!-- Reviewable:end -->
2017-10-10 14:13:29 -05:00
Alan Jeffrey
3e21e050f8 Updated swapper to version 0.1 2017-10-10 13:32:56 -05:00
bors-servo
c79a54dbd9 Auto merge of #18808 - servo:error-location_, r=emilio
Use the current parser location for CSS error

… 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

<!-- 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/18808)
<!-- Reviewable:end -->
2017-10-10 12:31:24 -05:00
Emilio Cobos Álvarez
90ee40f43f
style: Fix ex computation with more than one operand. 2017-10-10 18:41:23 +02:00