We have thousands of ANR reports in our Google Play console where Chromium stuck in this VSync callback:
"main" prio=5 tid=1 Native
| group="main" sCount=1 dsCount=0 obj=0x73898658 self=0xb0204400
| sysTid=3708 nice=-4 cgrp=default sched=0/0 handle=0xb2f69534
| state=S schedstat=( 5873509009 1942619080 10289 ) utm=484 stm=102 core=3 HZ=100
| stack=0xbe00c000-0xbe00e000 stackSize=8MB
| held mutexes=
#00 pc 00000000000174d4 /system/lib/libc.so (syscall+28)
#01 pc 0000000000046a5d /system/lib/libc.so (_ZL24__pthread_cond_timedwaitP23pthread_cond_internal_tP15pthread_mutex_tbPK8timespec+102)
#02 pc 0000000000039bb1 /data/app/com.android.chrome-1/base.apk (???)
at org.chromium.ui.base.WindowAndroid.nativeOnVSync (Native method)
at org.chromium.ui.base.WindowAndroid.access$700 (WindowAndroid.java:134)
at org.chromium.ui.base.WindowAndroid$1.onVSync$5166USJ75THMGSJFDLKNAR9FELKIULIJF5N66JBFDPKN8RRI7D52ILG_0 (WindowAndroid.java:16)
at org.chromium.ui.VSyncMonitor$1.doFrame (VSyncMonitor.java:22)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:872)
at android.view.Choreographer.doCallbacks (Choreographer.java:686)
at android.view.Choreographer.doFrame (Choreographer.java:618)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:860)
at android.os.Handler.handleCallback (Handler.java:751)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:154)
at android.app.ActivityThread.main (ActivityThread.java:6165)
at java.lang.reflect.Method.invoke! (Native method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:778)
It is hard to reproduce this problem, but it happens when the user sees the ads. Do you have any ideas how to fix this?