The current compositing code uses releaseBufferDrawable() to flush painted ImageBuffer contents, but then proceeds to use that released Drawable for further painting without ever locking a new one. In an implementation that actually releases the Drawable rather than keeping it around and just flushing it, this will wreak havoc as bad as black screens or crashes. As a solution that doesn't require the ImageBuffer object to swap out its m_canvas member for a new Drawable, we can access the PlatformGraphicsContext::flush() method directly to achieve the same effect as was previously intended by calling releaseBufferDrawable(). All it needs is letting the canvas layer know about the Drawable so it can call that flush() method by itself. Related: BlackBerry JIRA 444857, https://jira.bbqnx.net/browse/BRWSR-12531
Created attachment 208362 [details] Patch
Comment on attachment 208362 [details] Patch Clearing flags on attachment: 208362 Committed r153895: <http://trac.webkit.org/changeset/153895>
All reviewed patches have been landed. Closing bug.