gecko/layout/reftests/backgrounds/reftest.list
Kyle Huey c28e572034 Bug 816498: Fix some things about background attribute handling that are still broken. r=bz
As filed the bug is about table backgrounds failing to print.  The root cause of this is that we load images from the original document, because print/print-preview documents (which are static clones of the original) cannot do loads.  This results in an entry in the css::ImageValue's request table under the original document, but entry under the printing document.  Then we do layout, try to get the request, and fail, and nothing is displayed.  The solution to this is to force us to clone the request for the printing document if we're loading off the original document.  I manually verified that this does not regress Bug 560235.

While writing a test for this, we discovered another problem.  The reftest print code does not actually use the printing codepath.  Instead it takes an existing document, tears down its presshell, and creates a new presshell for printing.  Fixing the above bug did not make the reftest print test pass because ImageLoader does not deal properly with presshell destruction/recreation.  It assumes that when the presshell is destroyed all of the css::ImageValues can be cleared of their entries for that document.  This fails for ImageValues for mapped attributes because they are held alive by the content tree.  When a new presshell for this document is then created there is no entry for the document and thus no image request to paint.  The fix for this is to only clear the frame to request and request to frame mapping hashtables and not to clear the document's entry on the ImageValue when the presshell is destroyed.  The destruction of the ImageLoader (which is held from a strong reference on the document) is when those entries are removed.  The final change is to change css::ImageValue's hashtable from holding a strong reference to the keys (which are documents) to holding raw pointer references.  This is safe because we clear the relevant entry when the corresponding ImageLoader dies, and is needed to prevent a reference cycle that was being broken by presshell destruction.

--HG--
rename : layout/reftests/backgrounds/table-background-ref.html => layout/reftests/backgrounds/table-background-print-ref.html
rename : layout/reftests/backgrounds/table-background.html => layout/reftests/backgrounds/table-background-print.html
2013-02-23 06:59:43 -08:00

144 lines
10 KiB
Plaintext

include gradient/reftest.list
include vector/reftest.list
skip-if(B2G) random-if(bug685516) == layers-stacking-order.xhtml layers-stacking-order-ref.xhtml
skip-if(B2G) random-if(bug685516) == layers-layer-count-cascade-1.xhtml layers-layer-count-1-ref.xhtml
random-if(bug685516) == layers-layer-count-inheritance-1.xhtml layers-layer-count-1-ref.xhtml
random-if(bug685516) == layers-layer-count-cascade-2.xhtml layers-layer-count-2-ref.xhtml
random-if(bug685516) == layers-layer-count-inheritance-2.xhtml layers-layer-count-2-ref.xhtml
fuzzy-if(Android,9,600000) == viewport-translucent-color-1.html viewport-translucent-color-ref.html
fails-if(Android) == viewport-translucent-color-2.html viewport-translucent-color-ref.html
fails-if(Android) == viewport-translucent-color-3.html viewport-translucent-color-ref.html
!= viewport-translucent-color-ref.html about:blank
random-if(bug685516) == iframe-translucent-color-1.html iframe-translucent-color-ref.html
random-if(bug685516) == translucent-color-1.html translucent-color-ref.html
random-if(bug685516) == translucent-color-2.html translucent-color-ref.html
random-if(bug685516) == translucent-color-3.html translucent-color-ref.html
!= translucent-color-ref.html about:blank
skip-if(B2G) == root-element-display-none-1.html root-element-display-none-ref.html
random-if(bug685516) == continuous-inline-1a.html continuous-inline-1ab-ref.html
random-if(bug685516) == continuous-inline-1b.html continuous-inline-1ab-ref.html
random-if(bug685516) == continuous-inline-1c.html continuous-inline-1cd-ref.html
random-if(bug685516) == continuous-inline-1d.html continuous-inline-1cd-ref.html
random-if(bug685516) == continuous-inline-2a.html continuous-inline-2-ref.html
random-if(bug685516) == continuous-inline-2b.html continuous-inline-2-ref.html
random-if(bug685516) == continuous-inline-3.html continuous-inline-3-ref.html
skip-if(B2G) random-if(bug685516) == continuous-inline-4a.html continuous-inline-4-ref.html
skip-if(B2G) random-if(bug685516) == continuous-inline-4b.html continuous-inline-4-ref.html
random-if(bug685516) == continuous-inline-5a.html continuous-inline-5-ref.html
random-if(bug685516) == continuous-inline-5b.html continuous-inline-5-ref.html
random-if(bug685516) == background-redraw-237766.html background-redraw-237766-ref.html
random-if(bug685516) == background-clip-1.html background-clip-1-ref.html
random-if(bug685516) == background-clip-2.html background-clip-2-ref.html
skip-if(B2G) random-if(bug685516) == background-position-1a.html background-position-1-ref.html
random-if(bug685516) == background-position-1b.html background-position-1-ref.html
random-if(bug685516) == background-position-1c.html background-position-1-ref.html
random-if(bug685516) == background-position-2a.html background-position-2-ref.html
random-if(bug685516) == background-position-2b.html background-position-2-ref.html
random-if(bug685516) == background-position-3a.html background-position-3-ref.html
random-if(bug685516) == background-position-3b.html background-position-3-ref.html
random-if(bug685516) == background-position-4a.html background-position-4-ref.html
random-if(bug685516) == background-position-4b.html background-position-4-ref.html
random-if(bug685516) == background-position-4c.html background-position-4-ref.html
random-if(bug685516) == background-position-5.html background-position-5-ref.html
random-if(bug685516) == background-position-6.html background-position-6-ref.html
random-if(bug685516) == background-position-7.html background-position-7-ref.html
random-if(bug685516) == background-position-8.html background-position-8-ref.html
random-if(bug685516) == background-size-auto-auto.html background-size-auto-ref.html
random-if(bug685516) == background-size-auto.html background-size-auto-ref.html
random-if(bug685516) == background-size-contain.html background-size-contain-ref.html
random-if(bug685516) == background-size-cover.html background-size-cover-ref.html
random-if(bug685516) == background-size-auto-length.html background-size-auto-length-ref.html
random-if(bug685516) == background-size-length-auto.html background-size-auto-length-ref.html
random-if(bug685516) == background-size-length.html background-size-auto-length-ref.html
random-if(bug685516) == background-size-auto-percent.html background-size-auto-length-ref.html
random-if(bug685516) == background-size-percent-auto.html background-size-auto-length-ref.html
random-if(bug685516) == background-size-percent.html background-size-auto-length-ref.html
random-if(bug685516) == background-size-length-percent.html background-size-length-percent-ref.html
random-if(bug685516) == background-size-percent-length.html background-size-length-percent-ref.html
random-if(bug685516) == background-size-percent-percent.html background-size-percent-percent-ref.html
random-if(bug685516) == background-size-length-length.html background-size-length-length-ref.html
skip-if(B2G) random-if(bug685516) == background-size-percent-percent-stretch.html background-size-percent-percent-stretch-ref.html # bug 773482
random-if(bug685516) == background-size-body-percent-percent.html background-size-body-percent-percent-ref.html
random-if(bug685516) == background-size-body-percent-percent-no-repeat.html background-size-body-percent-percent-ref.html
random-if(bug685516) == background-size-body-percent-percent-not-fixed.html background-size-body-percent-percent-ref.html
random-if(bug685516) == background-size-body-cover.html background-size-body-cover-ref.html
random-if(bug685516) == background-size-body-cover-no-repeat.html background-size-body-cover-ref.html
fails-if(smallScreen&&Android) random-if(bug685516) != background-size-body-cover-not-fixed.html background-size-body-cover-ref.html
random-if(bug685516) != background-size-body-cover-not-fixed.html background-size-body-single-not-fixed.html
# relies on reftest window having greater height than width
random-if(bug685516) == background-size-body-contain.html background-size-body-cover-ref.html
fails-if(smallScreen&&Android) random-if(bug685516) != background-size-body-contain-no-repeat.html background-size-body-cover-ref.html
random-if(bug685516) != background-size-body-contain-not-fixed.html background-size-body-cover-ref.html
random-if(bug685516) != background-size-body-cover-not-fixed.html background-size-body-contain-not-fixed.html
random-if(bug685516) != background-size-body-percent-percent-overflow.html background-size-body-percent-percent-overflow-ref.html
random-if(bug685516) == background-size-zoom-no-repeat.html background-size-zoom-no-repeat-ref.html
random-if(bug685516) == background-size-contain-clip-padding.html background-size-contain-clip-padding-ref.html
random-if(bug685516) == background-size-contain-clip-border.html background-size-contain-clip-border-ref.html
random-if(bug685516) == background-size-contain-position-fifty-fifty.html background-size-contain-position-fifty-fifty-ref.html
random-if(bug685516) == background-size-contain-clip-padding-origin-border.html background-size-contain-clip-padding-origin-border-ref.html
random-if(bug685516) == background-size-contain-clip-padding-origin-border-padding.html background-size-contain-clip-padding-origin-border-padding-ref.html
skip-if(B2G) == background-layers-1a.html background-layers-1-ref.html # bug 773482
== background-layers-1b.html background-layers-1-ref.html
# -moz-background-inline-policy is touchy and hard to test due to stretching
# artifacts and the difficulty of covering exact lines, and its CSS3 analog is
# on the chopping block at the moment, so just make sure background-size results
# in a different rendering when present.
!= background-size-cover-continuous.html background-size-continuous.html
!= background-size-cover-each-box.html background-size-each-box.html
!= background-size-cover-bounding-box.html background-size-bounding-box.html
# ...and make sure each rendering with background-size is different from the
# others
!= background-size-cover-continuous.html background-size-cover-each-box.html
!= background-size-cover-continuous.html background-size-cover-bounding-box.html
!= background-size-cover-each-box.html background-size-cover-bounding-box.html
random-if(bug685516) == background-size-monster-ch.html background-size-monster-ref.html
random-if(bug685516) == background-size-monster-cm.html background-size-monster-ref.html
random-if(bug685516) == background-size-monster-em.html background-size-monster-ref.html
random-if(bug685516) == background-size-monster-ex.html background-size-monster-ref.html
random-if(bug685516) == background-size-monster-inches.html background-size-monster-ref.html
random-if(bug685516) == background-size-monster-mm.html background-size-monster-ref.html
random-if(bug685516) == background-size-monster-pc.html background-size-monster-ref.html
random-if(bug685516) == background-size-monster-pt.html background-size-monster-ref.html
random-if(bug685516) == background-size-monster-px.html background-size-monster-ref.html
random-if(bug685516) == background-size-monster-rem.html background-size-monster-ref.html
# There seems to be a pixel-snapping problem here, where the repeated background
# image isn't being snapped at its boundaries. Note that the boundaries within
# the image aren't the issue, because they're being obscured to avoid sampling
# algorithm dependencies (at least assuming the sampling algorithm in use
# doesn't sample too far astray from the boundaries).
fails == background-size-zoom-repeat.html background-size-zoom-repeat-ref.html
# -moz-default-background-color and -moz-default-color (bug 591341)
== background-moz-default-background-color.html background-moz-default-background-color-ref.html
random-if(bug685516||B2G) == fixed-bg-with-transform-outside-viewport-1.html fixed-bg-with-transform-outside-viewport-ref.html
random-if(bug685516) HTTP == root-background-1.html root-background-ref.html
random-if(bug685516) HTTP != root-background-1.html about:blank
random-if(bug685516||B2G) == really-big-background.html really-big-background-ref.html
random-if(bug685516) == body-background.html body-background-ref.html
random-if(bug685516) == table-background.html table-background-ref.html
random-if(bug685516) == table-background-print.html table-background-print-ref.html
random-if(bug685516) != div-background.html div-background-ref.html
random-if(bug685516) == background-repeat-1-ref.html background-repeat-1.html
random-if(bug685516) == multi-background-clip-content-border.html multi-background-clip-content-border-ref.html
HTTP == background-referrer.html background-referrer-ref.html