Commit Graph

78 Commits

Author SHA1 Message Date
Hiroyuki Ikezoe
de481a6691 servo: Merge #17944 - Display property animation for SMIL (from hiikezoe:display-property-animation); r=emilio
<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1385089

---
<!-- 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: e07beacd4db4805beb6fd063bf5ccc806f90bf15
2017-08-02 16:27:58 -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
Boris Zbarsky
119839f065 servo: Merge #17912 - Implement ::first-line support in stylo (from bzbarsky:stylo-first-line); r=emilio
<!-- Please describe your changes on the following line: -->

Fixes Gecko bug 1324619.

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

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

<!-- 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: ed75bcae75bda9e4ad04f24ebc07b53f7b51b8b6
2017-07-28 22:51:20 -05:00
Boris Zbarsky
2d70c7f34c servo: Merge #17909 - Don't reconstruct the layout object when going from no pseudo to pseudo with no content for ::before and ::after (from bzbarsky:dont-reframe-before-after); r=emilio
Fixes Gecko bug 1376073.  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=1376073

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

<!-- 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: 8db39f8fdec1c4e86b631230d862d3f370b70bcb
2017-07-28 20:12:37 -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
84ce2f7ced servo: Merge #17829 - style: Mention when visited styles may be disabled (from emilio:visited-nit); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 104c79dbf2fc83d3b4b36dfa8868b2071edf2d81
2017-07-23 15:06:44 -07:00
Emilio Cobos Álvarez
5ce9e9139b servo: Merge #17828 - stylo: Visited link fixes (from emilio:visited-now); r=Manishearth
Straight from https://bugzilla.mozilla.org/show_bug.cgi?id=1383307

Source-Repo: https://github.com/servo/servo
Source-Revision: 2241d5879e5d66c52d2b4f17ad730c5de1eff364
2017-07-23 13:46:43 -07:00
Alan Jeffrey
c296f05349 servo: Merge #17499 - Fixed scaling artefacts in paint worklets caused by zoom and hidpi (from asajeffrey:script-paint-worklets-zoom); r=glennw
<!-- Please describe your changes on the following line: -->

This PR renders paint worklet canvases at the device pixel resolution, rather than the CSS pixel resolution.

It's a dependent PR, building on #17239, #17326 and #17364.

---
<!-- 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 #17454
- [X] These changes do not require tests because we don't run reftests with zoom enabled

<!-- 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: 9fcbeb3ca2ea0d11d4787c649e82918f7672694d
2017-07-20 17:09:06 -07:00
Michael Partheil
728ab1f36c servo: Merge #17775 - Replace all uses of the style::stylearc alias with servo_arc (from michael-p:rename-stylearc-to-servo-arc); r=emilio
The `stylearc` alias is left there temporarilly and will be removed completely in a later commit/PR where also `components/style/gecko/generated/structs_{debug|release}.rs` are re-generated (they still use the old alias).

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because no new features / only refactoring

Source-Repo: https://github.com/servo/servo
Source-Revision: 31228c18499d1c7f68b6b64b559354c768e81215
2017-07-19 06:03:17 -07:00
bors-servo
5b540cb699 servo: Merge #17728 - Reuse bloom filter and style sharing cache across traversals (from emilio:reuse-allocs); r=bholley,emilio
This relands #17701, with a fix for the test failures.

Source-Repo: https://github.com/servo/servo
Source-Revision: f49650ce96578c200c71b0a8fa50094764a3c76d
2017-07-14 02:02:55 -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
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
J. Ryan Stinnett
15efacc1a0 servo: Merge #17650 - Pass through visited style for after change (from jryans:link-transition-crash); r=hiikezoe
https://bugzilla.mozilla.org/show_bug.cgi?id=1377975

Source-Repo: https://github.com/servo/servo
Source-Revision: 5010df627d481b95f449b90ff7500471b01ec600
2017-07-10 11:33:04 -07:00
Bobby Holley
fecfe76fa1 servo: Merge #17612 - Make the style statistics dump threshold configurable (from bholley:custom_threshold); r=emilio
I've wanted to change the threshold a couple of times, and adding in a
10-minute opt rebuild cycle is always a bit de-motivating.

I'm making this option gecko-only because it's pretty niche, and adding
support in servo would require threading it through all the options
stuff. We can add support for it there if we ever need it.

Source-Repo: https://github.com/servo/servo
Source-Revision: 340d350894584a413815fb2c62c88a9bde4e1dc5
2017-07-05 18:37:04 -07:00
Boris Zbarsky
e532faddc8 servo: Merge #17570 - Implement :visited support for lazy pseudo-elements (from bzbarsky:visited-pseudos); r=jryans
<!-- 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=1364242

<!-- 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: ff19e69d2388725cc15784b12c897c755ab06b6b
2017-06-30 09:11:41 -07:00
Bobby Holley
37072d9085 servo: Merge #17504 - Make EagerPseudoStyles use an Arc, not a Box (from bholley:arc_pseudos); r=bholley
Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1371049

Fixes #17300

Source-Repo: https://github.com/servo/servo
Source-Revision: a29261dec196ab5c887655e479e503ca6cbb9229
2017-06-23 20:07:45 -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
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
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
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
Kenan Rhoton
bd5dbedb39 servo: Merge #17142 - Move LRUCache to ArrayDeque crate (from kenan-rhoton:LRUCacheArrayVecDeque); r=emilio
We move LRUCache from using VecDeque to ArrayDeque to avoid using heap allocations.

This relies on the fix in goandylok/arraydeque#4.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because the use cases are the same, only minimal implementation changes have been made

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

I additionally ran test-unit, because I'm paranoid.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2dd67a94971bf562e2eed90582f28ef78a70cf70
2017-06-04 13:29:24 -07:00
Bobby Holley
fa7d2b0cdc servo: Merge #17110 - Improve Style Sharing (from bholley:better_style_sharing); r=emilio
Reviewed in:
https://bugzilla.mozilla.org/show_bug.cgi?id=1368665
https://bugzilla.mozilla.org/show_bug.cgi?id=1368399

Source-Repo: https://github.com/servo/servo
Source-Revision: 1b9cc2de3418f6dbe27102d02ac4d4fadb6cc643
2017-05-31 10:07:53 -05:00
Emilio Cobos Álvarez
0eb6f7f5eb servo: Merge #17063 - style: Allow sharing styles across elements with presentational hints (from emilio:pres-hints-sharing); r=bholley
Source-Repo: https://github.com/servo/servo
Source-Revision: 38a6a3bff6f6e0e35eb592891d5e70e7cb897b69
2017-05-30 07:28:06 -05:00
heyzoos
31a0ea0e7f servo: Merge #16968 - Stylist accessors (from HeyZoos:stylist-accessors); r=emilio
<!-- Please describe your changes on the following line: -->
Add accessor methods for the `device` and `ruleset` fields in the `Stylist` struct.

---
<!-- 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 #16857 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes

<!-- 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: 1306b16d5a170074b4f42046a7b1a3a43952b346
2017-05-22 20:12:46 -05:00
Emilio Cobos Álvarez
f681e7c8ab servo: Merge #16972 - style: Move all the style sharing code outside matching.rs (from emilio:sanity-is-important-most-of-the-time); r=bholley
This is just a code health change. I want to move it away to keep matching.rs as
simple as possible.

Source-Repo: https://github.com/servo/servo
Source-Revision: 03fbea4ec8af3ef6c5c621974b3c52cd755ed287
2017-05-20 21:11:38 -05:00
Emilio Cobos Álvarez
cd917ee337 servo: Merge #16802 - style: Slim down SharedStyleContext, and do various other cleanups around the style crate (from emilio:slim-down-slc); r=bholley
This slims down SharedStyleContext, in preparation for a few things.

First, I would like to eventually move the stylist to the document in Servo, in
order for it to hold the StyleSheetSet.

Also, this gets rid of a fair amount of overhead while creating it in stylo.

Fixes bug 1363245.

Source-Repo: https://github.com/servo/servo
Source-Revision: eeb1ee9723777b0dc04e919556826eef628363fe
2017-05-12 08:56:47 -05:00
Emilio Cobos Álvarez
9ec301bad6 servo: Merge #16778 - Take all the snapshots into account in the style system (from emilio:snapshots); r=bholley
See [bug 1355343](https://bugzilla.mozilla.org/show_bug.cgi?id=1355343).

The servo part of this patch presumably needs some polishing, let's see.

Source-Repo: https://github.com/servo/servo
Source-Revision: c8171ed5d7d4b715ab30795311724420c95dfa10
2017-05-10 15:08:59 -05:00
Bobby Holley
dc929dcbde servo: Merge #16745 - Use selector maps for revalidation and dependency selectors (from bholley:more_selector_maps); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1360088

Source-Repo: https://github.com/servo/servo
Source-Revision: 741958b2fbe0cdf0a89e4dc88c3b1a51e18693d3
2017-05-05 16:29:00 -05:00
Bobby Holley
e02608275b servo: Merge #16702 - Use a custom arc in the style system (from bholley:custom_arc); r=emilio
See https://bugzilla.mozilla.org/show_bug.cgi?id=1360889

Source-Repo: https://github.com/servo/servo
Source-Revision: 7b1006936a27232fb77fef5893cc141e66bb12b7
2017-05-02 20:01:10 -05:00
Emilio Cobos Álvarez
1ad6102849 servo: Merge #16630 - Make stylo traverse Native Anonymous Content, fixing a bunch of restyle bugs (from emilio:nac); r=bholley,hiro
Source-Repo: https://github.com/servo/servo
Source-Revision: c633e291c93c942d34c731fe6ceb4db3b7347a16
2017-04-27 07:39:42 -05:00
Bobby Holley
392497f42a servo: Merge #16578 - Fix up the style sharing cache (from bholley:fix_style_sharing_cache); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1358694

Source-Repo: https://github.com/servo/servo
Source-Revision: a26079d3229beefa90949a93e13ff374649374cc
2017-04-23 14:45:29 -05:00
Boris Chiou
723a8ec17b servo: Merge #16496 - stylo: Bug 1341372 - Detect new transitions and let it run (from BorisChiou:stylo/transition/trigger); r=heycam
These are interdependent patches of Bug 1341372. We let animation-only restyle also work for RESTYLE_CSS_TRANSITIONS, and check if we need to update transitions by each transition property. If it is necessary to create/replace/cancel transitions, we create a SequentialTask for CSS_TRANSITIONS.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix Bug 1341372
- [X] These changes do not require tests because there are tests in Gecko already.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4d8c9c10cb011084e71a04b7d236282bf54c9fab
2017-04-17 05:07:23 -05:00
Bobby Holley
49316faf7f servo: Merge #16432 - Coalesce duplicate selector flags and improve LRUCache (from bholley:faster_selector_flags); r=bholley
https://bugzilla.mozilla.org/show_bug.cgi?id=1356148

Source-Repo: https://github.com/servo/servo
Source-Revision: ea20bd6f6362191875bba7bce376c9d805588cbe
2017-04-13 08:56:03 -05:00
Bobby Holley
493d98b384 servo: Merge #16379 - Limit traversal statistics dumps to subtrees of 50 or more elements and add more values (from bholley:quieter_stats); r=SimonSapin
On Gecko, we get tons of console spam from 1-element traversals if we don't do this.

Source-Repo: https://github.com/servo/servo
Source-Revision: b51416846993f108269c0d979649c575e47a91ac
2017-04-13 01:44:12 -05:00
Bobby Holley
3487be8ea0 servo: Merge #16369 - Store style system options in the global style data and shared style context (from bholley:style_system_options); r=SimonSapin
I wanted to add an environmental variable to disable the style sharing
cache for gecko, but the current pattern involves lazy_static!, which
involves an atomic operation on lookup, which is a bit hot to do each
time we try to share styles. This makes that work happen once per
process.

Source-Repo: https://github.com/servo/servo
Source-Revision: 54ecfb155dba40382764ee20186a31f067a507be
2017-04-12 02:27:02 -05:00
Bobby Holley
0cbb6088ed servo: Merge #16358 - Fix up the style sharing cache (from bholley:style_sharing_fixes); r=emilio
Reviewed in:
https://bugzilla.mozilla.org/show_bug.cgi?id=1354895
https://bugzilla.mozilla.org/show_bug.cgi?id=1332525

Source-Repo: https://github.com/servo/servo
Source-Revision: 7ba3f1e4f3064ec3054b2346062758375b8ab117
2017-04-11 22:52:23 -05:00
Manish Goregaokar
50902f0605 servo: Merge #16316 - stylo: Make font base size computation threadsafe (from Manishearth:stylo-threadsafe); r=emilio
r=emilio https://bugzilla.mozilla.org/show_bug.cgi?id=1351200

Source-Repo: https://github.com/servo/servo
Source-Revision: d77d7529905e52c29597048422556a2416550b76
2017-04-09 06:15:51 -05:00
Cameron McCormack
1533a6fd42 servo: Merge #16309 - style: add a "for frame reconstruction" mode for restyle traversal (from heycam:restyle-reconstruct); r=bholley
This is the Servo part of https://bugzilla.mozilla.org/show_bug.cgi?id=1351535.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2f67f69e895206135012c7445a86fb07d6e3b6b5
2017-04-09 01:04:57 -05:00
Sebastian Hengst
f0d71b08b9 Backed out changeset d44f633899ce (bug 1351535) 2017-04-08 16:52:51 +02:00
Cameron McCormack
96e93dbf57 Bug 1351535 - Part 5.1: Move TraversalFlags into SharedStyleContext. r=bholley
MozReview-Commit-ID: IfLzJ9h6vKT
2017-04-08 16:36:09 +08:00
Xidorn Quan
db3cfc0fac servo: Merge #16297 - Remove servo_url dependency for geckolib (from upsuper:stylo-servo-url); r=SimonSapin
It seems mod attr is not used for geckolib at all, and that is the only place where servo_url is still referenced for geckolib, so we can just remove it.

Source-Repo: https://github.com/servo/servo
Source-Revision: 12a4cc875d44a1a516412dc4c6044e897c0c6e47
2017-04-07 04:34:47 -05:00
Bobby Holley
5c74171efd servo: Merge #16291 - Hoist possibly_expired_animations into CurrentElementInfo (from bholley:possibly_expired); r=emilio
The current mechanism requires threading a lot of this state through a bunch of
callsites that are several layers of abstraction above the code that actually
uses this vector (which is only compiled for servo). Putting it in
CurrentElementInfo gets it nicely out of the way.

Source-Repo: https://github.com/servo/servo
Source-Revision: 48a412abc7d56529770bdbe2cf0f5e6af852538e
2017-04-06 20:07:48 -05:00
Hiroyuki Ikezoe
1811871e87 servo: Merge #16147 - Update effect properties for animations (from hiikezoe:update-effect-properties); r=heycam
<!-- Please describe your changes on the following line: -->
This is a PR of https://bugzilla.mozilla.org/show_bug.cgi?id=1350754
---
<!-- 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

<!-- Either: -->
- [X] These changes do not require tests because it's for stylo

<!-- 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: 1e2b36a97a9391e274d924227a8857024dbe4774
2017-03-27 03:47:47 -07:00
Hiroyuki Ikezoe
0801d9d9b1 servo: Merge #16145 - Animation only restyles (from hiikezoe:animation-only-restyles); r=heycam
<!-- Please describe your changes on the following line: -->
This is a PR of https://bugzilla.mozilla.org/show_bug.cgi?id=1344966

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

<!-- Either: -->
- [X] These changes do not require tests because it's for stylo.

<!-- 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: d77fceaf241843d0fee246c1c910072fe041a69e
2017-03-26 21:13:44 -07:00
Simon Sapin
80dfe1b881 servo: Merge #16014 - Per-process lock for CSSOM objects (from servo:style-ref); r=emilio
<!-- Please describe your changes on the following line: -->

Before this PR, every object reflected in CSSOM is in `Arc<RwLock<_>>` to enable safe (synchronized) mutable aliasing. Acquiring all these locks has significant cost during selector matching:

* https://bugzilla.mozilla.org/show_bug.cgi?id=1311469
* https://bugzilla.mozilla.org/show_bug.cgi?id=1335941
* https://bugzilla.mozilla.org/show_bug.cgi?id=1339703

This PR introduce a mechanism to protect many objects with the same `RwLock` that only needs to be acquired once.

In Stylo, there is one such lock per process (in a `lazy_static`), used for everything.

I non-Stylo Servo, I originally intended to have one such lock per document (for author-origin stylesheets, and one per process for user-agent and user sytlesheets since they’re shared across documents, and never mutated anyway). However I failed to have the same document-specific (or pipeline-specific) `Arc` reachable from both `Document` nodes and `LayoutThread`. Recursively following callers lead me to include this `Arc` in `UnprivilegedPipelineContent`, but that needs to be serializable. So there is a second process-wide lock.

This was previously #15998, closed accidentally.

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

<!-- 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: bb54f0a429de0e8b8861f8071b6cf82f73622664
2017-03-19 14:31:19 -07:00
Emilio Cobos Álvarez
8e3c61a268 servo: Merge #15931 - style: Kill SharedStyleContext::default_computed_values (from emilio:die-defaultvalues-die); r=mbrubeck
This is on top of https://github.com/servo/servo/pull/15928.

Now that cascade() gets a Device ref, we can use the default computed values
from there to avoid propagating that state all over the place.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8c8edb8731dc01d254839d0922590fba72f278c6
2017-03-13 16:50:26 -07:00
Emilio Cobos Álvarez
6f8a92bd3e servo: Merge #15913 - Use the proper viewport size for stylo (from emilio:viewport-size); r=heycam,hiro
Reviewed upstream at [bug 1303229](https://bugzil.la/1303229).

Source-Repo: https://github.com/servo/servo
Source-Revision: 06f99c13f233bad71a42affccb10c86295ff014b
2017-03-11 04:40:31 -08:00
Emilio Cobos Álvarez
22714ca00f servo: Merge #15891 - style: Iterate the LRU cache contents from back to front (from emilio:lru-back-to-front); r=bholley,mbrubeck
This is on top of #15888. Only the second commit needs review.

We put the more recently used item last, so iterating then from left to right is
pointless.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7fa4a94bb154449702e5ae9422c3008a5195c714
2017-03-11 02:31:25 -08:00
Hiroyuki Ikezoe
bec556e4fa servo: Merge #15900 - Process css animations for gecko (from hiikezoe:process-css-animations); r=heycam
<!-- Please describe your changes on the following line: -->
This is a PR for https://bugzilla.mozilla.org/show_bug.cgi?id=1341985 .

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

<!-- 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: 63bed270734aee1956d1c1ec131aa1de9d5bb5a0
2017-03-09 20:23:21 -08:00