Bug 34344 - Adding overflow:hidden to TD elements makes hit testing much slower
Summary: Adding overflow:hidden to TD elements makes hit testing much slower
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-29 13:54 PST by James Robinson
Modified: 2013-05-10 05:59 PDT (History)
3 users (show)

See Also:


Attachments
Test page using elementFromPoint (1.45 KB, text/html)
2010-01-29 13:54 PST, James Robinson
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description James Robinson 2010-01-29 13:54:19 PST
Created attachment 47733 [details]
Test page using elementFromPoint

Setting overflow:hidden on <td> elements inside a large table increases the amount of time needed to hit test points within the table.  This is just a special case of https://bugs.webkit.org/show_bug.cgi?id=33520 - setting overflow:hidden gives each <td> its own RenderLayer, so hit testing within the element causes a lot of very slow coordinate maps.  The other issue is that currently when hit testing inside a table we iterate through every child cell instead of taking advantage of rows to restrict the search.

This shows up as a 30-50ms delay on an internal app with a large table embedded at a moderate depth inside the DOM (roughly 10 RenderLayers from the document root).
Comment 1 James Robinson 2010-02-05 16:19:50 PST
overflow:hidden causes each TD to get its own layer.  The patch in https://bugs.webkit.org/show_bug.cgi?id=33520 speeds hit testing up
Comment 2 James Robinson 2010-02-05 16:20:55 PST
Pah, bugzilla was a bit overeager.  What I meant was:

overflow:hidden causes each TD to get its own RenderLayer.  The patch in
https://bugs.webkit.org/show_bug.cgi?id=33520 speeds this test up by about 33%.