Index: Source/modules/screen_orientation/ScreenOrientationDispatcher.h |
diff --git a/Source/modules/screen_orientation/ScreenOrientationDispatcher.h b/Source/modules/screen_orientation/ScreenOrientationDispatcher.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8f24274ef08c4988a68551c2e9e139baa5791011 |
--- /dev/null |
+++ b/Source/modules/screen_orientation/ScreenOrientationDispatcher.h |
@@ -0,0 +1,39 @@ |
+// Copyright 2014 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 ScreenOrientationDispatcher_h |
+#define ScreenOrientationDispatcher_h |
+ |
+#include "public/platform/WebScreenOrientationListener.h" |
+#include "wtf/Vector.h" |
+ |
+namespace WebCore { |
+ |
+class ScreenOrientationController; |
+ |
+class ScreenOrientationDispatcher FINAL : public blink::WebScreenOrientationListener { |
+public: |
+ static ScreenOrientationDispatcher& instance(); |
+ |
+ void addController(ScreenOrientationController*); |
+ void removeController(ScreenOrientationController*); |
+ |
+private: |
+ ScreenOrientationDispatcher(); |
+ |
+ void purgeControllers(); |
+ void startListening(); |
+ void stopListening(); |
+ |
+ // WebScreenOrientationListener API. |
+ virtual void didChangeScreenOrientation(blink::WebScreenOrientation) OVERRIDE; |
+ |
+ Vector<ScreenOrientationController*> m_controllers; |
+ bool m_needsPurge; |
+ bool m_isDispatching; |
+}; |
+ |
+} // namespace WebCore |
+ |
+#endif // ScreenOrientationDispatcher_h |