Commit Graph

59 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
fe2457274c servo: Merge #18884 - style: Use left-to-right indices in the invalidator (from emilio:invalidator-ltr); r=heycam
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.

Source-Repo: https://github.com/servo/servo
Source-Revision: a759ded65d965b54c535c74d460f60a782e51487
2017-10-16 03:41:54 -05:00
Simon Sapin
a917619a4a servo: Merge #18808 - Use the current parser location for CSS error (from servo:error-location_); r=emilio
… 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

Source-Repo: https://github.com/servo/servo
Source-Revision: c79a54dbd9d3a590f5fd8191b8e57a0b9d1d0fdb
2017-10-10 12:31:24 -05:00
Xidorn Quan
591cdef9ec servo: Merge #18790 - Support :scope pseudo-class (from upsuper:scope); r=emilio
This fixes [bug 1406817](https://bugzilla.mozilla.org/show_bug.cgi?id=1406817).

Source-Repo: https://github.com/servo/servo
Source-Revision: bbb2a3cde9f4c7fc9debd5784fce2b07966101ff
2017-10-09 23:04:15 -05:00
Nicholas Nethercote
32af6cf8e2 servo: Merge #18452 - Overhaul MallocSizeOf and related things (from nnethercote:bug-1398737); r=jdm
This patch makes the MallocSizeOf stuff in Stylo work more like the HeapSizeOf
stuff already in Servo, except better. In particular, it adds deriving support
for MallocSizeOf, which will make it easier to improve coverage.

The patch does the following.

- Combines servo/components/style/stylesheets/memory.rs and the heapsize crate
  into a new crate, malloc_size_of.

- Forks the heapsize_derive crate, calling it malloc_size_of, so that
  MallocSizeOf can be derived.

- Both the new crates have MIT/Apache licenses, like heapsize, in case they are
  incorporated into heapsize in the future.

- Renames the methods within MallocSizeOf and the related traits so they are
  more concise.

- Removes MallocSizeOfWithGuard.

- Adds `derive(MallocSizeOf)` to a lot of types, in some cases replacing an
  equivalent or almost-equivalent hand-written implementation.

- Adds stuff so that Rc/Arc can be handled properly.

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

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because tested on Gecko side.

<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 7f4cb1861b172423781a369b2decca6c65d60546
2017-09-11 22:11:25 -05:00
Nicholas Nethercote
115a19bbcc servo: Merge #18400 - Measure selectors (from nnethercote:measure-selectors); r=heycam
This patch adds measurement of Selectors within StyleRule. This requires
exposing the pointer within ThinArc.

The patch also adds measurement of the several CssRule variants, in order to
measure nested CssRules (and PropertyDeclarationBlocks) within them:
DocumentRule, MediaRule, PageRule, SupportsRule.

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

r? @heycam

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because testing is in Gecko.

<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 54cd23adb8e9c10f5b5ef2c6f19b5d1e0351a1c5
2017-09-07 01:35:02 -05:00
Josh Matthews
1ffcd61026 servo: Merge #18395 - Use a 1-element smallvec for selector lists (from jdm:selector-smallvec); r=SimonSapin
Profiling shows this reducing parsing time by a few milliseconds on the tp6 facebook case. The gtest benchmark with the same concatenated stylesheets also shows a significant improvement.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 5e321cadf3308d21c4bc7de5061c5fc08670c18a
2017-09-06 15:33:20 -05:00
Brad Werth
af44a73598 servo: Merge #18344 - Change selector::to_css function to handle combinators in between universal selectors (from bradwerth:selectorSerialize); r=SimonSapin
https://bugzilla.mozilla.org/show_bug.cgi?id=1391169
https://reviewboard.mozilla.org/r/172368/

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

<!-- Either: -->
- [X] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: fd95696d31c4d7964d1d008d839d4a79066ce7f1
2017-09-01 23:41:10 -05:00
Josh Matthews
188f5e7afb servo: Merge #18290 - Report more specific CSS selector errors (from jdm:selectorerr); r=heycam
Report more specific errors for invalid CSS selectors. Reviewed by @heycam in https://bugzilla.mozilla.org/show_bug.cgi?id=1384216.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: b2f8974ab88c98277f03c727708096edce898974
2017-08-29 09:46:22 -05:00
Simon Sapin
2a2000cdd4 servo: Merge #18171 - Use Parser::skip_whitespace in a few places to make Parser::try rewind less (from servo:skip_whitespace); r=emilio
**Do not merge yet.** This pulls in unrelated cssparser changes which add a dependency to `dota`, and we’d like to resolve https://github.com/dtolnay/dtoa/pull/9 before landing dtoa in mozilla-central. Also, the dependency change may require manually revendoring in mozilla-central.

Gecko’s CSS parsing microbenchmarks before:

```
  43.437 ±  0.391 ms    Stylo.Servo_StyleSheet_FromUTF8Bytes_Bench
  29.244 ±  0.042 ms    Stylo.Gecko_nsCSSParser_ParseSheet_Bench
 281.884 ±  0.028 ms    Stylo.Servo_DeclarationBlock_SetPropertyById_Bench
 426.242 ±  0.008 ms    Stylo.Servo_DeclarationBlock_SetPropertyById_WithInitialSpace_Bench
```

After:

```
  29.779 ±  0.254 ms    Stylo.Servo_StyleSheet_FromUTF8Bytes_Bench
  28.841 ±  0.031 ms    Stylo.Gecko_nsCSSParser_ParseSheet_Bench
 296.240 ±  4.744 ms    Stylo.Servo_DeclarationBlock_SetPropertyById_Bench
 293.855 ±  4.304 ms    Stylo.Servo_DeclarationBlock_SetPropertyById_WithInitialSpace_Bench
```

Source-Repo: https://github.com/servo/servo
Source-Revision: 8812422bfa504633a7011b0b002e9a2682c7d045
2017-08-25 20:24:58 -05:00
Josh Matthews
2dfd1b7f7b servo: Merge #18225 - Remove unused selector visitor argument (from jdm:unused-visitor-argument); r=emilio
The real win here is avoiding cloning the iterator when nobody actually uses it.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 69e28f07097d4ebeeff4505802b1fb26072e3844
2017-08-25 01:10:03 -05:00
Clément DAVID
a6c6efb7e6 servo: Merge #18179 - Automatically verify that derive() lists are alphabetically ordered #… (from davidcl:master); r=jdm
<!-- Please describe your changes on the following line: -->
Automatically verify that derive() lists are alphabetically ordered #18172

---
<!-- 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 #18172 (github issue number if applicable).

<!-- Either: -->
- [X] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 474369618965569407d127b1e8c481e757cc59d3
2017-08-23 17:18:31 -05:00
Simon Sapin
6ea0512630 servo: Merge #18046 - Upgrade to rustc 1.21.0-nightly (13d94d5fa 2017-08-10) (from servo:rustup); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d9b82b9efa7b10a2e34d93df5ac535d99518f7a
2017-08-15 07:31:04 -05:00
Simon Sapin
dd160d6417 servo: Merge #18025 - Update to cssparser 0.19, count line numbers during tokenization (from servo:line-counting); r=jdm
https://github.com/servo/rust-cssparser/pull/177

Also simplify the `ParseErrorReporter` trait a bit.

Source-Repo: https://github.com/servo/servo
Source-Revision: 845131c425ebd50eea2fe5bf6005b6c304664242
2017-08-09 16:16:33 -05:00
Bobby Holley
33ecfc99d3 servo: Merge #17952 - Use drain() over IntoIter on a few SmallVecs (from bholley:drain_smallvec); r=emilio
This is all the ones I could find in style/ and selectors/.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 27d1fbe7eae70603a4f477156360068c11515e88
2017-08-03 03:46:02 -05:00
Corey Farwell
e8ccc518c5 servo: Merge #17883 - Audit usages of unicode case-changing methods (from frewsxcv:frewsxcxv-lowercase); r=SimonSapin
Part of https://github.com/servo/servo/issues/17777.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5fff90c73f77dd9ed41b692e6b3ea960a29ee8a8
2017-08-02 03:01:26 -05:00
Simon Sapin
6e4b1519ff servo: Merge #17820 - Update cssparser to 0.18 (from servo:token-cache); r=emilio
Do not merge yet, depends on https://github.com/servo/rust-cssparser/pull/171.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4f0821192c112943bb53b4fb04303c1afdde06e6
2017-07-24 06:27:00 -07:00
Emilio Cobos Álvarez
20baa71b3e servo: Merge #17806 - selectors: Don't track class and id ancestor hashes in quirks mode (from emilio:quirks-mode-bloom); r=bholley
It's incorrect to track classes and id selectors in a quirks-mode document,
since they should match case-insensitively.

Bug: 1382812
Reviewed-by: bholley
MozReview-Commit-ID: 4uvrfYsWb1v
Source-Repo: https://github.com/servo/servo
Source-Revision: 1e6999b02b3568d29e8397c84852a4a916644cf7
2017-07-20 22:40:15 -07:00
Jonathan Chan
c385b82a9c servo: Merge #17539 - Simplify <an+b> in selector args when serializing (from jyc:simplify-an-b); r=emilio
<!-- Please describe your changes on the following line: -->

---
<!-- 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 is part of a series to fix #17182

<!-- Either: -->
I am running this to identify what tests will fail; as the other PRs in the series are merged, I believe the tests that pass will change as well.

- [ ] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 81f6b9a1c77dfa69599f08c1841f9d70de76deea
2017-07-19 03:59:50 -07:00
Jonathan Chan
69124f47a5 servo: Merge #17537 - Some fixes to selector serialization re: namespaces and universal selector (from jyc:default-namespace-serialization); r=emilio
- Fix eliding default namespace when serializing
- Fix shortest serialization property when namespace prefix is `*|` and there is no default namespace
- Omit universal selector when serializing to match `cssom/serialize-namespaced-type-selectors` (again so we get the shortest serialization)

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

---
<!-- 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 is part of a series to fix #17182

<!-- Either: -->

I'd like to land #17501 first, because it allows some tests for this to work.

- [ ] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 97023f18f34413d79b0c7e0b7d5cb3781868392f
2017-07-17 16:26:37 -07:00
Emilio Cobos Álvarez
00c028995b servo: Merge #17707 - stylo: Waste less memory in invalidation stuff and style rules (from emilio:invalidation-less-memory); r=heycam
This should help a lot with https://bugzilla.mozilla.org/show_bug.cgi?id=1380488.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9515abbca396c176e6a5c603a193573ac0cb9e33
2017-07-13 04:15:15 -07:00
Jonathan Chan
7676f117ef servo: Merge #17538 - Implement CSSStyleRule.selectorText (from jyc:selectorText); r=Manishearth
We parse when assigning using the namespaces of the stylesheet. It isn't
clear if the spec says to do that (Firefox doesn't support the setter at
all, Chrome does, Safari doesn't); the spec issue is here:
https://github.com/w3c/csswg-drafts/issues/1511

Also fix ToCss implementation of AttrSelectorOperator to not pad with
spaces, to conform with CSSOM. This means we have to update some unit
tests that expect operators with spaces around them in attribute
selectors to roundtrip.

See the "attribute selector" section of "Serializing Selectors" here:
https://drafts.csswg.org/cssom/#serializing-selectors

CSSStyleRule.selectorText is specified here:
https://drafts.csswg.org/cssom/#dom-cssstylerule-selectortext

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

---
<!-- 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 is part of a series to fix #17182

<!-- Either: -->
I am running this to identify what tests will fail; as the other PRs in the series are merged, I believe the tests that pass will change as well.

- [ ] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 4b6e79337ef975e3ec752513b76ae6a6284c1199
2017-07-12 11:08:35 -07:00
Xidorn Quan
8ae83d7b4b servo: Merge #17687 - Support parsing ::-moz-tree-* pseudo-elements selector (from upsuper:tree-pseudo); r=heycam
This is the Servo side change of [bug 1348488](https://bugzilla.mozilla.org/show_bug.cgi?id=1348488).

Source-Repo: https://github.com/servo/servo
Source-Revision: ce52c16a8fcb056d1b9b9418304f22bc15dae160
2017-07-12 03:35:37 -07:00
Josh Matthews
c0e0ebee53 servo: Merge #17655 - Hook up Stylo error reporter to Firefox devtools (from jdm:stylo-error-reporter); r=emilio
Reviewed by @emilio in https://bugzilla.mozilla.org/show_bug.cgi?id=1352669.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 2ddbc92d90ec8df9e5bf4630cd3e93759da81649
2017-07-10 18:13:44 -07:00
Wes Kocher
7125f9c617 Backed out changeset fec394734f83 (bug 17624) for build bustage a=backout CLOSED TREE
MozReview-Commit-ID: 2UtyHapbBm8
2017-07-06 14:57:36 -07:00
Josh Matthews
e2e2ae23b4 servo: Merge #17624 - Hook up Stylo error reporter to Firefox devtools (from jdm:stylo-error-reporter); r=emilio
Reviewed by @emilio in https://bugzilla.mozilla.org/show_bug.cgi?id=1352669.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 585468da9a2d7a33f41a8bebe858006305c1fce9
2017-07-06 11:44:47 -07:00
Simon Sapin
8afdd4838e servo: Merge #17605 - Replace remaining usage of deprecated Range::step_by (from servo:maybereverse); r=nox
… which is being removed in rust-lang/rust#43012

Source-Repo: https://github.com/servo/servo
Source-Revision: 5baea7b73223283b551cf378bb714491a2383c28
2017-07-05 06:08:29 -07:00
Bobby Holley
7bc7317f26 servo: Merge #17439 - Match compound selectors left-to-right (second try) (from bholley:compound_left_to_right); r=SimonSapin
https://bugzilla.mozilla.org/show_bug.cgi?id=1373800

Source-Repo: https://github.com/servo/servo
Source-Revision: b211664e877a3e4d712314fa7f3002fd19cff549
2017-06-21 09:28:43 -07:00
Simon Sapin
3727d5f818 servo: Merge #17390 - Untry (from servo:untry); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 568ab550053fddf346806ed6cc2d3bfe37f3e1d0
2017-06-18 05:55:11 -07:00
Simon Sapin
494bca10cf servo: Merge #17345 - Upgrade cssparser to 0.15 (from servo:cssparserup); r=<try>
Depends on https://github.com/servo/rust-cssparser/pull/159

Source-Repo: https://github.com/servo/servo
Source-Revision: 75876a0e2220b7b95541feef4393288b195b090e
2017-06-16 06:09:52 -07:00
Emilio Cobos Álvarez
cdc25756af servo: Merge #17292 - style: Implement a more fine-grained invalidation method (from emilio:better-style-invalidation); r=heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: 07f6e114850896eae2fd206351808fb31cceaaf0
2017-06-13 04:56:09 -07:00
Simon Sapin
920407d98b servo: Merge #17213 - ID and class selectors are ASCII case-insensitive in quirks mode (from servo:quirk-case); r=bholley
https://bugzilla.mozilla.org/show_bug.cgi?id=1363778

Source-Repo: https://github.com/servo/servo
Source-Revision: 1b077303237d5ecb8307f866e9172d0d8e6b132d
2017-06-12 15:52:29 -07:00
Bobby Holley
a59bc7deb4 servo: Merge #17281 - Pack bloom filter hashes better and save a word on Rule (from bholley:shrink_rule_again); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1371949

Source-Repo: https://github.com/servo/servo
Source-Revision: 75d6796cbd1274c3711472d1a8b728c3cf6ac70c
2017-06-12 12:41:39 -07:00
Fernando Jiménez Moreno
64dc8e1b9c servo: Merge #17274 - stylo: Implement GetSpecificity for ServoStyleRule (from ferjm:bug1370501.specificity.stylo); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1370501

Source-Repo: https://github.com/servo/servo
Source-Revision: 3d2ba15cc5343b0f3ce857373c58bcdc1d3db305
2017-06-12 05:46:11 -07:00
Nazım Can Altınova
fdc4430a61 servo: Merge #17266 - stylo: Support :active and :hover quirk (from canaltinova:active_hover_quirk); r=bholley,emilio
Reviewed by bholley and emilo on the bugzilla bug.

---
<!-- 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 [Bug 1355724](https://bugzilla.mozilla.org/show_bug.cgi?id=1355724)

<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: ddfe8b0468dcd57cc5f98cca5c5ba31134c04719
2017-06-10 12:25:59 -07:00
Josh Matthews
dfb3ae3e5e servo: Merge #16752 - Report more informative CSS errors (from jdm:css-parse-error); r=SimonSapin
This requires https://github.com/servo/rust-cssparser/pull/143 for the final commit. There's no better way to split that work up, unfortunately, and it's extremely easy to bitrot. I would appreciate if we could expedite reviewing this work.

This is the work necessary to enable https://bugzilla.mozilla.org/show_bug.cgi?id=1352669. It makes sense to merge it separately because it's so much effort to keep it up to date with the ongoing Stylo work.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [x] There are tests for these changes

Source-Repo: https://github.com/servo/servo
Source-Revision: 061cb5f48e5c93a5decf39e530aea4a566e97341
2017-06-09 14:31:48 -07:00
Boris Zbarsky
34eb7341fc servo: Merge #17225 - Fix revalidation selectors when pseudo-elements are involved (from bzbarsky:pseudo-sharing-fixage); r=emilio
<!-- Please describe your changes on the following line: -->

---
<!-- 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 https://bugzilla.mozilla.org/show_bug.cgi?id=1371112

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because I am adding a Gecko test for them

<!-- 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 3616b8f0c3c7c1beba4d0977ea3a4fb2a5f9c835
2017-06-08 07:21:01 -07:00
J. Ryan Stinnett
a5c7bf0aa5 servo: Merge #17212 - Stylo: Visited selectors for nested links (from jryans:visited-selectors); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1370358

Source-Repo: https://github.com/servo/servo
Source-Revision: 0934df77fdbddcb6ae1534e3c1a150272aea73b2
2017-06-07 12:49:34 -07:00
Fernando Jiménez Moreno
57112cf1ca servo: Merge #17210 - Bug 1367615 - Stylo: implement inIDOMUtils.getSelectorCount and inIDO… (from ferjm:bug1367615.inDOMUtils); r=emilio
…MUtils.getSelectorTextFromIndex

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

Source-Repo: https://github.com/servo/servo
Source-Revision: cb281af463e2f6a30f4f65db0dd614b07570c356
2017-06-07 09:54:47 -07:00
Bobby Holley
f0a0e986cb servo: Merge #17197 - Force the NonZero optimization for servo_arc and StrongRuleNode (from bholley:nonzero_arc); r=Manishearth
https://bugzilla.mozilla.org/show_bug.cgi?id=1370711

Also addressing followup feedback from https://bugzilla.mozilla.org/show_bug.cgi?id=1370107

Source-Repo: https://github.com/servo/servo
Source-Revision: ffc47e89b3192c9e285dec4a0def52514c3024d6
2017-06-06 22:42:42 -07:00
Bobby Holley
6d91bbdd99 servo: Merge #17179 - shrink Rule and store all heap-allocated selector data inline (from bholley:one_selector_allocation); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1370107

Source-Repo: https://github.com/servo/servo
Source-Revision: 74ea8ce3ed6aa3d7edfe05924f196ccbe57daed6
2017-06-05 20:10:28 -07:00
Simon Sapin
70fe8c63b4 servo: Merge #16915 - Shrink selectors::Component, implement attr selector (in)case-sensitivity (from servo:attr-selectors); r=nox,emilio
* https://bugzilla.mozilla.org/show_bug.cgi?id=1364148
* https://bugzilla.mozilla.org/show_bug.cgi?id=1364162
* https://bugzilla.mozilla.org/show_bug.cgi?id=1363531
* Fixes #3322

Source-Repo: https://github.com/servo/servo
Source-Revision: 640b16634f2828bad46ab6d78e785dfc2025ab46
2017-05-18 18:45:20 -05:00
Emilio Cobos Álvarez
b01ac2f972 servo: Merge #16900 - Bug 1364850: Move PseudoElement to be just another combinator in selectors. r=bholley (from emilio:pseudos); r=bholley
On top of https://github.com/servo/servo/pull/16890.

Source-Repo: https://github.com/servo/servo
Source-Revision: d8b7013fcddff79a9c879077e1a564d83201359c
2017-05-17 05:40:14 -05:00
Simon Sapin
0dc951e016 servo: Merge #16890 - Fix serialization of namespace and universal selectors (from servo:qname); r=emilio
Fix #16017
Fix #16020

Source-Repo: https://github.com/servo/servo
Source-Revision: c96245898418ff91de6fd51edca288ecace44d2b
2017-05-16 20:03:53 -05:00
Simon Sapin
d6c09ae9a6 servo: Merge #16870 - Add size_of tests for geckolib selectors (from servo:size_of); r=emilio
First step of https://bugzilla.mozilla.org/show_bug.cgi?id=1364148

Source-Repo: https://github.com/servo/servo
Source-Revision: ababebcced62d3a9bd09f002f1bf27b1b2691ea6
2017-05-16 04:00:30 -05:00
Emilio Cobos Álvarez
217bec0a67 servo: Merge #16878 - stylo: Rework pseudo-elements to support pseudo selectors with state (from emilio:pseudos); r=bholley,xidorn,hiro
Source-Repo: https://github.com/servo/servo
Source-Revision: 161dc666b017803c671a260f9d5298fc4c83f634
2017-05-15 20:46:42 -05:00
Emilio Cobos Álvarez
89708f4598 servo: Merge #16670 - style: Account for cousin sharing in the revalidation logic (from emilio:sharing-is-sometimes-hard); r=bholley
style: Account for cousin sharing in the revalidation logic.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: e92a79619e750c3c603cf420e6e7a234876d70a5
2017-05-01 14:20:43 -05:00
Bobby Holley
4effb48f0d servo: Merge #16659 - Speed up stylist rebuilds (from bholley:faster_stylist_rebuild); r=emilio
Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1360767

Source-Repo: https://github.com/servo/servo
Source-Revision: caa66a880a89b4a8052959eb403dd7f1de4dfb54
2017-04-29 18:08:19 -05:00
Emilio Cobos Álvarez
3d9f14f89f servo: Merge #16641 - Bug 1360399: Don't deduplicate revalidation selectors. r=bholley (from emilio:dupedupedupedupe); r=bholley
It's unfortunate, but it's a correctness issue. I was looking at the
expectations update here:

 * https://hg.mozilla.org/integration/autoland/rev/659cddddd434

And investigating it I realised that it's wrong to coalesce selectors like that,
because we keep the bloom filter flags.

So in the test cases disabled, we have a selector that looks like this:

```
msub > :not(:first-child),
msup > :not(:first-child),
msubsup > :not(:first-child),
mmultiscripts > :not(:first-child) {
    -moz-script-level: +1;
    -moz-math-display: inline;
}
```

And an element that looks like this:

```
<msubsup><mi></mi><mi></mi></msubsup>
```

We're only inserting the first selector msub > :not(:first-child) into the set,
so when we're going to match the <mi> elements we fast-reject it in both cases
due to the bloom filter, so they share style.

I can't see an easy way to fix this keeping the deduplication. If we keep it, we
need to remove the bloom filter optimization, which means that we'd trash the
cache for every first-child in the document (the :not(:first-child) effectively
becomes a global rule).

MozReview-Commit-ID: 9VPkmdj9zDg
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>

Source-Repo: https://github.com/servo/servo
Source-Revision: eb975ab890b21c6a5c55716151c0c5eb144cb0d9
2017-04-27 19:59:25 -05:00
Bobby Holley
a89156523b servo: Merge #16635 - Too many revalidation selectors (from bholley:too_many_revalidation_selectors); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1358693

Source-Repo: https://github.com/servo/servo
Source-Revision: 2c445169ad7ccf0e4b2be8f1eee2e198c54ee666
2017-04-27 13:14:01 -05:00
Bobby Holley
66afc11a36 servo: Merge #16606 - Downgrade selectors not() behavior to level 3 (from bholley:not_selector_level_3); r=SimonSapin
https://bugzilla.mozilla.org/show_bug.cgi?id=1348802

Source-Repo: https://github.com/servo/servo
Source-Revision: 9059c1d1fddefb8f48b3e568427c9cffb8371fa3
2017-04-25 17:43:48 -05:00