Reland "Prevents compositor frames from being sent when SurfaceLayer is not visible."

This is a reland of 6be34509e3e7f532e2ebf4f8390be6b094bd819d

TBR=dcheng@chromium.org,enne@chromium.org,fsamuel@chromium.org,junov@chromium.org,mlamouri@chromium.org,liberato@chromium.org
Original change's description:
> Prevents compositor frames from being sent when SurfaceLayer is not visible.
>
> This CL is 3/3 in effort to fix the regressions caused by sending
> unneeded compositor frames.
>
> This CL provides a signal from the SurfaceLayerImpl to the VideoFrameSubmitter
> to prevent compositor frames from being sent at undesired times (occlusion, not
> being added into the layer tree).
>
>
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I428860047eaf4c50abc2e662914a643158f1276b
> Reviewed-on: https://chromium-review.googlesource.com/1101708
> Commit-Queue: CJ DiMeglio <lethalantidote@chromium.org>
> Reviewed-by: Frank Liberato <liberato@chromium.org>
> Reviewed-by: Justin Novosad <junov@chromium.org>
> Reviewed-by: enne <enne@chromium.org>
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#575462}

Change-Id: Idba341813f1202991c8cb5da94ea72d234db56eb
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Bug: 864358
Reviewed-on: https://chromium-review.googlesource.com/1140458
Reviewed-by: CJ DiMeglio <lethalantidote@chromium.org>
Commit-Queue: CJ DiMeglio <lethalantidote@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575833}
35 files changed