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());