Discovered while looking at some table profiling while scrolling. Patch forthcoming.
Created attachment 99893 [details] Proposed fix: don't hit the slow path if there is an overflow clip.
Comment on attachment 99893 [details] Proposed fix: don't hit the slow path if there is an overflow clip. This is a false optimization. You can have visual overflow even when you have an overflow clip (for example via shadows).
Created attachment 100004 [details] Test case generator As discussed with David, here is my test case generator. I invoke it like this: ./generate_table.py 500 500 > testCase.html (Note the autogenerated HTML file is around 20M) This generates a 500 x 500 table with random content and style. There is no possible overflow as we disable the overflow on each <td> but we still set the m_hasOverflowingCell on RenderTableSection which involves a lot of unneeded calls to RenderTableSection::paintCell.
Tried again today against the different generated test cases. I guess I must have been fooled by some caching and different versions of the generating script that did not have the "overflow: hidden" style. It actually works well so just closing this bug, sorry for the noise.