Device rotation on Android currently has a sub-optimal experience. When the CompositorView is resized, the renderer needs to submit a new frame, most likely doing a relayout and raster, with the updated size. This requires a round trip to the renderer process. While this is happening, on the browser we draw with an incorrectly sized frame and use the page's background color to gutter the uncovered regions. Fullscreen is an exception where we draw solid black until the renderer submits a correctly sized frame.
On Andoird O and above, a better way to fix this is to use surfaceRedrawNeededAsync callbacks, to synchronize the app's rendering with the framework. This callback is dispatched when the view is resized, and allows the app to block updates to the window until it has submitted an appropriate frame. By deferring the dispatch of this callback, until we draw a correctly sized frame from the renderer, we can ensure a much smoother transition.
Comment 1 by mlamouri@chromium.org
, May 25 2018