Diff
Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1,3 +1,38 @@
+2015-03-23 Yoav Weiss <[email protected]>
+
+ Update empty image canvas tests and fix a related bug
+ https://bugs.webkit.org/show_bug.cgi?id=142694
+
+ Reviewed by Chris Dumez.
+
+ Tests below imported from https://github.com/w3c/web-platform-tests/tree/master/2dcontext/drawing-images-to-the-canvas
+ * canvas/philip/tests/2d.drawImage.incomplete-expected.txt: Removed.
+ * canvas/philip/tests/2d.drawImage.incomplete.emptysrc-expected.txt: Added.
+ * canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html: Added.
+ * canvas/philip/tests/2d.drawImage.incomplete.html: Removed.
+ * canvas/philip/tests/2d.drawImage.incomplete.nosrc-expected.txt: Added.
+ * canvas/philip/tests/2d.drawImage.incomplete.nosrc.html: Added.
+ * canvas/philip/tests/2d.drawImage.incomplete.removedsrc-expected.txt: Added.
+ * canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html: Added.
+
+ Tests below imported from https://github.com/w3c/web-platform-tests/tree/master/2dcontext/fill-and-stroke-styles
+ * canvas/philip/tests/2d.pattern.image.incomplete-expected.txt: Removed.
+ * canvas/philip/tests/2d.pattern.image.incomplete.empty-expected.txt: Removed.
+ * canvas/philip/tests/2d.pattern.image.incomplete.empty.html: Removed.
+ * canvas/philip/tests/2d.pattern.image.incomplete.emptysrc-expected.txt: Added.
+ * canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html: Added.
+ * canvas/philip/tests/2d.pattern.image.incomplete.html: Removed.
+ * canvas/philip/tests/2d.pattern.image.incomplete.omitted-expected.txt: Removed.
+ * canvas/philip/tests/2d.pattern.image.incomplete.omitted.html: Removed.
+ * canvas/philip/tests/2d.pattern.image.incomplete.removedsrc-expected.txt: Added.
+ This test currently fails and will be fixed in https://bugs.webkit.org/show_bug.cgi?id=142677
+ * canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html: Added.
+
+ Test below imported from https://chromium.googlesource.com/chromium/blink/+/master/LayoutTests/fast/canvas/
+ * fast/canvas/canvas-empty-image-pattern.html: Aligned with spec/Chrome.
+ * fast/canvas/canvas-empty-image-pattern-expected.txt: Aligned with spec/Chrome.
+ * TestExpectations: Added 2d.pattern.image.incomplete.removedsrc.html as an expected failure.
+
2015-03-23 Anders Carlsson <[email protected]>
Make platform/mac-wk2/plugins/destroy-during-async-npp-new.html work again
Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete-expected.txt (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete-expected.txt 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete-expected.txt 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1 +0,0 @@
-Passed
Added: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.emptysrc-expected.txt (0 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.emptysrc-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.emptysrc-expected.txt 2015-03-25 11:40:32 UTC (rev 181952)
@@ -0,0 +1,12 @@
+2d.drawImage.incomplete.emptysrc
+
+Actual output:
+
+Expected output:
+
+
+
+
+
+PASS Canvas test: 2d.drawImage.incomplete.emptysrc
+
Added: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html (0 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html 2015-03-25 11:40:32 UTC (rev 181952)
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by tools/gentest.py. -->
+<title>Canvas test: 2d.drawImage.incomplete.emptysrc</title>
+<script src=""
+<script src=""
+<script src=""
+<link rel="stylesheet" href=""
+<body class="show_output">
+
+<h1>2d.drawImage.incomplete.emptysrc</h1>
+<p class="desc"></p>
+
+
+<p class="output">Actual output:</p>
+<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
+<p class="output expectedtext">Expected output:<p><img src="" class="output expected" id="expected" alt="">
+<ul id="d"></ul>
+<script>
+var t = async_test("");
+_addTest(function(canvas, ctx) {
+
+ctx.fillStyle = '#0f0';
+ctx.fillRect(0, 0, 100, 50);
+var img = document.getElementById('red.png');
+img.src = ""
+ctx.drawImage(img, 0, 0);
+_assertPixelApprox(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255", 2);
+
+
+});
+</script>
+<img src="" id="red.png" class="resource">
+
Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.html (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.html 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.html 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<title>Canvas test: 2d.drawImage.incomplete</title>
-<script src=""
-<link rel="stylesheet" href=""
-<body>
-<p id="passtext">Pass</p>
-<p id="failtext">Fail</p>
-<p class="output">These images should be identical:</p>
-<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
-<p class="output expectedtext">Expected output:<p><img src="" class="output expected" id="expected" alt="">
-<ul id="d"></ul>
-<script>
-_addTest(function(canvas, ctx) {
-
-ctx.fillStyle = '#0f0';
-ctx.fillRect(0, 0, 100, 50);
-var img = new Image();
-img.src = ""
-_assertSame(img.complete, false, "img.complete", "false");
-ctx.drawImage(img, 0, 0);
-
-
-});
-</script>
-
Added: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.nosrc-expected.txt (0 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.nosrc-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.nosrc-expected.txt 2015-03-25 11:40:32 UTC (rev 181952)
@@ -0,0 +1,11 @@
+2d.drawImage.incomplete.nosrc
+
+Actual output:
+
+Expected output:
+
+
+
+
+PASS Canvas test: 2d.drawImage.incomplete.nosrc
+
Added: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.nosrc.html (0 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.nosrc.html (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.nosrc.html 2015-03-25 11:40:32 UTC (rev 181952)
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by tools/gentest.py. -->
+<title>Canvas test: 2d.drawImage.incomplete.nosrc</title>
+<script src=""
+<script src=""
+<script src=""
+<link rel="stylesheet" href=""
+<body class="show_output">
+
+<h1>2d.drawImage.incomplete.nosrc</h1>
+<p class="desc"></p>
+
+
+<p class="output">Actual output:</p>
+<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
+<p class="output expectedtext">Expected output:<p><img src="" class="output expected" id="expected" alt="">
+<ul id="d"></ul>
+<script>
+var t = async_test("");
+_addTest(function(canvas, ctx) {
+
+ctx.fillStyle = '#0f0';
+ctx.fillRect(0, 0, 100, 50);
+var img = new Image();
+ctx.drawImage(img, 0, 0);
+_assertPixelApprox(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255", 2);
+
+
+});
+</script>
+
Added: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.removedsrc-expected.txt (0 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.removedsrc-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.removedsrc-expected.txt 2015-03-25 11:40:32 UTC (rev 181952)
@@ -0,0 +1,12 @@
+2d.drawImage.incomplete.removedsrc
+
+Actual output:
+
+Expected output:
+
+
+
+
+
+PASS Canvas test: 2d.drawImage.incomplete.removedsrc
+
Added: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html (0 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html 2015-03-25 11:40:32 UTC (rev 181952)
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by tools/gentest.py. -->
+<title>Canvas test: 2d.drawImage.incomplete.removedsrc</title>
+<script src=""
+<script src=""
+<script src=""
+<link rel="stylesheet" href=""
+<body class="show_output">
+
+<h1>2d.drawImage.incomplete.removedsrc</h1>
+<p class="desc"></p>
+
+
+<p class="output">Actual output:</p>
+<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
+<p class="output expectedtext">Expected output:<p><img src="" class="output expected" id="expected" alt="">
+<ul id="d"></ul>
+<script>
+var t = async_test("");
+_addTest(function(canvas, ctx) {
+
+ctx.fillStyle = '#0f0';
+ctx.fillRect(0, 0, 100, 50);
+var img = document.getElementById('red.png');
+img.removeAttribute('src');
+ctx.drawImage(img, 0, 0);
+_assertPixelApprox(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255", 2);
+
+
+});
+</script>
+<img src="" id="red.png" class="resource">
+
Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete-expected.txt (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete-expected.txt 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete-expected.txt 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1 +0,0 @@
-Passed
Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.empty-expected.txt (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.empty-expected.txt 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.empty-expected.txt 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1,2 +0,0 @@
-Passed
-
Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.empty.html (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.empty.html 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.empty.html 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<title>Canvas test: 2d.pattern.image.incomplete.empty</title>
-<script src=""
-<link rel="stylesheet" href=""
-<body>
-<p id="passtext">Pass</p>
-<p id="failtext">Fail</p>
-<p class="output">These images should be identical:</p>
-<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
-
-<ul id="d"></ul>
-<script>
-_addTest(function(canvas, ctx) {
-
-var img = document.getElementById('green.png');
-img.src = ""
-var _thrown = undefined;
-try{
- ctx.createPattern(img, 'repeat');
-}catch(e) {
- _thrown = e;
-}
-_assert(_thrown && _thrown.name == "InvalidStateError" && _thrown.code == DOMException.INVALID_STATE_ERR, "should throw InvalidStateError");
-
-});
-</script>
-<img src="" id="green.png" class="resource">
-
Added: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.emptysrc-expected.txt (0 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.emptysrc-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.emptysrc-expected.txt 2015-03-25 11:40:32 UTC (rev 181952)
@@ -0,0 +1,8 @@
+2d.pattern.image.incomplete.emptysrc
+
+Actual output:
+
+
+
+PASS Canvas test: 2d.pattern.image.incomplete.emptysrc
+
Added: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html (0 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html 2015-03-25 11:40:32 UTC (rev 181952)
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by tools/gentest.py. -->
+<title>Canvas test: 2d.pattern.image.incomplete.emptysrc</title>
+<script src=""
+<script src=""
+<script src=""
+<link rel="stylesheet" href=""
+<body class="show_output">
+
+<h1>2d.pattern.image.incomplete.emptysrc</h1>
+<p class="desc"></p>
+
+
+<p class="output">Actual output:</p>
+<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
+
+<ul id="d"></ul>
+<script>
+var t = async_test("");
+_addTest(function(canvas, ctx) {
+
+var img = document.getElementById('red.png');
+img.src = ""
+_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null");
+
+
+});
+</script>
+<img src="" id="red.png" class="resource">
+
Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.html (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.html 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.html 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<title>Canvas test: 2d.pattern.image.incomplete</title>
-<script src=""
-<link rel="stylesheet" href=""
-<body>
-<p id="passtext">Pass</p>
-<p id="failtext">Fail</p>
-<p class="output">These images should be identical:</p>
-<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
-
-<ul id="d"></ul>
-<script>
-_addTest(function(canvas, ctx) {
-
-var img = new Image();
-img.src = ""
-_assertSame(img.complete, false, "img.complete", "false");
-_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null");
-
-
-});
-</script>
-
Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.omitted-expected.txt (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.omitted-expected.txt 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.omitted-expected.txt 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1 +0,0 @@
-Passed
Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.omitted.html (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.omitted.html 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.omitted.html 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<title>Canvas test: 2d.pattern.image.incomplete.omitted</title>
-<script src=""
-<link rel="stylesheet" href=""
-<body>
-<p id="passtext">Pass</p>
-<p id="failtext">Fail</p>
-<p class="output">These images should be identical:</p>
-<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
-
-<ul id="d"></ul>
-<script>
-_addTest(function(canvas, ctx) {
-
-var img = document.getElementById('green.png');
-img.removeAttribute('src');
-_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null");
-
-
-});
-</script>
-<img src="" id="green.png" class="resource">
-
Added: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.removedsrc-expected.txt (0 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.removedsrc-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.removedsrc-expected.txt 2015-03-25 11:40:32 UTC (rev 181952)
@@ -0,0 +1,8 @@
+2d.pattern.image.incomplete.removedsrc
+
+Actual output:
+
+
+
+PASS Canvas test: 2d.pattern.image.incomplete.removedsrc
+
Added: releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html (0 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html (rev 0)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html 2015-03-25 11:40:32 UTC (rev 181952)
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by tools/gentest.py. -->
+<title>Canvas test: 2d.pattern.image.incomplete.removedsrc</title>
+<script src=""
+<script src=""
+<script src=""
+<link rel="stylesheet" href=""
+<body class="show_output">
+
+<h1>2d.pattern.image.incomplete.removedsrc</h1>
+<p class="desc"></p>
+
+
+<p class="output">Actual output:</p>
+<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
+
+<ul id="d"></ul>
+<script>
+var t = async_test("");
+_addTest(function(canvas, ctx) {
+
+var img = document.getElementById('red.png');
+img.removeAttribute('src');
+_assertSame(ctx.createPattern(img, 'repeat'), null, "ctx.createPattern(img, 'repeat')", "null");
+
+
+});
+</script>
+<img src="" id="red.png" class="resource">
+
Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-empty-image-pattern-expected.png
(Binary files differ)
Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-empty-image-pattern-expected.txt (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-empty-image-pattern-expected.txt 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-empty-image-pattern-expected.txt 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1,2 +1,2 @@
-CONSOLE MESSAGE: line 9: InvalidStateError: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable.
+TEST PASSED
Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-empty-image-pattern.html (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-empty-image-pattern.html 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-empty-image-pattern.html 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1,11 +1,15 @@
<!DOCTYPE HTML>
<title>Canvas test: filling a pattern with an empty image should not crash.</title>
+<div id="console"></div>
<canvas id="canvas" class="output" width="100" height="100"><p class="fallback">FAIL (fallback content)</p></canvas>
<script>
if (window.testRunner)
testRunner.dumpAsText(true);
var canvas = document.getElementById("canvas").getContext("2d");
-canvas.fillStyle = canvas.createPattern(new Image, "repeat")
-canvas.fillRect(0,0,1,1)
+var pattern = canvas.createPattern(new Image, "repeat")
+if (pattern)
+ document.getElementById("console").innerHTML = "TEST FAILED";
+else
+ document.getElementById("console").innerHTML = "TEST PASSED";
</script>
Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1,3 +1,30 @@
+2015-03-23 Yoav Weiss <[email protected]>
+
+ Update empty image canvas tests and fix a related bug
+ https://bugs.webkit.org/show_bug.cgi?id=142694
+
+ Reviewed by Chris Dumez.
+
+ During the work on https://bugs.webkit.org/show_bug.cgi?id=142677
+ we encountered an issue with canvas tests related to empty image handling
+ when drawn or used as a pattern. After updating these tests, an issue with
+ pattern handling was encountered.
+
+ The spec, as well as Chrome's implementation, say that when an empty image
+ is used as a pattern, createPattern should return null. See
+ https://html.spec.whatwg.org/multipage/scripting.html#fill-and-stroke-styles:check-the-usability-of-the-image-argument
+ Instead, createPattern returned an exception in this case.
+ This patch fixes that and makes sure that it returns a null when image loading hasn't started.
+
+ Tests: canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html
+ canvas/philip/tests/2d.drawImage.incomplete.nosrc.html
+ canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html
+ canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html
+ canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::createPattern): Return "null" if image is not fully decodeable.
+
2015-03-20 Yusuke Suzuki <[email protected]>
REGRESSION (r179429): Potential Use after free in _javascript_Core`WTF::StringImpl::ref + 83
Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (181951 => 181952)
--- releases/WebKitGTK/webkit-2.8/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp 2015-03-25 11:32:41 UTC (rev 181951)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp 2015-03-25 11:40:32 UTC (rev 181952)
@@ -1751,11 +1751,12 @@
if (ec)
return 0;
- if (!image->complete())
- return 0;
+ CachedImage* cachedImage = image->cachedImage();
+ // If the image loading hasn't started or the image is not complete, it is not fully decodable.
+ if (!cachedImage || !image->complete())
+ return nullptr;
- CachedImage* cachedImage = image->cachedImage();
- if (!cachedImage || cachedImage->status() == CachedResource::LoadError) {
+ if (cachedImage->status() == CachedResource::LoadError) {
ec = INVALID_STATE_ERR;
return 0;
}