[webkit-reviews] review denied: [Bug 97365] ScrollingTreeState needs to be a tree of nodes : [Attachment 165245] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Sep 24 14:21:31 PDT 2012


Simon Fraser (smfr) <simon.fraser at apple.com> has denied Beth Dakin
<bdakin at apple.com>'s request for review:
Bug 97365: ScrollingTreeState needs to be a tree of nodes
https://bugs.webkit.org/show_bug.cgi?id=97365

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

------- Additional Comments from Simon Fraser (smfr) <simon.fraser at apple.com>
View in context: https://bugs.webkit.org/attachment.cgi?id=165245&action=review


Going in the right direction, but I'd like to see clarification of ownership
when cloning nodes, and less duplication of state-related stuff.

> Source/WebCore/page/scrolling/ScrollingStateNode.cpp:45
> +    : m_scrollingStateTree(nodeState->scrollingStateTree())

When cloning the node tree, does the clone belong ot the same
ScrollingStateTree or a new one?

> Source/WebCore/page/scrolling/ScrollingStateNode.cpp:48
> +    , m_parent(nodeState->parent())
> +    , m_firstChild(nodeState->firstChild())
> +    , m_nextSibling(nodeState->nextSibling())

It's a bit confusing to have a copy ctor that also copies over the
child/sibling pointers. What's the ownership model for those?

> Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp:68
> +    , m_changedProperties(stateNode->changedProperties())
> +    , m_viewportRect(stateNode->viewportRect())
> +    , m_contentsSize(stateNode->contentsSize())
> +    , m_wheelEventHandlerCount(stateNode->wheelEventHandlerCount())
> +    ,
m_shouldUpdateScrollLayerPositionOnMainThread(stateNode->shouldUpdateScrollLaye
rPositionOnMainThread())
> +    , m_horizontalScrollElasticity(stateNode->horizontalScrollElasticity())
> +    , m_verticalScrollElasticity(stateNode->verticalScrollElasticity())
> +    ,
m_hasEnabledHorizontalScrollbar(stateNode->hasEnabledHorizontalScrollbar())
> +    ,
m_hasEnabledVerticalScrollbar(stateNode->hasEnabledVerticalScrollbar())
> +    , m_horizontalScrollbarMode(stateNode->horizontalScrollbarMode())
> +    , m_verticalScrollbarMode(stateNode->verticalScrollbarMode())
> +    , m_requestedScrollPosition(stateNode->requestedScrollPosition())
> +    , m_scrollOrigin(stateNode->scrollOrigin())

Duplicates a lot of ScrollingTreeState setup. Maybe the node can just have a
ScrollingTreeState member var?


More information about the webkit-reviews mailing list