RESOLVED FIXED 80450
[chromium] REGRESSION(109469): WebGL printing busted
https://bugs.webkit.org/show_bug.cgi?id=80450
Summary [chromium] REGRESSION(109469): WebGL printing busted
James Robinson
Reported 2012-03-06 16:04:41 PST
Post r109469 printing WebGL fails, nothing shows up.
Attachments
Patch (2.01 KB, patch)
2012-03-06 16:55 PST, James Robinson
kbr: review+
James Robinson
Comment 1 2012-03-06 16:48:44 PST
The issue here appears to be switching from using contentChanged() to setNeedsDisplay...() to set the m_textureUpdated bit on WebGLLayerChromium. That bit is used to implement preservesDrawingBuffer semantics, so it's important that it is only set due to a WebGL draw. Unfortunately when printing we synchronously rebuild the compositing tree which triggers a call to GraphicsLayerChromium::setContentsToCanvas() which calls setNeedsDisplay() on the m_contentsLayer. I have no idea why it does this, but that's what breaks printing. I'm pretty confident the fix is to not call setNeedsDisplay() in GLC::setContentsToCanvas(), at least if the new layer == the old one.
James Robinson
Comment 2 2012-03-06 16:55:52 PST
Kenneth Russell
Comment 3 2012-03-06 17:02:07 PST
Comment on attachment 130476 [details] Patch LGTM as long as it's been tested.
James Robinson
Comment 4 2012-03-06 17:04:54 PST
I've manually tested WebGL printing and run the layout / unit tests and things seem to work. Fingers crossed!
James Robinson
Comment 5 2012-03-06 17:08:27 PST
Note You need to log in before you can comment on or make changes to this bug.