Bug 1722532 [wpt PR 29807] - Don't pass transforms with negative M44 to MapEnclosedRe...
commite1b9ad18d07954168fda1e57a94eed6c57edb015
authorL. David Baron <dbaron@chromium.org>
Fri, 30 Jul 2021 22:12:07 +0000 (30 22:12 +0000)
committermoz-wptsync-bot <wptsync@mozilla.com>
Sat, 31 Jul 2021 09:22:17 +0000 (31 09:22 +0000)
treef74032cbb67f941caa314bc98a043d79891c2681
parent70fd0ea100a482ee95f616cfa375d92fed1cfd17
Bug 1722532 [wpt PR 29807] - Don't pass transforms with negative M44 to MapEnclosedRectWith2dAxisAlignedTransform., a=testonly

Automatic update from web-platform-tests
Don't pass transforms with negative M44 to MapEnclosedRectWith2dAxisAlignedTransform.

This introduces gfx::Transform::NonDegeneratePreserves2dAxisAlignment
and uses it, rather than Preserves2dAxisAlignment, to guard all the
calls to cc::MathUtil::MapEnclosedRectWith2dAxisAlignedTransform other
than those in tests and those that result from
gfx::OverlayTransformToTransform.

Without this change, the new tests w-negative-002.html and
w-negative-003.html hit the !hc0.ShouldBeClipped() DCHECK(), though
w-negative-001.html does not, and this only happens with
--disable-features=CompositeAfterPaint (which is still the default in
web tests).

Fixed: 455874, 11732181229117
Change-Id: I671f04084a92ac6a71b83444fbba2ff9520dbc5a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3055870
Reviewed-by: weiliangc <weiliangc@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/master@{#906332}

--

wpt-commits: f0c21a69ac6374569e4c26e06b12a46c3a236396
wpt-pr: 29807
testing/web-platform/tests/css/css-transforms/crashtests/w-negative-001.html [new file with mode: 0644]
testing/web-platform/tests/css/css-transforms/crashtests/w-negative-002.html [new file with mode: 0644]
testing/web-platform/tests/css/css-transforms/crashtests/w-negative-003.html [new file with mode: 0644]