Index: third_party/WebKit/Source/web/WebMutatorImpl.h |
diff --git a/third_party/WebKit/Source/web/WebMutatorImpl.h b/third_party/WebKit/Source/web/WebMutatorImpl.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..790f01fa13d1189b11bdb68c5dfdb90efb1b33e4 |
--- /dev/null |
+++ b/third_party/WebKit/Source/web/WebMutatorImpl.h |
@@ -0,0 +1,53 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef WebMutatorImpl_h |
+#define WebMutatorImpl_h |
+ |
+#include "public/platform/WebMutation.h" |
+#include "public/platform/WebMutator.h" |
+#include "wtf/HashSet.h" |
+#include "wtf/Noncopyable.h" |
+#include "wtf/OwnPtr.h" |
+#include "wtf/PassOwnPtr.h" |
+ |
+namespace blink { |
+ |
+class CompositorProxy; |
+class CompositorProxyClient; |
+class CompositorProxyClientImpl; |
+class CompositorWorkerGlobalScope; |
+class WebMutatorClient; |
+class WebWaitableEvent; |
+ |
+class BLINK_EXPORT WebMutatorImpl final : public WebMutator { |
+ WTF_MAKE_NONCOPYABLE(WebMutatorImpl); |
+ |
+public: |
+ static PassOwnPtr<WebMutatorImpl> create(); |
+ ~WebMutatorImpl() override; |
+ |
+ // WebMutator implementation. |
+ bool mutate(double timeNow, WebCompositorMutableStateProvider*) override; |
+ |
+ void registerClient(CompositorProxyClientImpl*); |
+ void unregisterClient(CompositorProxyClientImpl*); |
+ |
+ CompositorProxyClient* createCompositorProxyClient(); |
+ WebMutatorClient* client() { return m_client.get(); } |
+ |
+ void setNeedsMutate(); |
+ |
+private: |
+ WebMutatorImpl(); |
+ |
+ typedef HashSet<CompositorProxyClientImpl*> Clients; |
+ Clients m_clients; |
+ |
+ OwnPtr<WebMutatorClient> m_client; |
+}; |
+ |
+} // namespace blink |
+ |
+#endif // WebMutatorImpl_h |