No repaint on Polymer UI updates in a Cordova app |
|||||||||||
Issue descriptionVersion: 50.0.2661.86 OS: 6.0.1, MTC19T What steps will reproduce the problem? (1) Install provided apk (or I can add you to the private alpha test in the Play Store) (2) Launch, tap "Next", tap the "+", tap "uProxy (experimental)" (3) Wait. No dialog appears (4) Rotate phone. This forces a repaint. Dialog appears. This resembles some old known issues: http://stackoverflow.com/questions/14871813/how-to-force-android-webview-to-repaint-on-dom-changes https://github.com/woodyza/RedrawPlugin This is blocking uProxy for Android.
,
May 18 2016
If it's a cordova app, is the webview rendering in software mode?
,
May 18 2016
I'm not aware of the concept of "software mode". How do I tell?
,
May 18 2016
I assume same content in chrome is fine?
,
May 18 2016
This content normally runs (correctly) as an extension for desktop Chrome. On Android, the content requires access to APIs provided by Cordova plugins, so I don't know of any way to run it in Chrome for Android.
,
May 18 2016
You are probably more familiar with the page content than me. Do you see expected dom mutation in devtools if after you that last tap? There are some logs, warnings and one 404 I see in console tab. > If it's a cordova app, is the webview rendering in software mode? It's not software.
,
May 18 2016
Hmm. It looks like the CSS is stuck at "display:none" until after the screen rotate event. I don't understand why this would happen. (It doesn't happen on desktop.)
,
May 18 2016
Feels like a bug in blink then. Rotation just causes a resize, which of course causes a re-layout and invalidates everything. What's supposed to cause the display to change? I can set a breakpoint for uproxy-action-dialog on attribute modification, and saw js setting display to '' (ie removing it?) as part of rotation. What's supposed to be triggering those js calls normally though?
,
May 18 2016
It's inside of Polymer, so I'm not sure how it actually happens. The furthest I've really traced is to "_this.$.dialog.open()" on line 13193 of top/fmdppp.../generic_ui/polymer/vulcanized.static.js. Everything beyond that is Polymer magic.
,
May 18 2016
Oh, actually devtools gives you the js stack when the break point triggers. Buttom of the stack is atEndOfMicrotask polymer.js:8123 (or an async task posted from it), which is kinda useless for me to figure out "what's supposed to call this". Anyway, looks like there is some more debugging to be done from devtools first. Could very well be a js bug I guess. If you still think this is a browser bug, then at least investigation should allow you to produce a smaller repro case for blink people to look at? Hopefully it that will reproduce on chrome on android as well.
,
May 18 2016
Gonna unassign myself for now
,
Jun 13 2016
I'm back on bug triage duty. Did polymer folks end up help out here? Is this bug still relevant? If not, can I close it?
,
Aug 15 2016
And I got rotated to triage duty again. Guess no one cares about this anymore
,
Aug 19 2016
Sorry for the delay in replying. This issue does still affect us. We're currently working around it with the following: // Force a repaint every 300 ms. // Extremely hacky workaround for https://crbug.com/612836 setInterval(function() { window.top.dispatchEvent(new Event('resize')); }, 300); My more urgent priority at the moment is debugging why animations are so janky on Android, but if it would still be helpful, I can try to work up a more minimal repro when I get a chance.
,
Aug 19 2016
I guess this should go to polymer component then? I expect polymer folks will want a minimal repro, probably preferrably one that also works on chrome, so like a jsfiddle or a html file to load
,
Aug 19 2016
(I assume that's the right component..)
,
Aug 22 2016
,
Aug 22 2016
,
Sep 3 2016
Not sure if related, but the comments section of http://stackoverflow.com/a/3485654 has quite the long list of other people reporting that WebKit is failing to issue repaints properly, and without Polymer implicated in any of those.
,
Sep 26 2016
Not Infra..just updated the labels.
,
Sep 29 2016
I see two hints here. One is Comment #7 about "display: none" staying longer than it should, and the other is Polymer magic (Comment #9). CCing Polymer engineer for possible insights. I don't think this is related other repaint problems we've been having. Those are all related to paint invalidations being wrong for various reasons. There's no evidence that we're getting any CSS update at all here.
,
Sep 30 2016
We really need a reduction that doesn't involve installing an APK.
,
Oct 18 2016
This bug seems to have fallen through the cracks and is being reported as stale-triage. bemasc@, are you able to make a reduced webpage that we can look at where we don't need to install an apk or be whitelisted for an app?
,
Mar 13 2017
Closing as the reporter is not responding. |
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by bemasc@chromium.org
, May 18 2016