Render Widget Compositor: Split RWC and LayerTreeHost creation.

This change will allow us to move LTH ownership from RenderWidgetCompositor to Blink.

We will take the LTH away in RenderWidget::initializeLayerTreeView (which is called from Blink)

This is a preparation CL to move cc::LayerTreeHost ownership from
content::RenderWidgetCompositor to Blink.

Moreover, RenderWidgetCompositor will be erased.

BUG=584551

Review-Url: https://codereview.chromium.org/2592353002
Cr-Commit-Position: refs/heads/master@{#445253}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 7fc335f..70059c7 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -24,9 +24,11 @@
 #include "base/trace_event/trace_event.h"
 #include "base/trace_event/trace_event_synthetic_delay.h"
 #include "build/build_config.h"
+#include "cc/animation/animation_host.h"
 #include "cc/output/compositor_frame_sink.h"
 #include "cc/output/copy_output_request.h"
 #include "cc/scheduler/begin_frame_source.h"
+#include "cc/trees/layer_tree_host.h"
 #include "content/common/content_switches_internal.h"
 #include "content/common/drag_event_source_info.h"
 #include "content/common/drag_messages.h"
@@ -1230,8 +1232,15 @@
 blink::WebLayerTreeView* RenderWidget::initializeLayerTreeView() {
   DCHECK(!host_closing_);
 
-  compositor_ = RenderWidgetCompositor::Create(this, device_scale_factor_,
-                                               screen_info_, compositor_deps_);
+  compositor_ = RenderWidgetCompositor::Create(this, compositor_deps_);
+  auto animation_host = cc::AnimationHost::CreateMainInstance();
+
+  auto layer_tree_host = RenderWidgetCompositor::CreateLayerTreeHost(
+      compositor_.get(), compositor_.get(), animation_host.get(),
+      compositor_deps_, device_scale_factor_, screen_info_);
+  compositor_->Initialize(std::move(layer_tree_host),
+                          std::move(animation_host));
+
   compositor_->setViewportSize(physical_backing_size_);
   OnDeviceScaleFactorChanged();
   compositor_->SetDeviceColorSpace(screen_info_.icc_profile.GetColorSpace());