mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Auto merge of #17456 - asajeffrey:script-paint-worklets-size, r=emilio
Paint worklet size should agree with Chrome. <!-- Please describe your changes on the following line: --> Getting our implementation to agree with Chrome about the definition of the size parameter to a paint worklet. --- <!-- 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 #17376 - [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/17456) <!-- Reviewable:end -->
This commit is contained in:
commit
813eed222e
6 changed files with 75 additions and 2 deletions
|
@ -1154,10 +1154,14 @@ impl FragmentDisplayListBuilding for Fragment {
|
|||
paint_worklet: &PaintWorklet,
|
||||
index: usize)
|
||||
{
|
||||
// TODO: check that this is the servo equivalent of "concrete object size".
|
||||
// This should be the "concrete object size" of the fragment.
|
||||
// https://drafts.css-houdini.org/css-paint-api/#draw-a-paint-image
|
||||
// https://drafts.csswg.org/css-images-3/#concrete-object-size
|
||||
let size = self.content_box().size.to_physical(style.writing_mode);
|
||||
// Experimentally, chrome is using the size in px of the box,
|
||||
// including padding, but not border or margin, so we follow suit.
|
||||
// https://github.com/w3c/css-houdini-drafts/issues/417
|
||||
let unbordered_box = self.border_box - style.logical_border_width();
|
||||
let size = unbordered_box.size.to_physical(style.writing_mode);
|
||||
let name = paint_worklet.name.clone();
|
||||
|
||||
// If the script thread has not added any paint worklet modules, there is nothing to do!
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue