# Transforms specifying singular matrices shouldn't display at all.
# NOTE: Regressions might manifest themselves as reftest timeouts on
# this test.
== singular-1a.html about:blank
# Multiple transforms should act identically to nested divs.
fuzzy(0-1,0-27) pref(apz.allow_zooming,true) == compound-1a.html compound-1-ref.html
!= compound-1a.html compound-1-fail.html
== dynamic-inherit-1.html dynamic-inherit-1-ref.html
== dynamic-addremove-1a.html dynamic-addremove-1-ref.html
== dynamic-addremove-1b.html dynamic-addremove-1-ref.html
== dynamic-addremove-1c.html dynamic-addremove-1-ref.html
== dynamic-addremove-2.html dynamic-addremove-2-ref.html
# translatex should act like position: relative
== translatex-1a.html translatex-1-ref.html
== translatex-1b.html translatex-1-ref.html
== translatex-1c.html translatex-1-ref.html
== translatex-1d.html translatex-1-ref.html
== translatex-1e.html translatex-1-ref.html
== translatex-1a.html translatex-1-ref-2.html
# translatey should act like position: relative
== translatey-1a.html translatey-1-ref.html
== translatey-1b.html translatey-1-ref.html
== translatey-1c.html translatey-1-ref.html
== translatey-1d.html translatey-1-ref.html
== translatey-1e.html translatey-1-ref.html
# matrices defined to be translations should act like position: relative
== translatex-2.html translatex-1-ref.html
== translatey-2.html translatey-1-ref.html
# translate should act like position: relative
!= translate-1a.html translate-1-ref.html
== translate-1b.html translate-1-ref.html
== translate-1c.html translate-1-ref.html
== translate-1d.html translate-1-ref.html
== translate-1e.html translate-1-ref.html
== translate-2a.html translate-2-ref.html
== translate-3.html translate-3-ref.html
# rotate: Several rotations of the same object should be idempotent.  These
# tests are currently disabled because of subpixel (< 0.00001 gfx units)
# rounding errors.
random == rotate-1a.html rotate-1-ref.html
random == rotate-1b.html rotate-1-ref.html
random == rotate-1c.html rotate-1-ref.html
random == rotate-1d.html rotate-1-ref.html
random == rotate-1e.html rotate-1-ref.html
random == rotate-1f.html rotate-1-ref.html
# rotate: 90deg rotations should be indistinguishable from objects constructed
# to look the same.
== rotate-2a.html rotate-2-ref.html
== rotate-2b.html rotate-2-ref.html
# -transform-origin: We should NOT get the same images when using different
# -transform-origins.
!= origin-1a.html origin-1-ref.html
!= origin-1b.html origin-1-ref.html
# -transform-origin: We should get the same images when using equivalent
# -transform-origins.
== origin-2a.html origin-2-ref.html
== origin-2b.html origin-2-ref.html
== origin-2c.html origin-2-ref.html
# "Translate" with percentages should be indistinguishable from translate with
# equivalent values.
== percent-1a.html percent-1-ref.html
fuzzy(0-1,0-2) == percent-1b.html percent-1-ref.html
fuzzy(0-1,0-80) == percent-1c.html percent-1-ref.html
fuzzy(0-1,0-80) == percent-1d.html percent-1-ref.html
fuzzy(0-1,0-80) == percent-1e.html percent-1-ref.html
fuzzy(0-1,0-80) == percent-1f.html percent-1-ref.html
fuzzy(0-1,0-80) == percent-1g.html percent-1-ref.html
# Transformed elements are abs-pos and fixed-pos containing blocks.
== abspos-1a.html abspos-1-ref.html
== abspos-1b.html abspos-1-ref.html
== abspos-1c.html abspos-1-ref.html
== abspos-1d.html abspos-1-ref.html
!= abspos-1e.html abspos-1-ref.html
== abspos-1f.html abspos-1-ref.html
== abspos-1g.html abspos-1-ref.html
# Origin can use "top" "right" etc.
== origin-name-1a.html origin-name-1-ref.html
fuzzy(0-1,0-19) == origin-name-1b.html origin-name-1-ref.html
== origin-name-2a.html origin-name-2-ref.html
== origin-name-2b.html origin-name-2-ref.html
fuzzy(0-1,0-350) == origin-name-2c.html origin-name-2-ref.html
== origin-name-3a.html origin-name-3-ref.html
== origin-name-3b.html origin-name-3-ref.html
# Snapping still applies after 90 degree rotations.
== snapping-1.html snapping-1-ref.html
# SVG effects should work on transforms.
== transform-svg-1a.xhtml transform-svg-1-ref.xhtml
fuzzy(0-2,0-500) == transform-svg-2a.xhtml transform-svg-2-ref.xhtml
!= transform-svg-2a.xhtml transform-svg-2-fail.xhtml
# skew should allow a mix of one and two parameters.
fuzzy(0-1,0-20) == skew-1a.html skew-1-ref.html
fuzzy(0-1,0-80) == skew-1b.html skew-1-ref.html
fuzzy(0-1,0-250) == skew-2a.html skew-2-ref.html
# matrix with values equal to other transforms should behave indistinguishably
== matrix-1a.html matrix-1-ref.html
== matrix-2a.html matrix-2-ref.html
== matrix-3a.html matrix-3-ref.html
== matrix-4a.html matrix-4-ref.html
fuzzy(0-1,0-120) == matrix-5a.html matrix-5-ref.html
fuzzy(0-1,0-110) == matrix-6a.html matrix-6-ref.html
== matrix-7a.html matrix-7-ref.html
# ensure matrix 3d does not break us - should do nothing
== matrix3d-1.html matrix3d-1-ref.html
# Test that complex transform can be reversed
fuzzy(0-2,0-5) == stresstest-1.html stresstest-1-ref.html
# Test scale transforms
== scalex-1.html scalex-1-ref.html
== scaley-1.html scaley-1-ref.html
== scale-1a.html scale-1-ref.html
== scale-1b.html scale-1-ref.html
== scale-percent-1.html scale-percent-1-ref.html
== scaled-blend-mode.html scaled-blend-mode-ref.html
# Some simple checks that it obeys selector operations
== descendant-1.html descendant-1-ref.html
== propagate-inherit-boolean.html propagate-inherit-boolean-ref.html
# Ensure you can't move outside an iframe
== iframe-1.html iframe-1-ref.html
# Bugs
== 601894-1.html 601894-ref.html
== 601894-2.html 601894-ref.html
== 830299-1.html 830299-1-ref.html
# Bug 722777
== table-1a.html table-1-ref.html
== table-1b.html table-1-ref.html
== table-1c.html table-1-ref.html
== table-2a.html table-2-ref.html
== table-2b.html table-2-ref.html
# Bug 722463
== inline-1a.html inline-1-ref.html
== transform-box-svg-1a.svg transform-box-svg-1-ref.svg
== transform-box-svg-1b.svg transform-box-svg-1-ref.svg
== transform-box-svg-2a.svg transform-box-svg-2-ref.svg
== transform-box-svg-2b.svg transform-box-svg-2-ref.svg
== transform-box-svg-3a.svg pass.svg
== transform-origin-svg-1a.svg transform-origin-svg-1-ref.svg
== transform-origin-svg-1b.svg transform-origin-svg-1-ref.svg
== transform-origin-svg-2a.svg transform-origin-svg-2-ref.svg
== transform-origin-svg-2b.svg transform-origin-svg-2-ref.svg
# Bug 1122526
== animate-layer-scale-inherit-1.html animate-layer-scale-inherit-1-ref.html
fuzzy(0-145,0-10000) == animate-layer-scale-inherit-2.html animate-layer-scale-inherit-2-ref.html
== animate-layer-scale-inherit-3.html animate-layer-scale-inherit-1-ref.html
# Bug 1301500
== dynamic-add-without-change-cb-1.html dynamic-add-without-change-cb-1-ref.html
skip-if(useDrawSnapshot) fuzzy(0-26,0-208) == table-overflowed-by-animation.html table-overflowed-by-animation-ref.html # Bug 1715402 for useDrawSnapshot&&webrender
== translate-rounding-1.html translate-rounding-ref.html
== translate-rounding-2.html translate-rounding-ref.html
fails == translate-rounding-3.html translate-rounding-viewport-ref.html # bug 1397146
== invalidate-transform-1.html invalidate-transform-1-ref.html
== invalidate-svg-scale-1.html invalidate-svg-scale-1-ref.html
# Bug 1526847
pref(layout.css.individual-transform.enabled,true) == animate-layer-scale-inherit-4.html animate-layer-scale-inherit-4-ref.html
fuzzy-if(winWidget,0-1,0-1000) == 1569215-1.html 1569215-1-ref.html

== transform-anon-block-1.html transform-anon-block-1-ref.html
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) == partial-prerender-expansion-translate.html partial-prerender-expansion-ref.html
test-pref(layout.animation.prerender.partial,true) == partial-prerender-translate-1.html about:blank
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") fuzzy(0-59,0-1800) fuzzy-if(Android,0-255,0-7000) == partial-prerender-translate-2.html partial-prerender-translate-2-ref.html
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") random == partial-prerender-translate-3.html partial-prerender-translate-3-ref.html # bug 1642575
# This reftest doesn't fail on WebRender, this reftest fails only if there is a jank mechanism and the mechanism doesn't properly handle ancestor's transform values
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") == partial-prerender-translate-4.html partial-prerender-expansion-ref.html
# This reftest doesn't fail on WebRender, this reftest fails only if there is a jank mechanism and the mechanism does inproperly handle position:fixed scroll target
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") == partial-prerender-translate-5.html partial-prerender-translate-5-ref.html
skip-if(useDrawSnapshot) test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") fuzzy(0-46,0-1250) fuzzy-if(Android,0-255,0-9900) random-if(gtkWidget&&isDebugBuild) random-if(useDrawSnapshot) == partial-prerender-translate-6.html partial-prerender-translate-6-ref.html
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") fuzzy(0-4,0-1200) == partial-prerender-translate-7.html partial-prerender-translate-2-ref.html
# This reftest doesn't fail on WebRender, this reftest fails only if there is a jank mechanism and the mechanism doesn't properly clip transform in iframes.
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") == partial-prerender-translate-8.html partial-prerender-translate-8-ref.html
# This reftest doesn't fail on WebRender, this reftest fails only if there is a jank mechanism and the mechanism does inproperly handle position:fixed scroll target
fails-if(useDrawSnapshot) test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") == partial-prerender-translate-9.html partial-prerender-translate-5-ref.html
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") == partial-prerender-translate-10.html partial-prerender-translate-10-ref.html
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") == partial-prerender-translate-11.html partial-prerender-translate-11-ref.html
skip test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") == partial-prerender-translate-12.html partial-prerender-translate-2-ref.html # bug 1666692 for WebRender
# This reftest heavily depends on layout.animation.prerender.viewport-ratio-limit
# and reftest viewport size (800, 1000).
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)||Android) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") fuzzy-if(!layersGPUAccelerated,0-75,0-2683) == partial-prerender-expansion-rotate.html partial-prerender-expansion-ref.html
skip-if(useDrawSnapshot) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") pref(dom.meta-viewport.enabled,true) pref(apz.allow_zooming,true) == partial-prerender-expansion-with-resolution-1.html partial-prerender-expansion-with-resolution-ref.html
skip test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") pref(dom.meta-viewport.enabled,true) pref(apz.allow_zooming,true) == partial-prerender-expansion-with-resolution-2.html partial-prerender-expansion-with-resolution-ref.html # bug 1650039 for WebRender
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") fuzzy-if(Android,0-255,0-400) == partial-prerender-in-svg-1.html partial-prerender-in-svg-1-ref.html
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") == partial-prerender-in-svg-2.html partial-prerender-in-svg-1-ref.html # Reuse partial-prerender-in-svg-1-ref.html since the result should look same as partial-prerender-in-svg-1.html
test-pref(layout.animation.prerender.partial.jank,true) test-pref(layout.animation.prerender.partial,true) test-pref(layout.animation.prerender.viewport-ratio-limit,"1.125") fuzzy(0-62,0-400) fuzzy-if(Android,0-255,0-2000) == partial-prerender-in-svg-3.html partial-prerender-in-svg-3-ref.html
