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