Fix toast lifetime
In NotificationManagerService#cancelToast we have been calling WindowManagerService#removeWindowToken with 'removeWindows'=true. This is allowing for Surface destruction without any sort of synchronization from the client. Before the call to removeWindowToken we are emitting a one-way hide call to the Toast client. As a solution to the lifetime issue we have the client callback to let us know it has processed the hide call (and thus stopped the ViewRoot). On the server side we also instate a timeout. This mirrors the app stop timeout. All codepaths I could find leading to this sort of situation where a client is still rendering in to a toast following the total duration expiring seem to indicate a hung client UI thread. Bug: 62536731 Bug: 70530552 Test: Manual. go/wm-smoke Change-Id: I89643b3c3a9fa42423b498c1bd3a422a7959aaaf
Loading
Please register or sign in to comment