OLD | NEW |
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 "web/CompositorMutatorImpl.h" | 5 #include "web/CompositorMutatorImpl.h" |
6 | 6 |
7 #include "core/animation/CustomCompositorAnimationManager.h" | 7 #include "core/animation/CustomCompositorAnimationManager.h" |
8 #include "core/dom/CompositorProxy.h" | 8 #include "core/dom/CompositorProxy.h" |
9 #include "platform/ThreadSafeFunctional.h" | 9 #include "platform/ThreadSafeFunctional.h" |
10 #include "platform/TraceEvent.h" | 10 #include "platform/TraceEvent.h" |
11 #include "platform/WaitableEvent.h" | 11 #include "platform/WaitableEvent.h" |
12 #include "platform/graphics/CompositorMutationsTarget.h" | 12 #include "platform/graphics/CompositorMutationsTarget.h" |
13 #include "platform/graphics/CompositorMutatorClient.h" | 13 #include "platform/graphics/CompositorMutatorClient.h" |
14 #include "platform/heap/Handle.h" | 14 #include "platform/heap/Handle.h" |
15 #include "public/platform/Platform.h" | 15 #include "public/platform/Platform.h" |
16 #include "web/CompositorProxyClientImpl.h" | 16 #include "web/CompositorProxyClientImpl.h" |
| 17 #include "wtf/PtrUtil.h" |
17 | 18 |
18 namespace blink { | 19 namespace blink { |
19 | 20 |
20 namespace { | 21 namespace { |
21 | 22 |
22 void createCompositorMutatorClient(std::unique_ptr<CompositorMutatorClient>* ptr
, WaitableEvent* doneEvent) | 23 void createCompositorMutatorClient(std::unique_ptr<CompositorMutatorClient>* ptr
, WaitableEvent* doneEvent) |
23 { | 24 { |
24 CompositorMutatorImpl* mutator = CompositorMutatorImpl::create(); | 25 CompositorMutatorImpl* mutator = CompositorMutatorImpl::create(); |
25 ptr->reset(new CompositorMutatorClient(mutator, mutator->animationManager())
); | 26 ptr->reset(new CompositorMutatorClient(mutator, mutator->animationManager())
); |
26 mutator->setClient(ptr->get()); | 27 mutator->setClient(ptr->get()); |
27 doneEvent->signal(); | 28 doneEvent->signal(); |
28 } | 29 } |
29 | 30 |
30 } // namespace | 31 } // namespace |
31 | 32 |
32 CompositorMutatorImpl::CompositorMutatorImpl() | 33 CompositorMutatorImpl::CompositorMutatorImpl() |
33 : m_animationManager(adoptPtr(new CustomCompositorAnimationManager)) | 34 : m_animationManager(wrapUnique(new CustomCompositorAnimationManager)) |
34 , m_client(nullptr) | 35 , m_client(nullptr) |
35 { | 36 { |
36 } | 37 } |
37 | 38 |
38 std::unique_ptr<CompositorMutatorClient> CompositorMutatorImpl::createClient() | 39 std::unique_ptr<CompositorMutatorClient> CompositorMutatorImpl::createClient() |
39 { | 40 { |
40 std::unique_ptr<CompositorMutatorClient> mutatorClient; | 41 std::unique_ptr<CompositorMutatorClient> mutatorClient; |
41 WaitableEvent doneEvent; | 42 WaitableEvent doneEvent; |
42 if (WebThread* compositorThread = Platform::current()->compositorThread()) { | 43 if (WebThread* compositorThread = Platform::current()->compositorThread()) { |
43 compositorThread->getWebTaskRunner()->postTask(BLINK_FROM_HERE, threadSa
feBind(&createCompositorMutatorClient, AllowCrossThreadAccess(&mutatorClient), A
llowCrossThreadAccess(&doneEvent))); | 44 compositorThread->getWebTaskRunner()->postTask(BLINK_FROM_HERE, threadSa
feBind(&createCompositorMutatorClient, AllowCrossThreadAccess(&mutatorClient), A
llowCrossThreadAccess(&doneEvent))); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 setNeedsMutate(); | 79 setNeedsMutate(); |
79 } | 80 } |
80 | 81 |
81 void CompositorMutatorImpl::setNeedsMutate() | 82 void CompositorMutatorImpl::setNeedsMutate() |
82 { | 83 { |
83 TRACE_EVENT0("compositor-worker", "CompositorMutatorImpl::setNeedsMutate"); | 84 TRACE_EVENT0("compositor-worker", "CompositorMutatorImpl::setNeedsMutate"); |
84 m_client->setNeedsMutate(); | 85 m_client->setNeedsMutate(); |
85 } | 86 } |
86 | 87 |
87 } // namespace blink | 88 } // namespace blink |
OLD | NEW |