RESOLVED FIXED 227004
RenderLayer::hitTestLayer assumes its renderer is a RenderBox
https://bugs.webkit.org/show_bug.cgi?id=227004
Summary RenderLayer::hitTestLayer assumes its renderer is a RenderBox
Cameron McCormack (:heycam)
Reported 2021-06-14 18:55:59 PDT
But we might, for example, have a clip-path on an inline.
Attachments
Patch (4.71 KB, patch)
2021-06-14 19:02 PDT, Cameron McCormack (:heycam)
no flags
Patch (4.70 KB, patch)
2021-06-16 17:01 PDT, Cameron McCormack (:heycam)
no flags
Cameron McCormack (:heycam)
Comment 1 2021-06-14 18:59:46 PDT
Cameron McCormack (:heycam)
Comment 2 2021-06-14 19:02:13 PDT
Cameron McCormack (:heycam)
Comment 3 2021-06-14 19:02:39 PDT
Filed bug 227005 for the followup work to make this work on inlines.
zalan
Comment 4 2021-06-14 20:23:25 PDT
shouldn't hitTestClipPath be on RenderLayerModelObject implemented by RenderBox and RenderInline (best effort) so that in RenderLayer::hitTestLayer we could just call renderer().hitTestClipPath(). It has the cost of a virtual call but this is surely not a hot codepath.
Simon Fraser (smfr)
Comment 5 2021-06-14 20:47:36 PDT
Comment on attachment 431393 [details] Patch Alan has a suggestion
Cameron McCormack (:heycam)
Comment 6 2021-06-14 21:40:34 PDT
Yeah, I was looking at pulling that function up in the followup bug, but started wondering about the reference box stuff!
Cameron McCormack (:heycam)
Comment 7 2021-06-16 16:48:10 PDT
I'll land the original is<RenderBox>() check here and do the followup work later, which turned out to be not as straightforward as I'd hoped.
Cameron McCormack (:heycam)
Comment 8 2021-06-16 17:01:55 PDT
EWS
Comment 9 2021-06-16 17:28:06 PDT
Committed r278969 (238895@main): <https://commits.webkit.org/238895@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 431623 [details].
Note You need to log in before you can comment on or make changes to this bug.