Commit graph

27683 commits

Author SHA1 Message Date
Emilio Cobos Álvarez
6b8649e012
stylo: Fix PseudoElement::pseudo_type.
MozReview-Commit-ID: DH2Pv52ankl
2017-07-18 17:34:42 +02:00
bors-servo
92eeec297b Auto merge of #17763 - asajeffrey:script-worklets-pref, r=jdm
Placed worklets implementation behind a pref

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

At the moment, worklets are always exposed, even though their spec is still a draft. This PR hides them behind a pref.

---
<!-- 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 #17680.
- [X] These changes do not require tests because the existing worklet tests do the job.

<!-- 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/17763)
<!-- Reviewable:end -->
2017-07-18 08:11:23 -07:00
Alan Jeffrey
a3fe0b72d5 Placed worklets implementation behind a pref. 2017-07-18 09:38:56 -05:00
Connor Brewster
438191e0b2 Implement CEReactions codegen 2017-07-18 08:18:22 -06:00
bors-servo
988a516a5b Auto merge of #17771 - mrobinson:wr-update-shadows, r=emilio
Update WR (text-shadow improvements, iframe + image clips, depth buffer sharing)

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

<!-- 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/17771)
<!-- Reviewable:end -->
2017-07-18 07:08:25 -07:00
Glenn Watson
1b354994f6 Update WR (text-shadow improvements, iframe + image clips, depth buffer sharing).
Push multiple text shadows in the order WR expects them.
2017-07-18 15:26:06 +02:00
Martin Robinson
2aa34f9dc2 Rounded corners for images and iframes. 2017-07-18 15:25:45 +02:00
bors-servo
e57ed3d42f Auto merge of #17770 - hiikezoe:snapshot-in-animation-only-restyle, r=emilio
Avoid snapshot handling in animation only restyle

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

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

<!-- 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/17770)
<!-- Reviewable:end -->
2017-07-18 04:55:30 -07:00
Hiroyuki Ikezoe
18cd7391fb Update bindings. 2017-07-18 20:44:31 +09:00
Alexis Beingessner
2d3eae3e3a Implement new Webrender PushTextShadow API
Also includes an incidental bugfix for the rendering order of text decorations.

This change depends on servo/webrender#1454 being merged and upstreamed to servo.
2017-07-18 12:53:34 +02:00
Hiroyuki Ikezoe
f68bdb160f Allow that restyle hints other than animation hints remain for flushing throttle animations. 2017-07-18 19:15:11 +09:00
Hiroyuki Ikezoe
9c05481923 Skip snapshot handling during animation-only restyle. 2017-07-18 19:14:25 +09:00
Hiroyuki Ikezoe
f91126ba86 Add has_current_styles_for_traversal().
In animation-only restyle, we just need to check the element
has animation restyle hints or has recascade self which is a result
of animation-only restyle for ancestors.
has_current_styles() in Servo_ResolveStyle() is intentionally left there,
it will be changed in a subsequent patch.
2017-07-18 19:13:50 +09:00
Hiroyuki Ikezoe
ae55e51aaf Factor out restyle_kind_for_animation. 2017-07-18 19:13:24 +09:00
bors-servo
7b134440fc Auto merge of #17614 - cbrewster:custom_element_reactions, r=jdm
Implement custom element reactions

<!-- Please describe your changes on the following line: -->
Initial work for implementing custom element reactions: https://html.spec.whatwg.org/multipage/custom-elements.html#custom-element-reactions

---
<!-- 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 #17433 (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. -->

<!-- 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/17614)
<!-- Reviewable:end -->
2017-07-17 22:58:53 -07:00
Connor Brewster
9b587a4f2d Invoke backup element queue via a microtask 2017-07-17 22:23:47 -06:00
Connor Brewster
4665991503 Support custom element callback reactions 2017-07-17 22:23:45 -06:00
bors-servo
1b6d29e319 Auto merge of #17764 - upsuper:fieldset-flexgrid, r=emilio,heycam
Adjust display value for ::-moz-fieldset-content when parent is flex/grid

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

<!-- 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/17764)
<!-- Reviewable:end -->
2017-07-17 21:16:26 -07:00
Xidorn Quan
bae59d4520 Adjust display value for ::-moz-fieldset-content when parent is flex/grid. 2017-07-18 14:13:12 +10:00
bors-servo
d746abaa9e Auto merge of #17767 - Manishearth:stylo-fuse, r=bholley
stylo: Fuse ServoStyleContext and ServoComputedValues

r=bholley https://bugzilla.mozilla.org/show_bug.cgi?id=1367904

<!-- 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/17767)
<!-- Reviewable:end -->
2017-07-17 19:44:25 -07:00
Manish Goregaokar
8eafe6a3b7 Fix tidy 2017-07-17 19:43:57 -07:00
Manish Goregaokar
c33fa3effa Update bindings 2017-07-17 18:41:47 -07:00
Manish Goregaokar
b280585cbb stylo: Clean up GetContext, call it UpdateWithElementState 2017-07-17 18:05:08 -07:00
Manish Goregaokar
2a49a73f91 stylo: Stop using mStyleIfVisited in Servo 2017-07-17 18:04:46 -07:00
Manish Goregaokar
e78947f8b5 stylo: Remove FFI calls for fetching style structs from ServoComputedValues 2017-07-17 18:04:24 -07:00
Manish Goregaokar
ff4bc5a2c6 stylo: Flatten ServoComputedValues into ServoStyleContext
This patch also removes the duplication of style contexts during the
restyle, because otherwise pointer equality of ServoComputedValues stops
holding (and we assert on that in a few places)
2017-07-17 18:04:01 -07:00
Manish Goregaokar
cfad95bff0 stylo: Use ServoStyleContext in ServoStyleSet/ServoRestyleManager 2017-07-17 18:03:41 -07:00
Manish Goregaokar
89930e7565 stylo: Switch Gecko over to ServoStyleContext 2017-07-17 18:03:23 -07:00
Manish Goregaokar
74519cc1a7 stylo: Make Servo Arc types use ptr to T instead of ptr to ArcInner<T> 2017-07-17 18:03:09 -07:00
Manish Goregaokar
808b1f509b stylo: Use ComputedValuesInner instead of ComputedValues when we don't need it 2017-07-17 18:02:25 -07:00
Manish Goregaokar
04b0ae64f2 stylo: Introduce ComputedValuesInner 2017-07-17 18:01:36 -07:00
Manish Goregaokar
5d78743037 stylo: Replace real ComputedValues with bindgenned ComputedValues2 2017-07-17 18:01:20 -07:00
Manish Goregaokar
d52f04d105 stylo: Use RawOffsetArc in ComputedValues 2017-07-17 18:01:01 -07:00
Manish Goregaokar
d1c235d7b7 stylo: Add RawOffsetArc<T> 2017-07-17 18:00:47 -07:00
Manish Goregaokar
4c5cc89f39 stylo: Create C++-side ServoComputedValues 2017-07-17 18:00:31 -07:00
Manish Goregaokar
3343c829ca Update bindings 2017-07-17 18:00:16 -07:00
bors-servo
97023f18f3 Auto merge of #17537 - jyc:default-namespace-serialization, r=emilio
Some fixes to selector serialization re: namespaces and universal selector

- Fix eliding default namespace when serializing
- Fix shortest serialization property when namespace prefix is `*|` and there is no default namespace
- Omit universal selector when serializing to match `cssom/serialize-namespaced-type-selectors` (again so we get the shortest serialization)

<!-- 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 is part of a series to fix #17182

<!-- Either: -->

I'd like to land #17501 first, because it allows some tests for this to work.

- [ ] 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/17537)
<!-- Reviewable:end -->
2017-07-17 16:26:37 -07:00
bors-servo
e122ea65fd Auto merge of #17762 - emilio:visited-nested, r=jryans
style: Cascade the visited style with the normal rules if we didn't find a relevant link.

<!-- 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/17762)
<!-- Reviewable:end -->
2017-07-17 15:21:22 -07:00
Emilio Cobos Álvarez
1d8e069389
style: Cascade the visited style with the normal rules if we didn't find a relevant link.
MozReview-Commit-ID: HbfZs0jnusn
2017-07-17 23:30:37 +02:00
bors-servo
3459748134 Auto merge of #17758 - emilio:extended-slots, r=heycam
Bug 1377993: Make node slots less memory hungry in common cases.

<!-- 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/17758)
<!-- Reviewable:end -->
2017-07-17 14:25:51 -07:00
Emilio Cobos Álvarez
f5bddd1465
style: Update bindings. 2017-07-17 22:51:18 +02:00
Emilio Cobos Álvarez
c606ec13e2
Bug 1377993: Make node slots less memory hungry in common cases. 2017-07-17 22:48:11 +02:00
bors-servo
7f1278a329 Auto merge of #17606 - asajeffrey:canvas-delay-deleting-image-keys, r=jdm
Don't delete webrender image keys immediately.

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

We currently delete webrender image id's immediately on resizing a canvas, which can cause panics. This PR delays deleting the image id until an epoch has passed.

---
<!-- 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 #17534
- [X] These changes do not require tests because the intermittent failure is already triggered by the css-paint-api 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. -->

<!-- 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/17606)
<!-- Reviewable:end -->
2017-07-17 13:25:37 -07:00
Alan Jeffrey
3002c45184 Don't delete webrender image keys immediately. 2017-07-17 15:24:42 -05:00
bors-servo
602ef8bce1 Auto merge of #17757 - bholley:downgrade_assertion, r=bholley
Stop aborting release builds if we've missed invalidations before calling Servo_ResolveStyle

A lot of people are hitting this in [1]. I think having style (just potentially out-of-date) is less likely to cause weird crashes than failing to style the element entirely, so it's not worth inflicting this level of crashiness on the dogfood population.

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1381475
2017-07-17 11:52:32 -07:00
Bobby Holley
f3a42d9977 Stop aborting release builds if we've missed invalidations before calling Servo_ResolveStyle. 2017-07-17 11:49:55 -07:00
Jonathan Chan
1301bcdf10 Omit serializing the universal selector when possible.
If omitting the universal selector in the serialization is possible, we
should do it so we obtain a shorter serialization (to match the behavior
asserted in cssom/serialize-namespaced-type-selectors.html).

For example, if someone writes *|*::before and there is no default
namespace, we should serialize to ::before; however, if there is a
default namespace, we should serialize to *|*::before.
(This is the test case "Universal selector in any namespace followed by
pseudo element).

This matches the behavior implemented by WebKit; that one case in
particular isn't implemented by Gecko, but other cases where the
universal selector should be elided are implemented by Gecko but were not
previously by Servo.
2017-07-17 10:52:17 -07:00
Jonathan Chan
989b707623 Elide the explicit any namespace prefix when lacking default namespace.
Once again it seems we don't need to preserve the original prefix name,
and this lets to_css serialize to the shortest form when there is no
default namespace and the *| prefix is used.

Selectors § 6.1.1 says:

    Element type selectors that have no namespace component (no namespace
    separator) represent elements without regard to the element's namespace
    (equivalent to "*|") unless a default namespace has been declared for
    namespaced selectors (e.g. in CSS, in the style sheet). If a default
    namespace has been declared, such selectors will represent only elements
    in the default namespace.

Then if there is no default namespace, *| (which we write as
QNamePrefix::ExplicitAnyNamespace) is equivalent to what we write as
QNamePrefix::ImplicitAnyNamespace; the latter has a shorter
serialization, so we should use that.
2017-07-17 10:43:24 -07:00
bors-servo
66b9544d60 Auto merge of #17520 - camlorn:master, r=asajeffrey
Convert node serialization to a purely iterative algorithm.

We maintain a stack of open element nodes with their children count, popping from the top of the stack and closing when the count reaches zero.

Contrary to my comment in #16696, this is a purely iterative algorithm.  I just wasn't feeling sufficiently clever with respect to finding a relatively clean way until later.

<!-- 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 #16696 (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. -->

<!-- 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/17520)
<!-- Reviewable:end -->
2017-07-17 09:54:43 -07:00
Pavel Sergeev
6a2f84eca4 replace vector iteration by ascii_case_insensitive_phf_map 2017-07-17 19:30:55 +03:00