Commit Graph

70 Commits

Author SHA1 Message Date
Bobby Holley
45c1a1e06d Bug 1455784 - Update StyleSource to use ArcUnion. r=Manishearth
MozReview-Commit-ID: AT4sud9goGV
2018-04-25 09:23:01 -07:00
Emilio Cobos Álvarez
28fa55d616 Bug 1455032: Pack the shadow cascade order in ApplicableDeclarationBlock. r=heycam
I didn't bother not shifting there. We need to load the whole thing and shift
for at least one of cascade level / shadow cascade order.

Callers of level() other than for_rule_tree are non-existent in release builds,
so we'd be doing the shift anyway. I can implement the same thing for
shadow_cascade_order too, but I don't think that optimization is measurable in
any way, either, the compiler should make the decision.

And just in case, the simpler version actually generated less instructions in:

  https://play.rust-lang.org/?gist=ceadb0d3cbce4eeca76e4d9ab9a1c744&version=nightly

with the simple thing.

MozReview-Commit-ID: 8xPBJmlcyKh
2018-04-24 10:44:57 +02:00
Emilio Cobos Álvarez
44967dd158 Bug 1454162: Fix cascade order of !important in Shadow DOM. r=heycam
No cleaner ideas right now that carrying that counter around... Maybe a custom
type may be cleaner?

This makes ApplicableDeclarationBlock a bit bigger. I could probably try to make
the counter a 4 / 5-bit number or something and pack the counter there in the
SourceOrderAndCascadeLevel somehow...

But doesn't seem really worth the churn, and can be done as a followup in any
case. Let me know if you want to block on that.

MozReview-Commit-ID: 1LdW9S4xA6f
2018-04-18 18:27:03 +02:00
Bobby Holley
196912c9bf servo: Merge #20603 - Run rustfmt on selectors, servo_arc, and style (from bholley:rustfmt_style); r=Manishearth
Now that rustfmt is getting close to stable, and work on the style system has died down a bit, it seemed like an opportune time to auto-format the style crates.

The first commit disables import reordering, since tidy and rustfmt don't currently agree on the correct ordering. The second commit does a bunch of manual fixups such that the output of rustfmt passes tidy. The third commit runs rustfmt on the three aforementioned crate.

There are a few dozen warnings in the style crate about lines longer than 100 characters. It would be good to fix these, but I don't have time for that now.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9a900ef019cd643bff961d7b20db6da69f3edb29
2018-04-10 21:00:11 -04:00
Emilio Cobos Álvarez
5dec67e627 servo: Merge #20117 - style: Somewhat miscelaneous cleanup (from emilio:misc-cleanup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: bbfca28a4f3770896955375d01f1c489b4632fd3
2018-02-24 17:28:20 -05:00
Emilio Cobos Álvarez
d8ecdca73b servo: Merge #20010 - style: Cascade pres hints after normal user rules (from emilio:pres-hints-cascade); r=bholley
Per https://drafts.csswg.org/css-cascade/#preshint and
https://html.spec.whatwg.org/#presentational-hints.

This was causing failures in the link color reftests with the preferences sheet
as a User sheet.

Bug: 1436782
Reviewed-by: bholley
MozReview-Commit-ID: 9iwEqPBw4CF
Source-Repo: https://github.com/servo/servo
Source-Revision: 2cc75a783d1a7e2a82ef1e6502ca5a4463a3fb4b
2018-02-10 07:46:38 -05:00
janczer
365600e115 servo: Merge #19970 - Change debug assertions to specific ones (from janczer:change_debug_assertions); 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 #19962 (github issue number if applicable).

<!-- 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: 5d209a70ab11cd0ce6c7e086091112570c6e259d
2018-02-07 06:20:36 -05:00
Simon Sapin
4179ee0fb3 servo: Merge #19829 - Update Rust and use the newly-stable std::ptr::NonNull (from servo:rustup); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: c1ed4bb2d5ed6a4f9967215620d2105cda5ef76a
2018-01-22 11:11:44 -06:00
Xidorn Quan
c2b8c6ecb7 servo: Merge #19696 - Skip rule node which contains only inherited properties for rule cache (from upsuper:rule-cache-opt); r=emilio
This is one possible fix for [bug 1427681](https://bugzilla.mozilla.org/show_bug.cgi?id=1427681) which tries to skip some rule nodes when using rule cache.

Try push for correctness: https://treeherder.mozilla.org/#/jobs?repo=try&revision=74e3941e2cfc5fba4bce839f2518af8a5a8b7411

It doesn't really show much memory saving on awsy. It only shows several KB save on fresh start memory. But since conceptually it's simple, I guess it's worth taking.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6131371cc230cca45b13ef9a2622c6e602208357
2018-01-05 03:35:04 -06:00
Emilio Cobos Álvarez
6bfbb67807 servo: Merge #19199 - style: Stop allowing unused_unsafe (from emilio:no-unused-unsafe); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 40adc3fd88746d09966c5f1c43a6ff3b960c2e6d
2017-11-15 08:22:00 -06:00
Xidorn Quan
299a7a9509 servo: Merge #18987 - Remove XBL as a separate cascading level in Stylo (from upsuper:xbl-cascade); r=emilio
In Gecko, we handle XBL rules like author rules everywhere, except that XBL rules are added and sorted in an independent step, behave as if it has a separate level.

It is not clear to me why Stylo chose to add a separate level for XBL rules, but it doesn't seem that there is anything special to do with XBL rules.

This bug happens because we don't handle XBL important rules which are handled as part of author rules in Gecko due to lack of the additional level there. We should just follow what Gecko does here and handle them all the same.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 819dff79087d2c45203d97f9837dd0e07513304e
2017-10-23 01:36:07 -05:00
Boris Chiou
609caa56bc servo: Merge #18945 - stylo: Add an FFI to get the ServoStyleContext with an extra animation value (from BorisChiou:stylo/animation/cumulative_hints); r=hiro
This is an inter-dependent patch of Bug 1303235. We add an FFI
to create a temporary ServoStyleContext with the animation value.
We need this because we calculate the Cumulative change hints to check
if we can ignore this animation segment.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1303235](https://bugzilla.mozilla.org/show_bug.cgi?id=1303235).
- [X] These changes do not require tests because we have tests on Gecko side.

Source-Repo: https://github.com/servo/servo
Source-Revision: 77a47171563fdb3a38dd75f8c58909c9647cb708
2017-10-19 01:24:38 -05:00
Nicholas Nethercote
45f978e547 servo: Merge #18938 - Replace all uses of the heapsize crate with malloc_size_of (from nnethercote:bug-1409255); r=SimonSapin
Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`.
`malloc_size_of` is better -- it handles various cases that `heapsize` does not
-- so this patch changes Servo to use `malloc_size_of`.

This patch makes the following changes to the `malloc_size_of` crate.

- Adds `MallocSizeOf` trait implementations for numerous types, some built-in
  (e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`).

- Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't
  support that operation.

- For `HashSet`/`HashMap`, falls back to a computed estimate when
  `enclosing_size_of_op` isn't available.

- Adds an extern "C" `malloc_size_of` function that does the actual heap
  measurement; this is based on the same functions from the `heapsize` crate.

This patch makes the following changes elsewhere.

- Converts all the uses of `heapsize` to instead use `malloc_size_of`.

- Disables the "heapsize"/"heap_size" feature for the external crates that
  provide it.

- Removes the `HeapSizeOf` implementation from `hashglobe`.

- Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of`
  doesn't derive those types, unlike `heapsize`.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] 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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 4c538b642e4bdfbf42c522c5a59c258a6d14546e
2017-10-18 13:56:05 -05:00
Xidorn Quan
e42e59a05d servo: Merge #18843 - Remove text-shadow handling from HasAuthorSpecifiedRules (from upsuper:author-text-shadow); r=heycam
This is the Servo side change of [bug 1363088](https://bugzilla.mozilla.org/show_bug.cgi?id=1363088).

Source-Repo: https://github.com/servo/servo
Source-Revision: 5682eeff486ae4c6963cb04af1a443430b735aed
2017-10-12 03:12:26 -05:00
Xidorn Quan
202d110aa2 servo: Merge #18823 - Support pseudo-element properly in HasAuthorSpecifiedRules (from upsuper:author-pseudo); r=emilio
This is the Servo side change of [bug 1401825](https://bugzilla.mozilla.org/show_bug.cgi?id=1401825).

Source-Repo: https://github.com/servo/servo
Source-Revision: 3c6e7b56c3469d29df8f6ff3332f50e447671d91
2017-10-10 18:31:18 -05:00
Manish Goregaokar
8d9db22426 servo: Merge #18712 - stylo: use FnvHashMap everywhere, remove default HashMap construction methods (from Manishearth:fnv); r=bholley
r=bholley bug 1385971

Source-Repo: https://github.com/servo/servo
Source-Revision: 89724c6b32c6c0b7673df6d5b735e057a392f51b
2017-10-03 18:47:46 -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
Nicholas Nethercote
dac8d80bfd servo: Merge #18474 - malloc_size_of tweaks (from nnethercote:malloc_size_of-tweaks); r=jdm
<!-- Please describe your changes on the following line: -->

A couple of tweaks.
---
<!-- 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 #18473 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they are tested 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: 8ee055fdc147a7e971077c91775cc002560231df
2017-09-13 08:02:45 -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
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
Manish Goregaokar
1080df440b servo: Merge #18334 - Add fallible hashmaps from HashGlobe for stylo (from Manishearth:hashglobe); r=emilio,Gankro
HashGlobe code is r=emilio,Gankro

integration code is r=emilio from https://bugzilla.mozilla.org/show_bug.cgi?id=1393656

Source-Repo: https://github.com/servo/servo
Source-Revision: ac7cf536927a42a5cece379c53d6f39813a77d71
2017-09-01 16:09:53 -05:00
KuoE0
4c4ddf5a86 servo: Merge #18337 - Make the order of rules in DevTools be the specificity order (from kuoe0:make-the-order-of-rules-in-DevTools-be-the-specificity-order); r=emilio
We insert rules with any important declaration into rule tree twice,
one for the normal level and another for the important level. And
when we fetch them from rule tree, we skip the important one to
make the order be the specificity order.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because test cases already 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: af52f5394a259edf52a92c0f96a5d6069a1041d5
2017-09-01 04:15:21 -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
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
KuoE0
7756e6a76e servo: Merge #18099 - Make emtpy rule can be inserted into rule tree (from KuoE0:make-empty-rule-can-be-inserted-into-rule-tree); r=emilio
<!-- Please describe your changes on the following line: -->
We really want to ensure empty rule nodes appear in the rule tree for devtools, this condition ensures that if we find an empty rule node, we insert it at the normal level.

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

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because of the test cases are 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: dc654c991238305d6fc0524173c85f40d7b9e90f
2017-08-15 23:11:04 -05:00
Manish Goregaokar
bb705f540c servo: Merge #18032 - stylo: Fixes for min font size and logical properties (from Manishearth:fixes); r=heycam
r=heycam https://bugzilla.mozilla.org/show_bug.cgi?id=1388941 and https://bugzilla.mozilla.org/show_bug.cgi?id=1388943

Source-Repo: https://github.com/servo/servo
Source-Revision: d415617a5bbe65a73bd805808a7ac76f38a1861c
2017-08-10 00:04:28 -05:00
Manish Goregaokar
8ecda34549 servo: Merge #17984 - Remove style/testing feature (from Manishearth:rm-testing); r=SimonSapin
We added this because a year ago we had no reliable Gecko CI. This meant that Gecko-only properties needed to be tested *somehow*, and we solved that by making it so that for unit tests we compile all properties, not just the servo ones.

This was useful back then, but I don't think we need this anymore. We have reliable Gecko CI, and all the gecko-only stuff we tested is adequately handled by the properties-database parsing mochitests. It's a bit of annoying cruft that just complicates things; we probably should remove it.

r? @emilio or @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 32f835260cd3ea03a881f7a344a01f401c4db621
2017-08-08 07:35:29 -05:00
Hiroyuki Ikezoe
20e7bb4bd4 servo: Merge #17951 - Make replace_rules_internal return true only if important rules changed (from hiikezoe:import-rule-check); r=emilio
<!-- Please describe your changes on the following line: -->
https://bugzilla.mozilla.org/show_bug.cgi?id=1367975

---
<!-- 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: 45cba6a650d9cd75d0321dff00893b70f5ed3d75
2017-08-02 18:30:07 -05: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
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
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
ced58c5830 servo: Merge #17602 - Use GC machinery rather than recursion for post-rule-tree-teardown node dropping (from bholley:rule_tree_custom_gc); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1378005

Source-Repo: https://github.com/servo/servo
Source-Revision: 006037f79839b94ae6a2db01919976c47d1589b5
2017-07-04 13:44:52 -07:00
Bobby Holley
5b60fc75ab servo: Merge #17585 - Allow dropping rule nodes after rule tree teardown (from bholley:rule_tree_teardown); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1377010

Source-Repo: https://github.com/servo/servo
Source-Revision: 78f05bf593d98acfd8e20eb79b6aeb9a4c386b2a
2017-06-30 23:36:50 -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
Emilio Cobos Álvarez
45c80d8b6c servo: Merge #17443 - style: Don't use SmallVec::into_iter to move into another vector (from emilio:smallwat); r=SimonSapin
See bug 1374848 for why.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6b99318f552c1561392208efd9030d0b4a6f91d1
2017-06-22 00:14:38 -07:00
Ting-Yu Lin
9bd4d3191b servo: Merge #17426 - stylo: Fix has_author_specified_rules() for rules in XBL stylesheets (from aethanyc:fix-has-author-specified-rules-xbl); r=heycam
This change is reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1372062

Source-Repo: https://github.com/servo/servo
Source-Revision: a7ac9214f2b3e6c5a2b9786aebf9073ce4531bc4
2017-06-20 02:05:08 -07:00
Brian Lewis
1e0bd79a6a servo: Merge #17404 - Shrink rulenode (from zuwow:shrink-rulenode); r=bholley
This shrinks rulenode by one word by removing the Option wrapper around the StyleSource and adding None to StyleSource as an additional variant. The issue mentions shrinking by two words but the free_count one was taken care of in #17368.

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

Also tested with `./mach test-unit` and `./mach test-stylo` with no errors reported from either.

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

r? @bholley

Source-Repo: https://github.com/servo/servo
Source-Revision: d700a301d3a34c898e1b32b18595f1e9a8000ab6
2017-06-19 15:30:21 -07:00
Bobby Holley
cffad2ba1c servo: Merge #17368 - Rule tree gc never runs until teardown (from bholley:rule_tree_gc); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1373725

Source-Repo: https://github.com/servo/servo
Source-Revision: 2a856edf57dcad7e65861ffe12f5aae16db3aa9c
2017-06-16 14:13:38 -07:00
Emilio Cobos Álvarez
47b4b84682 servo: Merge #17294 - style: Less refcount churn while inserting in the rule tree (from emilio:less-refcount-churn); r=bholley
There's no need for it since we know no GC is happening while we're doing it.

Source-Repo: https://github.com/servo/servo
Source-Revision: 849bdc958c1aff230d308ecb5551aba4866dbf7a
2017-06-13 13:01:16 -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
Ting-Yu Lin
b7f5c76d1a servo: Merge #17221 - stylo: Get rules from Gecko XBL stylesheets in cascading (Bug 1290276) (from aethanyc:support-xbl-stylesheet); r=heycam
The change was reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1290276

Source-Repo: https://github.com/servo/servo
Source-Revision: 433b7bf9fab0fb4cd35bcb01670a14da903498a2
2017-06-08 00:19:27 -07:00
Xidorn Quan
040af8607b servo: Merge #17219 - Support interpolation between currentcolor and numeric color (from upsuper:currentcolor); r=Manishearth,birtles
This is the Servo side change of [bug 1345709](https://bugzilla.mozilla.org/show_bug.cgi?id=1345709).

Source-Repo: https://github.com/servo/servo
Source-Revision: 24e944ad94816e607e833e34095c4f8b8136df4c
2017-06-07 21:03:52 -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
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
Brian Birtles
45a0dfcb52 servo: Merge #17050 - Fix calculation of base styles to drop animation rules (from birtles:fix-base-styles); r=hiro
It seems that changeset 97ce9ed5b08f7b1c7c6cd71a9499068b8bd2ae4e mistakenly changed the check that a cascade level to keep is *not* an animation level to a check that it *is* an animation level.

This patch has been reviewed by @hiikezoe in [Mozilla bug 1367960](https://bugzilla.mozilla.org/show_bug.cgi?id=1367960).

Source-Repo: https://github.com/servo/servo
Source-Revision: 531fd12e132ecc4c092080267ea6fbc35d94c69f
2017-05-26 07:34:16 -05:00
J. Ryan Stinnett
6ae7120459 servo: Merge #17032 - Stylo: visited pseudo-class support (from jryans:stylo-visited); r=emilio
Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1328509

Source-Repo: https://github.com/servo/servo
Source-Revision: 1f323f8848e47b01779de5145dd21d0f74ed16ca
2017-05-24 19:53:48 -05:00
Manish Goregaokar
84fb90b55e servo: Merge #17027 - Rollup of 9 pull requests (from Manishearth:rollup); r=Manishearth
- Successful merges: #16993, #17000, #17010, #17013, #17014, #17017, #17019, #17020, #17022
- Failed merges:

Source-Repo: https://github.com/servo/servo
Source-Revision: 8ae546f7ea158466441987d4a86c5c440f0a5e00
2017-05-24 16:08:02 -05:00
Emilio Cobos Álvarez
5ce3091ade servo: Merge #16974 - style: Minor cleanups in the rule tree code (from emilio:rule-tree-cleanup); r=heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: df9286d67c51f7598862a275ebcf874eb83ec151
2017-05-24 07:12:25 -05:00
Boris Chiou
9e3402f2f3 servo: Merge #16963 - stylo: Bug 1334036 - Enable animations running on compositor (from BorisChiou:stylo/animation/omta); r=emilio
These are interdependent patches of Bug 1334036, which enables off-main thread animations. We add one FFI to get the property id set which overriding animations, so we can make sure the cascade result is correct for off-main thread animations.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1334036](https://bugzilla.mozilla.org/show_bug.cgi?id=1334036)
- [X] These changes do not require tests because we support off-main thread animation only on Gecko, and there are enough test cases there.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5a012cc9b15890fe8ad132e941d8f896b405472c
2017-05-20 07:24:21 -05:00