Store and set stale frame content screenshot when the frame is evicted

This patch captures the web content surface as a texture and displays
it on the RenderWidgetHostView until a new compositor frame is submitted
by the viz client. This allows the browser to display stale content
instead of a white solid color during animations.

The decision to show stale content or a solid color is done by the
WebContentsDelegate associated with the RenderWidgetHostView and its
DelegatedFrameHost. For this patch, the default is to show a solid
color on frame eviction. In the case of a tabbed browser, the Browser
(which implements the WebContentsDelegate) chooses to show stale content
if the frame being evicted is from an active tab.

Bug: 897826
Change-Id: I3346f3dec79780d107d2c96b4382886690a69570
Component: RenderWidgetHostViewAura, DelegatedFrameHost, ui layer
Reviewed-on: https://chromium-review.googlesource.com/c/1369714
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Reviewed-by: Saman Sami <samans@chromium.org>
Reviewed-by: François Doray <fdoray@chromium.org>
Commit-Queue: Malay Keshav <malaykeshav@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622255}
23 files changed