Index: ui/compositor/compositor.cc |
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc |
index 64e3d21306a13d8b4b1be7b695b4567579aea377..4502661e12433a0cd6e2e22bec853a4c397c59f0 100644 |
--- a/ui/compositor/compositor.cc |
+++ b/ui/compositor/compositor.cc |
@@ -15,6 +15,9 @@ |
#include "base/strings/string_util.h" |
#include "base/sys_info.h" |
#include "base/trace_event/trace_event.h" |
+#include "cc/animation/animation_host.h" |
+#include "cc/animation/animation_id_provider.h" |
+#include "cc/animation/animation_timeline.h" |
#include "cc/base/switches.h" |
#include "cc/input/input_handler.h" |
#include "cc/layers/layer.h" |
@@ -190,6 +193,12 @@ Compositor::Compositor(ui::ContextFactory* context_factory, |
host_ = cc::LayerTreeHost::CreateSingleThreaded(this, ¶ms); |
UMA_HISTOGRAM_TIMES("GPU.CreateBrowserCompositor", |
base::TimeTicks::Now() - before_create); |
+ |
+ if (settings.use_compositor_animation_timelines) { |
+ animation_timeline_ = cc::AnimationTimeline::Create( |
+ cc::AnimationIdProvider::NextTimelineId()); |
+ host_->animation_host()->AddAnimationTimeline(animation_timeline_.get()); |
+ } |
host_->SetRootLayer(root_web_layer_); |
host_->set_surface_id_namespace(surface_id_allocator_->id_namespace()); |
host_->SetVisible(true); |
@@ -210,6 +219,9 @@ Compositor::~Compositor() { |
if (root_layer_) |
root_layer_->ResetCompositor(); |
+ if (animation_timeline_) |
+ host_->animation_host()->RemoveAnimationTimeline(animation_timeline_.get()); |
+ |
// Stop all outstanding draws before telling the ContextFactory to tear |
// down any contexts that the |host_| may rely upon. |
host_.reset(); |
@@ -238,6 +250,10 @@ void Compositor::SetRootLayer(Layer* root_layer) { |
root_layer_->SetCompositor(this, root_web_layer_); |
} |
+cc::AnimationTimeline* Compositor::GetAnimationTimeline() const { |
+ return animation_timeline_.get(); |
+} |
+ |
void Compositor::SetHostHasTransparentBackground( |
bool host_has_transparent_background) { |
host_->set_has_transparent_background(host_has_transparent_background); |