Title: [87136] trunk
Revision
87136
Author
commit-qu...@webkit.org
Date
2011-05-24 01:42:44 -0700 (Tue, 24 May 2011)

Log Message

2011-05-24  James Robinson  <jam...@chromium.org>

        Reviewed by Kenneth Russell.

        [chromium] Properly handle huge initial dimensions for 2d canvas when accelerated 2d canvas is enabled
        https://bugs.webkit.org/show_bug.cgi?id=60077

        Update expectation to reflect that the canvas layer isn't composited.

        * platform/chromium-gpu/compositing/tiling/huge-layer-img-expected.txt:
2011-05-24  James Robinson  <jam...@chromium.org>

        Reviewed by Kenneth Russell.

        [chromium] Properly handle huge initial dimensions for 2d canvas when accelerated 2d canvas is enabled
        https://bugs.webkit.org/show_bug.cgi?id=60077

        Return NULL from DrawingBuffer::create() if the initial dimensions are larger than we can support in hardware so
        that we properly use the software canvas path and not enable the compositor for the canvas.

        compositing/tiling/huge-layer-img.html triggers this case by trying to create a 20000 pixel high canvas.  The
        failure was previously masked by other bugs fixed by r85661.

        * platform/graphics/chromium/DrawingBufferChromium.cpp:
        (WebCore::DrawingBuffer::DrawingBuffer):
            Return NULL from DrawingBuffer::create() if resize() fails.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (87135 => 87136)


--- trunk/LayoutTests/ChangeLog	2011-05-24 08:10:46 UTC (rev 87135)
+++ trunk/LayoutTests/ChangeLog	2011-05-24 08:42:44 UTC (rev 87136)
@@ -1,3 +1,14 @@
+2011-05-24  James Robinson  <jam...@chromium.org>
+
+        Reviewed by Kenneth Russell.
+
+        [chromium] Properly handle huge initial dimensions for 2d canvas when accelerated 2d canvas is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=60077
+
+        Update expectation to reflect that the canvas layer isn't composited.
+
+        * platform/chromium-gpu/compositing/tiling/huge-layer-img-expected.txt:
+
 2011-05-24  Fumitoshi Ukai  <u...@chromium.org>
 
         Reviewed by Adam Barth.

Modified: trunk/LayoutTests/platform/chromium-gpu/compositing/tiling/huge-layer-img-expected.txt (87135 => 87136)


--- trunk/LayoutTests/platform/chromium-gpu/compositing/tiling/huge-layer-img-expected.txt	2011-05-24 08:10:46 UTC (rev 87135)
+++ trunk/LayoutTests/platform/chromium-gpu/compositing/tiling/huge-layer-img-expected.txt	2011-05-24 08:42:44 UTC (rev 87136)
@@ -8,7 +8,6 @@
         (GraphicsLayer
           (position 8.00 8.00)
           (bounds 500.00 20000.00)
-          (drawsContent 1)
         )
       )
     )

Modified: trunk/Source/WebCore/ChangeLog (87135 => 87136)


--- trunk/Source/WebCore/ChangeLog	2011-05-24 08:10:46 UTC (rev 87135)
+++ trunk/Source/WebCore/ChangeLog	2011-05-24 08:42:44 UTC (rev 87136)
@@ -1,3 +1,20 @@
+2011-05-24  James Robinson  <jam...@chromium.org>
+
+        Reviewed by Kenneth Russell.
+
+        [chromium] Properly handle huge initial dimensions for 2d canvas when accelerated 2d canvas is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=60077
+
+        Return NULL from DrawingBuffer::create() if the initial dimensions are larger than we can support in hardware so
+        that we properly use the software canvas path and not enable the compositor for the canvas.
+
+        compositing/tiling/huge-layer-img.html triggers this case by trying to create a 20000 pixel high canvas.  The
+        failure was previously masked by other bugs fixed by r85661.
+
+        * platform/graphics/chromium/DrawingBufferChromium.cpp:
+        (WebCore::DrawingBuffer::DrawingBuffer):
+            Return NULL from DrawingBuffer::create() if resize() fails.
+
 2011-05-24  Fumitoshi Ukai  <u...@chromium.org>
 
         Reviewed by Adam Barth.

Modified: trunk/Source/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp (87135 => 87136)


--- trunk/Source/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp	2011-05-24 08:10:46 UTC (rev 87135)
+++ trunk/Source/WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp	2011-05-24 08:42:44 UTC (rev 87136)
@@ -99,7 +99,10 @@
     context->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, m_fbo);
     m_colorBuffer = generateColorTexture(context, size);
     createSecondaryBuffers();
-    reset(size);
+    if (!reset(size)) {
+        m_context.clear();
+        return;
+    }
 }
 
 DrawingBuffer::~DrawingBuffer()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to