Commit graph

5048 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
cdbb5b56aa
style: Convert the visited dependentness of a dependency in a binary enum. 2017-09-05 19:43:52 +02:00
Emilio Cobos Álvarez
cc31397a2e
style: Don't waste a whole selector map for each class / id in the document.
It's just useless.
2017-09-05 19:43:51 +02:00
Nicholas Nethercote
d880efcab3
Measure the stylist during memory reporting. 2017-09-05 19:43:50 +02:00
bors-servo
f648e12935 Auto merge of #18365 - chenpighead:stylo-keyframe-location, r=upsuper,emilio
stylo: Store location information for keyframe rules.

So far, we only store location info for the whole Keyframes block, not for each
of the keyframe rule. Without this info, the devtool can't present the rules
on the devtool panel properly.

In this patch, we collect the source location info while parsing keyframe selector.
The binding function, Servo_KeyframesRule_GetKeyframe, is also fixed (and renamed
to Servo_KeyframesRule_GetKeyframeAt to match the fix) to accept line and column
parameters from Gecko, so we can pass/set them with the source location from Servo.

This is the servo part of [Bug 1394994](https://bugzilla.mozilla.org/show_bug.cgi?id=1394994).

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18365)
<!-- Reviewable:end -->
2017-09-05 11:22:20 -05:00
bors-servo
34e0805b12 Auto merge of #18363 - paulrouget:fix_style_build, r=SimonSapin
use cargo manifest path to find build.py

Without this, build.py can't be found when servo is built as a dependency.

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18363)
<!-- Reviewable:end -->
2017-09-05 09:22:28 -05:00
Paul Rouget
cd13888a1b use cargo manifest path to find build.py script 2017-09-05 09:31:37 +02:00
Daisuke Akatsuka
3ed71c4283 Make font-variation-settings animatable 2017-09-05 16:12:47 +09:00
Daisuke Akatsuka
653bced7a5 Implement Animate for FontSettings 2017-09-05 16:12:20 +09:00
Daisuke Akatsuka
951662848f Implement clone_font_variation_settings method 2017-09-05 15:56:15 +09:00
bors-servo
e97f28e2a6 Auto merge of #18367 - aethanyc:media-change-xbl-stylset, r=emilio
style: Expose stylist::set_device() for gecko

This was reviewed in bug https://bugzilla.mozilla.org/show_bug.cgi?id=1382078

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18367)
<!-- Reviewable:end -->
2017-09-04 15:19:06 -05:00
bors-servo
c60dd53210 Auto merge of #18355 - servo:no-fmt, r=emilio
Reduce usage of fmt in serialization and error reporting

`format!` and `write!` create a somewhat-heavyweight `Formatting` struct and use dynamic dispatch to call into impls of `Dispaly` and related traits. The former also allocates an intermediate string that is sometimes unnecessary.

I started looking into this from https://bugzilla.mozilla.org/show_bug.cgi?id=1355599, but I expect the impact there will be small to insignificant. It might be a slightly less so on parsing (error reporting).

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18355)
<!-- Reviewable:end -->
2017-09-04 13:14:44 -05:00
Simon Sapin
5d06c9959f Replace some more uses of write! in components/style 2017-09-04 19:01:43 +02:00
Jeremy Chen
28d48242d3 stylo: Store location information for keyframe rules.
So far, we only store location info for the whole Keyframes block, not for each
of the keyframe rule. Without this info, the devtool can't present the rules
on the devtool panel properly.

In this patch, we collect the source location info while parsing keyframe selector.
The binding function, Servo_KeyframesRule_GetKeyframe, is also fixed (and renamed
to Servo_KeyframesRule_GetKeyframeAt to match the fix) to accept line and column
parameters from Gecko, so we can pass/set them with the source location from Servo.
2017-09-04 23:16:43 +08:00
Ting-Yu Lin
4b096486e7 style: Expose stylist::set_device() for gecko
MozReview-Commit-ID: L655tvOwyKH
2017-09-04 21:07:15 +08:00
Emilio Cobos Álvarez
b81f6b3286
style: Avoid unnecessarily using Borrow. 2017-09-04 13:23:56 +02:00
Emilio Cobos Álvarez
2d1b387a4c
style: Avoid dropping the other threads' TLS contexts too early.
When collecting style statistics, we have this path that moves the TLS contexts
to be dropped before the local context.

Since destroying the TLS context runs the sequential task queue, that means that
sequential tasks would be executed sooner than usual, before we drop the main
thread TLS context.

Since we have that reuse of the main thread context's bloom filter, and some
tasks end up creating one (Servo_StyleSet_GetBaseComputedValuesForElement, I'm
looking at you), we may borrow the bloom filter before we're done with it on the
traversal code path.

This was hitting on YouTube, when DUMP_STYLE_STATISTICS was used.
2017-09-04 13:17:45 +02:00
Emilio Cobos Álvarez
862f3b4369
style: Move color to use predefined_type.
I want to play with autogenerating style structs, and color is the smallest
struct out there.

However, moving it out of the mako file is a requirement. This patch does that.
2017-09-04 11:43:50 +02:00
Mantaroh Yoshinaga
d37b5c3553 Don't allow interpolating SVGPaintKind::None.
PR #18103 disallowed interpolation between fill:none and fill:none, but that change was regressed by the refactoring in PR #18239.
This patch restores the intended behavior, disabling animation of SVGPaintKind::None.
2017-09-04 16:33:40 +09:00
Xidorn Quan
42411eba66 Update binding files from autoland 2017-09-04 11:37:46 +10:00
Simon Sapin
e94d8d5bc1 Remove usage of write! in components/style/properties/longhand/box.mako.rs 2017-09-02 18:37:57 +02:00
bors-servo
f36580cb91 Auto merge of #18349 - canaltinova:media-calc, r=emilio
stylo: Remove calc support from media queries

Gecko currently doesn't support calc inside media queries. We should
also remove the calc support temporarily for parity with gecko. We can
add this support back in next releases.

Reviewed by emilio in Bugzilla.

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18349)
<!-- Reviewable:end -->
2017-09-02 09:37:11 -05:00
Simon Sapin
3a34b21b63 Reformat another match expression 2017-09-02 10:57:21 +02:00
Simon Sapin
38043a71de Remove some uses of write! in components/style 2017-09-02 10:27:17 +02:00
Simon Sapin
17aa04b712 Remove uses of format! in components/style/error_reporting.rs 2017-09-02 10:15:36 +02:00
Simon Sapin
f6d20e6461 Reformat a couple match expressions 2017-09-02 10:15:35 +02:00
bors-servo
e0e09538fa Auto merge of #18350 - emilio:ship-system-metric-stuff, r=bholley,manishearth
stylo: Expose -moz-system-metric and -moz-empty-except-children-with-localname

They don't have the flag in Gecko.

Though I wonder if we could unship them from non-UA sheets.

Bug: 1396048
Reviewed-by: bholley
MozReview-Commit-ID: LGzGDjCZpJC

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18350)
<!-- Reviewable:end -->
2017-09-02 02:49:29 -05:00
bors-servo
60daf54352 Auto merge of #18335 - Manishearth:stylo-calc-anim, r=birtles
stylo: Compute font-size calcs against appropriate base size

r=birtles https://bugzilla.mozilla.org/show_bug.cgi?id=1394302

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18335)
<!-- Reviewable:end -->
2017-09-01 19:17:03 -05:00
bors-servo
f2e5b49926 Auto merge of #18336 - upsuper:two-stage-at-rule, r=SimonSapin
Parse at-rule without block in two stages

This is the Servo side change necessary for servo/rust-cssparser#180.

----

This also pulls in other changes from cssparser 0.20.0.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18336)
<!-- Reviewable:end -->
2017-09-01 17:56:57 -05:00
bors-servo
ac7cf53692 Auto merge of #18334 - Manishearth:hashglobe, r=emilio,Gankro
Add fallible hashmaps from HashGlobe for stylo

HashGlobe code is r=emilio,Gankro

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18334)
<!-- Reviewable:end -->
2017-09-01 16:09:53 -05:00
Nazım Can Altınova
7ba0667ed9 Remove calc support from media queries
Gecko currently doesn't support calc inside media queries. We should
also remove the calc support temporarily for parity with gecko. We can
add this support back in next releases.
2017-09-01 13:22:18 -07:00
Emilio Cobos Álvarez
480314a26e
stylo: Expose -moz-system-metric and -moz-empty-except-children-with-localname.
They don't have the flag in Gecko.

Though I wonder if we could unship them from non-UA sheets.

Bug: 1396048
Reviewed-by: bholley
MozReview-Commit-ID: LGzGDjCZpJC
2017-09-01 21:42:53 +02:00
bors-servo
d8598b5abf Auto merge of #18347 - hsivonen:ptr-and-length-from-gecko, r=SimonSapin
Take a `u8` pointer and a length instead of `nsACString` pointer from Gecko.

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

- [ ] `./mach build -d` does not report any errors

Fails for unrelated reason when building `servo-skia`.

- [x] `./mach test-tidy` does not report any errors

- [x] These changes do not require tests because this changes the Gecko interface and m-c not burning is the test.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18347)
<!-- Reviewable:end -->
2017-09-01 12:25:54 -05:00
Manish Goregaokar
3ddb1fda74 Tidy fixes 2017-09-01 09:53:18 -07:00
Henri Sivonen
35eb9e2152 Take a u8 pointer and a length instead of nsACString pointer from Gecko.
This is the Servo side change of [bug 1354989](https://bugzilla.mozilla.org/show_bug.cgi?id=1354989).
2017-09-01 19:45:57 +03:00
Emilio Cobos Álvarez
10ba4ead25
style: Remove the for reconstruction traversals.
One less hack, a few more to go.

Bug: 1374235
Reviewed-by: bholley
MozReview-Commit-ID: 6katL1EGn2U
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-01 13:13:50 +02:00
bors-servo
af52f5394a Auto merge of #18337 - kuoe0:make-the-order-of-rules-in-DevTools-be-the-specificity-order, r=emilio
Make the order of rules in DevTools be the specificity order.

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18337)
<!-- Reviewable:end -->
2017-09-01 04:15:21 -05:00
Xidorn Quan
2bca62045f Parse at-rule without block in two stages 2017-09-01 16:21:22 +10:00
bors-servo
ff30f582a0 Auto merge of #18321 - canaltinova:default-linear-gradient, r=Manishearth
Properly set default direction of prefixed linear gradients

The default linear gradient direction is `to bottom`. This correspondes to
`top` keyword in prefixed linear gradients. We should preserve the default value.

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18321)
<!-- Reviewable:end -->
2017-08-31 23:18:23 -05:00
KuoE0
1bacd01a78 Bug 1391198 - Make the order of rules in DevTools be the specificity order.
We insert rules with any important declaration into rule tree twice,
one for normal level and another for important level. And when we fetch
them from rule tree, we skip the important one to make the order be

MozReview-Commit-ID: HewZG6jYVvv
2017-09-01 10:59:57 +08:00
Manish Goregaokar
343eb23187 stylo: Compute font-size calcs against appropriate base size 2017-08-31 17:22:17 -07:00
Manish Goregaokar
5cd296a264
stylo: Replace all hashtable collections with ones from style::hash 2017-08-31 16:28:30 -07:00
Manish Goregaokar
fae5e10643
stylo: Add hash module for reexporting HashMap 2017-08-31 16:28:27 -07:00
Manish Goregaokar
c682943900
stylo: Add dependency on hashglobe 2017-08-31 16:28:18 -07:00
Emilio Cobos Álvarez
3da3eb9be1
style: Update bindings. 2017-08-31 20:58:02 +02:00
bors-servo
174c37fddd Auto merge of #18301 - servo:derive-all-the-things, r=emilio
Use generics for the vertical-align property

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18301)
<!-- Reviewable:end -->
2017-08-31 09:41:50 -05:00
bors-servo
cb4ce93429 Auto merge of #18319 - chenpighead:stylo-fixup-display-for-NAC, r=heycam
Do not skip parent display-based style fixups for NAC that is not a NAC root

Stylo is currently skipping parent display-based style fixups for all NAC,
whereas we probably only want to do this for NAC roots.

In this patch, we ensure that we skip it for NAC roots, and pseudo-elements,
but not other NAC.

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18319)
<!-- Reviewable:end -->
2017-08-31 03:10:23 -05:00
bors-servo
12ca7d9e96 Auto merge of #18320 - upsuper:counter-style-clone, r=heycam
Rewrite CounterStyleOrNone::from_gecko_value to use fewer binding functions

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18320)
<!-- Reviewable:end -->
2017-08-31 01:31:52 -05:00
bors-servo
d795ceae17 Auto merge of #18310 - nnethercote:bug-1394729, r=heycam
Measure memory usage of Stylo's Rule Tree.

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18310)
<!-- Reviewable:end -->
2017-08-31 00:31:31 -05:00
bors-servo
5624c0e3f1 Auto merge of #18210 - mantaroh:clip-interpolation-fix, r=nox
Skip adding/accumulating ClipRect values which corresponding rect offset is auto.

<!-- Please describe your changes on the following line: -->
This is a PR for https://bugzilla.mozilla.org/show_bug.cgi?id=1390352

This patch will skip adding/accumulating the values which corresponding rect offset is auto, and  make Servo_AnimationValues_ComputeDistance return negative value instead of 0.0 when the function fails to distinguish its failure.

---
<!-- 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 already these tests in dom/smil/tests of gecko, this PR will enable these tests.
For detail, see https://bugzilla.mozilla.org/show_bug.cgi?id=1390352.

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

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/17288)
<!-- Reviewable:end -->
2017-08-30 23:21:49 -05:00
Nazım Can Altınova
a0c1eb5109 Properly set default direction of prefixed linear gradients
The default linear gradient direction is `to bottom`. This correspondes to
`top` keyword in prefixed linear gradients. We should preserve the default value.
2017-08-30 21:17:39 -07:00