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

Issue 612836 link

Starred by 5 users

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

No repaint on Polymer UI updates in a Cordova app

Project Member Reported by bemasc@chromium.org, May 18 2016

Issue description

Version: 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.
 
android-debug.apk
10.9 MB Download

Comment 1 by bemasc@chromium.org, May 18 2016

Owner: boliu@chromium.org
If it's a cordova app, is the webview rendering in software mode?

Comment 3 by bemasc@chromium.org, May 18 2016

I'm not aware of the concept of "software mode".  How do I tell?

Comment 4 by boliu@chromium.org, May 18 2016

I assume same content in chrome is fine?

Comment 5 by bemasc@chromium.org, 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.

Comment 6 by boliu@chromium.org, 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.

Comment 7 by bemasc@chromium.org, 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.)

Comment 8 by boliu@chromium.org, 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?

Comment 9 by bemasc@chromium.org, 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.

Comment 10 by boliu@chromium.org, 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.

Comment 11 by boliu@chromium.org, May 18 2016

Owner: ----
Gonna unassign myself for now

Comment 12 by boliu@chromium.org, 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?

Comment 13 by boliu@chromium.org, Aug 15 2016

Status: WontFix (was: Untriaged)
And I got rotated to triage duty again. Guess no one cares about this anymore

Comment 14 by j...@uproxy.org, 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.

Comment 15 by boliu@chromium.org, Aug 19 2016

Components: -Mobile>WebView Infra>Client>Polymer
Status: Unconfirmed (was: WontFix)
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

Comment 16 by boliu@chromium.org, Aug 19 2016

(I assume that's the right component..)
Components: Infra>Client
Components: -Infra>Client>Polymer

Comment 19 by j...@uproxy.org, 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.
Components: -Infra>Client Blink
Labels: Hotlist-Polymer
Not Infra..just updated the labels.
Cc: cdata@chromium.org
Components: -Blink Blink>CSS
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.
Labels: Needs-Reduction
We really need a reduction that doesn't involve installing an APK.

Comment 23 by meade@chromium.org, Oct 18 2016

Cc: dstockwell@chromium.org
Labels: -Needs-Reduction Needs-Feedback
Owner: bemasc@chromium.org
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?
Status: WontFix (was: Unconfirmed)
Closing as the reporter is not responding.

Sign in to add a comment