| Index: ui/compositor/compositor.cc
|
| diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
|
| index c50f9efdddb5321b6095e8c8a8bf4b64482433b9..31219c6ff0f3ddda16d8f82c04c7972da7c93a1b 100644
|
| --- a/ui/compositor/compositor.cc
|
| +++ b/ui/compositor/compositor.cc
|
| @@ -81,11 +81,20 @@ Compositor::Compositor(gfx::AcceleratedWidget widget,
|
| compositor_lock_(NULL),
|
| layer_animator_collection_(this),
|
| weak_ptr_factory_(this) {
|
| - root_web_layer_ = cc::Layer::Create();
|
| -
|
| base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
|
|
| cc::LayerTreeSettings settings;
|
| +
|
| + cc::LayerSettings ui_layer_settings;
|
| + if (command_line->HasSwitch(
|
| + switches::kUIEnableCompositorAnimationTimelines)) {
|
| + settings.hud_layer_settings_.use_compositor_animation_timelines = true;
|
| + ui_layer_settings.use_compositor_animation_timelines = true;
|
| + }
|
| + Layer::SetUILayerSettings(ui_layer_settings);
|
| +
|
| + root_web_layer_ = cc::Layer::Create(Layer::UILayerSettings());
|
| +
|
| // When impl-side painting is enabled, this will ensure PictureLayers always
|
| // can have LCD text, to match the previous behaviour with ContentLayers,
|
| // where LCD-not-allowed notifications were ignored.
|
| @@ -135,9 +144,6 @@ Compositor::Compositor(gfx::AcceleratedWidget widget,
|
| // raster threads.
|
| settings.gather_pixel_refs = false;
|
|
|
| - settings.use_compositor_animation_timelines =
|
| - command_line->HasSwitch(switches::kUIEnableCompositorAnimationTimelines);
|
| -
|
| base::TimeTicks before_create = base::TimeTicks::Now();
|
| host_ = cc::LayerTreeHost::CreateSingleThreaded(
|
| this, this, context_factory_->GetSharedBitmapManager(),
|
| @@ -162,7 +168,7 @@ Compositor::~Compositor() {
|
| DCHECK(begin_frame_observer_list_.empty());
|
|
|
| if (root_layer_)
|
| - root_layer_->SetCompositor(NULL);
|
| + root_layer_->ResetCompositor();
|
|
|
| // Stop all outstanding draws before telling the ContextFactory to tear
|
| // down any contexts that the |host_| may rely upon.
|
| @@ -184,13 +190,11 @@ void Compositor::SetRootLayer(Layer* root_layer) {
|
| if (root_layer_ == root_layer)
|
| return;
|
| if (root_layer_)
|
| - root_layer_->SetCompositor(NULL);
|
| + root_layer_->ResetCompositor();
|
| root_layer_ = root_layer;
|
| - if (root_layer_ && !root_layer_->GetCompositor())
|
| - root_layer_->SetCompositor(this);
|
| root_web_layer_->RemoveAllChildren();
|
| if (root_layer_)
|
| - root_web_layer_->AddChild(root_layer_->cc_layer());
|
| + root_layer_->SetCompositor(this, root_web_layer_);
|
| }
|
|
|
| void Compositor::SetHostHasTransparentBackground(
|
|
|