Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(519)

Issue 1630793002: Stop hit testing culled inlines when a match is found (Closed)

Created:
4 years, 11 months ago by pdr.
Modified:
4 years, 10 months ago
CC:
blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, krit, eae+blinkwatch, f(malita), fs, gyuyoung2, jchaffraix+rendering, kouhei+svg_chromium.org, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, pdr+svgwatchlist_chromium.org, rwlbuis, Stephen Chennney, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Stop hit testing culled inlines when a match is found Culled inline hittesting was recently fixed [1] which exposed a bug in LayoutInline::hitTestCulledInline where hit testing checked for region intersection but returned a value based on region containment. This bug was partially fixed in [2] for list-based tests but a bug still existed for point-based tests. This patch updates LayoutInline::hitTestCulledInline to check for hit tests using region intersection, and return a value based on region intersection (not containment). This was done by fixing a FIXME to implement HitTestRequest::addNodeToListBasedTestResult for regions. In addition, this patch changes the return value of HitTestRequest::addNodeToListBasedTestResult to be an enum which better explains its behavior. [1] https://src.chromium.org/viewvc/blink?view=rev&revision=193729 [2] https://crrev.com/b489f7917175e2449c8f6d5874ab3ba0b7f31e88 BUG=579412 Committed: https://crrev.com/4dd5f8bbaa8e06c2bca14e20758cd4f76d0a81d4 Cr-Commit-Position: refs/heads/master@{#372023}

Patch Set 1 #

Total comments: 2

Patch Set 2 : Cleanup addNodeToListBasedTestResult #

Patch Set 3 : template metaprogramming with forwarding and explicit instantiation of internal template arguments #

Patch Set 4 : Simpler approach, but duplicated code #

Unified diffs Side-by-side diffs Delta from patch set Stats (+93 lines, -42 lines) Patch
A third_party/WebKit/LayoutTests/hittesting/culled-inline-crash.html View 1 chunk +31 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/HitTestResult.h View 1 2 3 3 chunks +16 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/layout/HitTestResult.cpp View 1 2 3 2 chunks +24 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBlock.cpp View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBox.cpp View 1 2 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutInline.cpp View 1 chunk +5 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutTable.cpp View 1 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/line/EllipsisBox.cpp View 1 chunk +1 line, -3 lines 0 comments Download
M third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp View 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp View 1 chunk +3 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGContainer.cpp View 1 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGImage.cpp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGShape.cpp View 1 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/svg/line/SVGInlineTextBox.cpp View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 29 (9 generated)
pdr.
4 years, 11 months ago (2016-01-25 17:52:52 UTC) #3
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1630793002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1630793002/1
4 years, 11 months ago (2016-01-25 17:54:18 UTC) #4
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 11 months ago (2016-01-25 19:16:03 UTC) #6
Rick Byers
https://codereview.chromium.org/1630793002/diff/1/third_party/WebKit/Source/core/layout/HitTestResult.cpp File third_party/WebKit/Source/core/layout/HitTestResult.cpp (right): https://codereview.chromium.org/1630793002/diff/1/third_party/WebKit/Source/core/layout/HitTestResult.cpp#newcode454 third_party/WebKit/Source/core/layout/HitTestResult.cpp:454: { Seems a shame to copy/paste this entire function. ...
4 years, 11 months ago (2016-01-25 21:50:05 UTC) #7
pdr.
PTAL @myid.m.shin, can you review this too? You're not a reviewer yet but you know ...
4 years, 11 months ago (2016-01-25 23:47:37 UTC) #8
Rick Byers
On 2016/01/25 23:47:37, pdr wrote: > PTAL > > @myid.m.shin, can you review this too? ...
4 years, 11 months ago (2016-01-26 15:19:44 UTC) #9
pdr.
+cc the correct Miyoung Shin. @Miyoung, could you review this?
4 years, 11 months ago (2016-01-26 21:24:35 UTC) #11
Miyoung Shin(c)
non owner's LGTM
4 years, 11 months ago (2016-01-27 06:29:35 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1630793002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1630793002/20001
4 years, 11 months ago (2016-01-27 06:42:54 UTC) #14
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/164996)
4 years, 11 months ago (2016-01-27 07:55:41 UTC) #16
pdr.
Sadly, the patch had an error in addNodeToListBasedTestResult which was caught by the CQ. I ...
4 years, 11 months ago (2016-01-28 00:42:04 UTC) #17
Rick Byers
On 2016/01/28 00:42:04, pdr wrote: > Sadly, the patch had an error in addNodeToListBasedTestResult which ...
4 years, 11 months ago (2016-01-28 00:50:36 UTC) #18
pdr.
On 2016/01/28 at 00:50:36, rbyers wrote: > On 2016/01/28 00:42:04, pdr wrote: > > Sadly, ...
4 years, 11 months ago (2016-01-28 01:48:21 UTC) #19
pdr.
Summarizing a bit. We have three approaches: 1) templates 2) duplicated code 3) helper function ...
4 years, 11 months ago (2016-01-28 01:57:30 UTC) #20
Rick Byers
Yeah I was thinking a ternary return like that. Or there's option 4) use a ...
4 years, 10 months ago (2016-01-28 02:04:22 UTC) #21
pdr.
On 2016/01/28 at 02:04:22, rbyers wrote: > Yeah I was thinking a ternary return like ...
4 years, 10 months ago (2016-01-28 02:07:31 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1630793002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1630793002/60001
4 years, 10 months ago (2016-01-28 02:08:01 UTC) #25
Rick Byers
On 2016/01/28 02:07:31, pdr wrote: > On 2016/01/28 at 02:04:22, rbyers wrote: > > Yeah ...
4 years, 10 months ago (2016-01-28 02:49:52 UTC) #26
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 10 months ago (2016-01-28 05:41:46 UTC) #27
commit-bot: I haz the power
4 years, 10 months ago (2016-01-28 05:42:33 UTC) #29
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/4dd5f8bbaa8e06c2bca14e20758cd4f76d0a81d4
Cr-Commit-Position: refs/heads/master@{#372023}

Powered by Google App Engine
This is Rietveld 408576698