[Webkit-unassigned] [Bug 71385] Threaded compositor should delegate overflow div/iframe scroll events to WebKit

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 29 12:25:18 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=71385





--- Comment #11 from Sami Kyostila <skyostil at google.com>  2011-11-29 12:25:18 PST ---
(In reply to comment #9)
> (From update of attachment 116256 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=116256&action=review
> 
> > Source/WebCore/platform/graphics/GraphicsLayer.h:307
> > +    // Set coordinates of scrollable elements inside the layer. These are given
> > +    // in scaled document coordinates.
> > +    const Vector<IntRect>& scrollableRects() const { return m_scrollableRects; }
> > +    virtual void setScrollableRects(const Vector<IntRect>& r) { m_scrollableRects = r; }
> 
> It's not clear what "scrollable rects" are for. Why aren't the child scrollable things in their own GraphicsLayers?

Scrollable rectangles inside a layer signify areas where the chromium compositor thread should not attempt to process scroll events by itself (by translating the layer coordinates), but instead it should forward those events to the WebKit thread. These areas are created for things like iframes and elements with overflow scrolling which do not have a RenderLayerBacking of their own.

Initially I wasn't sure whether it is too much of an overhead to promote scrollable elements into composited layers -- especially if there are no graphical reasons to do so -- so I went with this approach of adding metadata  to existing GraphicsLayers.

It sounds like it would be better instead to create GraphicsLayers for those elements but still render the elements themselves into the same enclosing layer as before. That is, the GraphicsLayers would only serve as blank placeholders for compositor hit testing. Is this closer to what you had in mind?

> > Source/WebCore/rendering/RenderLayer.cpp:3884
> > +Vector<IntRect> RenderLayer::scrollableChildren() const
> 
> This isn't returning a list of children, it's returning a list of rects, so the name is wrong.

Agreed, I'll fix this.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list