[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 13:59:57 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 10c64f3b78e050e39ced74f3791a7aa7a25c898d
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 1 07:28:59 2010 +0000

    2010-10-01  Vincent Scheib  <scheib at chromium.org>
    
            Reviewed by James Robinson.
    
            REGRESSION: Lots of fast canvas updates fail to completely render
            https://bugs.webkit.org/show_bug.cgi?id=46319
    
            * fast/repaint/canvas-putImageData-expected.txt: Added.
            * fast/repaint/canvas-putImageData.html: Added.
            * platform/chromium-win/fast/repaint/canvas-putImageData-expected.checksum: Added.
            * platform/chromium-win/fast/repaint/canvas-putImageData-expected.png: Added.
            * platform/chromium/test_expectations.txt:
    2010-10-01  Vincent Scheib  <scheib at chromium.org>
    
            Reviewed by James Robinson.
    
            REGRESSION: Lots of fast canvas updates fail to completely render
            https://bugs.webkit.org/show_bug.cgi?id=46319
    
            Test: fast/repaint/canvas-putImageData.html
    
            * html/canvas/CanvasRenderingContext2D.cpp:
            (WebCore::CanvasRenderingContext2D::putImageData):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68868 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 3b80693..843a408 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,16 @@
+2010-10-01  Vincent Scheib  <scheib at chromium.org>
+
+        Reviewed by James Robinson.
+
+        REGRESSION: Lots of fast canvas updates fail to completely render
+        https://bugs.webkit.org/show_bug.cgi?id=46319
+
+        * fast/repaint/canvas-putImageData-expected.txt: Added.
+        * fast/repaint/canvas-putImageData.html: Added.
+        * platform/chromium-win/fast/repaint/canvas-putImageData-expected.checksum: Added.
+        * platform/chromium-win/fast/repaint/canvas-putImageData-expected.png: Added.
+        * platform/chromium/test_expectations.txt:
+
 2010-09-30  Kent Tamura  <tkent at chromium.org>
 
         Unreviewed, test expectation update.
diff --git a/LayoutTests/fast/repaint/canvas-putImageData-expected.txt b/LayoutTests/fast/repaint/canvas-putImageData-expected.txt
new file mode 100755
index 0000000..e73d667
--- /dev/null
+++ b/LayoutTests/fast/repaint/canvas-putImageData-expected.txt
@@ -0,0 +1,8 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+  RenderBlock {HTML} at (0,0) size 800x600
+    RenderBody {BODY} at (8,8) size 784x584
+      RenderHTMLCanvas {CANVAS} at (0,0) size 100x100
+      RenderText {#text} at (0,0) size 0x0
+      RenderText {#text} at (0,0) size 0x0
diff --git a/LayoutTests/fast/repaint/canvas-putImageData.html b/LayoutTests/fast/repaint/canvas-putImageData.html
new file mode 100755
index 0000000..6655af7
--- /dev/null
+++ b/LayoutTests/fast/repaint/canvas-putImageData.html
@@ -0,0 +1,37 @@
+<!-- Test for https://bugs.webkit.org/show_bug.cgi?id=46319 -->
+<head>
+    <script src="resources/repaint.js"></script>
+</head>
+<body>
+    <canvas id="canvas" width="100" height="100"></canvas> 
+    <script>
+        var canvas = document.getElementById('canvas');
+        var ctx = canvas.getContext('2d');
+
+        // prepare imagedata
+        ctx.fillStyle = "rgb(255, 0, 0)"; ctx.fillRect(0, 0, 100, 100); // red background
+        ctx.fillStyle = "rgb(0, 255, 0)"; ctx.fillRect(10, 10, 10, 10); // inset green square
+        var imageDataGreen = ctx.getImageData(10, 10, 10, 10);
+        var imageDataRedWithInsetGreen = ctx.getImageData(0, 0, 30, 30);
+
+        // clear canvas to dark green 
+        ctx.fillStyle = "rgb(0, 128, 0)";
+        ctx.fillRect(0, 0, 100, 100);
+
+        // fill target locations with dark red
+        ctx.fillStyle = "rgb(128, 0, 0)";
+        ctx.fillRect(0, 0, 10, 10);
+        ctx.fillRect(40, 40, 10, 10);
+        ctx.fillRect(80, 80, 10, 10);
+        
+        function repaintTest()
+        {
+            // patch up red squares with putImageData
+            ctx.putImageData(imageDataGreen, 0, 0);
+            ctx.putImageData(imageDataGreen, 40, 40);
+            ctx.putImageData(imageDataRedWithInsetGreen, 70, 70, 10, 10, 10, 10);
+        }
+
+        window.onload = runRepaintTest;
+    </script>
+</body>
diff --git a/LayoutTests/platform/chromium-win/fast/repaint/canvas-putImageData-expected.checksum b/LayoutTests/platform/chromium-win/fast/repaint/canvas-putImageData-expected.checksum
new file mode 100755
index 0000000..be3d8a5
--- /dev/null
+++ b/LayoutTests/platform/chromium-win/fast/repaint/canvas-putImageData-expected.checksum
@@ -0,0 +1 @@
+8a5b4758ee77120bc12515d370831a38
\ No newline at end of file
diff --git a/LayoutTests/platform/chromium-win/fast/repaint/canvas-putImageData-expected.png b/LayoutTests/platform/chromium-win/fast/repaint/canvas-putImageData-expected.png
new file mode 100755
index 0000000..9962729
Binary files /dev/null and b/LayoutTests/platform/chromium-win/fast/repaint/canvas-putImageData-expected.png differ
diff --git a/LayoutTests/platform/chromium/test_expectations.txt b/LayoutTests/platform/chromium/test_expectations.txt
index c9c4e62..a55846a 100644
--- a/LayoutTests/platform/chromium/test_expectations.txt
+++ b/LayoutTests/platform/chromium/test_expectations.txt
@@ -3074,6 +3074,8 @@ BUGWK45667 LINUX : fast/files/read-blob-async.html = CRASH PASS
 
 BUGWK45737 DEBUG SLOW : fast/frames/frame-limit.html = PASS
 
+BUG57230 MAC : fast/repaint/canvas-putImageData.html = IMAGE
+
 // Regressions from webkit roll r67178:t67358
 BUGDPRANKE WIN LINUX DEBUG : fast/forms/select-set-length-with-mutation-remove.html = TIMEOUT PASS
 BUGDPRANKE LINUX DEBUG : http/tests/incremental/slow-utf8-text.pl = TIMEOUT PASS
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 43b07a2..c261b41 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2010-10-01  Vincent Scheib  <scheib at chromium.org>
+
+        Reviewed by James Robinson.
+
+        REGRESSION: Lots of fast canvas updates fail to completely render
+        https://bugs.webkit.org/show_bug.cgi?id=46319
+
+        Test: fast/repaint/canvas-putImageData.html
+
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::putImageData):
+
 2010-10-01  Nikolas Zimmermann  <nzimmermann at rim.com>
 
         Reviewed by Dirk Schulze.
diff --git a/WebCore/html/canvas/CanvasRenderingContext2D.cpp b/WebCore/html/canvas/CanvasRenderingContext2D.cpp
index 58b19a2..52b2deb 100644
--- a/WebCore/html/canvas/CanvasRenderingContext2D.cpp
+++ b/WebCore/html/canvas/CanvasRenderingContext2D.cpp
@@ -1614,16 +1614,16 @@ void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy,
     FloatRect clipRect(dirtyX, dirtyY, dirtyWidth, dirtyHeight);
     clipRect.intersect(IntRect(0, 0, data->width(), data->height()));
     IntSize destOffset(static_cast<int>(dx), static_cast<int>(dy));
-    IntRect sourceRect = enclosingIntRect(clipRect);
-    sourceRect.move(destOffset);
-    sourceRect.intersect(IntRect(IntPoint(), buffer->size()));
-    if (sourceRect.isEmpty())
+    IntRect destRect = enclosingIntRect(clipRect);
+    destRect.move(destOffset);
+    destRect.intersect(IntRect(IntPoint(), buffer->size()));
+    if (destRect.isEmpty())
         return;
+    IntRect sourceRect(destRect);
     sourceRect.move(-destOffset);
-    IntPoint destPoint(destOffset.width(), destOffset.height());
 
-    buffer->putUnmultipliedImageData(data, sourceRect, destPoint);
-    didDraw(sourceRect, CanvasDidDrawApplyNone); // ignore transform, shadow and clip
+    buffer->putUnmultipliedImageData(data, sourceRect, IntPoint(destOffset));
+    didDraw(destRect, CanvasDidDrawApplyNone); // ignore transform, shadow and clip
 }
 
 String CanvasRenderingContext2D::font() const

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list