Commit Graph

1286 Commits

Author SHA1 Message Date
Boris Zbarsky
1f3dc4442d servo: Merge #16637 - Fix Stylist::lazily_compute_pseudo_element_style to return None when it should (from bzbarsky:probing-lazy-pseudos); r=emilio
We have a fast path to return None if we have no rules for the pseudo-element at
all, but we should also return None if we have no _matching_ rules for it for
the given originating element.  This is relied on by consumers like
Servo_ResolvePseudoStyle, which needs to be able to detect the "no styles for
this pseudo-element for this originating element case", to support probing for
whether work for a specific pseudo-element should be done at all.

<!-- 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
- [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: 04aac0247aea29e361589a75954b4f769478dd02
2017-04-27 18:31:20 -05:00
Bobby Holley
a89156523b servo: Merge #16635 - Too many revalidation selectors (from bholley:too_many_revalidation_selectors); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1358693

Source-Repo: https://github.com/servo/servo
Source-Revision: 2c445169ad7ccf0e4b2be8f1eee2e198c54ee666
2017-04-27 13:14:01 -05:00
J. Ryan Stinnett
2f33cd2039 servo: Merge #16634 - Stylo: Text combine upright style adjustment (from jryans:text-combine-upright-fixup); r=heycam
Ports the text-combine-upright writing mode adjustment to Servo.

Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1359603.

Source-Repo: https://github.com/servo/servo
Source-Revision: ab3f5b0d9f72d32d500170eaf5e45f2708081dc3
2017-04-27 11:42:43 -05:00
Anthony Ramine
764b5238e9 servo: Merge #16628 - Parse interpolation hints (fixes #15166) (from nox:INTERPOL); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: f598adc3ad6f25ce684127ce2335e783ff49e00a
2017-04-27 10:41:04 -05:00
Jeremy Chen
f38ec5f828 servo: Merge #16624 - stylo: Make border-spacing animatable (from chenpighead:stylo-make-border-spacing-animatable); r=boris
Two things are included in this patch:

1. Implement ComputeDistance for border-spacing, so we could get the right
distance while doing animations.

2. Implement clone function for gecko glue code of border-spacing, so we
could make animations of border-spacing work properly in stylo build.

Gecko side patch: Bug 1354437

<!-- 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
- [ ] 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: a6c3bc6a4960186c06160c6bafc0c134bfef5234
2017-04-27 09:33:20 -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
Brian Birtles
874612788b servo: Merge #16625 - SMIL support for Gecko (from birtles:smil-support); r=hiro,heycam
PR for [Gecko bug 1355348](https://bugzilla.mozilla.org/show_bug.cgi?id=1355348)

---
- [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 they are tested on the Gecko side

Source-Repo: https://github.com/servo/servo
Source-Revision: 8824a68063aa4f3ca87454468f382e4d2be66487
2017-04-27 00:48:21 -05:00
Boris Chiou
ebcfce5b9f servo: Merge #16626 - Implement frames timing function (from BorisChiou:animation/timing_function/frames); r=emilio
A frames timing function is a type of timing function that divides the input time into a specified number of intervals of equal length, each of which is associated with an output progress value of increasing value.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #15740.
- [X] There are tests for these changes, and web-platform-tests/css-timing-1 also provides tests.

Source-Repo: https://github.com/servo/servo
Source-Revision: 15cf1acc720197b80ff1ad97ea5ddc495f5744fd
2017-04-26 23:31:17 -05:00
cku
0c4f6e5faf servo: Merge #16620 - Bug 1341703 - Support border-image with url() (from CJKu:bug-1341703); r=heycam,manishearth
Bug 1341703 - Support border-image with url()

<!-- Please describe your changes on the following line: -->
Gecko 1341703 should be land immediately after this PR been merged.

---
<!-- 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: 18c72ac28d2caeae52d0da9eca60ec2b1bf7f169
2017-04-26 12:39:57 -05:00
Boris Chiou
00e88f937b servo: Merge #16614 - stylo: Bug 1357357 - Make the parser of transition-property match the spec (from BorisChiou:stylo/transition/transition_property); r=emilio
These are interdependent patches of Bug 1357357. We add one more arm, TransitionProperty::Unsupported, which stores the string of non-animatable, custom, or unrecognized property, so we can parse these kinds of properties and serialize them correctly. This is necessary because we need to start transitions even though some transition-properties are non-animatable, custom, or unrecognized.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 8f1356de60d0f0b1571b0e84b929ba7d8054177f
2017-04-26 09:33:08 -05:00
Brian Birtles
c62c31cdbc servo: Merge #16613 - Clear animation-only dirty descendants bit on display:none descendants (from birtles:clear-animation-dirty-bit); r=hiikezoe
PR for [Gecko bug 1359658](https://bugzilla.mozilla.org/show_bug.cgi?id=1359658)

When an element has a display:none ancestor we don't traverse it during
restyle. However, at the end of restyling we expect the tree to be free
of dirty bits. We currently take special care to clear the regular
(non-animation) dirty bit on nodes in display:none subtrees in order to
preserve this invariant. This patch applies the same handling to the
animation-only dirty descendants bit.

---
- [X] `./mach build -d` just keeps crashing because mozjs calls sed.exe in a way that breaks it
- [X] `./mach test-tidy` does not report any errors
- [X] There are tests for these changes on the Gecko side

Source-Repo: https://github.com/servo/servo
Source-Revision: e5762cb6953b5e202e8733e39e8267c4b67a9622
2017-04-26 01:47:00 -05:00
Simon Sapin
d54f7055a7 servo: Merge #16455 - Bug 1354970 - Add @counter-style rules (from servo:counter-style); r=upsuper
Source-Repo: https://github.com/servo/servo
Source-Revision: 2eff661ebb2737979b80367ada3ac99d73a06fc4
2017-04-26 00:59:58 -05:00
Manish Goregaokar
567f9dba51 servo: Merge #16611 - stylo: Add support for -moz-control-character-visibility (from Manishearth:stylo-controlchar); r=heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: 5daf92dd5a33599fab399ce7432fb62a6aa4e554
2017-04-25 21:31:14 -05:00
Emilio Cobos Álvarez
191c3f7dbc servo: Merge #16608 - style: Move all the fixup code into a StyleAdjuster struct (from emilio:refactor-fixup); r=jryans
This will allow reusing it from text styles, which we need for some corner
cases, like text-align: -moz-center and similar stuff.

Source-Repo: https://github.com/servo/servo
Source-Revision: 09f0ff74811405eb95200ee78d936b4378de65fb
2017-04-25 20:31:00 -05:00
Manish Goregaokar
92f1295fbe servo: Merge #16597 - stylo: support all overflow values (from Manishearth:stylo-overflow); r=emilio
overflow:clip doesn't exist, it's just called clip internally. Renamed, and added the other missing values.

I also removed the overflow newtype -- no need for extra code bloat, and it's not protecting us from much.

Source-Repo: https://github.com/servo/servo
Source-Revision: cd8af862446ed8e4787d36d5de5d4dc254339a5e
2017-04-25 15:59:13 -05:00
Manish Goregaokar
d89e4e5eff servo: Merge #16570 - Compute scriptminsize against the parent font base size (from Manishearth:scriptmin-parent); r=heycam
It's supposed to be, because it is used in the computation of the font size, so we can't have the current font size as a dependency.

http://searchfox.org/mozilla-central/rev/7aa21f3b531ddee90a353215bd86e97d6974e25b/layout/style/nsRuleNode.cpp#3842

Source-Repo: https://github.com/servo/servo
Source-Revision: 7aeed78eef0a082a8cc2314c421eb27ff6539bc3
2017-04-25 13:06:23 -05:00
Ravi Shankar
9942f7a4d0 servo: Merge #16444 - Cleanup various modules and introduce generic types (from Wafflespeanut:generics); r=emilio
Almost all the types in `values/specified` and `values/computed` share their `ToCss` implementations. The only reason they have duplicated code hanging around is a result of different specified and computed forms for types like `LengthOrPercentage`. This PR makes some of these types *generic* so that we could have a common definition and `ToCss` impl (`Parse` and `ToComputedValue` impls too, if possible).

Source-Repo: https://github.com/servo/servo
Source-Revision: 3c7c960e116200010ea4120741e520bea9c6cfd9
2017-04-25 07:29:33 -05:00
Manish Goregaokar
4f074ba671 servo: Merge #16596 - Handle length parsing mode for other types too (from Manishearth:length-parsing); r=heycam
All length types should handle this. Seems to block a couple tests.

try at https://treeherder.mozilla.org/#/jobs?repo=try&revision=b1eb64509e65f9dc548d361ac2ae00ce000c9d7b

Source-Repo: https://github.com/servo/servo
Source-Revision: fffb94530e6dcdfa021e1d86778ada4c7af2fbb9
2017-04-24 22:03:12 -05:00
Jeremy Chen
d88914f519 servo: Merge #16586 - Stylo: add -moz-border-*-colors support (from chenpighead:stylo-moz-border-colors-support); r=heycam
In Gecko, we use double pointers to nsBorderColors to store -moz-border-*-colors.
We can simplify the implementation of computed value in Servo by using Option<Vec>.
As to passing computed values from Servo to Gecko, we might need to use some
binding functions (pre-added in the same Gecko bug, see Bug 1348173).

Note that we also added -moz-border-*-colors as sub_properties of the 'border'
shorthand, so we can make the 'border' shorthand reset -moz-border-*-colors
(See Gecko Bug 482692).

A bit refactoring of replacing all ["top", "right", "bottom", "left"] with PHYSICAL_SIDES
is included in this patch, since we've already had PHYSICAL_SIDES for a while.

<!-- 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
- [ ] 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: ef5c61e8338ca550b970f9de20e014c3b4165bd5
2017-04-24 21:03:52 -05:00
Simon Sapin
dd054e342a servo: Merge #16589 - Update to cssparser 0.13 (from servo:cssparserup); r=emilio
https://github.com/servo/rust-cssparser/pull/140

Source-Repo: https://github.com/servo/servo
Source-Revision: e3e10ada09cf98df776d560d363fa70fcabfb64f
2017-04-24 18:47:00 -05:00
Emilio Cobos Álvarez
3466b18c66 servo: Merge #16595 - stylo: Fix a serialization bug for string pseudos (from emilio:strings-are-hard); r=Manishearth
The string is null-terminated, so we need to avoid passing that last null
character.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8efa680774209bfe557d270795b2dfe0daa51751
2017-04-24 12:34:08 -05:00
Hiroyuki Ikezoe
98af515079 servo: Merge #16587 - Introduce intermediate rgba (from hiikezoe:intermediate-rgba); r=birtles,boris
<!-- Please describe your changes on the following line: -->
This is a PR for https://bugzilla.mozilla.org/show_bug.cgi?id=1356941
---
<!-- 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.

Source-Repo: https://github.com/servo/servo
Source-Revision: 46bb635c4c1eb9e420392d7a761956c1cc10ce3a
2017-04-24 07:22:39 -05:00
Simon Sapin
f0fa06207c servo: Merge #16585 - Don’t log CSS parsing errors in user-agent stylesheets (from servo:log); r=emilio
This used to make `RUST_LOG=style` basically useless.

Source-Repo: https://github.com/servo/servo
Source-Revision: fd7af58becbcee8facfc07c5f9d028bb9c86c3a0
2017-04-24 05:05:51 -05:00
石博文
daa9b1e497 servo: Merge #16541 - Add calc method for CalcLengthOrPercentage (from sbwtw:fix_calc_behavior); r=stshine
* Add calc method to calculate formula value with parent size
* Add unit test case

<!-- Please describe your changes on the following line: -->
Please see this issue: https://github.com/servo/servo/issues/15986

---
<!-- 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 #15986 (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: 418c3e8cc74b561c9c704da4dfdfb74681bf42a1
2017-04-24 04:16:18 -05:00
Hiroyuki Ikezoe
fbb90ba886 servo: Merge #16580 - Fix parent element of pseudo element for updating animation (from hiikezoe:fix-pseudo-parent-for-animation); r=emilio
r? @emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 733820583e41778b8e30faa4ba120ab0b0390073
2017-04-23 21:41:24 -05:00
Mantaroh Yoshinaga
7611817fea servo: Merge #16555 - Make clip property animatable (from mantaroh:animate_clip); r=hiro
<!-- Please describe your changes on the following line: -->
This is a PR for https://bugzilla.mozilla.org/show_bug.cgi?id=1356162.
---
<!-- 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] There are tests for these changes, a test case will be landed in web-platform-tests in https://bugzilla.mozilla.org/show_bug.cgi?id=1356162
<!-- 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: e357ea44bb5bfe657646bcfd19d9585fffb22401
2017-04-23 18:59:20 -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
Emilio Cobos Álvarez
1f00d273ac servo: Merge #16577 - style: Refactor overflow fixup to account for overflow: clip (from emilio:adjust-overflow); r=Wafflespeanut
This is the missing piece to make the remaining contain tests not assert on
Gecko.

Source-Repo: https://github.com/servo/servo
Source-Revision: c65dea95d7f8c8cfc1d88ca245d55d47128ab59a
2017-04-23 06:33:08 -05:00
Emilio Cobos Álvarez
3981e751b2 servo: Merge #16575 - style: trivially cleanup the matching code (from emilio:cleanup-matching); r=Wafflespeanut
I'm reworking this, and found this cleanup that I think is worth to land.

Source-Repo: https://github.com/servo/servo
Source-Revision: dfe0f4c2019001a204b0d6ef91fe10a358e20ce7
2017-04-23 04:55:34 -05:00
Jeremy Chen
4dbfe50c7a servo: Merge #16522 - Reset longhands of border-image to their initial value while parsing border shorthand (from chenpighead:stylo-border-reset-border-image); r=heycam
To do so, we need to declare the border-image longhands as part of border
shorthand and always reset them.

Spec link: https://drafts.csswg.org/css-backgrounds-3/#the-border-shorthands

<!-- 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 #15202  (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: 33c6abb1a8a908e848e5aab77bd9c2a94647b74c
2017-04-23 02:51:47 -05:00
Nathan Froyd
497fd67fed servo: Merge #16550 - switch gecko_bindings over to the gecko_debug feature [DO NOT MERGE] (from froydnj:gecko-bindings-gecko-debug); r=froydnj
...so that they use the correct Gecko structs regardless of whether Rust
code is being compiled with debug assertions or not.

This is the second part of the Servo-side changes for https://bugzilla.mozilla.org/show_bug.cgi?id=1357556

- [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 building is a sufficient test.

Source-Repo: https://github.com/servo/servo
Source-Revision: f795eb1a8b7443ea9dc1cf1c81a6ac0484894659
2017-04-22 18:40:47 -05:00
Nazım Can Altınova
607e3e1da5 servo: Merge #16467 - stylo: Add glue for contain property (from canaltinova:contain); r=emilio
In gecko, `size` and `content` values aren't implemented yet. So I had to disable these parts with mako. We will need to update the property and the glue once these are implemented in gecko.

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

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so tha
t 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: 7ff803e322a4488eb6b7f813b5f4f82abc49c6c1
2017-04-22 16:58:24 -05:00
Anthony Ramine
189b8b939b servo: Merge #16563 - Use all for the default value of transition-property in transition (from nox:transition); r=hiikezoe
Source-Repo: https://github.com/servo/servo
Source-Revision: 55e2caba4c3b71c6267c273c840cd21dd1388aa0
2017-04-22 07:24:25 -05:00
Bobby Holley
926227eb54 servo: Merge #16567 - Avoid pointer-chasing to check whether there are any declarations (from bholley:any_declarations); r=SimonSapin
https://bugzilla.mozilla.org/show_bug.cgi?id=1358375

Source-Repo: https://github.com/servo/servo
Source-Revision: 2d3a7b2001ae2cef2fa751a65faba1091eff1a48
2017-04-21 19:30:48 -05:00
Manish Goregaokar
10162ab1a2 servo: Merge #16564 - stylo: Support system fonts (from Manishearth:stylo-sys-2); r=xidorn
r=xidorn https://bugzilla.mozilla.org/show_bug.cgi?id=1349417

(take 2, we backed out the last one due to heap hazards)

Source-Repo: https://github.com/servo/servo
Source-Revision: 97c14f05df33fe4ce118f51bb23abf39000b4217
2017-04-21 17:03:28 -05:00
Anthony Ramine
f4fc4462c3 servo: Merge #16548 - Improve parsing of gradients (from nox:webkit-gradients); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: dcbb3c7eb98e88df9e6a3849eaee96094ee6abbe
2017-04-21 14:40:02 -05:00
Anthony Ramine
f6030c945d servo: Merge #16558 - Properly parse alignment shorthands (fixes #16391) (from nox:placement); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: e9658bb5b4ab4897a015714201d76ebff6a8f7d9
2017-04-21 14:03:43 -05:00
Hiroyuki Ikezoe
eeafbe5263 servo: Merge #16557 - Servo does not need to support -moz-keyframes (from hiikezoe:dont-support-moz-keyframes); r=SimonSapin
<!-- Please describe your changes on the following line: -->
In #16553 I did innocently add a support for @-moz-keyframes but as @SimonSapin pointed out, servo does not need to support -moz prefix one.
Whereas, I think servo should support @-webkit-keyframes since it is described in web
compatibility [1].

[1] https://compat.spec.whatwg.org/#css-at-rules

---
<!-- 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: f51170a2a10691a1ad0b5da1b0c6e14e5186b8ba
2017-04-21 05:14:50 -05:00
Boris Chiou
3055026a96 servo: Merge #16554 - stylo: Bug 1332633 - Implement ComputeDistance trait (from BorisChiou:stylo/animation/compute_distance); r=emilio
These patches implement ComputeDistance trait, so we can use it for SMIL animation and for testing test_transitions_per_property.html, which uses nsDOMWindowUtils::ComputeAnimationDistance() to get the the distance between two AnimationValues.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix Bug 1332633.
- [X] These changes do not require tests because we have test cases in Gecko. (If Servo wants to use this feature, we can add more tests in Servo in the future.)

Source-Repo: https://github.com/servo/servo
Source-Revision: 350d9c6c47fe1f20ebbd911f7675c23bcaa9ba2f
2017-04-21 00:52:13 -05:00
Hiroyuki Ikezoe
9d329803d6 servo: Merge #16553 - Support vendor prefix keyframes rule (from hiikezoe:vendor-prefix-keyframes); r=emilio
If there are multiple prefixed/non-prefixed @keyframes with the same name;

* non-prefixed rule overrides earlier rules.
* prefixed rule overrides earlier prefixed rules.

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

This is PR of https://bugzilla.mozilla.org/show_bug.cgi?id=1356779

---
<!-- 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: 85aba7ab14c64e16836c234158748d0cd7f435fd
2017-04-21 00:17:06 -05:00
Bobby Holley
d7e9eaf5d6 servo: Merge #16549 - store simple selectors and combinators inline (from bholley:inline_selectors); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1357973

Source-Repo: https://github.com/servo/servo
Source-Revision: f44e3cdae29a9847e1e212a55490285a11b3ba5c
2017-04-20 17:05:31 -05:00
Nathan Froyd
8eaf291231 servo: Merge #16545 - add the gecko_debug feature (from froydnj:moz-debug-feature); r=emilio
add the moz_debug feature

debug_assertions is not a reliable guide to whether Gecko C++ code is
being compiled with debugging assertions, since we can now compile Gecko
with --enable-optimize --disable-debug --enable-rust-debug: Gecko will
be compiled without debugging assertions (and debugging struct layouts)
and Rust code will be compiled with debug_assertions.  The struct
mismatches in the binding layer lead to startup crashes.

This feature is not presently used, but will be set by some Gecko-side
changes and then used by some Servo-side changes.  These changes need to
be made first so that CI on both sides works correctly at all
intermediate stages along the way.

This is in service of https://bugzilla.mozilla.org/show_bug.cgi?id=1357556

<!-- 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: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because no code is being changed

Source-Repo: https://github.com/servo/servo
Source-Revision: 93fa0ae1e3bcfe9e70a6fea91d137f20d8b5f790
2017-04-20 15:14:25 -05:00
Anthony Ramine
e6de560706 servo: Merge #16513 - Properly parse background-size in background longhand (fixes #15199) (from nox:background-slash-size); r=upsuper
Source-Repo: https://github.com/servo/servo
Source-Revision: 26fd65995dcaa543437ccfddb0f2693b6505e9f0
2017-04-20 05:19:37 -05:00
Anthony Ramine
90388b8db7 servo: Merge #16511 - Implement -webkit-radial-gradient() (fixes #15441) (from nox:webkit-gradients); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 7f825d2119a480a64b103e1d60a2d469af98d3de
2017-04-20 04:27:33 -05:00
Manish Goregaokar
aa776fec4a servo: Merge #16539 - stylo: Properly support -moz-script-size-multiplier, -moz-script-level, and -moz-script-min-size (from Manishearth:stylo-scriptminsize); r=heycam
r=heycam https://bugzilla.mozilla.org/show_bug.cgi?id=1355427

(copying over the relevant commit message so that it doesn't get lost in the vcssync)

scriptlevel is a property that affects how font-size is inherited. If scriptlevel is
+1, for example, it will inherit as the script size multiplier times
the parent font. This does not affect cases where the font-size is
explicitly set.

However, this transformation is not allowed to reduce the size below
scriptminsize. If this inheritance will reduce it to below
scriptminsize, it will be set to scriptminsize or the parent size,
whichever is smaller (the parent size could be smaller than the min size
because it was explicitly specified).

Now, within a node that has inherited a font-size which was
crossing scriptminsize once the scriptlevel was applied, a negative
scriptlevel may be used to increase the size again.

This should work, however if we have already been capped by the
scriptminsize multiple times, this can lead to a jump in the size.

For example, if we have text of the form:

huge large medium small tiny reallytiny tiny small medium huge

which is represented by progressive nesting and scriptlevel values of
+1 till the center after which the scriptlevel is -1, the "tiny"s should
be the same size, as should be the "small"s and "medium"s, etc.

However, if scriptminsize kicked it at around "medium", then
medium/tiny/reallytiny will all be the same size (the min size).
A -1 scriptlevel change after this will increase the min size by the
multiplier, making the second tiny larger than medium.

Instead, we wish for the second "tiny" to still be capped by the script
level, and when we reach the second "large", it should be the same size
as the original one.

We do this by cascading two separate font sizes. The font size (mSize)
is the actual displayed font size. The unconstrained font size
(mScriptUnconstrainedSize) is the font size in the situation where
scriptminsize never applied.

We calculate the proposed inherited font size based on scriptlevel and
the parent unconstrained size, instead of using the parent font size.
This is stored in the node's unconstrained size and will also be stored
in the font size provided that it is above the min size.

All of this only applies when inheriting. When the font size is
manually set, scriptminsize does not apply, and both the real and
unconstrained size are set to the explicit value. However, if the font
size is manually set to an em or percent unit, the unconstrained size
will be set to the value of that unit computed against the parent
unconstrained size, whereas the font size will be set computing against
the parent font size.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7919e591a46274c0d7f3a7c7c99d2643d55d60f1
2017-04-20 00:20:41 -05:00
KuoE0
48a578b01a servo: Merge #16537 - Add inline-axis and block-axis aliases for -moz-box-orient (from KuoE0:add-inline-axis-and-block-axis-for-moz-box-orient); r=KuoE0
<!-- Please describe your changes on the following line: -->

This issue is reported at https://bugzilla.mozilla.org/show_bug.cgi?id=1355005.

spec: https://developer.mozilla.org/en-US/docs/Web/CSS/box-orient

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

<!-- Either: -->
- [X] These changes do not require tests 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: f74f1fb59233c3f366cec4ace5df37c0264786be
2017-04-19 23:19:48 -05:00
Boris Chiou
2bb33dacc9 servo: Merge #16536 - stylo: Change the animation_type of column-count to normal (from BorisChiou:stylo/animation/column_count); r=Manishearth
According to PR #16494, column-count should be animatable, so we should change the animation_type to "normal".

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix Bug 1355732 and PR #16494.
- [X] These changes do not require tests because we have tests in gecko already.

Source-Repo: https://github.com/servo/servo
Source-Revision: ac92bddbf5e4a8e2f68fc57883244f9c4a35d466
2017-04-19 22:44:42 -05:00
Nazım Can Altınova
2c5d5a5fbb servo: Merge #16231 - stylo: Implement -moz-transform property (from canaltinova:moz-transform); r=Manishearth
-moz-transform property is an alias shorthand property. It has transform as sub-property but their parsing is different in some cases(matrix/matrix3d). -moz-transform also accepts LengthOrPercentage in the nondiagonal homogeneous components of matrix and matrix3d.

It looks like length and percentage values are getting computed to number directly. For example 120px converts into 120 and calc(120px + 20%) converts into 140. So I did like this. But we need to check this behavior again to be sure, I guess.

Also I spent half day investigating why matrices are not serializing after this change and found out their ToCss functions is not completely implemented yet 😄 I was going to implement them but there is an easy issue about it(#15194) so I left it that way. Probably all tests won't pass without it.

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

<!-- 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: b8b4ec92df9729f8d07ff1d2b6e3e3474a978b6c
2017-04-19 17:37:07 -05:00
Boris Chiou
346f33b5a8 servo: Merge #16527 - stylo: Bug 1353628 - Support shorthand properties for CSS Transition (from BorisChiou:stylo/transition/shorthands); r=emilio
These patches add shorthand properties into TransitionProperty, so we can parse the shorthand properties properly and create transitions for them.

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 355d5f89da8fef0e8a2aaa94c45c2ff209e5ddae
2017-04-19 07:35:09 -05:00
Boris Chiou
457f8e57f6 servo: Merge #16526 - stylo: Bug 1357671 - Make animation_type of logical properties be None (from BorisChiou:stylo/animation/logical_type); r=emilio
Logical properties will be animatable (with discrete type), but for now, it is still non-animatable, so we assign "None" to the animation_type.

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix Bug 1357671
- [X] These changes do not require tests because this is for code gen. If there is any problem, we will get compilation errors.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5062c4b117dcd99df8ad46dae1b2dd4e6f1f0691
2017-04-19 05:29:48 -05:00