Implement top-chrome slide with page scrolls

Implement Android-like showing/hiding of the top-chrome
UIs when the page gets scrolled in tablet mode only
on Chrome OS.

This CL does the following:
- Exposes all the necessary plumbings on the renderer
  side, and adds ones on the browser side to make this
  feature work.
- Adds a base::Feature and a chrome://flags flag for
  this feature that is disabled by default.

Demo: https://drive.google.com/file/d/1-Q4IE-_O1RDhSjYZuXGeG7OzUROxwVML/view?usp=sharing

BUG=867063
TEST=manual, browser tests.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I8a905bad0577166eb5563bf84b2a82a389209639
Reviewed-on: https://chromium-review.googlesource.com/1117449
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Mike West <[email protected]>
Reviewed-by: David Bokan <[email protected]>
Reviewed-by: James Cook <[email protected]>
Commit-Queue: Ahmed Fakhry <[email protected]>
Cr-Commit-Position: refs/heads/master@{#588584}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 49f26c7b..90cad1d 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -2084,6 +2084,20 @@
   return last_committed_source_id_;
 }
 
+void WebContentsImpl::SetTopControlsShownRatio(float ratio) {
+  if (delegate_)
+    delegate_->SetTopControlsShownRatio(this, ratio);
+}
+
+int WebContentsImpl::GetTopControlsHeight() const {
+  return delegate_ ? delegate_->GetTopControlsHeight() : 0;
+}
+
+void WebContentsImpl::SetTopControlsGestureScrollInProgress(bool in_progress) {
+  if (delegate_)
+    delegate_->SetTopControlsGestureScrollInProgress(in_progress);
+}
+
 void WebContentsImpl::RenderWidgetCreated(
     RenderWidgetHostImpl* render_widget_host) {
   created_widgets_.insert(render_widget_host);