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

Issue 2846513002: More targeted resource-switching mechanism for SVG selection painting (Closed)

Created:
3 years, 8 months ago by fs
Modified:
3 years, 7 months ago
CC:
fs, blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, krit, eae+blinkwatch, fmalita+watch_chromium.org, 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
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

More targeted resource-switching mechanism for SVG selection painting The mechanism by which resources are generated for painting using selection style for SVG text is a bit too heavy-handed, and can end up invalidating both layout and other things. All that is needed is looking up any <paint> ('fill' or 'stroke') references and invalidating any state from the non-selection style. Use a reduced/tailored version of SVGResourcesCache::ClientStyleChanged that only recreates/swaps the SVGResources object for the LayoutObject and wrap that mechanism in a scope object. BUG=713024 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Review-Url: https://codereview.chromium.org/2846513002 Cr-Commit-Position: refs/heads/master@{#468658} Committed: https://chromium.googlesource.com/chromium/src/+/9eba37a11e54d4f0808f43db1371dc2e062efb8d

Patch Set 1 #

Patch Set 2 : Less hammer #

Patch Set 3 : Rebased onto dependent patch(es) #

Total comments: 12

Patch Set 4 : testharness test #

Patch Set 5 : Use rALAP instead of first rAF #

Unified diffs Side-by-side diffs Delta from patch set Stats (+80 lines, -16 lines) Patch
A third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash.html View 1 2 3 4 1 chunk +34 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/SVGResourcesCache.h View 1 1 chunk +18 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/SVGResourcesCache.cpp View 1 1 chunk +20 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp View 1 2 3 1 chunk +8 lines, -16 lines 0 comments Download

Messages

Total messages: 41 (27 generated)
fs
So this CL is at the end of a queue of patches to fix the ...
3 years, 7 months ago (2017-04-28 15:11:27 UTC) #14
Stephen Chennney
Android failure seems unrelated; I don't think you have regressed memory in any significant way. ...
3 years, 7 months ago (2017-04-28 16:12:31 UTC) #17
Stephen Chennney
One more query. https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/Source/core/layout/svg/SVGResourcesCache.cpp File third_party/WebKit/Source/core/layout/svg/SVGResourcesCache.cpp (right): https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/Source/core/layout/svg/SVGResourcesCache.cpp#newcode206 third_party/WebKit/Source/core/layout/svg/SVGResourcesCache.cpp:206: cache.AddResourcesFromLayoutObject(&layout_object_, style); A non-trivial chunk of ...
3 years, 7 months ago (2017-04-28 16:16:40 UTC) #18
fs
https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash.html File third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash.html (right): https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash.html#newcode13 third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash.html:13: document.body.offsetTop; On 2017/04/28 at 16:12:31, Stephen Chennney wrote: > ...
3 years, 7 months ago (2017-04-28 18:16:34 UTC) #19
chrishtr
https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt File third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt (right): https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt#newcode1 third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt:1: PASS if no crash Use testharness.js to avoid the ...
3 years, 7 months ago (2017-04-28 18:39:23 UTC) #20
fs
https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt File third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt (right): https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt#newcode1 third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt:1: PASS if no crash On 2017/04/28 at 18:39:23, chrishtr ...
3 years, 7 months ago (2017-04-28 18:59:52 UTC) #21
chrishtr
https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt File third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt (right): https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt#newcode1 third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt:1: PASS if no crash On 2017/04/28 at 18:59:52, fs ...
3 years, 7 months ago (2017-04-28 19:59:39 UTC) #22
chrishtr
lgtm
3 years, 7 months ago (2017-04-28 20:00:09 UTC) #23
fs
https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt File third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt (right): https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt#newcode1 third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash-expected.txt:1: PASS if no crash On 2017/04/28 at 19:59:39, chrishtr ...
3 years, 7 months ago (2017-04-28 20:18:41 UTC) #26
chrishtr
lgtm
3 years, 7 months ago (2017-04-28 20:22:47 UTC) #27
fs
https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash.html File third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash.html (right): https://codereview.chromium.org/2846513002/diff/40001/third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash.html#newcode13 third_party/WebKit/LayoutTests/svg/text/selection-pseudo-resource-invalidation-crash.html:13: document.body.offsetTop; On 2017/04/28 at 18:16:33, fs wrote: > On ...
3 years, 7 months ago (2017-05-02 13:53:32 UTC) #31
Stephen Chennney
lgtm. I think everyone is on board now.
3 years, 7 months ago (2017-05-02 15:58:09 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2846513002/80001
3 years, 7 months ago (2017-05-02 15:59:21 UTC) #38
commit-bot: I haz the power
3 years, 7 months ago (2017-05-02 16:06:50 UTC) #41
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as
https://chromium.googlesource.com/chromium/src/+/9eba37a11e54d4f0808f43db1371...

Powered by Google App Engine
This is Rietveld 408576698