| Index: Source/modules/device_orientation/DeviceMotionController.cpp
|
| diff --git a/Source/modules/device_orientation/DeviceMotionController.cpp b/Source/modules/device_orientation/DeviceMotionController.cpp
|
| index 3a5e5b96406dc51dcf3e47f969d6694db9d4927f..d36e1983f4f4121ac381586f821816928f26cf82 100644
|
| --- a/Source/modules/device_orientation/DeviceMotionController.cpp
|
| +++ b/Source/modules/device_orientation/DeviceMotionController.cpp
|
| @@ -27,8 +27,8 @@
|
| #include "config.h"
|
| #include "modules/device_orientation/DeviceMotionController.h"
|
|
|
| -#include "RuntimeEnabledFeatures.h"
|
| #include "core/dom/Document.h"
|
| +#include "core/frame/DOMWindow.h"
|
| #include "core/page/Page.h"
|
| #include "modules/device_orientation/DeviceMotionData.h"
|
| #include "modules/device_orientation/DeviceMotionDispatcher.h"
|
| @@ -93,21 +93,24 @@ bool DeviceMotionController::isNullEvent(Event* event)
|
| return !motionEvent->deviceMotionData()->canProvideEventData();
|
| }
|
|
|
| -void DeviceMotionController::didAddEventListener(DOMWindow*, const AtomicString& eventType)
|
| +void DeviceMotionController::didAddEventListener(DOMWindow* window, const AtomicString& eventType)
|
| {
|
| - if (eventType == EventTypeNames::devicemotion && RuntimeEnabledFeatures::deviceMotionEnabled()) {
|
| - if (page() && page()->visibilityState() == PageVisibilityStateVisible)
|
| - startUpdating();
|
| - m_hasEventListener = true;
|
| - }
|
| + if (eventType != EventTypeNames::devicemotion)
|
| + return;
|
| +
|
| + if (page() && page()->visibilityState() == PageVisibilityStateVisible)
|
| + startUpdating();
|
| +
|
| + m_hasEventListener = true;
|
| }
|
|
|
| -void DeviceMotionController::didRemoveEventListener(DOMWindow*, const AtomicString& eventType)
|
| +void DeviceMotionController::didRemoveEventListener(DOMWindow* window, const AtomicString& eventType)
|
| {
|
| - if (eventType == EventTypeNames::devicemotion) {
|
| - stopUpdating();
|
| - m_hasEventListener = false;
|
| - }
|
| + if (eventType != EventTypeNames::devicemotion || window->hasEventListeners(EventTypeNames::devicemotion))
|
| + return;
|
| +
|
| + stopUpdating();
|
| + m_hasEventListener = false;
|
| }
|
|
|
| void DeviceMotionController::didRemoveAllEventListeners(DOMWindow*)
|
|
|