Граф коммитов

4339 Коммитов

Автор SHA1 Сообщение Дата
Ashley Hale c976164f43 Bug 1905611 - apply clipping to PictureCompositeMode::SVGFEGraph r=gfx-reviewers,gw
Differential Revision: https://phabricator.services.mozilla.com/D216637
2024-09-12 10:19:43 +00:00
Ting-Yu Lin f32549a8c7 Bug 1917144 Part 2 - Add IntrinsicSizeInput::mContainingBlockSize. r=dholbert
Currently, only the grid container needs the containing block size to resolve
the transferred min and max sizes for `repeat()` function in
`nsGridContainerFrame::ComputeIntrinsicISize()`.

This patch is a preparation for Bug 1865438. `mContainingBlockSize` will be used
there, so it does not change any behavior yet.

Differential Revision: https://phabricator.services.mozilla.com/D221333
2024-09-11 18:01:40 +00:00
Sandor Molnar 14a6690557 Backed out changeset ebe6cedc1f12 (bug 1905611) for causing reftest failures. CLOSED TREE 2024-09-10 09:09:35 +03:00
Ashley Hale a11450759a Bug 1905611 - apply clipping to PictureCompositeMode::SVGFEGraph r=gfx-reviewers,gw
Differential Revision: https://phabricator.services.mozilla.com/D216637
2024-09-10 03:02:45 +00:00
Emilio Cobos Álvarez 4395828697 Bug 1917715 - Don't use nsLayoutUtils::GetColor for SVG rects. r=dholbert
It's intended for text colors only (and it applies auto-darkening in
printing), see nsLayoutUtils::DarkenColorIfNeeded.

Differential Revision: https://phabricator.services.mozilla.com/D221556
2024-09-09 23:12:05 +00:00
Ting-Yu Lin 6fc99638a4 Bug 1909761 Part 4 - Construct a percentage basis when computing children's intrinsic inline size contributions. r=dholbert
A percentage basis is needed to resolve percentage block size when computing
children's intrinsic inline size contributions. This is necessary for a child or
descendants with a preferred aspect-ratio so that the block size can transfer
through the aspect-ratio to become an intrinsic inline size.

The change in `nsFlexContainerFrame::ComputeIntrinsicISize()` is necessary to
keep us passing
`testing/web-platform/tests/css/css-flexbox/image-nested-within-definite-column-flexbox.html`.

The change in `nsPlaceholderFrame::AddFloatToIntrinsicISizeData()` is necessary
to keep us passing
`testing/web-platform/tests/css/css-sizing/intrinsic-percent-replaced-dynamic-010.html`.

`GetISizeInfo()` in BasicTableLayoutStrategy.cpp is modified to pass table cell
frame's bsize as percentage basis. Otherwise,
`layout/reftests/bugs/522632-1.html` fails. This is our current behavior, but it
is bug 1461852.

Differential Revision: https://phabricator.services.mozilla.com/D219523
2024-09-03 04:25:42 +00:00
Ting-Yu Lin 26a6db6fb1 Bug 1909761 Part 2 - Create a helper struct IntrinsicSizeInput to aggregate needed data when computing intrinsic inline size. r=dholbert
This patch changes the signature to `GetMinISize()`, `GetPrefISize()`,
`IntrinsicISize` by adding a helper struct as a preparation. Then we can just
add more data such as a percentage basis to the struct without altering the
signature in the future.

When passing `IntrinsicSizeInput` struct down to another helper method, we
generally just pass the original one if the method is computing the intrinsic
size of our own or our anonymous children. If the method is computing our
children's intrinsic contribution, we'll need to create a brand new
`IntrinsicSizeInput` for our children.

Differential Revision: https://phabricator.services.mozilla.com/D219521
2024-09-03 04:25:41 +00:00
Emilio Cobos Álvarez 8a62f66450 Bug 1915971 - Simplify PrependLocalTransformsTo. r=longsonr
Now that there's only one transform kind seems worth doing this.

Differential Revision: https://phabricator.services.mozilla.com/D220733
2024-09-02 17:26:21 +00:00
Emilio Cobos Álvarez 0d05060885 Bug 1915971 - Remove the concept of eUserSpaceToParent transforms. r=longsonr
After mapping the transform attribute we don't use it, it always returns
the input matrix.

Differential Revision: https://phabricator.services.mozilla.com/D220732
2024-09-02 17:26:20 +00:00
Emilio Cobos Álvarez 6e8da4e110 Bug 1914221 - Map pattern/gradientTransform to the transform property. r=longsonr
And fix a typo in a test which got me confused.

Differential Revision: https://phabricator.services.mozilla.com/D220728
2024-09-02 17:26:20 +00:00
Butkovits Atila 8b044eeb9c Backed out 4 changesets (bug 1914221, bug 1915971) for causing failures at anim-pattern-attr-presence-01.svg. CLOSED TREE
Backed out changeset 7c8cd02e4dd7 (bug 1915971)
Backed out changeset 7174d7871cce (bug 1915971)
Backed out changeset 3985054aeea4 (bug 1915971)
Backed out changeset e748e0d3a446 (bug 1914221)
2024-09-02 18:58:50 +03:00
Emilio Cobos Álvarez 6b44952143 Bug 1915971 - Simplify PrependLocalTransformsTo. r=longsonr
Now that there's only one transform kind seems worth doing this.

Differential Revision: https://phabricator.services.mozilla.com/D220733
2024-09-02 13:15:09 +00:00
Emilio Cobos Álvarez a90731978c Bug 1915971 - Remove the concept of eUserSpaceToParent transforms. r=longsonr
After mapping the transform attribute we don't use it, it always returns
the input matrix.

Differential Revision: https://phabricator.services.mozilla.com/D220732
2024-09-02 13:15:09 +00:00
Emilio Cobos Álvarez f6960b2b66 Bug 1914221 - Map pattern/gradientTransform to the transform property. r=longsonr
And fix a typo in a test which got me confused.

Differential Revision: https://phabricator.services.mozilla.com/D220728
2024-09-02 13:15:08 +00:00
Butkovits Atila 5092c79785 Backed out 4 changesets (bug 1914221, bug 1915971) for causing failures at pattern-transform-presence-01.svg. CLOSED TREE
Backed out changeset 3071e3421b42 (bug 1915971)
Backed out changeset b80fe7906441 (bug 1915971)
Backed out changeset 0a2beb7878df (bug 1915971)
Backed out changeset 8b2fd5bd4301 (bug 1914221)
2024-09-02 15:36:54 +03:00
Emilio Cobos Álvarez 748004681d Bug 1915971 - Simplify PrependLocalTransformsTo. r=longsonr
Now that there's only one transform kind seems worth doing this.

Differential Revision: https://phabricator.services.mozilla.com/D220733
2024-09-02 11:05:34 +00:00
Emilio Cobos Álvarez 1996897f14 Bug 1915971 - Remove the concept of eUserSpaceToParent transforms. r=longsonr
After mapping the transform attribute we don't use it, it always returns
the input matrix.

Differential Revision: https://phabricator.services.mozilla.com/D220732
2024-09-02 11:05:34 +00:00
Emilio Cobos Álvarez 5bc6c02648 Bug 1914221 - Map pattern/gradientTransform to the transform property. r=longsonr
And fix a typo in a test which got me confused.

Differential Revision: https://phabricator.services.mozilla.com/D220728
2024-09-02 11:05:33 +00:00
Emilio Cobos Álvarez a61132e626 Bug 1915474 - Make SVG rendering observer container a class flag. r=longsonr
Drive-by, but it's only set on creation, so no need to make it a state bit.

Differential Revision: https://phabricator.services.mozilla.com/D220296
2024-08-28 20:16:03 +00:00
Butkovits Atila 710069d82f Backed out 6 changesets (bug 1909761) for causing failures at test_contextmenu_rtl.xhtml. CLOSED TREE
Backed out changeset 1e9f47784a54 (bug 1909761)
Backed out changeset d2dcf159185b (bug 1909761)
Backed out changeset 3f48c106bff9 (bug 1909761)
Backed out changeset 38d1e5eda09d (bug 1909761)
Backed out changeset 8de556490289 (bug 1909761)
Backed out changeset 4e7f22f43bb4 (bug 1909761)
2024-08-28 10:44:09 +03:00
Ting-Yu Lin 55248224df Bug 1909761 Part 4 - Construct a percentage basis when computing children's intrinsic inline size contributions. r=dholbert
A percentage basis is needed to resolve percentage block size when computing
children's intrinsic inline size contributions. This is necessary for a child or
descendants with a preferred aspect-ratio so that the block size can transfer
through the aspect-ratio to become an intrinsic inline size.

The change in `nsFlexContainerFrame::ComputeIntrinsicISize()` is necessary to
keep us passing
`testing/web-platform/tests/css/css-flexbox/image-nested-within-definite-column-flexbox.html`.

The change in `nsPlaceholderFrame::AddFloatToIntrinsicISizeData()` is necessary
to keep us passing
`testing/web-platform/tests/css/css-sizing/intrinsic-percent-replaced-dynamic-010.html`.

`GetISizeInfo()` in BasicTableLayoutStrategy.cpp is modified to pass table cell
frame's bsize as percentage basis. Otherwise,
`layout/reftests/bugs/522632-1.html` fails. This is our current behavior, but it
is bug 1461852.

Differential Revision: https://phabricator.services.mozilla.com/D219523
2024-08-28 06:18:45 +00:00
Ting-Yu Lin 5548e07e75 Bug 1909761 Part 2 - Create a helper struct IntrinsicSizeInput to aggregate needed data when computing intrinsic inline size. r=dholbert
This patch changes the signature to `GetMinISize()`, `GetPrefISize()`,
`IntrinsicISize` by adding a helper struct as a preparation. Then we can just
add more data such as a percentage basis to the struct without altering the
signature in the future.

When passing `IntrinsicSizeInput` struct down to another helper method, we
generally just pass the original one if the method is computing the intrinsic
size of our own or our anonymous children. If the method is computing our
children's intrinsic contribution, we'll need to create a brand new
`IntrinsicSizeInput` for our children.

Differential Revision: https://phabricator.services.mozilla.com/D219521
2024-08-28 06:18:44 +00:00
Emilio Cobos Álvarez fe940af53e Bug 1915206 - Simplify SVG transforms a bit more. r=longsonr
We no longer need the concept of "local" transforms after bug 878346.

Local transforms that we'd need in the future could be represented via
attribute mapping.

We still need the viewbox transform shenanigans which applies to
children only, tho.

Differential Revision: https://phabricator.services.mozilla.com/D220290
2024-08-27 21:14:28 +00:00
longsonr d0a85b9aaa Bug 1914345 Part 1 - create a pref to allow using moz2d to determine stroke bounds r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D220060
2024-08-27 16:20:35 +00:00
Norisz Fay e4a6f2c462 Backed out changeset 03bd6b90ec89 (bug 1914345) for causing reftest failure on 1662062-1-no-blurry.html CLOSED TREE 2024-08-27 13:12:52 +03:00
longsonr c7184830cf Bug 1914345 Part 1 - create a pref to allow using moz2d to determine stroke bounds r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D220060
2024-08-27 08:40:40 +00:00
Stanca Serban 22148cc042 Backed out 2 changesets (bug 1914345) for causing reftests failures.
Backed out changeset 92acbb3b404d (bug 1914345)
Backed out changeset 3d7bad39c3f0 (bug 1914345)
2024-08-27 01:55:16 +03:00
longsonr d8b6c112d6 Bug 1914345 Part 1 - create a pref to allow using moz2d to determine stroke bounds r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D220060
2024-08-26 19:09:34 +00:00
Stanca Serban 3c6ee21d7c Backed out 2 changesets (bug 1914345) for causing Android reftests failures. CLOSED TREE
Backed out changeset c0f325a58cd9 (bug 1914345)
Backed out changeset 6ffabd992e4e (bug 1914345)
2024-08-26 21:39:52 +03:00
longsonr 873d1857eb Bug 1914345 Part 1 - create a pref to allow using moz2d to determine stroke bounds r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D220060
2024-08-26 16:29:43 +00:00
Norisz Fay 72f355b6da Bug 878346 - Disable 387290-1.svg on Android 7 for causing almost perma failure a=test-only CLOSED TREE 2024-08-22 11:09:17 +03:00
Emilio Cobos Álvarez 2e6d2a99d2 Bug 878346 - Skip a crashtest that now OOMs in win32 but isn't really a new regression.
See bug referenced from the comment.

MANUAL PUSH: Orange fix CLOSED TREE
2024-08-21 21:35:10 +02:00
Emilio Cobos Álvarez 4aa1ad81ba Bug 878346 - Make transform a mapped attribute for SVG. r=longsonr,firefox-style-system-reviewers,zrhoffman
The tricky bit is rotate() which in SVG means something different if
there's an origin (you translate-then-untranslate it).

But this seems to work off-hand, and fix the reminder of bug 1906261.

Differential Revision: https://phabricator.services.mozilla.com/D215788
2024-08-21 15:00:48 +00:00
longsonr 8657ee9f1f Bug 1913712 - Untangle filter observer updates r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D219427
2024-08-19 13:03:10 +00:00
longsonr e9fb50ad98 Bug 1910842 - fix non-scaling-stroke when outer svg element has a CSS transform r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D218374
2024-08-17 13:58:27 +00:00
Emilio Cobos Álvarez 7356b21e22 Bug 1906475 - Improve scroll{Width,Height} implementation for overflow: visible frames. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D218782
2024-08-15 15:02:00 +00:00
Norisz Fay 7a99a6d5c5 Backed out changeset daa273f24110 (bug 1910842) for causing dt failures on browser_inspector_highlighter-cssshape_offset-path.js CLOSED TREE 2024-08-02 17:26:54 +03:00
longsonr 0fb697cb51 Bug 1910842 - fix non-scaling-stroke when outer svg element has a CSS transform r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D218374
2024-08-02 12:57:16 +00:00
Ting-Yu Lin 4b2c52c158 Bug 1909995 Part 2 - Add IntrinsicISize() as a helper to implement GetMinISize() and GetPrefISize(). r=layout-reviewers,emilio
Most frame types have identical or very similar implementation for GetMinISize()
and GetPrefISize(), and many of them already have `IntrinsicISize()` to unify
the implementation. This patch introduces nsIFrame::IntrinsicISize() so that
derived classes only need to override one method.

`nsBlockFrame`, `ColumnSetWrapperFrame`, and `nsColumnSetFrame` are the only
three classes where their `GetMinISize()` and `GetPrefISize()` have significant
differences. Therefore, we rename `GetMinISize()` and `GetPrefISize()` to
`MinISize()` and `PrefISize`, respectively, and use them as helpers to implement
their `IntrinsicISize()`.

This patch doesn't change behavior.

Differential Revision: https://phabricator.services.mozilla.com/D217790
2024-07-26 20:54:56 +00:00
longsonr f50be4f65a Bug 1908625 - SVG image elements should update if their href is removed r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D217040
2024-07-19 20:11:01 +00:00
Emilio Cobos Álvarez 6ccad32456 Bug 1907868 - Optimize nsQueryFrame for all final frame types and ScrollContainerFrame. r=tnikkel,layout-reviewers,TYLin
Differential Revision: https://phabricator.services.mozilla.com/D216682
2024-07-18 11:51:13 +00:00
Stanca Serban 3507a734dc Backed out changeset c635f67339a5 (bug 1907868) for causing build bustages in nsQueryFrame.h. CLOSED TREE 2024-07-18 05:10:29 +03:00
Emilio Cobos Álvarez 0f21b97fe0 Bug 1907868 - Optimize nsQueryFrame for all final frame types and ScrollContainerFrame. r=tnikkel,layout-reviewers,TYLin
Differential Revision: https://phabricator.services.mozilla.com/D216682
2024-07-17 21:51:45 +00:00
Jonathan Kew 55899d4466 Bug 1906978 - Fix the positioning/anchoring of SVG text runs with bidi control characters. r=longsonr,layout-reviewers,emilio
The added reftests here failed both prior to and after the bidi-engine update,
although the exact nature of the failures changed due to the engine leaving the
bidi control characters in different places in the reordered text. (This is
explicitly unspecified by the Unicode Bidi Algorithm, because the control codes
are nominally removed after processing; leaving them present but invisible is
an implementation detail.)

The key fix here is that DoGlyphPositioning() anchors the first *addressable*
character of the text, not necessarily the absolute first codepoint, as that
may be a "deleted" control code whose position is arbitrary.

Differential Revision: https://phabricator.services.mozilla.com/D216400
2024-07-12 17:31:37 +00:00
longsonr eb930ea2bb Bug 1903546 - fix non-scaling-stroke r=emilio
This implements https://github.com/w3c/svgwg/issues/582 and therefore mostly reverts bug 1904891

Differential Revision: https://phabricator.services.mozilla.com/D216303
2024-07-11 20:10:36 +00:00
longsonr 7aec7842f8 Bug 1906264 - masks and patterns should not display symbols r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D215796
2024-07-05 09:59:36 +00:00
longsonr 9416db8add Bug 1904891 - Support viewport and screen options for non-scaling-stroke r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D215138
2024-07-03 17:42:10 +00:00
longsonr 03b674d7e6 Bug 1905023 - viewBox values need to be adjusted in the presence of CSS zoom r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D215300
2024-07-03 15:42:09 +00:00
Ashley Hale d06ee321d6 Bug 1904566 - check gfx.webrender.svg-filter-effects pref before building SVGFE filters r=gfx-reviewers,gw
Differential Revision: https://phabricator.services.mozilla.com/D214912
2024-07-03 03:01:11 +00:00
Ting-Yu Lin e6b76cd83d Bug 1905001 Part 1 - Add logical accessors to IntrinsicSize. r=dholbert
By adding `ISize()` and `BSize()` to `IntrinsicSize`, we can simplify the
repetitive pattern that checks writing mode and gets the corresponding width or
height.

Differential Revision: https://phabricator.services.mozilla.com/D215047
2024-07-02 23:21:45 +00:00