Closed bogas04-swiggy closed 4 years ago
I bisected Fenix and found that f9afd97a687a501553bcc91c78d7c945f8678f7a is the regressing commit.
It seems like we now wait until engineView.captureThumbnail()
completes before opening the tab drawer or settings page etc? However, if you dig in to the gecko code, you can see that RecvRequestScreenPixels()
is only implemented for the layers gfx backend, not webrender. The graphics code will never send a SendScreenPixels()
back, so the callback will never be invoked. Hence nothing happens.
Bug 1547737 is tracking implementing this function for webrender. Hopefully that should land in the next week or two, but in the meantime I will see if we can simply return null (rather than not return at all) whilst webrender is enabled.
Alternatively, and I don't know whether this is possible, but in Fenix maybe it would make sense to add a timeout waiting for captureThumbnail()
. And then proceed to show the tab switcher / settings menu / whatever if the thumbnail hasn't arrived within that time?
I have removed engineView.captureThumbnail()
now so this should be fixed in Nightly.
Verified this as fixed, with webRender on. latest Nightly 10/15.
What would be needed for us to have caught this in CI? Is it possible for us to have a configuration that runs with WebRender turned on?
From some other discussion, there are problems turning on WebRender on emulators, tracked in https://bugzilla.mozilla.org/show_bug.cgi?id=1590805 .
Once that's fixed, we'd probably be able to turn this on for all debug builds and in CI, so that any UI test that goes through this flow would fail with broken behavior.
Steps to reproduce
Expected behavior
Everything should work fine
Actual behavior
Buttons show ripple effects but they don't perform the action.
It used to be working fine until 2 days ago, since then the problem has arisen.
Device information
┆Issue is synchronized with this Jira Task