Commit Graph

146 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
9f898f11f2 servo: Merge #18904 - style: Stop threading the ElementData around the invalidator (from emilio:invalidator-less-dependencies); r=heycam,jdm,nox
style: Stop threading the ElementData around the invalidator.

Source-Repo: https://github.com/servo/servo
Source-Revision: c1e0889971582488ed7a4d3a3af21a49bf497abc
2017-10-17 05:18:29 -05:00
Emilio Cobos Álvarez
79b9004638 servo: Merge #18703 - style: Allow passing an nth-index-cache to the invalidation code (from emilio:nth-index-cache-invalidate); r=bholley
style: Allow passing an nth-index-cache to the invalidation code.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2a5121357a76e2b558ecd0dae7689d709b6a2b41
2017-10-03 00:40:03 -05:00
Emilio Cobos Álvarez
f79481b055 servo: Merge #18699 - Remove some cfg'd imports (from emilio:remove-cfg); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e13f5a656af682add10cdc41fb8e625c04b60347
2017-10-02 02:10:25 -05:00
Emilio Cobos Álvarez
2940384015 servo: Merge #18638 - style: Lazily tweak the traversal root to account for sibling invalidations (from emilio:invalidation-lazy); r=heycam
Bug: 1403078
Reviewed-by: heycam
MozReview-Commit-ID: Ij3nMOKu5FO
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>

Source-Repo: https://github.com/servo/servo
Source-Revision: 3dbb97922d75f7ba4c542cb67e9c30c28c7a0699
2017-09-26 06:58:04 -05:00
Emilio Cobos Álvarez
08a1c66541 servo: Merge #18602 - style: Make sure to not run any style invalidation in an unstyled children only traversal (from emilio:invalidation-unstyled-only); r=bholley
Bug: 1402472
Reviewed-by: bholley
MozReview-Commit-ID: IFPA7LJpvsZ
Source-Repo: https://github.com/servo/servo
Source-Revision: 5a6b90b14ff709eab41493a05c8235c522d35250
2017-09-22 21:16:43 -05:00
Emilio Cobos Álvarez
d449e355e5 servo: Merge #18547 - style: Resolver cleanup and sharing by rule node fixes (from emilio:self-sharing); r=heycam
See the individual commits for details.

This is the only coherent story I have for crashes like:

  https://crash-stats.mozilla.com/report/index/bcdfe629-ca1f-4e4d-aa17-27f890170917

(And the fact that there are crashes like it on the main thread kinda indicates it's the case)

Source-Repo: https://github.com/servo/servo
Source-Revision: 2387dbedbb27629cd9e8c4657e8328ae04ff6d58
2017-09-17 21:58:06 -05:00
Bobby Holley
30b44f8a87 servo: Merge #18532 - Undo #18497 in the MatchAndCascade case (from bholley:more_cache_insertion); r=emilio
It's easy to construct examples where not inserting in those cases causes performance
to get worse (for example, any long list of siblings that match the same selectors
while having some non-effectual differences in LocalName/Class/Id/etc). And the LRU
nature of the cache already does the right thing of pruning non-useful entries.

Fixing this causes several hundred more sharing hits on wikipedia.

Source-Repo: https://github.com/servo/servo
Source-Revision: da64abc4298549362debc96e5843bd36e6d23b7f
2017-09-16 02:09:20 -05:00
Emilio Cobos Álvarez
45a05757ba servo: Merge #18497 - style: Don't cache styles that got a cache hit on the second pass (from emilio:no-cache-if-cached); r=heycam
This avoids doing wasted work, at least in the recascade case, and pretty likely
in the other as well.

Source-Repo: https://github.com/servo/servo
Source-Revision: 988728e9d5c66e6bf2f9e0e03a50a814d0e1f2ab
2017-09-14 05:23:09 -05:00
Bobby Holley
acd012cddf servo: Merge #18496 - do a second pass on the style sharing cache after computing the rule node (from bholley:2ndpass); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1397976

Source-Repo: https://github.com/servo/servo
Source-Revision: 298b1363ffd7e830a6ad28424421ead6628ac9b7
2017-09-14 00:07:52 -05:00
Bobby Holley
6a7fe3a3f6 servo: Merge #18465 - Eliminate RestyleData (from bholley:kill_restyledata); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1399011

Source-Repo: https://github.com/servo/servo
Source-Revision: 72f0fda836ff97d33169cd1fc0d23d2d07ad74c6
2017-09-12 13:16:26 -05:00
Bobby Holley
e1c7e22b50 servo: Merge #18453 - Refactor the style cache (from bholley:style_cache_refactor); r=emilio
This is the first set of patches from https://bugzilla.mozilla.org/show_bug.cgi?id=1398658

Source-Repo: https://github.com/servo/servo
Source-Revision: def983c29566133ab02ed40b9ab8c5e99da8e53e
2017-09-12 03:25:36 -05:00
Emilio Cobos Álvarez
d4b31b7731 servo: Merge #18391 - style: Stop the cascade when only reset structs change (from emilio:cascade-stoph); r=heycam
From https://bugzilla.mozilla.org/show_bug.cgi?id=1395227

Source-Repo: https://github.com/servo/servo
Source-Revision: 9802214aba97287afa729c7efcac5e44316dc591
2017-09-06 07:55:08 -05:00
Emilio Cobos Álvarez
4a81da8603 servo: Merge #18342 - style: Remove the for reconstruction traversals (from emilio:die-forreconstruct-die); r=bholley
One less hack, a few more to go.

Bug: 1374235
Reviewed-by: bholley
MozReview-Commit-ID: 6katL1EGn2U
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>

Source-Repo: https://github.com/servo/servo
Source-Revision: 876b70b02c7a3c8aad26b26dcbcfddaa5c747493
2017-09-01 08:56:58 -05:00
Bobby Holley
2fb4ae2f88 servo: Merge #18246 - stylo: followup fixes for restyle roots (from bholley:restyle_root_followups); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1392863

Source-Repo: https://github.com/servo/servo
Source-Revision: 1fd0edf158bb479b420fb6ddc76470d82c88cb61
2017-08-26 12:22:33 -05:00
Bobby Holley
18feec9fd1 servo: Merge #18248 - stylo: Check stack depth in invalidation machinery and re-enable limits (from bholley:more_stack_limits); r=bholley
https://bugzilla.mozilla.org/show_bug.cgi?id=1376884

Source-Repo: https://github.com/servo/servo
Source-Revision: 3c42792efade03a31b9eeca8be457992cf83722c
2017-08-25 23:29:46 -05:00
Bobby Holley
9102d239fe servo: Merge #18238 - Replace the sequential/parallel distinction with a unified adaptive traversal (from bholley:adaptive_driver); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1393632

Source-Repo: https://github.com/servo/servo
Source-Revision: 72c59ff830b256ca5bd6df7736a9d9acfc9d3e52
2017-08-25 12:23:41 -05:00
Emilio Cobos Álvarez
8869a9b2e4 servo: Merge #18215 - style: Only store applicable ::before / ::after pseudo styles during the traversal (from emilio:applicable-pseudo); r=heycam
This should help memory usage quite a bit.

Source-Repo: https://github.com/servo/servo
Source-Revision: 772a8464eb8dcd4fd50cd342b7c6fa165745dd1e
2017-08-25 02:30:50 -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
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
8d8ca7b032 servo: Merge #18184 - style: Inline a bunch of trivial stuff we're paying function calls for in Geckolib (from emilio:inline); r=upsuper
Reviewed by Xidorn in https://bugzilla.mozilla.org/show_bug.cgi?id=1392170.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1059ef4fdeb5c76102c3da22293d836942740033
2017-08-22 05:48:37 -05:00
Bobby Holley
e6582c6101 servo: Merge #18097 - Avoid recursion in clear_descendant_data (from bholley:avoid_recursion_clear_descendant_data); r=emilio
This will allow us to have a tight stack limit in https://bugzilla.mozilla.org/show_bug.cgi?id=1376883

Source-Repo: https://github.com/servo/servo
Source-Revision: 467316e35bb494b9e9b2b4c480b3eda17c3a91b9
2017-08-16 04:22:23 -05:00
Bobby Holley
3b875cdb0f servo: Merge #18094 - Avoid leaving stale ANCESTOR_WAS_RECONSTRUCTED bits in the tree (from bholley:ancestor_reconstruct); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1390179

Source-Repo: https://github.com/servo/servo
Source-Revision: 99b4b7e9602ea1440d2d2ae6c32be30bd0c4f721
2017-08-15 17:07:20 -05:00
Bobby Holley
2221e7e9ab servo: Merge #18048 - More refactoring of the traversal in preparation for restyle roots (from bholley:more_traversal_refactoring_for_restyle_roots); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1389347

Source-Repo: https://github.com/servo/servo
Source-Revision: 8fb7836f40b03c94d0e87929965ee3c19b171091
2017-08-11 16:47:12 -05:00
Bobby Holley
4c03cb2c8d servo: Merge #18026 - Continue cleaning up the traversal entry point machinery (from bholley:continue_traversal_cleanup); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1388623

Source-Repo: https://github.com/servo/servo
Source-Revision: 2b92a7e82d49b8fcead78f91abbabdedf2a569c1
2017-08-09 13:03:00 -05:00
Hiroyuki Ikezoe
83f8160f29 servo: Merge #18005 - Don't clear animation only dirty bit during style recalc (from hiikezoe:dont-unset-animation-only-dirty-bit); r=birtles
Unless the element is in a display:none subtree.

After bug 1356141, the setup of animation-only dirty bit should have matched
to normal dirty bit's one (Though they don't match in post traversal due to
throttled animation flush). An unset_animation_only_dirty_descendants call
removed in this patch cleared dirty bits which are needed for post traversal if
there is a second animation-only traversal and if there is no need to restyle
for the second animation-only traversal.

The reftest in this patch fails without either this fix or the fix for bug
1367975.

See [Gecko bug 1384435 comment 12](https://bugzilla.mozilla.org/show_bug.cgi?id=1384435#c12)
for more detail what's going on at that time.

<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1384435
---
<!-- 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

Source-Repo: https://github.com/servo/servo
Source-Revision: 689dadc75174eff892e1da9d072ee9f109ede925
2017-08-07 20:13:32 -05:00
Bobby Holley
01871af9e7 servo: Merge #17980 - Introduce a new flag and use it to be more permissive about cousin sharing (from bholley:fix_initial_sharing); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1387116

Source-Repo: https://github.com/servo/servo
Source-Revision: b701d726f2840d61573d213f2e2008335dc9831e
2017-08-05 03:23:55 -05:00
Cameron McCormack
37ae96a073 servo: Merge #17972 - style: Allow styles to be computed ignoring existing element data (from heycam:ignore-existing); r=bholley
From https://bugzilla.mozilla.org/show_bug.cgi?id=1384824.

Source-Repo: https://github.com/servo/servo
Source-Revision: ac37f81c1f70f6994444ca0c40ad9d91a228ec87
2017-08-04 21:33:59 -05:00
Alan Jeffrey
126613911f servo: Merge #17810 - Script paint worklets speculative evaluation (from asajeffrey:script-paint-worklets-speculative-evaluation); r=emilio
<!-- Please describe your changes on the following line: -->

This PR speculatively calls paint worklets during style, which increases the concurrency, since it increases the chance that the cache will have the right result in it when it comes to layout. The speculation is wasted effort if the size of the element has changed, but this is often not the case.

---
<!-- 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 #17486 and #17369.
- [X] These changes do not require tests because it's a performance improvement

<!-- 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: cf5602e84f17d14b6a9abb77f1de6460db070921
2017-07-31 13:13:26 -05:00
Bobby Holley
c50c3dfc02 servo: Merge #17895 - Clean up traversal modes (from bholley:clean_up_traversal); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1384769

Source-Repo: https://github.com/servo/servo
Source-Revision: 255c9d00da8d6837a5625ad19d9b1cd623286c3b
2017-07-27 18:29:29 -05:00
Emilio Cobos Álvarez
bd2d3bc7ca servo: Merge #17834 - stylo: Fix the interaction of frame construction restyles with animation restyles (from emilio:animation-fc-crash); r=heycam
Fixes bug 1383001.

Source-Repo: https://github.com/servo/servo
Source-Revision: 30d6d6024bd0a082424395621f620dc9580970e5
2017-07-24 01:09:24 -07:00
Emilio Cobos Álvarez
760255ccb3 servo: Merge #17782 - style: Unify needs_traversal logic (from emilio:needs-traversal); r=heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: 9b060cf4bf5ff49b05370da6dfb82af5ea46f370
2017-07-19 04:57:23 -07:00
Emilio Cobos Álvarez
cae5c53a3f servo: Merge #17773 - style: Cleanup post #17767 (from emilio:removing-the-ugly); r=manishearth
Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1381764

Source-Repo: https://github.com/servo/servo
Source-Revision: 66e06578ee68b98c94029fba3cfc3ae7d3782044
2017-07-18 09:23:03 -07:00
Hiroyuki Ikezoe
6cf42e52d8 servo: Merge #17770 - Avoid snapshot handling in animation only restyle (from hiikezoe:snapshot-in-animation-only-restyle); r=emilio
<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1381431

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

Source-Repo: https://github.com/servo/servo
Source-Revision: e57ed3d42f818630157102e824867a763964291e
2017-07-18 04:55:30 -07:00
Manish Goregaokar
cb8af9ffe8 servo: Merge #17767 - stylo: Fuse ServoStyleContext and ServoComputedValues (from Manishearth:stylo-fuse); r=bholley
r=bholley https://bugzilla.mozilla.org/show_bug.cgi?id=1367904

Source-Repo: https://github.com/servo/servo
Source-Revision: d746abaa9e69e6cf0ad187d2b46be661bbe03a9f
2017-07-17 19:44:25 -07:00
Emilio Cobos Álvarez
3065776f73 servo: Merge #17751 - style: Fix a typo that makes us resolve styles for the whole spin to the root (from emilio:embarrasing-typo); r=heycam
For undisplayed elements, at least.

Source-Repo: https://github.com/servo/servo
Source-Revision: d8ba8cad58a21210270faf2b337bef4f1c44aad6
2017-07-16 17:53:41 -07:00
Bobby Holley
01fdb5d3c0 servo: Merge #17741 - Trim some fat from the traversal (from bholley:trim_traversal_fat); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1380877

Source-Repo: https://github.com/servo/servo
Source-Revision: 17f99e2a7bb0d7eec167eac952f12a7feafd647d
2017-07-15 15:07:51 -07:00
Emilio Cobos Álvarez
890fa02540 servo: Merge #17746 - style: Remove some no longer needed type arguments (from emilio:always-be-removing-the-ugly); r=wafflespeanut
Source-Repo: https://github.com/servo/servo
Source-Revision: c69cc88a6aec5a1bfa0630edf54ab90b0d49deee
2017-07-15 10:04:25 -07:00
Emilio Cobos Álvarez
44ec6c7983 servo: Merge #17744 - script: Move the layout_wrapper outside of script (from emilio:ensure-data); r=nox
This allows us to have ensure_data() and clear_data() functions on the TElement
trait, instead of hacking around it adding methods in random traits.

This also allows us to do some further cleanup, which I'd rather do in a
followup.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3497bbbf1d092dd8ab274e21b33b6394afa61d8a
2017-07-15 07:44:08 -07:00
Emilio Cobos Álvarez
98987ee711 servo: Merge #17713 - style: Kill some style sharing code (from emilio:less-code-is-lovely); r=heycam
It's trivial to do so after #17688.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1c85c55d02458afffea0ec898e4560d62d447e4e
2017-07-14 00:25:37 -07:00
Emilio Cobos Álvarez
27fff64d23 servo: Merge #17688 - style: Split style resolution and dynamic change computation (from emilio:split-style-resolution); r=heycam,BorisChiou
This is the Servo side of Mozilla bug 1379505.

Source-Repo: https://github.com/servo/servo
Source-Revision: 16d6dc133b40a5d48e33b1f8e2aeafa88e36a6e3
2017-07-12 00:28:44 -07:00
Bobby Holley
e30bb44994 servo: Merge #17615 - Rip out the generic abstractions around ThreadLocalStyleContext (from bholley:simplify_local_context); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1378540

Source-Repo: https://github.com/servo/servo
Source-Revision: 8923a9e5f0cc292062f852babe878326aff656ef
2017-07-05 19:29:01 -07:00
Emilio Cobos Álvarez
a7a9f1148b servo: Merge #17523 - style: Cleanup traversal.rs (from emilio:cleanup-traversal); r=nox
Mostly reflowing comments that have become too long or two short with
refactorings, and using consistent indentation.

Source-Repo: https://github.com/servo/servo
Source-Revision: f93fccac57b358446c8e4b2a99bd60318d3f9634
2017-06-27 07:08:42 -07:00
J. Ryan Stinnett
5417317b00 servo: Merge #17481 - Stylo: Move match and cascade temporaries to CurrentElementInfo (from jryans:move-rule-node); r=bholley
https://bugzilla.mozilla.org/show_bug.cgi?id=1370719

Source-Repo: https://github.com/servo/servo
Source-Revision: 9ba71fcd57bd8aef7977f09b0f095aa51796c1b3
2017-06-22 17:46:55 -07:00
Hiroyuki Ikezoe
b01821dbff servo: Merge #17400 - Don't run normal traversal for animation only restyle element (from hiikezoe:dont-do-normal-traversal-for-animation-only-restyle-element); r=heycam
<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1356141

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 546c9db7a7bb762659d1a6d8188eae7bc69902dd
2017-06-19 20:19:16 -07:00
Emilio Cobos Álvarez
b5b0a3f2c9 servo: Merge #17348 - style: Inline RestyleData (from emilio:bup); r=bholley
Bug: 1368236
MozReview-Commit-ID: 49s3SO0PMHf
Source-Repo: https://github.com/servo/servo
Source-Revision: 33766b2714443399808c950e5bb74b1f124f2bc4
2017-06-15 20:28:56 -07:00
Emilio Cobos Álvarez
e6f018cf1f servo: Merge #17317 - Kill StoredRestyleHint, and shrink RestyleData (from emilio:die-storedrestylehint-die); r=bholley
These are the already-reviewed parts of bug 1368236.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8837c80540327db28a6569f0661816b998b65b9f
2017-06-14 04:16:24 -07:00
Hiroyuki Ikezoe
257991b161 servo: Merge #17305 - Don't process RestyleKind::MatchAndCascade during animation-only rest… (from hiikezoe:restyle-kind-fix); r=emilio
…yle.

<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1372335

---
- [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 it's for stylo

Source-Repo: https://github.com/servo/servo
Source-Revision: 5b3fb62b0914e81a161fcefbf1cf5230661af73e
2017-06-13 20:28:18 -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
Cameron McCormack
a0ab73cd9e servo: Merge #17252 - style: don't perform selector matching on the flattened tree (from heycam:flattened-tree); r=emilio
From https://bugzilla.mozilla.org/show_bug.cgi?id=1369954.

Source-Repo: https://github.com/servo/servo
Source-Revision: 969047bb7cab0f5e8c235017b7e9f7a170c9b7e4
2017-06-09 03:57:36 -07:00
Cameron McCormack
06dd220ffc servo: Merge #17204 - style: always re-cascade in native anonymous subtrees (from heycam:recascade-nac); r=emilio
From https://bugzilla.mozilla.org/show_bug.cgi?id=1345699.

Source-Repo: https://github.com/servo/servo
Source-Revision: 644773d492909e4450832954d21970271655e798
2017-06-07 01:04:08 -07:00