New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 649760 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

CSS-3D scaled SVG rendering is broken

Reported by mobilesp...@gmail.com, Sep 23 2016

Issue description

Device name: seen on different devices Sony Xperia Aqua M, Samsung Core Prime/ 
Android version:5.1, 6.0.1
WebView version : m54  beta 54.0.2840.25 and 54.0.2840.34

Also present on Chrome 54 Beta. To check the issue, you wan use the following URL and compare SVG rendering after pinch & zoom on Chrome 53 (OK) versus Chrome 54 Beta (Not OK)

http://micronora.mobile-spot.mobi

Steps to reproduce 
(1) open above url in Chrome on a Android device
(2) Press Map (FR : "Plan") on the welcome page
(3) Pinch & zoom 

Expected result:
The map displays correctly at any zoom level

Actual result:
The map misses big chunks of content on Chrome M54 Beta 54.0.2840.25
Same thing is seen with the Android System web view 54.0.2840.25

This issue is critical to us as the map feature is just broken.

Also enclosed : screenshots of the same view on M54beta versus M53



 
Screenshot_Chrome53.png
299 KB View Download
Screenshot_Chrome54Beta.png
189 KB View Download
Owner: torne@chromium.org
Status: Assigned (was: Unconfirmed)
Assigning to bug cop since this has yet to be triaged.  torne@, PTAL.

Comment 2 by torne@chromium.org, Sep 29 2016

Cc: torne@chromium.org
Components: -Mobile>WebView Blink>CSS>3D Blink>SVG
Labels: M-54 Needs-Bisect
Owner: satyavat...@chromium.org
Page uses CSS 3d transforms to handle pan/zoom/rotate. Can repro on Nexus 6 on Chrome; not webview-specific. No warnings/errors happening in the page on 54.

So, not really sure what's going on here, but it's really trivial to reproduce, so bisecting is probably a good plan, unless SVG/CSS3D people have any idea why this might be happening.

Satyavathi, can someone from your team take a look at bisecting this in chrome?
Owner: rsgav...@chromium.org
Ok, torne@ thanks! Forwarding to Chrome team.
Owner: chrishtr@chromium.org
Labels: ReleaseBlock-Stable
It's working correctly in Chrome 53. I can reproduce in 54.
This is an M54 regression.
Bisect info:
Good build: (54.0.2827.0) - Bad build: (54.0.2828.0) 

https://chromium.googlesource.com/chromium/src/+log/54.0.2827.0..54.0.2828.0?pretty=fuller&n=10000

Added files to directory @
http://go/chrome-androidlogs1/6/649760

pinchzoom.mp4
pinchZoom.log
Cc: atotic@chromium.org
Could be https://codereview.chromium.org/2204503002 ? atotic WDYT?
I do not think so. ResizeObserver is behind a flag, and my svg mods such as:

 if (element())
        element()->setNeedsResizeObserverUpdate();

will effectively be a no-op unless ResizeObserver is on.
Also, https://codereview.chromium.org/2222993002

Deprecate SVGSVGElement.viewport attribute

Quick scan through source finds references to viewport in front_svg.js

Comment 11 by f...@opera.com, Oct 4 2016

Cc: wkorman@chromium.org
https://codereview.chromium.org/2222993002 only adds a deprecation message (for a useless attribute.)

A narrow bisect yields the following range:

https://chromium.googlesource.com/chromium/src/+log/3831b72130f11ebac151fd4945719f6d7489e048..f7d24bd8050b6bf21e6280f12103f0c311e18f4f

Suspecting https://codereview.chromium.org/2225563002 (or maybe some visual rect issue made visible by it.)
Hi,
regarding comment #10, we do not use SVGSVGElement.viewport but we have a non related internal "viewport" JS object.


Labels: -Pri-2 Pri-1
Status: Started (was: Assigned)
Reduced testcase almost done.
I am OOO tomorrow, two potentially related bugs (just guesses w/o seeing test case):

 http://crbug.com/640265 
 http://crbug.com/640273 

Both have patches in review noted, but the changes were made very high in the invalidation stack and there is desire to explore more focused fix.
Reduced testcase attached.
test.html
717 bytes View Download
The bug is an under-invalidation when SVG changes size.

Comment 18 by f...@opera.com, Oct 5 2016

So, maybe something like:

...
bool sizeChanged = oldSize != size();
...
if (sizeChanged/* && shouldApplyViewportClip() ?? */)
  setNeedsPaintInvalidationSubtree()

in LayoutSVGRoot::layout?
Yes exactly. Working on basically that change right now. :)
Cc: pdr@chromium.org
 Issue 640265  has been merged into this issue.
 Issue 640273  has been merged into this issue.
@wkorman: thanks for the pointers. I think those are both duplicates of this
bug. Will rebaseline them in my patch.
Project Member

Comment 23 by bugdroid1@chromium.org, Oct 6 2016

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

commit bd1529c0d0d4afe68e09b455203cc63d982e7b4d
Author: chrishtr <chrishtr@chromium.org>
Date: Thu Oct 06 19:57:59 2016

Mark children of an SVG root as needing paint invalidation checking on resize.

BUG= 649760 

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

[modify] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/paint/invalidation/resources/text-based-repaint.js
[add] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/paint/invalidation/svg/resize-svg-invalidate-children-expected.txt
[add] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/paint/invalidation/svg/resize-svg-invalidate-children.html
[modify] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/absolute-sized-content-with-resources-expected.txt
[modify] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-foreignObject-expected.txt
[modify] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp

Labels: Merge-Request-54
Labels: M-55

Comment 26 by dimu@chromium.org, Oct 6 2016

Labels: -Merge-Request-54 Merge-Approved-54 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M54 (branch: 2840)
Project Member

Comment 27 by bugdroid1@chromium.org, Oct 6 2016

Labels: -merge-approved-54 merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/116461ce34da606c8cacbe1471005e26a347a773

commit 116461ce34da606c8cacbe1471005e26a347a773
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Thu Oct 06 20:55:18 2016

Mark children of an SVG root as needing paint invalidation checking on resize.

BUG= 649760 

Review-Url: https://codereview.chromium.org/2397003002
Cr-Commit-Position: refs/heads/master@{#423638}
(cherry picked from commit bd1529c0d0d4afe68e09b455203cc63d982e7b4d)

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

Cr-Commit-Position: refs/branch-heads/2840@{#667}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/paint/invalidation/resources/text-based-repaint.js
[add] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/paint/invalidation/svg/resize-svg-invalidate-children-expected.txt
[add] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/paint/invalidation/svg/resize-svg-invalidate-children.html
[modify] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/platform/linux/svg/custom/absolute-sized-content-with-resources-expected.txt
[modify] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-foreignObject-expected.txt
[modify] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp

Status: Fixed (was: Started)
Project Member

Comment 29 by bugdroid1@chromium.org, Oct 6 2016

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

commit c74817e7b535145ca196c7a02548e42834c169a0
Author: Rebaseline Bot <blink-rebaseline-bot@chromium.org>
Date: Thu Oct 06 21:15:28 2016

Auto-rebaseline for r423638

https://chromium.googlesource.com/chromium/src/+/bd1529c0d

BUG= 649760 
TBR=chrishtr@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#423684}

[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/absolute-sized-content-with-resources-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-content-with-resources-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-deep-shadow-tree-content-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-shadow-tree-content-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-shadow-tree-content-with-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-use-on-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-use-without-attributes-on-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/use-setAttribute-crash-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-content-with-resources-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-deep-shadow-tree-content-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-shadow-tree-content-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-shadow-tree-content-with-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-use-on-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-use-without-attributes-on-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/use-setAttribute-crash-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/mac/svg/zoom/page/zoom-foreignObject-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/win/svg/zoom/page/zoom-foreignObject-expected.txt

Status: Verified (was: Fixed)
Verified fix with latest M54 build on Galaxy Core 2.
Also verified with M55 build on Nexus 5X/NMF12
Project Member

Comment 33 by bugdroid1@chromium.org, Oct 27 2016

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

commit bd1529c0d0d4afe68e09b455203cc63d982e7b4d
Author: chrishtr <chrishtr@chromium.org>
Date: Thu Oct 06 19:57:59 2016

Mark children of an SVG root as needing paint invalidation checking on resize.

BUG= 649760 

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

[modify] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/paint/invalidation/resources/text-based-repaint.js
[add] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/paint/invalidation/svg/resize-svg-invalidate-children-expected.txt
[add] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/paint/invalidation/svg/resize-svg-invalidate-children.html
[modify] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/absolute-sized-content-with-resources-expected.txt
[modify] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-foreignObject-expected.txt
[modify] https://crrev.com/bd1529c0d0d4afe68e09b455203cc63d982e7b4d/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp

Project Member

Comment 34 by bugdroid1@chromium.org, Oct 27 2016

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

commit c74817e7b535145ca196c7a02548e42834c169a0
Author: Rebaseline Bot <blink-rebaseline-bot@chromium.org>
Date: Thu Oct 06 21:15:28 2016

Auto-rebaseline for r423638

https://chromium.googlesource.com/chromium/src/+/bd1529c0d

BUG= 649760 
TBR=chrishtr@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#423684}

[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/absolute-sized-content-with-resources-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-content-with-resources-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-deep-shadow-tree-content-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-shadow-tree-content-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-shadow-tree-content-with-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-use-on-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/relative-sized-use-without-attributes-on-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/paint/invalidation/svg/use-setAttribute-crash-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-content-with-resources-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-deep-shadow-tree-content-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-shadow-tree-content-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-shadow-tree-content-with-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-use-on-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/relative-sized-use-without-attributes-on-symbol-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/linux/paint/invalidation/svg/use-setAttribute-crash-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/mac/svg/zoom/page/zoom-foreignObject-expected.txt
[modify] https://crrev.com/c74817e7b535145ca196c7a02548e42834c169a0/third_party/WebKit/LayoutTests/platform/win/svg/zoom/page/zoom-foreignObject-expected.txt

Project Member

Comment 35 by bugdroid1@chromium.org, Oct 27 2016

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

commit 116461ce34da606c8cacbe1471005e26a347a773
Author: Chris Harrelson <chrishtr@chromium.org>
Date: Thu Oct 06 20:55:18 2016

Mark children of an SVG root as needing paint invalidation checking on resize.

BUG= 649760 

Review-Url: https://codereview.chromium.org/2397003002
Cr-Commit-Position: refs/heads/master@{#423638}
(cherry picked from commit bd1529c0d0d4afe68e09b455203cc63d982e7b4d)

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

Cr-Commit-Position: refs/branch-heads/2840@{#667}
Cr-Branched-From: 1ae106dbab4bddd85132d5b75c670794311f4c57-refs/heads/master@{#414607}

[modify] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/paint/invalidation/resources/text-based-repaint.js
[add] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/paint/invalidation/svg/resize-svg-invalidate-children-expected.txt
[add] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/paint/invalidation/svg/resize-svg-invalidate-children.html
[modify] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/platform/linux/svg/custom/absolute-sized-content-with-resources-expected.txt
[modify] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/LayoutTests/platform/linux/svg/zoom/page/zoom-foreignObject-expected.txt
[modify] https://crrev.com/116461ce34da606c8cacbe1471005e26a347a773/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp

Comment 36 by suzyh@chromium.org, Mar 24 2017

Components: -Blink>CSS>CSS3D Blink>Compositing>Transform3D

Sign in to add a comment