Ensure that every RequestFrame call has a matching FrameEnd call
When a frame is requested from the runtime, a frame has to be submitted back to the runtime. Even if that frame is a "missing" frame, without any updated data. This change refactors the logic around requesting a frame to ensure that a frame isn't requested unless the callbacks would be serviced. If the state changes in the middle of a frame, then some base layer should still be present to end the frame/submit the missing frame back before it is removed. If these conditions aren't met, the frame loop could stall out and never be in a recoverable state. This change also adds some tests around these conditions. Bug: 1001730 Change-Id: I3b97322a7a8b1c15b37743c873382755fca7ec42 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1814102Reviewed-by:Jacob DeWitt <jacde@chromium.org> Reviewed-by:
Brian Sheedy <bsheedy@chromium.org> Reviewed-by:
Brandon Jones <bajones@chromium.org> Commit-Queue: Alexander Cooper <alcooper@chromium.org> Cr-Commit-Position: refs/heads/master@{#699037}
Showing
Please register or sign in to comment