Currently, we call setNeedsDisplay with the size of WebPage to mark whole backing store as dirty. However, the size of non compositing layer can be inconsistent with the size of WebPage. For example, in Coordinated Graphics, the size of non compositing layer is contents size. So, WebPage should not assume the size of non compositing layer, and should just call setNeedsDisplay when marking whole layer as dirty. In addition, this patch renames from setNeedsDisplay() with a rect argument to setNeedsDisplayInRect(), which matches to the terms of GraphicsLayer.
Created attachment 189234 [details] Patch
Comment on attachment 189234 [details] Patch Looks good. Longer term I'd recommend that you'd get rid of the non-composited contents and just always enter accelerated compositing mode - this is what we do on Mac. That'd allow us to simplify a lot of code.
Comment on attachment 189234 [details] Patch Clearing flags on attachment: 189234 Committed r143472: <http://trac.webkit.org/changeset/143472>
All reviewed patches have been landed. Closing bug.
(In reply to comment #2) > (From update of attachment 189234 [details]) > Looks good. Longer term I'd recommend that you'd get rid of the non-composited contents and just always enter accelerated compositing mode - this is what we do on Mac. That'd allow us to simplify a lot of code. I agree. Created but https://bugs.webkit.org/show_bug.cgi?id=110355
(In reply to comment #2) > (From update of attachment 189234 [details]) > Looks good. Longer term I'd recommend that you'd get rid of the non-composited contents and just always enter accelerated compositing mode - this is what we do on Mac. That'd allow us to simplify a lot of code. It seems right direction! could you explain more detail? After I read your comment, I thought LayerTreeHostMac does not have nonCompositedContentsLayer and RenderLayerCompositor::rootLayer deals with non-composited contents. But in upstream code, LayerTreeHostMac is very similar to CoordinatedLayerTreeHost; both have nonCompositedContentsLayer. Could you let me know what bug or revision simplified a lot of code on Mac? Thanks in advance.
(In reply to comment #6) > (In reply to comment #2) > > (From update of attachment 189234 [details] [details]) > > Looks good. Longer term I'd recommend that you'd get rid of the non-composited contents and just always enter accelerated compositing mode - this is what we do on Mac. That'd allow us to simplify a lot of code. > > It seems right direction! could you explain more detail? Noam filed a radar about this in https://bugs.webkit.org/show_bug.cgi?id=110355 - it should have some information. > > After I read your comment, I thought LayerTreeHostMac does not have nonCompositedContentsLayer and RenderLayerCompositor::rootLayer deals with non-composited contents. But in upstream code, LayerTreeHostMac is very similar to CoordinatedLayerTreeHost; both have nonCompositedContentsLayer. > Could you let me know what bug or revision simplified a lot of code on Mac? Sure! We actually only use LayerTreeHostMac on OS X Lion. On Mountain Lion we use a different drawing area, the TiledCoreAnimationDrawingArea.
(In reply to comment #7) > (In reply to comment #6) > Sure! We actually only use LayerTreeHostMac on OS X Lion. On Mountain Lion we use a different drawing area, the TiledCoreAnimationDrawingArea. aha, TiledCoreAnimationDrawingArea is key. Thanks.