[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