# Reftests for downscaling # # Downscaling can be a lossy process, so a bit of mismatch is acceptable here, # as long as it's barely noticable visually. When necessary, this can be # explicitly allowed via 'fuzzy'/'fuzzy-if' annotations. # # Many of these tests check primarily that we don't lose rows or columns of # pixels when downscaling by making sure that the result isn't too similar to # about:blank. A small amount of fuzziness is used to ensure that the tests # don't pass because of very slight deviations; passing tests should be # substantially different from about:blank. This fuzziness should *not* be # removed as doing so would make the tests pass in situations where they # shouldn't. # # IMPORTANT: For robustness, each test should be listed *twice* in this # manifest -- once with the high quality downscaling pref disabled, and once # with this pref enabled. The pref is set via "default-preferences", so # simply appending a new test to the lists below each of those lines should be # sufficient. # # Also note that Mac OS X has its own system-level downscaling algorithm, so # tests here may need Mac-specific "fuzzy-if(cocoaWidget,...)" annotations. # Similarly, modern versions of Windows have slightly different downscaling # behavior than other platforms, and may require "fuzzy-if(winWidget,...)". # RUN TESTS NOT AFFECTED BY DOWNSCALE-DURING-DECODE: # ================================================== fuzzy-if(skiaContent,14,416) == downscale-svg-1a.html downscale-svg-1-ref.html?80 fuzzy(80,468) == downscale-svg-1b.html downscale-svg-1-ref.html?72 fuzzy-if(skiaContent,8,292) == downscale-svg-1c.html downscale-svg-1-ref.html?64 fuzzy(17,208) == downscale-svg-1d.html downscale-svg-1-ref.html?53 fuzzy(78,216) fuzzy-if(skiaContent,110,181) == downscale-svg-1e.html downscale-svg-1-ref.html?40 fuzzy(51,90) fuzzy-if(skiaContent,142,77) == downscale-svg-1f.html downscale-svg-1-ref.html?24 # RUN TESTS WITH DOWNSCALE-DURING-DECODE DISABLED: # ================================================ default-preferences pref(image.downscale-during-decode.enabled,false) fuzzy-if(winWidget,16,20) fuzzy-if(cocoaWidget,106,31) == downscale-1.html downscale-1-ref.html fuzzy(20,999) != downscale-2a.html?203,52,left about:blank fuzzy(20,999) != downscale-2b.html?203,52,left about:blank fuzzy(20,999) != downscale-2c.html?203,52,left about:blank fuzzy(20,999) != downscale-2d.html?203,52,left about:blank fuzzy(20,999) != downscale-2e.html?203,52,left about:blank fuzzy(20,999) != downscale-2a.html?205,53,left about:blank fuzzy(20,999) != downscale-2b.html?205,53,left about:blank fuzzy(20,999) != downscale-2c.html?205,53,left about:blank fuzzy(20,999) != downscale-2d.html?205,53,left about:blank fuzzy(20,999) != downscale-2e.html?205,53,left about:blank fuzzy(20,999) != downscale-2a.html?203,52,right about:blank fuzzy(20,999) != downscale-2b.html?203,52,right about:blank fuzzy(20,999) != downscale-2c.html?203,52,right about:blank fuzzy(20,999) != downscale-2d.html?203,52,right about:blank fuzzy(20,999) != downscale-2e.html?203,52,right about:blank fuzzy(20,999) != downscale-2a.html?205,53,right about:blank fuzzy(20,999) != downscale-2b.html?205,53,right about:blank fuzzy(20,999) != downscale-2c.html?205,53,right about:blank fuzzy(20,999) != downscale-2d.html?205,53,right about:blank fuzzy(20,999) != downscale-2e.html?205,53,right about:blank fuzzy(20,999) != downscale-2a.html?203,52,top about:blank fuzzy(20,999) != downscale-2b.html?203,52,top about:blank fuzzy(20,999) != downscale-2c.html?203,52,top about:blank fuzzy(20,999) != downscale-2d.html?203,52,top about:blank fuzzy(20,999) != downscale-2e.html?203,52,top about:blank fuzzy(20,999) != downscale-2a.html?205,53,top about:blank fuzzy(20,999) != downscale-2b.html?205,53,top about:blank fuzzy(20,999) != downscale-2c.html?205,53,top about:blank fuzzy(20,999) != downscale-2d.html?205,53,top about:blank fuzzy(20,999) != downscale-2e.html?205,53,top about:blank fuzzy(20,999) != downscale-2a.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2b.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2c.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2d.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2e.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2a.html?205,53,bottom about:blank fuzzy(20,999) != downscale-2b.html?205,53,bottom about:blank fuzzy(20,999) != downscale-2c.html?205,53,bottom about:blank fuzzy(20,999) != downscale-2d.html?205,53,bottom about:blank fuzzy(20,999) fails-if(OSX>=1008&&!skiaContent) != downscale-2e.html?205,53,bottom about:blank fuzzy(63,3391) == downscale-moz-icon-1.html downscale-moz-icon-1-ref.html == downscale-png.html?16,16,interlaced downscale-png.html?16,16,normal == downscale-png.html?24,24,interlaced downscale-png.html?24,24,normal # Non-transparent and transparent ICO images == downscale-16px.html?ff-0RGB.ico downscale-16px.html?ff-0RGB.png fuzzy(1,1) == downscale-16px.html?ff-ARGB.ico downscale-16px.html?ff-ARGB.png # Upside-down (negative height) BMP == downscale-8px.html?top-to-bottom-16x16-24bpp.bmp downscale-8px.html?bmp-size-16x16-24bpp.png # Test downscaling from all supported formats from 256 to 32. == downscale-32px.html?.bmp downscale-32px-ref.html == downscale-32px.html?.gif downscale-32px-ref.html fuzzy(1,1024) == downscale-32px.html?.jpg downscale-32px-ref.html == downscale-32px.html?.png downscale-32px-ref.html == downscale-32px.html?.svg downscale-32px-ref.html == downscale-32px.html?-bmp-in.ico downscale-32px-ref.html == downscale-32px.html?-png-in.ico downscale-32px-ref.html # RUN TESTS WITH DOWNSCALE-DURING-DECODE ENABLED: # =============================================== default-preferences pref(image.downscale-during-decode.enabled,true) fuzzy(31,127) fuzzy-if(d2d,31,147) == downscale-1.html downscale-1-ref.html # intermittently 147 pixels on win7 accelerated only (not win8) fuzzy(20,999) != downscale-2a.html?203,52,left about:blank fuzzy(20,999) != downscale-2b.html?203,52,left about:blank fuzzy(20,999) != downscale-2c.html?203,52,left about:blank fuzzy(20,999) != downscale-2d.html?203,52,left about:blank fuzzy(20,999) != downscale-2e.html?203,52,left about:blank fuzzy(20,999) != downscale-2f.html?203,52,left about:blank fuzzy(20,999) != downscale-2a.html?205,53,left about:blank fuzzy(20,999) != downscale-2b.html?205,53,left about:blank fuzzy(20,999) != downscale-2c.html?205,53,left about:blank fuzzy(20,999) != downscale-2d.html?205,53,left about:blank fuzzy(20,999) != downscale-2e.html?205,53,left about:blank fuzzy(20,999) != downscale-2f.html?205,53,left about:blank fuzzy(20,999) != downscale-2a.html?203,52,right about:blank fuzzy(20,999) != downscale-2b.html?203,52,right about:blank fuzzy(20,999) != downscale-2c.html?203,52,right about:blank fuzzy(20,999) != downscale-2d.html?203,52,right about:blank fuzzy(20,999) != downscale-2e.html?203,52,right about:blank fuzzy(20,999) != downscale-2f.html?203,52,right about:blank fuzzy(20,999) != downscale-2a.html?205,53,right about:blank fuzzy(20,999) != downscale-2b.html?205,53,right about:blank fuzzy(20,999) != downscale-2c.html?205,53,right about:blank fuzzy(20,999) != downscale-2d.html?205,53,right about:blank fuzzy(20,999) != downscale-2e.html?205,53,right about:blank fuzzy(20,999) != downscale-2f.html?205,53,right about:blank fuzzy(20,999) != downscale-2a.html?203,52,top about:blank fuzzy(20,999) != downscale-2b.html?203,52,top about:blank fuzzy(20,999) != downscale-2c.html?203,52,top about:blank fuzzy(20,999) != downscale-2d.html?203,52,top about:blank fuzzy(20,999) != downscale-2e.html?203,52,top about:blank fuzzy(20,999) != downscale-2f.html?203,52,top about:blank fuzzy(20,999) != downscale-2a.html?205,53,top about:blank fuzzy(20,999) != downscale-2b.html?205,53,top about:blank fuzzy(20,999) != downscale-2c.html?205,53,top about:blank fuzzy(20,999) != downscale-2d.html?205,53,top about:blank fuzzy(20,999) != downscale-2e.html?205,53,top about:blank fuzzy(20,999) != downscale-2f.html?205,53,top about:blank fuzzy(20,999) != downscale-2a.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2b.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2c.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2d.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2e.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2f.html?203,52,bottom about:blank fuzzy(20,999) != downscale-2a.html?205,53,bottom about:blank fuzzy(20,999) != downscale-2b.html?205,53,bottom about:blank fuzzy(20,999) != downscale-2c.html?205,53,bottom about:blank fuzzy(20,999) != downscale-2d.html?205,53,bottom about:blank fuzzy(20,999) != downscale-2e.html?205,53,bottom about:blank fuzzy(20,999) != downscale-2f.html?205,53,bottom about:blank # Skip on WinXP with skia content fuzzy(71,4439) fails-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == downscale-moz-icon-1.html downscale-moz-icon-1-ref.html == downscale-png.html?16,16,interlaced downscale-png.html?16,16,normal == downscale-png.html?24,24,interlaced downscale-png.html?24,24,normal # Non-transparent and transparent ICO images fuzzy(1,3) == downscale-16px.html?ff-0RGB.ico downscale-16px.html?ff-0RGB.png fuzzy(3,32) == downscale-16px.html?ff-ARGB.ico downscale-16px.html?ff-ARGB.png # Upside-down (negative height) BMP == downscale-8px.html?top-to-bottom-16x16-24bpp.bmp downscale-8px.html?bmp-size-16x16-24bpp.png # Test downscaling from all supported formats from 256 to 32. fuzzy(18,128) == downscale-32px.html?.bmp downscale-32px-ref.html fuzzy(18,128) == downscale-32px.html?.gif downscale-32px-ref.html fuzzy(19,992) == downscale-32px.html?.jpg downscale-32px-ref.html fuzzy(18,128) == downscale-32px.html?.png downscale-32px-ref.html == downscale-32px.html?.svg downscale-32px-ref.html fuzzy(18,128) == downscale-32px.html?-bmp-in.ico downscale-32px-ref.html fuzzy(18,128) == downscale-32px.html?-png-in.ico downscale-32px-ref.html