Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(276)

Side by Side Diff: third_party/WebKit/Source/platform/animation/CompositorAnimationHostTest.cpp

Issue 2559273003: Blink Compositor Animation: Introduce CompositorAnimationHost correctly. (Closed)
Patch Set: Add nullcheck for m_layerTreeView in WebViewImpl Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "platform/animation/CompositorAnimationHost.h" 5 #include "platform/animation/CompositorAnimationHost.h"
6 6
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "platform/animation/CompositorAnimationTimeline.h" 8 #include "platform/animation/CompositorAnimationTimeline.h"
9 #include "platform/testing/CompositorTest.h" 9 #include "platform/testing/CompositorTest.h"
10 #include "platform/testing/WebLayerTreeViewImplForTesting.h" 10 #include "platform/testing/WebLayerTreeViewImplForTesting.h"
11 #include "wtf/PtrUtil.h" 11 #include "wtf/PtrUtil.h"
12 #include <memory> 12 #include <memory>
13 13
14 namespace blink { 14 namespace blink {
15 15
16 class CompositorAnimationHostTest : public CompositorTest {}; 16 class CompositorAnimationHostTest : public CompositorTest {};
17 17
18 TEST_F(CompositorAnimationHostTest, AnimationHostNullWhenTimelineDetached) { 18 TEST_F(CompositorAnimationHostTest, AnimationHostNullWhenTimelineDetached) {
19 std::unique_ptr<CompositorAnimationTimeline> timeline = 19 std::unique_ptr<CompositorAnimationTimeline> timeline =
20 CompositorAnimationTimeline::create(); 20 CompositorAnimationTimeline::create();
21 21
22 scoped_refptr<cc::AnimationTimeline> ccTimeline = 22 scoped_refptr<cc::AnimationTimeline> ccTimeline =
23 timeline->animationTimeline(); 23 timeline->animationTimeline();
24 EXPECT_FALSE(ccTimeline->animation_host()); 24 EXPECT_FALSE(ccTimeline->animation_host());
25 EXPECT_TRUE(timeline->compositorAnimationHost().isNull());
26 25
27 std::unique_ptr<WebLayerTreeView> layerTreeHost = 26 std::unique_ptr<WebLayerTreeView> layerTreeHost =
28 WTF::wrapUnique(new WebLayerTreeViewImplForTesting); 27 WTF::wrapUnique(new WebLayerTreeViewImplForTesting);
29 DCHECK(layerTreeHost); 28 DCHECK(layerTreeHost);
30 29
31 layerTreeHost->attachCompositorAnimationTimeline( 30 auto compositorAnimationHost = WTF::makeUnique<CompositorAnimationHost>(
32 timeline->animationTimeline()); 31 layerTreeHost->compositorAnimationHost());
33 EXPECT_FALSE(timeline->compositorAnimationHost().isNull());
34 32
35 layerTreeHost->detachCompositorAnimationTimeline( 33 compositorAnimationHost->addTimeline(timeline.get());
36 timeline->animationTimeline()); 34 EXPECT_TRUE(ccTimeline->animation_host());
37 EXPECT_TRUE(timeline->compositorAnimationHost().isNull()); 35
36 compositorAnimationHost->removeTimeline(timeline.get());
37 EXPECT_FALSE(ccTimeline->animation_host());
38 } 38 }
39 39
40 } // namespace blink 40 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698