Printing WebGL canvases in Chrome uses stale data after first print
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Feb 2013 01:35:01 +0000 (01:35 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Feb 2013 01:35:01 +0000 (01:35 +0000)
https://bugs.webkit.org/show_bug.cgi?id=110003

Patch by Brandon Jones <bajones@google.com> on 2013-02-20
Reviewed by Kenneth Russell.

Unable to validate printed content automatically. No regression in existing WebGL tests.

 * html/canvas/WebGLRenderingContext.cpp:
 (WebCore):
 (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@143545 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/html/canvas/WebGLRenderingContext.cpp

index b878a64e46cb7c68defdd854ffdce5ace4c9b666..41fdbc28b8d923ee4dccb682f6e88e0ee30257f5 100644 (file)
@@ -1,3 +1,16 @@
+2013-02-20  Brandon Jones  <bajones@google.com>
+        Printing WebGL canvases in Chrome uses stale data after first print
+        https://bugs.webkit.org/show_bug.cgi?id=110003
+        Reviewed by Kenneth Russell.
+        Unable to validate printed content automatically. No regression in existing WebGL tests.
+         * html/canvas/WebGLRenderingContext.cpp:
+         (WebCore):
+         (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
+
 2013-02-20  Christian Biesinger  <cbiesinger@chromium.org>
 
         Incorrect rendering for flex boxes with percentage height in a table cell
index d7a6c2d48eeaa0e18d2c3c4ae66e1c62dc05804e..3f598c069981a4e72f68075280fb569861c374ca 100644 (file)
@@ -739,6 +739,9 @@ void WebGLRenderingContext::markLayerComposited()
 
 void WebGLRenderingContext::paintRenderingResultsToCanvas()
 {
+    if (canvas()->document()->printing())
+        canvas()->clearPresentationCopy();
+
     // Until the canvas is written to by the application, the clear that
     // happened after it was composited should be ignored by the compositor.
     if (m_context->layerComposited() && !m_attributes.preserveDrawingBuffer) {