Commit graph

6718 commits

Author SHA1 Message Date
bors-servo
bad77b6a20 Auto merge of #18652 - emilio:xbl-stuff, r=TYLin
style: Fix various issues with XBL rule matching

See the commit details.

<!-- 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/18652)
<!-- Reviewable:end -->
2017-09-27 09:15:16 -05:00
Emilio Cobos Álvarez
19d34b96e5
style: Fix various issues with XBL rule matching.
We were using the wrong MatchingMode and flags setter just because we didn't
bother threading them down.

This patch fixes the issue seen with the video controls.

MozReview-Commit-ID: Il1WOzRDxI1
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-27 15:29:04 +02:00
Emilio Cobos Álvarez
d82e6926fc
style: Do not optimize out lazy pseudo rules if the main stylist doesn't have rules for it.
This could prevent an XBL binding to use some pseudo-elements fairly randomly.

MozReview-Commit-ID: b44DO8qcfD
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-27 13:29:36 +02:00
Hiroyuki Ikezoe
08574b8c4d Update bindings. 2017-09-27 18:27:58 +09:00
Hiroyuki Ikezoe
5481d8ed6f Compute css variables with custom properties in keyframes for getKeyframes() 2017-09-27 18:27:57 +09:00
Hiroyuki Ikezoe
1b39041a8c Factor custom properties in keyframes into compute values in each keyframe 2017-09-27 18:27:55 +09:00
Hiroyuki Ikezoe
ded0c713db Store custom properties in keyframes into servo's PropertyDeclarationBlock 2017-09-27 18:27:48 +09:00
bors-servo
54f8a131ea Auto merge of #18649 - nnethercote:bug-1400459, r=froydnj
Devirtualize nsIAtom.

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

https://bugzilla.mozilla.org/show_bug.cgi?id=1400459
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1400459

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because tested 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. -->

<!-- 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/18649)
<!-- Reviewable:end -->
2017-09-27 00:52:31 -05:00
Nicholas Nethercote
67e62f49fd Update Gecko bindings. 2017-09-27 13:48:12 +10:00
Nicholas Nethercote
7019d42523 Devirtualize nsIAtom. 2017-09-27 12:40:31 +10:00
Manish Goregaokar
2e1359b164 stylo: Don't error out on trailing whitespace in attr() 2017-09-26 14:00:11 -07:00
Michael Layzell
98dbf149ad Remove unlanded TakeFrom methods from nsstring_vendor 2017-09-26 14:14:22 -04:00
Michael Layzell
c1c98659b9 Update ns[C]String::from -> ns[C]Str::from where possible 2017-09-26 11:03:35 -04:00
Michael Layzell
cc8b69bae1 Update version of nsstring bindings used by stylo 2017-09-26 10:45:35 -04:00
bors-servo
4450bbdb0c Auto merge of #18640 - emilio:cleanup-as-you-go, r=nox
style: Really minor cleanups.

See commits for details.
2017-09-26 07:53:43 -05:00
Emilio Cobos Álvarez
2bf84ba468
style: There are no more ua_sheets. 2017-09-26 14:52:00 +02:00
Emilio Cobos Álvarez
8a51a4eb01
style: Reformat a bunch of signatures in wrapper.rs 2017-09-26 14:49:27 +02:00
Emilio Cobos Álvarez
4e6fd5693a
style: Cleanup some media-query-related code. 2017-09-26 14:49:25 +02:00
bors-servo
3dbb97922d Auto merge of #18638 - emilio:invalidation-lazy, r=heycam
style: Lazily tweak the traversal root to account for sibling invalidations.

Bug: 1403078
Reviewed-by: heycam
MozReview-Commit-ID: Ij3nMOKu5FO
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>

<!-- 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/18638)
<!-- Reviewable:end -->
2017-09-26 06:58:04 -05:00
Emilio Cobos Álvarez
07d55a4bf8
style: Lazily tweak the traversal root to account for sibling invalidations.
Bug: 1403078
Reviewed-by: heycam
MozReview-Commit-ID: Ij3nMOKu5FO
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-26 13:09:03 +02:00
Nicholas Nethercote
e030c0d96a Rename add_size_of_children() methods as add_size_of().
This makes them match `size_of` from `MallocSizeOf`.
2017-09-26 18:54:36 +10:00
Cameron McCormack
b1671f1282 style: Regenerate Gecko bindings. 2017-09-26 15:08:13 +08:00
Cameron McCormack
23d710bc36 style: Add support for -moz-font-smoothing-background-color. 2017-09-26 09:17:08 +08:00
Emilio Cobos Álvarez
638ba2ce6d
style: Simplify paint-order serialization when possible.
This matches Gecko, and fixes the last reported case in bug 1397619.

MozReview-Commit-ID: 4Z7GeaokKE1
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-25 16:07:33 +02:00
Emilio Cobos Álvarez
614da6b4a1
style: Simplify paint-order gecko-related code.
We share value representation, so there's no reason to do this in a more complex
way.

MozReview-Commit-ID: BITfCPqTkal
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-25 16:07:33 +02:00
Emilio Cobos Álvarez
3067d2e320
style: Early return in a couple of places to deindent some code.
MozReview-Commit-ID: 8hDAKZANOro
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
2017-09-25 16:07:32 +02:00
Emilio Cobos Álvarez
0b930255f4
style: Early return and skip duplicate assertion in matching.rs 2017-09-25 10:59:34 +02:00
Hiroyuki Ikezoe
aefea7230f Handle display property change from 'none' only if there is restyle hint for SMIL
We only need to handle changes when the display property is changed from 'none'
when we have a restyle hint for SMIL.  The only other case where we expect to
see changes to display property during an animation are from using the CSSOM.
However, when the display property is changed from 'none' by the CSSOM, during
the animation-only restyle we can skip all descendants since they will be
traversed in the subsequent normal traversal because at that time we flush
style sheets and traverse all elements in the document. So we don't need to
care about the descendants during animation-only restyle.
2017-09-25 13:53:30 +09:00
Hiroyuki Ikezoe
fd0295ead2 Use 4-spaces instead of 2-spaced 2017-09-25 13:49:17 +09:00
bors-servo
4628db1495 Auto merge of #18620 - emilio:bye-unsafe-node, r=glennw
style: Remove UnsafeNode.

No longer needed since a while ago.

<!-- 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/18620)
<!-- Reviewable:end -->
2017-09-24 20:04:58 -05:00
Emilio Cobos Álvarez
e3c58df155
style: Remove UnsafeNode.
No longer needed since a while ago.
2017-09-25 01:58:52 +02:00
Manish Goregaokar
b238eae66c Add FIXME for font-size animated value 2017-09-24 00:47:54 -07:00
Manish Goregaokar
ce7d82e9c4 stylo: Animate font-size as NonNegativeLength 2017-09-23 16:22:42 -07:00
Manish Goregaokar
cd6f68c545 stylo: Clean up keyword values 2017-09-23 11:02:22 -07:00
Manish Goregaokar
df9d7cd941 stylo: Move font-size stuff to values::*::font 2017-09-23 10:52:07 -07:00
Manish Goregaokar
e1a39a2012 stylo: Remove FontComputationData, switch over to using the new font tracking 2017-09-23 10:51:55 -07:00
Manish Goregaokar
c73dc5704b stylo: Add font keyword info fields on nsStyleFont 2017-09-23 10:51:44 -07:00
Manish Goregaokar
c2fcc9ce1a stylo: Add keyword info to computed value of font-size 2017-09-23 10:51:21 -07:00
Emilio Cobos Álvarez
fed5960f2c
style: Make sure to not run any style invalidation in an unstyled children only traversal.
Bug: 1402472
Reviewed-by: bholley
MozReview-Commit-ID: IFPA7LJpvsZ
2017-09-23 04:15:01 +02:00
bors-servo
be9c8ec07a Auto merge of #18595 - bholley:nth_index_cache, r=emilio
Implement an nth-index cache

https://bugzilla.mozilla.org/show_bug.cgi?id=1334730

<!-- 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/18595)
<!-- Reviewable:end -->
2017-09-21 18:10:05 -05:00
Bobby Holley
438740b912 Implement an nth-index cache.
MozReview-Commit-ID: Ee0um3QXkxl
2017-09-21 15:25:38 -07:00
J. Ryan Stinnett
c5c604b9c4 Update inherited prop state for animation
`AnimationValue` has its own path for conversion to computed values, so we need
to update `for_non_inherited_property` in the context to match the property
being converted.

I didn't notice any other generic conversions, so hopefully this is the only
missing path.

MozReview-Commit-ID: HskrpMctmYE
2017-09-21 15:52:35 -05:00
bors-servo
581f0bf09a Auto merge of #18590 - hiikezoe:increment-ref-count-for-will-change, r=xidorn
Use Atom::from(nsIAtom) to increment reference count in case of dynam…

…ic atom for will-change.

If we don't increment the reference count for the Atom in servo side, it's
possible to try to release the Atom in servo side even if we have already
released in gecko side.  When it happens, nsIAtom::mKind is no longer reliable.

https://bugzilla.mozilla.org/show_bug.cgi?id=1401809

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

<!-- 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/18590)
<!-- Reviewable:end -->
2017-09-21 04:18:28 -05:00
bors-servo
ce7cee75e4 Auto merge of #18591 - chenpighead:stylo-singular-matrix-animation, r=BorisChiou
stylo: do not handle the fallback discrete animation inside the Animate trait

At present, we do the fallback discrete animation for non-invertible matrices in
ComputedMatrix.animate(). However, according to the spec, we should fallback to
discrete animation for cases like:

1. animation between transform with single non-invertible matrix
2. animation between transform with matched transform functions that have at least
   one non-invertible matrix
2. animation between transform with mismatched transform functions that have at
   least one non-invertible matrix.

The current implementation only handles the first case.

Moreover, we already have fallback discrete animation procedures in CSS Animation
and Web Animation, so we should be able to not doing any fallback inside the
Animate trait.

In this patch, we let the animation between non-invertible matrices to return Err().
So, we can propagate the Err() to the callers, and let the fallback discrete
animation procedure stay at the Servo_MatrixTransform_Operate, which is ouside
the Animate trait.

Gecko bug: [Bug 1394284](https://bugzilla.mozilla.org/show_bug.cgi?id=1394284)

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix [Bug 1394284](https://bugzilla.mozilla.org/show_bug.cgi?id=1394284)
- [X] There are wpt tests for these changes, and thet will be landed in [Bug 1394284](https://bugzilla.mozilla.org/show_bug.cgi?id=1394284)

<!-- 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/18591)
<!-- Reviewable:end -->
2017-09-21 03:16:58 -05:00
Jeremy Chen
21148c7e51 stylo: do not handle the fallback discrete animation inside the Animate trait.
At present, we do the fallback discrete animation for non-invertible matrices in
ComputedMatrix.animate(). However, according to the spec, we should fallback to
discrete animation for cases like:

1. animation between transform with single non-invertible matrix
2. animation between transform with matched transform functions that have at least
   one non-invertible matrix
2. animation between transform with mismatched transform functions that have at
   least one non-invertible matrix.

The current implementation only handles the first case.

Moreover, we already have fallback discrete animation procedures in CSS Animation
and Web Animation, so we should be able to not doing any fallback inside the
Animate trait.

In this patch, we let the animation between non-invertible matrices to return Err().
So, we can propagate the Err() to the callers, and let the fallback discrete
animation procedure stay at the Servo_MatrixTransform_Operate, which is ouside
the Animate trait.
2017-09-21 15:30:18 +08:00
Hiroyuki Ikezoe
dcd959fc72 Use Atom::from(nsIAtom) to increment reference count in case of dynamic atom for will-change.
If we don't increment the reference count for the Atom in servo side, it's
possible to try to release the Atom in servo side even if we have already
released in gecko side.  When it happens, nsIAtom::mKind is no longer reliable.
2017-09-21 15:44:26 +09:00
Bobby Holley
48466bf876 Introduce an NthIndexCache type and pipe it from ThreadLocalStyleContext to MatchingContext.
Some future refactoring here to pass fewer things as parameters would be nice.
2017-09-20 23:22:38 -07:00
Bobby Holley
05c03d5104 Hoist lookup() into lru_cache.
MozReview-Commit-ID: F5FbKFqpXEh
2017-09-20 23:22:33 -07:00
Bobby Holley
13a3cf27a8 LRUCache::new -> LRUCache::default.
MozReview-Commit-ID: KouOaYTluRx
2017-09-20 23:22:27 -07:00
Bobby Holley
8b6c5988b5 Hoist the LRU cache into its own crate to share it with selectors. 2017-09-20 23:22:20 -07:00