WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED INVALID
107165
Traverse the layer tree instead of the render tree in closestScrollableNodeInDocumentIfPossible()
https://bugs.webkit.org/show_bug.cgi?id=107165
Summary
Traverse the layer tree instead of the render tree in closestScrollableNodeIn...
Terry Anderson
Reported
2013-01-17 13:08:08 PST
Consider Antonio's comment from
https://bugs.webkit.org/show_bug.cgi?id=103952#c59
:
> Source/WebCore/page/EventHandler.cpp:2613 > + for (Node* scrollableNode = node; scrollableNode; scrollableNode = scrollableNode->parentNode()) { > + if (scrollableNode->isDocumentNode()) > + break; > + RenderObject* renderer = scrollableNode->renderer(); > + if (renderer && renderer->isBox() && toRenderBox(renderer)->canBeScrolledAndHasScrollableArea()) > + return scrollableNode; > + }
It would be faster (sometimes measurably faster) if instead of traversing the Render tree upwards, you traversed the Layer tree, given that any scrollable renderer will have an associated RenderLayer.
Attachments
Add attachment
proposed patch, testcase, etc.
Terry Anderson
Comment 1
2013-01-17 13:15:49 PST
I should also re-consider Antonio's comment regarding a possibly-redundant boolean member variable:
> Source/WebCore/page/EventHandler.cpp:2633 > + m_lastHitTestResultOverWidget = result.isOverWidget();
I do not think you need this m_lastHitTestResultOverWidget boolean. The Renderer can tell you this as well no? RenderObject::isWidget()
Terry Anderson
Comment 2
2013-03-01 10:39:53 PST
The function closestScrollableNodeCandidate() in EventHandler.cpp is being removed in
https://bugs.webkit.org/show_bug.cgi?id=109769
since we're no longer going to be using it, so this issue is no longer valid.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug