headless/cc/viz: Add animate_only BeginFrame param.

See design doc here: http://bit.ly/bfc-animations.

The headless::CompositorController runs intermediate BeginFrames
while loading a page, for which we would like to avoid doing more
work than necessary.

This patch adds a new animate_only BeginFrame parameter.
When this param is set, only select surfaces / BeginFrameObservers receive
the BeginFrame. The compositor defers main frame commits for such
BeginFrames and the main frame also skips the painting lifecycle phases,
which are unnecessary since the commit will be aborted.

Bug: 646774
TBR: [email protected]
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I7b6aa6425461af572c62b75351d7812dd6fbedc6
Reviewed-on: https://chromium-review.googlesource.com/808964
Commit-Queue: Eric Seckler <[email protected]>
Reviewed-by: Brian Salomon <[email protected]>
Reviewed-by: Chris Harrelson <[email protected]>
Reviewed-by: Dmitry Gozman <[email protected]>
Reviewed-by: Sadrul Chowdhury <[email protected]>
Reviewed-by: Tom Sepez <[email protected]>
Reviewed-by: enne <[email protected]>
Reviewed-by: Sami Kyöstilä <[email protected]>
Cr-Commit-Position: refs/heads/master@{#529951}
diff --git a/content/renderer/gpu/render_widget_compositor.h b/content/renderer/gpu/render_widget_compositor.h
index 2885499..e81f46f3 100644
--- a/content/renderer/gpu/render_widget_compositor.h
+++ b/content/renderer/gpu/render_widget_compositor.h
@@ -196,7 +196,7 @@
   void BeginMainFrame(const viz::BeginFrameArgs& args) override;
   void BeginMainFrameNotExpectedSoon() override;
   void BeginMainFrameNotExpectedUntil(base::TimeTicks time) override;
-  void UpdateLayerTreeHost() override;
+  void UpdateLayerTreeHost(VisualStateUpdate requested_update) override;
   void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta,
                            const gfx::Vector2dF& outer_delta,
                            const gfx::Vector2dF& elastic_overscroll_delta,