Bug 1220021 (part 2) - Add four reftests. r=seth, a=lizzard
authorNicholas Nethercote <nnethercote@mozilla.com>
Mon, 23 Nov 2015 18:20:21 -0800
changeset 305687 77de40d65ca2359f1dfe7f23640e58866a654711
parent 305686 9bb2dd1ff7f649fa0c760cf8f593fe05803a4cca
child 305688 444d8d6198d29c1463cf274e3fd1628525e38b4c
push id1001
push userraliiev@mozilla.com
push dateMon, 18 Jan 2016 19:06:03 +0000
treeherdermozilla-release@8b89261f3ac4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersseth, lizzard
bugs1220021
milestone44.0a2
Bug 1220021 (part 2) - Add four reftests. r=seth, a=lizzard
image/test/reftest/downscaling/downscale-ff.html
image/test/reftest/downscaling/ff-0RGB.ico
image/test/reftest/downscaling/ff-0RGB.png
image/test/reftest/downscaling/ff-ARGB.ico
image/test/reftest/downscaling/ff-ARGB.png
image/test/reftest/downscaling/reftest.list
new file mode 100644
--- /dev/null
+++ b/image/test/reftest/downscaling/downscale-ff.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<head>
+<title>Image reftest wrapper</title>
+<style type="text/css">
+  #image1 { background-color: rgb(10, 250, 100); }
+</style>
+<script>
+  // The image is loaded async after the page loads.
+  // Wait for it to finish loading.
+  function onImageLoad() {
+    document.documentElement.removeAttribute("class");
+  };
+</script>
+</head>
+<body>
+<img width="16px" height="16px" id="image1">
+<script>
+  // Use as "wrapper.html?image.png"
+  var imgURL = document.location.search.substr(1);
+  document.images[0].onload = onImageLoad;
+  document.images[0].onerror = onImageLoad;
+  document.images[0].alt = "";
+  document.images[0].src = imgURL;
+</script>
+</body>
+</html>
+
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..56116b9f6acc0aaca11ade27e9819883ad59b816
GIT binary patch
literal 4286
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..749ffcdfb3f75e9c6d3b8379965405b1894e0135
GIT binary patch
literal 2515
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4681dc64950f721ac2e8748475d530f77e96fe34
GIT binary patch
literal 4286
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..74ea0e2f3911724e162dd0f1d62e2c9b4fd9e4be
GIT binary patch
literal 115
zc%17D@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzD^C~4kcif|7YunB6nGd8p0h|<
zFMA}RpEbpV*Zfc2PYLz>R7M6cxFBb6{ofx5+oAdZv$^J+?F#>6K7#n3u6{1-oD!M<
DI*lK9
--- a/image/test/reftest/downscaling/reftest.list
+++ b/image/test/reftest/downscaling/reftest.list
@@ -85,16 +85,20 @@ fuzzy(20,999) != downscale-2a.html?205,5
 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) != downscale-2e.html?205,53,bottom about:blank
 
 == 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-ff.html?ff-0RGB.ico downscale-ff.html?ff-0RGB.png
+fuzzy(1,1) == downscale-ff.html?ff-ARGB.ico downscale-ff.html?ff-ARGB.png
+
 # 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
@@ -149,8 +153,12 @@ fuzzy(20,999) != downscale-2a.html?205,5
 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
 
 == 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-ff.html?ff-0RGB.ico downscale-ff.html?ff-0RGB.png
+fuzzy(3,32) == downscale-ff.html?ff-ARGB.ico downscale-ff.html?ff-ARGB.png