New issue
Advanced search Search tips

Issue 663953 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 664722

Blocking:
issue 656320



Sign in to add a comment

Implement subsequence caching for SVG content

Project Member Reported by chrishtr@chromium.org, Nov 10 2016

Issue description

SVG content and its subtree paints atomically. Therefore we should be able
to add subsequence caching markers in LayoutSVGRoot.
 
Owner: chrishtr@chromium.org
Status: Assigned (was: Available)
I think this will help with issue 656320.
Blocking: 656320
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bb1c8b9d3e4acb60fb489f878963e2ccbb936b61

commit bb1c8b9d3e4acb60fb489f878963e2ccbb936b61
Author: chrishtr <chrishtr@chromium.org>
Date: Sat Nov 12 00:20:53 2016

Cache display items from SVGImage contents.

It works as follows:
1. SkPictureBuilder now allows an existing PaintController to be passed in the
constructor.
2. SVGImage stores a local PaintController for painting image contents.
3. When painting frames that do not invalidate the SVGImage contents, the
PaintController for the image will have the cached DisplayItems from it, and
subsequence caching will allow the LayoutView of the Page belonging to the
SVGImage to be reused.
4. If any invalidation happens on the SVGImage, the usual
caching behavior of SVG will result in the PaintController for the SVG noticing
and not caching DisplayItems or subsequences as appropriate. (*)

(*) this is easy now, because of the changes made earlier this year to use global
invalidation cache epochs rather than PaintController-specific ones.

BUG= 663953 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2500533003
Cr-Commit-Position: refs/heads/master@{#431695}

[modify] https://crrev.com/bb1c8b9d3e4acb60fb489f878963e2ccbb936b61/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp
[modify] https://crrev.com/bb1c8b9d3e4acb60fb489f878963e2ccbb936b61/third_party/WebKit/Source/core/svg/graphics/SVGImage.h
[modify] https://crrev.com/bb1c8b9d3e4acb60fb489f878963e2ccbb936b61/third_party/WebKit/Source/platform/graphics/paint/SkPictureBuilder.cpp
[modify] https://crrev.com/bb1c8b9d3e4acb60fb489f878963e2ccbb936b61/third_party/WebKit/Source/platform/graphics/paint/SkPictureBuilder.h

Project Member

Comment 5 by bugdroid1@chromium.org, Nov 14 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a77dfb5865c1fc52c2094acba37fea629e26ccf5

commit a77dfb5865c1fc52c2094acba37fea629e26ccf5
Author: chrishtr <chrishtr@chromium.org>
Date: Mon Nov 14 23:37:28 2016

Allow subsequence caching for SVG roots that have PaintLayers.

SVG subtrees paint atomically, which is all that is needed to get
this feature.

BUG= 663953 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2498763002
Cr-Commit-Position: refs/heads/master@{#431973}

[modify] https://crrev.com/a77dfb5865c1fc52c2094acba37fea629e26ccf5/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
[modify] https://crrev.com/a77dfb5865c1fc52c2094acba37fea629e26ccf5/third_party/WebKit/Source/core/paint/PaintLayerPainterTest.cpp

Status: Fixed (was: Assigned)
Blockedon: 664722
Status: Assigned (was: Fixed)
This seems to cause bug 664722.
Need to de-flake: paint/invalidation/svg/image-animation-with-zoom.html
Project Member

Comment 9 by bugdroid1@chromium.org, Nov 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8934714bb524f1a32b6d5434fea0ac59660cf6ff

commit 8934714bb524f1a32b6d5434fea0ac59660cf6ff
Author: chrishtr <chrishtr@chromium.org>
Date: Fri Nov 18 17:39:28 2016

Don't paint SVG image documents unless actually painting.

BUG= 663953 
TEST=paint/invalidation/svg/image-animation-with-zoom.html

Review-Url: https://codereview.chromium.org/2509113004
Cr-Commit-Position: refs/heads/master@{#433228}

[modify] https://crrev.com/8934714bb524f1a32b6d5434fea0ac59660cf6ff/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp

Status: Fixed (was: Assigned)
Labels: M-56 Merge-Request-56
Status: Assigned (was: Fixed)
Need to merge the commit from comment 9 into M56, which branched at revision
433059.

Comment 12 by dimu@chromium.org, Nov 19 2016

Labels: -Merge-Request-56 Merge-Approved-56 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M56 (branch: 2924)
Project Member

Comment 13 by bugdroid1@chromium.org, Nov 20 2016

Labels: -merge-approved-56 merge-merged-2924
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d10f5177f9eb5cb97c2eb94aa6bd427da0374831

commit d10f5177f9eb5cb97c2eb94aa6bd427da0374831
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Sun Nov 20 00:08:44 2016

Don't paint SVG image documents unless actually painting.

BUG= 663953 
TEST=paint/invalidation/svg/image-animation-with-zoom.html

Review-Url: https://codereview.chromium.org/2509113004
Cr-Commit-Position: refs/heads/master@{#433228}
(cherry picked from commit 8934714bb524f1a32b6d5434fea0ac59660cf6ff)

Review URL: https://codereview.chromium.org/2520703002 .

Cr-Commit-Position: refs/branch-heads/2924@{#12}
Cr-Branched-From: 3a87aecc31cd1ffe751dd72c04e5a96a1fc8108a-refs/heads/master@{#433059}

[modify] https://crrev.com/d10f5177f9eb5cb97c2eb94aa6bd427da0374831/third_party/WebKit/Source/core/svg/graphics/SVGImage.cpp

Status: Fixed (was: Assigned)

Sign in to add a comment