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

Issue 882443006: Revert of Fix pointer-events:all when stroke="none" (Closed)

Created:
5 years, 11 months ago by dtrebbien
Modified:
5 years, 11 months ago
CC:
blink-reviews, blink-reviews-rendering, zoltan1, pdr+renderingwatchlist_chromium.org, eae+blinkwatch, leviw+renderwatch, kouhei+svg_chromium.org, Dominik Röttsches, ed+blinkwatch_opera.com, krit, f(malita), gyuyoung.kim_webkit.org, jchaffraix+rendering, Stephen Chennney, rwlbuis, pdr+svgwatchlist_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Target Ref:
refs/heads/master
Project:
blink
Visibility:
Public.

Description

Revert of Fix pointer-events:all when stroke="none" (patchset #6 id:100001 of https://codereview.chromium.org/810343003/) Reason for revert: Issue 452284: 10.1%-69.4% regression in blink_perf.svg at 312837:312949 Original issue's description: > Fix pointer-events:all when stroke="none" > > pointer-events:all should make event processing unaffected by the values > of the 'stroke' and 'fill' properties. However, when the 'stroke' of a > shape was set to "none", hit detection would fail for points that would > be in the shape's stroke area if the 'stroke' were not "none". > > Originally, two CLs were committed implementing a fix for the issue, but > they were reverted due to a 200%-225% regression of a performance test: > PerformanceTests/SVG/SvgHitTesting.html > The performance regression was due to the change in strokeContains() that > skipped the check whether the stroke bounding box contained the point if > !requiresStroke. > > The modified fix implemented by this commit has three parts: > 1. m_innerStrokeRect/m_outerStrokeRect are deleted from RenderSVGRect. > This is because shapeDependentStrokeContains(), which was the only > user of these FloatRect objects, should ignore whether the shape > actually has a stroke, but m_innerStrokeRect and m_outerStrokeRect > were equal to the m_fillBoundingBox if the <rect> had no stroke. > 2. The notion of the hit test stroke bounding box is introduced and a > new RenderSVGShape member is added: m_hitTestStrokeBoundingBox. The > hit test stroke bounding box of a shape is considered to be the > bounding box of the stroke, regardless of whether the shape has a > stroke. The stroke bounding box is usually m_hitTestStrokeBoundingBox > if the shape has a stroke; otherwise, it's m_fillBoundingBox. In the > case of RenderSVGPath, though, the stroke bounding box includes the > markerRect. > 3. RenderSVGShape::strokeContains() was changed so that if !requiresStroke, > then we check whether the point is within the hit test stroke bounding > box. If requiresStroke, then we check whether the point is within the > stroke bounding box. > > BUG=350338, 445410 > > Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=188888 TBR=pdr@chromium.org,fs@opera.com,ed@opera.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=350338, 445410, 452284 Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=189035

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+57 lines, -552 lines) Patch
D LayoutTests/svg/hittest/pointer-events-all.html View 1 chunk +0 lines, -173 lines 0 comments Download
D LayoutTests/svg/hittest/pointer-events-all-expected.txt View 1 chunk +0 lines, -108 lines 0 comments Download
D LayoutTests/svg/hittest/rect-hittest.html View 1 chunk +0 lines, -146 lines 0 comments Download
D LayoutTests/svg/hittest/rect-hittest-expected.txt View 1 chunk +0 lines, -57 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGEllipse.cpp View 2 chunks +3 lines, -4 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGPath.h View 1 chunk +1 line, -1 line 0 comments Download
M Source/core/rendering/svg/RenderSVGPath.cpp View 2 chunks +14 lines, -16 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGRect.h View 1 chunk +2 lines, -0 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGRect.cpp View 4 chunks +16 lines, -20 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGShape.h View 2 chunks +1 line, -3 lines 0 comments Download
M Source/core/rendering/svg/RenderSVGShape.cpp View 3 chunks +20 lines, -24 lines 0 comments Download

Messages

Total messages: 8 (2 generated)
dtrebbien
Created Revert of Fix pointer-events:all when stroke="none"
5 years, 11 months ago (2015-01-27 15:50:08 UTC) #1
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/882443006/1
5 years, 11 months ago (2015-01-27 15:50:44 UTC) #2
commit-bot: I haz the power
No LGTM from a valid reviewer yet. Only full committers are accepted. Even if an ...
5 years, 11 months ago (2015-01-27 15:50:46 UTC) #4
fs
lgtm
5 years, 11 months ago (2015-01-27 15:56:19 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/882443006/1
5 years, 11 months ago (2015-01-27 15:57:28 UTC) #7
commit-bot: I haz the power
5 years, 11 months ago (2015-01-27 15:59:25 UTC) #8
Message was sent while issue was closed.
Committed patchset #1 (id:1) as
https://src.chromium.org/viewvc/blink?view=rev&revision=189035

Powered by Google App Engine
This is Rietveld 408576698