[webkit-reviews] review requested: [Bug 107618] Fix painting phases for composited scrolling : [Attachment 185664] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jan 30 20:12:14 PST 2013


vollick at chromium.org has asked	for review:
Bug 107618: Fix painting phases for composited scrolling
https://bugs.webkit.org/show_bug.cgi?id=107618

Attachment 185664: Patch
https://bugs.webkit.org/attachment.cgi?id=185664&action=review

------- Additional Comments from vollick at chromium.org
With composited scrolling, the scrolling contents layer paints the foreground
and the main graphics layer paints the background. This causes a few problems:

 1) If we create a foreground layer, we end up with two layers painting the
foreground phase.

 2) Focus rings / outlines paint into the foreground layer, so they end up
moving around with the scrolling contents.

 3) Neg z-order descendants paint in the the main graphics layer and will
therefore not scroll.

My solution for 1) is not to create a special, foreground layer when we're
using composited scrolling. I don't think we need this extra layer in this
case. Simon, please let me know if this is wrong, but here is my reasoning. We
really shouldn't be using composited scrolling when we have out-of-flow
positioned descendants. Things will render differently if we do (and we never
automatically opt-in if this is the case). So it seems to make sense to paint
all descendants into the same layer since they'll be scrolling together anyhow.

To deal with 2) and 3), I've modified RenderLayer::paintLayerContents to
customize the "compositing background" and "compositing foreground" phases if
the layer is using composited scrolling. This approach seemed simpler than
adding new entries to the paint phase enums.


More information about the webkit-reviews mailing list