New issue
Advanced search Search tips

Issue 862318 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 17
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

SVG element animated into viewport does not display

Reported by eric.and...@gmail.com, Jul 10

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36

Steps to reproduce the problem:
1. Visit this page: https://agreeable-turtle.glitch.me/
2. In Chrome 66, you'll see two rectangles scrolling down the page.
3. In Chrome 67, you'll see only one rectangle scrolling down the page.

What is the expected behavior?
The rectangle that is not shown since Chrome 67. It has a negative y value applied to it, so it is not in the visible portion of the svg content. The group element the rect is contained in has translateY set in an animation on it, which brings the element into the visible portion. However, the element does not display.

What went wrong?
?

Did this work before? Yes 66

Does this work in other browsers? N/A

Chrome version: 67.0.3396.99  Channel: stable
OS Version: OS X 10.13.5
Flash Version: Shockwave Flash 30.0 r0
 
Here are two videos showing the different renderings across Chrome 66 and Chrome 67.
Labels: Needs-Bisect Needs-Triage-M67
I used the bisect-builds program and got this output:

You are probably looking for a change made after 543289 (known good), but no later than 543294 (first known bad).
CHANGELOG URL:
  https://chromium.googlesource.com/chromium/src/+log/ea38ede3b18e99aff19e5e17c664850b1958a09f..209644b1c73164f277f6a94e0a37d22ac1daeda2

I would guess it has to do with enabling SlimmingPaintV175 by default (https://chromium.googlesource.com/chromium/src/+/3a3c78a924a686ed0d3f90d765b00cdd78453e11) but I know very little about these commits.
Cc: vamshi.kommuri@chromium.org
Labels: -Pri-2 -Needs-Bisect hasbisect-per-revision ReleaseBlock-Stable M-68 Triaged-ET Target-68 Target-67 FoundIn-67 RegressedIn-67 Target-69 FoundIn-69 FoundIn-68 OS-Linux OS-Windows Pri-1
Owner: wangxianzhu@chromium.org
Status: Assigned (was: Unconfirmed)
Thanks for filing the issue!

Able to reproduce the issue on reported chrome version 67.0.3396.99 and on the latest canary 69.0.3487.0 using Mac 10.13.1, Windows 10 and Ubuntu 14.04.

Bisect Information:
===================
Good Build: 67.0.3371.0
Bad Build:  67.0.3372.0

You are probably looking for a change made after 543290 (known good), but no later than 543291 (first known bad).
CHANGELOG URL:
 https://chromium.googlesource.com/chromium/src/+log/63667eca2a1d86f5de61f29c7c5c6417cc351757..3a3c78a924a686ed0d3f90d765b00cdd78453e11
Suspecting: https://chromium.googlesource.com/chromium/src/+/3a3c78a924a686ed0d3f90d765b00cdd78453e11

@Xianzhu Wang: Please help in assigning it to the right owner if this is not related to your change.
Note: As this seems to be recent regression, Adding Release block stable for M-68, please remove/change if not needed.
Owner: chrishtr@chromium.org
Labels: -Target-67 M-69
We're not planning any further M67 release. Pls target fix for M68.
Labels: -ReleaseBlock-Stable -Target-68
Since this is already present in M67, removing RBS label. Let's try to get this fixed for M69. 
Project Member

Comment 8 by bugdroid1@chromium.org, Jul 17

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

commit 6f63a06d5f863ce949265ce072d1d6d99cf5d3be
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Tue Jul 17 23:55:30 2018

Reset the cull rect to an infinite rect underneath an SVG child transform.

This matches behavior already implemented in PaintLayerPainter, which was added
to greatly simplify the problem of detecting clip property node invalidations
upon change of clip (but not addition or removal of such clips).

With the rollout of SPv175, invalidation under SVG transforms is also subject
to this need. Before SPv175, non-composited transform mutations caused a forced
subtree invalidation. Now there is an invalidation of the property on the PaintChunk
under the transform, but the chunk itself is not re-painted. This requires
the chunk to be complete and not partially culled out, which is why
there is a requirement for an infinite cull rect.

Note that this will increase performance of animations under SVG transform,
which no longer need to paint the sub-content. (This same type of use case
for CSS transform was another justification for the infinite cull rect
in PaintLayerPainter).

Bug:  862318 

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ibb65c7fd491b1be725a6aa05a33e9ba7cc03782d
Reviewed-on: https://chromium-review.googlesource.com/1139583
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575855}
[modify] https://crrev.com/6f63a06d5f863ce949265ce072d1d6d99cf5d3be/third_party/WebKit/LayoutTests/flag-specific/enable-slimming-paint-v2/paint/invalidation/cull-rect-change-crash-expected.txt
[modify] https://crrev.com/6f63a06d5f863ce949265ce072d1d6d99cf5d3be/third_party/WebKit/LayoutTests/paint/invalidation/cull-rect-change-crash-expected.txt
[add] https://crrev.com/6f63a06d5f863ce949265ce072d1d6d99cf5d3be/third_party/WebKit/LayoutTests/svg/transforms/cull-rect-transform-change-expected.html
[add] https://crrev.com/6f63a06d5f863ce949265ce072d1d6d99cf5d3be/third_party/WebKit/LayoutTests/svg/transforms/cull-rect-transform-change.html
[modify] https://crrev.com/6f63a06d5f863ce949265ce072d1d6d99cf5d3be/third_party/blink/renderer/core/paint/paint_info.h
[modify] https://crrev.com/6f63a06d5f863ce949265ce072d1d6d99cf5d3be/third_party/blink/renderer/core/paint/paint_layer_painter.cc
[modify] https://crrev.com/6f63a06d5f863ce949265ce072d1d6d99cf5d3be/third_party/blink/renderer/core/paint/svg_container_painter.cc

Status: Fixed (was: Assigned)
Project Member

Comment 10 by bugdroid1@chromium.org, Jul 24

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

commit 109f9eed0257629f9073dc5dfebefaa04fc48b3c
Author: Philip Rogers <pdr@chromium.org>
Date: Tue Jul 24 17:19:22 2018

Do not cull svg image or shape painting when there are transform styles

This patch stops culling out painting of svg images and svg shapes in the
presence of transform styles. This was done for containers in crrev.com/575855
but needs to apply to all svg painting.

SVGModelObjectPainter has been introduced so the cull rect optimization can be
shared by shapes, images, and containers. A lengthy comment has been added in
SVGModelObjectPainter::CullRectSkipsPainting describing why. While we're in
the area and thinking about sharing code, the common outline painting code for
has also been unified (SVGModelObjectPainter::PaintOutline).

Bug: 865965,  862318 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I5bb3d43ae089d4bd6c617957abf9c401dfb89e0c
Reviewed-on: https://chromium-review.googlesource.com/1146147
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577593}
[add] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/WebKit/LayoutTests/svg/transforms/image-cull-rect-transform-change-expected.html
[add] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/WebKit/LayoutTests/svg/transforms/image-cull-rect-transform-change.html
[add] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/WebKit/LayoutTests/svg/transforms/rect-cull-rect-transform-change-expected.html
[add] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/WebKit/LayoutTests/svg/transforms/rect-cull-rect-transform-change.html
[modify] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/blink/renderer/core/paint/BUILD.gn
[modify] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/blink/renderer/core/paint/paint_layer_painter.cc
[modify] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/blink/renderer/core/paint/svg_container_painter.cc
[modify] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/blink/renderer/core/paint/svg_image_painter.cc
[add] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/blink/renderer/core/paint/svg_model_object_painter.cc
[add] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/blink/renderer/core/paint/svg_model_object_painter.h
[modify] https://crrev.com/109f9eed0257629f9073dc5dfebefaa04fc48b3c/third_party/blink/renderer/core/paint/svg_shape_painter.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Jul 25

Labels: merge-merged-3497
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ffcfe703596bfd94f82548d299caf42a1a6ce4b9

commit ffcfe703596bfd94f82548d299caf42a1a6ce4b9
Author: Philip Rogers <pdr@chromium.org>
Date: Wed Jul 25 21:41:01 2018

Do not cull svg image or shape painting when there are transform styles

This patch stops culling out painting of svg images and svg shapes in the
presence of transform styles. This was done for containers in crrev.com/575855
but needs to apply to all svg painting.

SVGModelObjectPainter has been introduced so the cull rect optimization can be
shared by shapes, images, and containers. A lengthy comment has been added in
SVGModelObjectPainter::CullRectSkipsPainting describing why. While we're in
the area and thinking about sharing code, the common outline painting code for
has also been unified (SVGModelObjectPainter::PaintOutline).

Bug: 865965,  862318 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I5bb3d43ae089d4bd6c617957abf9c401dfb89e0c
Reviewed-on: https://chromium-review.googlesource.com/1146147
Commit-Queue: Philip Rogers <pdr@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#577593}(cherry picked from commit 109f9eed0257629f9073dc5dfebefaa04fc48b3c)
Reviewed-on: https://chromium-review.googlesource.com/1150586
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/branch-heads/3497@{#91}
Cr-Branched-From: 271eaf50594eb818c9295dc78d364aea18c82ea8-refs/heads/master@{#576753}
[add] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/WebKit/LayoutTests/svg/transforms/image-cull-rect-transform-change-expected.html
[add] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/WebKit/LayoutTests/svg/transforms/image-cull-rect-transform-change.html
[add] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/WebKit/LayoutTests/svg/transforms/rect-cull-rect-transform-change-expected.html
[add] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/WebKit/LayoutTests/svg/transforms/rect-cull-rect-transform-change.html
[modify] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/blink/renderer/core/paint/BUILD.gn
[modify] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/blink/renderer/core/paint/paint_layer_painter.cc
[modify] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/blink/renderer/core/paint/svg_container_painter.cc
[modify] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/blink/renderer/core/paint/svg_image_painter.cc
[add] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/blink/renderer/core/paint/svg_model_object_painter.cc
[add] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/blink/renderer/core/paint/svg_model_object_painter.h
[modify] https://crrev.com/ffcfe703596bfd94f82548d299caf42a1a6ce4b9/third_party/blink/renderer/core/paint/svg_shape_painter.cc

 Issue 875689  has been merged into this issue.
Labels: TE-Verified-M70 TE-Verified-70.0.3528.0 TE-Verified-M69 TE-Verified-69.0.3497.42
Able to reproduce the issue on chrome reported version 67.0.3396.99(Build without fix)
Verified the fix on Mac 10.12.6, Windows-10 & Ubuntu 14.04 on Chrome version #69.0.3497.42 and #70.0.3528.0 as per the comment#0
Attaching screen cast for reference.
Observed "Able to see two rectangles scrolling down the page"
Hence, the fix is working as expected.
Adding the verified label.

Thanks!
862318.ogv
1.6 MB View Download

Sign in to add a comment