aw: Implement GrabViewSnapshotAsync for webview

Add a callback on ViewAndroid and set it for RWHVA's instance.
If we ever need to readback WebContent's instance, we could set the
callback there as well on RWHVA swap. This CL is intended to get GPU
tests working so it's not needed yet.

The rest of the code path is fairly straightforward. Note though since
webview do not actually control the render thread, it's not always
guaranteed that a readback will be fulfilled. However this is probably
better than failing immediately though.

One tricky function is WaitAndPruneFrameQueue which had to be updated
in order to avoid dropping copy requests.

Bug: 938956
Change-Id: I504db3200d13be062593dd82da8189193a3f6cc6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1513732
Commit-Queue: Bo <[email protected]>
Reviewed-by: Ted Choc <[email protected]>
Reviewed-by: Eric Karl <[email protected]>
Cr-Commit-Position: refs/heads/master@{#640171}
13 files changed