Remove overrides_transform_style() and get_used_transform_style() - #388
Conversation
| !matches!(self.get_box().clone_overflow_x(), Overflow::Visible | Overflow::Clip) || | ||
| !matches!(self.get_box().clone_overflow_y(), Overflow::Visible | Overflow::Clip) || |
There was a problem hiding this comment.
Should this check the used overflow? E.g. a table row is a transformable element so transform-style applies, but overflow doesn't. Or propagation of overflow to the viewport.
If so, this should move to Servo. May make sense to move it regardless.
There was a problem hiding this comment.
Good point. I've modified this PR to simply remove this functionality, have moved it to servo/servo#45629, and ensured that there the used overflow is considered when determining the used TransformStyle.
There was a problem hiding this comment.
Seems you didn't push the removal?
There was a problem hiding this comment.
This was the typical situation where I had this in my working directory, but uncommitted. I've pushed it now.
88ea543 to
033af4f
Compare
overrides_transform_style() more completeoverrides_transform_style() and get_used_transform_style()
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
|
One thing I've thought about for these kind of values is that it could be useful to pre-compute the bits that can be computed purely from style information and store them on the Not sure how much different it would make to performance, but it'd be an easy optimization to implement, and might also be quite nice in terms of "making the code structure reflect the spec"? |
That's an interesting idea. I think our plan in Servo is to cache these kinds of things on the |
It's not possible to properly calculate these only looking at style, because the results depends on the used `overflow` value. Signed-off-by: Martin Robinson <martin@abandonedwig.info>
033af4f to
33eb615
Compare
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
servo#45629) Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-image`, and `mask-border-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Testing: This adds a new crashtest. Three other WPT tests start to pass. Fixes: servo#42476. Signed-off-by: Martin Robinson <martin@abandonedwig.info>
…`TransformStyle` more complete, a=testonly Automatic update from web-platform-tests layout: Make the implementation of used `TransformStyle` more complete Stylo was using a very incomplete method for calculating the used `TransformStyle` for boxes, which didn't incorporate all of the grouping properties from the specification. This change moves the functionality into Servo (as cannot properly compute this value without `FragmentFlags`) and makes it more complete. We still do not process the value of `contain`, `mask-iamge`, and `mask-boarder-source` as we do not support those values yet. Incidentally, this also fixes a panic that we were causing in WebRender, probably by going down a path that Gecko does not exercise. Stylo PR: servo/stylo#388 Signed-off-by: Martin Robinson <martin@abandonedwig.info> -- wpt-commits: 3b5dbefa6117860e83e16416778955a035962e05 wpt-pr: 60593
Fixes a compile warning from servo#388. Signed-off-by: Oriol Brufau <obrufau@igalia.com>
…#388) It's not possible to properly calculate these only looking at style, because the results depends on the used `overflow` value. Servo PR: servo/servo#45629 Signed-off-by: Martin Robinson <martin@abandonedwig.info>
Fixes a compile warning from #388. Signed-off-by: Oriol Brufau <obrufau@igalia.com>
…sform_style()`. r=firefox-style-system-reviewers,emilio It's not possible to properly calculate these only looking at style, because the results depends on the used `overflow` value. Imports servo/stylo#388 Imports servo/stylo#398 Differential Revision: https://phabricator.services.mozilla.com/D310917
…sform_style()`. r=firefox-style-system-reviewers,emilio It's not possible to properly calculate these only looking at style, because the results depends on the used `overflow` value. Imports servo#388 Imports servo#398 Differential Revision: https://phabricator.services.mozilla.com/D310917
It's not possible to properly calculate these only looking at style,
because the results depends on the used
overflowvalue.Servo PR: servo/servo#45629