New issue
Advanced search Search tips

Issue 849331 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Hit tests fails to hit culled inline element with bidirectional text

Project Member Reported by xiaoche...@chromium.org, Jun 4 2018

Issue description

Chrome Version: 67.0.3396.62 (Official Build) (64-bit)
OS: Linux (should repro on all Blink platforms)

What steps will reproduce the problem?
(1) Navigate to http://jsfiddle.net/kvu17o8m/7/
(2) Mouse click on link "XXX"

What is the expected result?

Should navigate to example.com

What happens instead?

Nothing happens
 
Root cause:

Hit testing on culled inlines is implemented in InlineFlowBox::NodeAtPoint:
1) Whenever the hit test request misses a child InlineBox, we examine if there is any culled inlines between the child and |this|
2) If such a culled inline exists, and it is not an ancestor of any unexamined InlineBox, then we perform hit testing on the culled inline

The legacy code assumes that the InlineBoxes of the same culled inline are consecutive in each line, and performs step 2) by checking only the previous sibling of the child. It fails when the previous sibling is under a different LayoutObject, but there are some other preceeding siblings that are under the same culled inline.

Sign in to add a comment