Turn on ACCELERATED_COMPOSITING, build debug and run the attached test case. You should see an assert at: RenderLayer.cpp:2432
Created attachment 28374 [details] Test case showing bug
The problem here is that we use different clip rect roots for painting, and for hit testing. For painting, every composited layer is a clipping root. For hit testing (which happens in software), only elements with transforms are clipping roots. For now, I think the best solution is to compute temporary clip rects any time we're hit testing in a page with composited content.
Created attachment 28879 [details] Patch
Comment on attachment 28879 [details] Patch Is this going to increase the stack size used by hitTestLayer? How big is ClipRects? I don't think it's good to name a boolean "temporaryClipRects". That sounds like the name of a variable that stores somre rects in it.
(In reply to comment #4) > (From update of attachment 28879 [details] [review]) > Is this going to increase the stack size used by hitTestLayer? How big is > ClipRects? ClipRects is 3 * sizeof(IntRect) + 4 bytes. I think it's OK to use more stack space for hit testing transformed elements, since they are uncommon and having deeply nested ones will be very rare. > I don't think it's good to name a boolean "temporaryClipRects". That sounds > like the name of a variable that stores somre rects in it. Agreed, I can fix.
Comment on attachment 28879 [details] Patch r=me
http://trac.webkit.org/changeset/41951