[webkit-reviews] review denied: [Bug 110323] Accelerated overflow scrolling for Coordinated Graphics. : [Attachment 190664] patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Feb 28 00:04:05 PST 2013


Noam Rosenthal <noam at webkit.org> has denied Luiz Agostini <luiz at webkit.org>'s
request for review:
Bug 110323: Accelerated overflow scrolling for Coordinated Graphics.
https://bugs.webkit.org/show_bug.cgi?id=110323

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

------- Additional Comments from Noam Rosenthal <noam at webkit.org>
View in context: https://bugs.webkit.org/attachment.cgi?id=190664&action=review


Looks really good, but I have a few comments :)

>
Source/WebCore/page/scrolling/coordinatedgraphics/CoordinatedScrollClient.h:37
> +class CoordinatedScrollClient {
> +public:
> +    virtual void scrollLayerBy(uint32_t layerID, const FloatSize& offset) =
0;

I would make this an inner class of TextureMapperLayer and call it simply
{TextureMapperLayer::]ScrollingClient.

> Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:407
> +FloatSize GraphicsLayerTextureMapper::resetCommitedScrollPosition()

Committed

> Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:573
> +    if (m_changeMask & CommitedScrollPosition)
> +	  
m_layer->updateCommitedScrollPosition(resetCommitedScrollPosition());

I think a better way to write this would be to have a commitScrollPosition
function that internally resets and updates the TextureMapperLayer.

> Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:680
> +    TextureMapperLayer* result = 0;
> +    for (int i = m_children.size() - 1; !result && i >= 0; --i)

You should return early here if visible/contentsVisible is false.

> Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h:62
> +    TextureMapperLayer* getTopmostLayerAt(const FloatPoint& pos);

I would leave this for a different patch

>
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cp
p:682
> +TextureMapperLayer*
CoordinatedGraphicsScene::getScrollableContentLayerAt(const FloatPoint& point)

Content -> Contents

>
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
81
> +    CoordinatedGraphicsScene(CoordinatedGraphicsSceneClient*,
CoordinatedScrollClient*);

I think the scene needs to be the scrolling client, and internally dispatch the
web process update on the main thread.

> Source/WebKit2/ChangeLog:16
> +	   (WKCoordinatedGetScrollableContentLayerAt):
> +	   (WKCoordinatedGetLayerID):
> +	   (WKCoordinatedScrollBy):

I would spell out WKCoordinatedScene

>
Source/WebKit2/UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
44
> +    , m_scene(adoptRef(new CoordinatedGraphicsScene(this, this)))

This is not thread safe...
In Qt at least scrollLayerBy would be called in the wrong thread.


More information about the webkit-reviews mailing list