Commit Graph

185 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
cd1986fd76 servo: Merge #18876 - style: Do not expose LocalMatchingContext (from emilio:die-localmatchingcontext-die); r=SimonSapin
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.

Source-Repo: https://github.com/servo/servo
Source-Revision: a200fb4b9df4e7461b4238fe3a6d49881f438e25
2017-10-15 02:21:47 -05:00
J. Ryan Stinnett
ba97a60037 servo: Merge #18844 - Limit visited cascade for reparenting (from jryans:stylo-visited-reparent-cascade); r=emilio
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

Source-Repo: https://github.com/servo/servo
Source-Revision: 82a013ae073e1e546d80866710ca395bb71cab7c
2017-10-12 01:04:57 -05:00
Emilio Cobos Álvarez
4edd12ae04 servo: Merge #18794 - style: use the XBL styleset quirks mode to match XBL rules (from emilio:xbl-quirks-mode); r=heycam
This fixes bug 1405543.

MozReview-Commit-ID: Dv3mt3Fb8Yp
Source-Repo: https://github.com/servo/servo
Source-Revision: 604cc4e311f1aec72599d43c5a0138b04c8b780d
2017-10-09 05:04:15 -05:00
Bobby Holley
493b7e524d servo: Merge #18779 - DiagnosticHashMap (from bholley:canary_and_journal); r=Manishearth
https://bugzilla.mozilla.org/show_bug.cgi?id=1405879

Source-Repo: https://github.com/servo/servo
Source-Revision: 3f4afbafab7c0a8bfcf596ea444269bb01af3955
2017-10-07 14:55:03 -05:00
Boris Zbarsky
edfd84f202 servo: Merge #18767 - Don't assume that inputs to compute_style_with_inputs have any rules (from bzbarsky:fix-inputs-no-rules); r=heycam
It could be a text style, which never has any rules attached to it.

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

<!-- 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=1406222

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 117dbfaac20d8a388cf3cf5d2bc103b9d6249ee8
2017-10-06 01:53:12 -05:00
Bobby Holley
691fecfbfd servo: Merge #18732 - Revert #18668 - Add mprotect diagnostics for HashMap crash (except for round-up-to-page behavior) (from bholley:revert_mprotect_diagnostics); r=bholley
These diagnostics have served their purpose, time to remove them.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 0b69887387567d1bbaa93fe874014a925ef9fe05
2017-10-03 14:45:33 -05:00
Emilio Cobos Álvarez
b946022394 servo: Merge #18692 - style: multiple cleanups (from emilio:cleanups); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 4d95e2cd46b7f47f28970153c14a565afdef2bc3
2017-10-01 13:30:18 -05:00
Bobby Holley
ac27616eec servo: Merge #18668 - Add mprotect diagnostics for HashMap crash (from bholley:mprotect_diagnostics); r=Manishearth
https://bugzilla.mozilla.org/show_bug.cgi?id=1403397

Source-Repo: https://github.com/servo/servo
Source-Revision: 5d2ac4aa2e746daf312198278369686627360895
2017-09-28 19:10:46 -05:00
Emilio Cobos Álvarez
b6716bad81 servo: Merge #18652 - style: Fix various issues with XBL rule matching (from emilio:xbl-stuff); r=TYLin
See the commit details.

Source-Repo: https://github.com/servo/servo
Source-Revision: bad77b6a20ee9bdba27d0af9edd1dd638c73d64b
2017-09-27 09:15:16 -05:00
Nicholas Nethercote
df61e8aad8 servo: Merge #18649 - Devirtualize nsIAtom (from nnethercote:bug-1400459); r=froydnj
<!-- Please describe your changes on the following line: -->

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because tested on the 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: 54f8a131ea50fe8b0480d9f146acc97e13bc45d6
2017-09-27 00:52:31 -05:00
Emilio Cobos Álvarez
bd8012b695 servo: Merge #18640 - style: Really minor cleanups (from emilio:cleanup-as-you-go); r=nox
See commits for details.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4450bbdb0c44637a3caa05bd14a6e2b9d867a74e
2017-09-26 07:53:43 -05:00
Nicholas Nethercote
f458f10d55 servo: Merge #18637 - Two small tweaks related to MallocSizeOf (from nnethercote:rename-add_size_of_children); 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
- [ ] 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 the 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: 81801ab8b4c76eb1fc69a6d31175c3a372dad93a
2017-09-26 05:52:34 -05:00
Bobby Holley
9fdac01539 servo: Merge #18595 - Implement an nth-index cache (from bholley:nth_index_cache); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1334730

Source-Repo: https://github.com/servo/servo
Source-Revision: be9c8ec07a0ca745adf1b412d32b3b32adec122c
2017-09-21 18:10:05 -05:00
Bobby Holley
599d2f4ac9 servo: Merge #18589 - Plumbing for the nth-index cache (from bholley:nth_index_plumbing); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1334730

Source-Repo: https://github.com/servo/servo
Source-Revision: 39f8fce453f0a34751abb82485442429f06324bf
2017-09-21 01:24:01 -05:00
Nicholas Nethercote
99e9473306 servo: Merge #18568 - Measure the UA cache (from nnethercote:bug-1400078); r=emilio
This is the Servo PR for https://bugzilla.mozilla.org/show_bug.cgi?id=1400078

<!-- 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=1400078

<!-- 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: ad4f50270d12564da471489c703119fc4a57fa15
2017-09-19 18:46:49 -05:00
Emilio Cobos Álvarez
5dde16e1cf servo: Merge #18537 - style: Spring cleanup (from emilio:spring-cleanup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 14529da2a3c9a84cdec5735fca09d0bcb5995348
2017-09-17 13:35:45 -05:00
Emilio Cobos Álvarez
cd1cfefc8b servo: Merge #18509 - style: Share user agent cascade data across documents (from emilio:ua-sheet-share-cascade-data); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: edff65a3b8f761513929b932eb7e9ea8b03aca79
2017-09-15 12:43:18 -07:00
Emilio Cobos Álvarez
2052160110 servo: Merge #18502 - style: Unify how servo and Gecko handle UA sheets (from emilio:ua-sheets-unify); r=simonsapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 75e126f139197c447686242082d9e7f61ba92c3f
2017-09-14 15:55:21 -05:00
Emilio Cobos Álvarez
246fcfb0df servo: Merge #18501 - style: Move DocumentCascadeData::add_stylesheet to CascadeData (from emilio:cascade-data-rebuild); r=nox
More plumbing in preparation for isolating the UA stuff.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2cbd27c83a6974f6d00ccd2873ff1914c3af0614
2017-09-14 10:49:16 -05:00
Cameron McCormack
0c427cea30 servo: Merge #18499 - style: add a TLS-based cache of reset style structs (from heycam:rule-cache); r=emilio
Rule cache

<!-- Please describe your changes on the following line: -->
This adds a TLS-based cache reset styles structs keyed off rule nodes.  Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1367635 by me and Emilio.

---
<!-- 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
- [ ] 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: 874cb0d9df44e62a78d427f22f234a13227d07f8
2017-09-14 04:28:50 -05:00
Emilio Cobos Álvarez
32fbdbefbc servo: Merge #18486 - style: Move ExtraStyleData into CascadeData (from emilio:extra-data-to-cascade-data); r=SimonSapin
It logically belongs there, and the only reason it wasn't there before we were
working around other stuff. Now it's needed to share UA stylesheets across documents.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1ab705b0265cac358c3bebb3fec8cbac089f015d
2017-09-13 17:44:21 -05:00
Emilio Cobos Álvarez
e902ee9214 servo: Merge #18484 - style: Store stylesheets per origin (from emilio:per-origin-sheets); r=SimonSapin
This is the first step that will allow us to cache UA sheets across documents.

Source-Repo: https://github.com/servo/servo
Source-Revision: d461347adf47c47a73a7242e23d57a5741872d4f
2017-09-13 14:59:16 -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
Matt Brubeck
4ac4e44aa7 servo: Merge #18431 - Use SmallBitVec to optimize size of PropertyDeclarationBlock (from mbrubeck:pdb-size); r=SimonSapin
https://bugzilla.mozilla.org/show_bug.cgi?id=1398322

Source-Repo: https://github.com/servo/servo
Source-Revision: e7f45028dcd4d7015b4eed2ecc193e176b1fbd1c
2017-09-11 08:57:07 -05:00
Emilio Cobos Álvarez
3a32b8dd78 servo: Merge #18434 - Bug 1395064 - stylo: Add uses of fallible Vec, SmallVec and HashMap f… (from julian-seward1:master); r=bholley
…acilities.  r=emilio@crisal.io.

<!-- 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: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: be804a8155b0a942324f564df569233d13c97dcd
2017-09-10 12:30:39 -05:00
Nazım Can Altınova
9187953a00 servo: Merge #18398 - stylo: Pass the @page values to precomputed pseudo element declarations (from canaltinova:at-page-rule); r=emilio
We were parsing @page rules correctly and serializing for cssom when we
we need. But we weren't actually including them to the pseudo element
declarations when we need to print a page.

Reviewed by emilio on Bugzilla.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1394035](https://bugzilla.mozilla.org/show_bug.cgi?id=1394035)

Source-Repo: https://github.com/servo/servo
Source-Revision: 094502e55f246b7c21d788385dda5c350ecf783a
2017-09-06 16:40:33 -05:00
Nicholas Nethercote
4a8aa7e7de servo: Merge #18387 - Measure SmallVecs in SelectorMap and InvalidationMap (from nnethercote:measure-smallvec); r=heycam
<!-- Please describe your changes on the following line: -->

This is another ~300 KiB on the Obama wikipedia page.

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

r? @heycam

Source-Repo: https://github.com/servo/servo
Source-Revision: 6051e5ed021b10f1ac89a2865765a46f4358f02f
2017-09-06 01:39:35 -05:00
Emilio Cobos Álvarez
b70bbee2fd servo: Merge #18384 - style: Don't waste a whole selector map for each class / id in the document (from emilio:invalidation-map-bloat); r=bholley
On top of #18375, only last commit needs review.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4721ef81fd7fb6ee15546a6abe140a66ce0280e8
2017-09-05 12:51:17 -05:00
Ting-Yu Lin
8cc6c51196 servo: Merge #18367 - style: Expose stylist::set_device() for gecko (from aethanyc:media-change-xbl-stylset); r=emilio
This was reviewed in bug https://bugzilla.mozilla.org/show_bug.cgi?id=1382078

Source-Repo: https://github.com/servo/servo
Source-Revision: e97f28e2a6db24b5cedb7f075fbab2f3a9f62ff2
2017-09-04 15:19:06 -05:00
Nicholas Nethercote
6f490f85ad servo: Merge #18310 - Measure memory usage of Stylo's Rule Tree (from nnethercote:bug-1394729); r=heycam
<!-- Please describe your changes on the following line: -->
This is for https://bugzilla.mozilla.org/show_bug.cgi?id=1394729, which was 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 tests exist 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: d795ceae17b2ce5346d4f211f73c62e5c25dce79
2017-08-31 00:31:31 -05:00
Emilio Cobos Álvarez
7d0d7a9aa2 servo: Merge #18268 - style: Recascade the document instead of using the dirty_on_viewport_size_change bit (from emilio:dirty-viewport-followup); r=SimonSapin
This allows us to simplify a lot of code.

On top of #18267.

Source-Repo: https://github.com/servo/servo
Source-Revision: 473934c989c94773c38f585b1c4500cd8c811738
2017-08-29 14:18:58 -05:00
Emilio Cobos Álvarez
e18eceac0f servo: Merge #18293 - style: Box the PerPseudo<SelectorMap>, so we don't waste a lot of space (from emilio:selector-map-box); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 5062dc5914d97e16b93c847574282067dcde49f7
2017-08-29 07:37:55 -05:00
Nazım Can Altınova
230cc315e0 servo: Merge #18241 - stylo: Implement font feature values lookup (from canaltinova:font-feature-values-lookup); r=emilio,xidorn
This PR reviewed by emilio and xidorn on bugzilla. That is backed out because of Windows build problems. Fixed and landing it again.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: dc8f26432fbc1fa35f7f92820d2a82354d337567
2017-08-25 15:45:03 -05:00
Emilio Cobos Álvarez
e436c43936 servo: Merge #18237 - style: Use consistent indentation in the stylist code (from emilio:stylist-indent); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: f69eb90614fdc80206535d3303d5ef507cd79cc9
2017-08-25 09:03:35 -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
Gregory Szorc
0fe6650924 Backed out changeset 01348a3860f7 for build bustage
CLOSED TREE
2017-08-24 20:44:50 -07:00
Nazım Can Altınova
92d4f91dba servo: Merge #18222 - stylo: Implement font feature values lookup (from canaltinova:font-feature-values-lookup); r=emilo,xidorn
This PR reviewed by emilio and xidorn on bugzilla

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 76e77be04107b1827588c6c0e70e6fd1919a7b33
2017-08-24 17:36:44 -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
Emilio Cobos Álvarez
3cafe4ddd3 servo: Merge #18191 - style: Implement finer-grained stylist rebuilds (from emilio:incremental-rebuilds); r=SimonSapin,heycam
This is on top of #18170, and aims to resolve https://bugzilla.mozilla.org/show_bug.cgi?id=1386045.

Source-Repo: https://github.com/servo/servo
Source-Revision: c5cf6dc9658c8b90d3cb17f0dbd53e32fd2efd0d
2017-08-23 07:40:03 -05:00
Bobby Holley
08dfc88998 servo: Merge #18196 - stylo: Maintain a restyle root and use it to cull the traversal (from bholley:restyle_roots); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1383332

Source-Repo: https://github.com/servo/servo
Source-Revision: 20c73e7f7d620600f161f3c00cbe5a80b5e2a5a9
2017-08-22 22:04:34 -05:00
Emilio Cobos Álvarez
6a55053fa7 servo: Merge #18170 - style: Move the StyleSheetSet into the Stylist (from emilio:stylist-stylesheet-set); r=SimonSapin
This will allow tracking whether there have been only additions to the
stylesheet set, and in that case don't destroy and completely rebuild the
invalidation map.

This is on top of #18143.

Source-Repo: https://github.com/servo/servo
Source-Revision: 019b125963d4db9b18991d3ab06042e475c83f9f
2017-08-22 11:45:42 -05:00
Emilio Cobos Álvarez
9e7f18a1b2 servo: Merge #18143 - style: Remove Stylist::is_device_dirty (from emilio:stylist-stylesheets); r=<try>
More progress on unifying how Gecko and Servo track stylist dirtiness.

Source-Repo: https://github.com/servo/servo
Source-Revision: e60266a72302a0ed332f1dd18d335b6092c47da4
2017-08-21 10:59:10 -05:00
Emilio Cobos Álvarez
1a34bdd5ed servo: Merge #18124 - style: Replicate the list of stylesheets on the layout thread (from emilio:stylist-stylesheets); r=SimonSapin
This is a patch that unifies a bit how Gecko and Stylo stylesheets work, in
order to be able to eventually move the stylesheets into the stylist, and be
able to incrementally update the invalidation map.

This is on top of #18113

Source-Repo: https://github.com/servo/servo
Source-Revision: 81a382cb00134450f3723caf682bb5ca8cca317f
2017-08-18 08:33:35 -05:00
Emilio Cobos Álvarez
576ac2258a servo: Merge #18087 - style: Cleanup a bit Stylist and SelectorMap (from emilio:stylist-clear-cleanup); r=heycam
Bug: 1390255
Reviewed-by: heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: b300800b2c450f325c0308e9dcd7ec0113498e37
2017-08-16 02:56:13 -05:00
Emilio Cobos Álvarez
c9995c473c servo: Merge #18070 - stylo: only clear relevant origins when medium features change (from emilio:orig-medium); r=heycam
Bug: 1389871
Reviewed-by: heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: 1573309b868bc971b4cd1fe7153c57c4bf37c6cc
2017-08-14 06:42:44 -05:00
Cameron McCormack
3d99c448d8 servo: Merge #18060 - style: Don't rebuild cascade origins that haven't changed (from heycam:single-origin); r=emilio
From https://bugzilla.mozilla.org/show_bug.cgi?id=1382925.

Source-Repo: https://github.com/servo/servo
Source-Revision: b1d7b6bfcfa706156940b59f61c9afcfc49da63e
2017-08-13 06:39:40 -05:00
Cameron McCormack
0c10f12be2 servo: Merge #18037 - style: Split collected @font-face / @counter-style rules per origin (from heycam:split-cascade-font-counter); r=emilio
<!-- Please describe your changes on the following line: -->

More refactoring in preparation for rebuilding sheets only from the origin that changed.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./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
- [ ] 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: 56f5fc41fae732ba28f63acec6755559da31d47f
2017-08-11 00:40:18 -05:00
Cameron McCormack
d14c16ca56 servo: Merge #18017 - style: Move all origin-specific cascade data to PerOriginCascadeData (from heycam:split-cascade); r=emilio
<!-- Please describe your changes on the following line: -->

This is a preliminary refactoring in preparation for only rebuilding cascade data for origins that have a change. https://bugzilla.mozilla.org/show_bug.cgi?id=1382925

---
<!-- 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
- [ ] 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: ca14848711884a15a352ec5453df3d83574036a5
2017-08-09 19:28:07 -05:00
Emilio Cobos Álvarez
028c402fa7 servo: Merge #18011 - style: Avoid hashing hashes (from emilio:less-dumb-hash); r=nox
These are the last instances I can find of us hashing the atoms hash.

Source-Repo: https://github.com/servo/servo
Source-Revision: dec4ba8ea6adb2477e4d3ba4916c886ac8b1dc0e
2017-08-08 10:06:32 -05:00
Emilio Cobos Álvarez
a5e158e3d2 servo: Merge #17999 - style: Use an enumerated array for per-pseudo maps (from emilio:pseudo-enumerated-array); r=heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: b6d46789f8d56dc90d6c6d44f857fc31afd23e51
2017-08-08 06:32:12 -05:00