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

Unified Diff: Source/core/page/DOMWindow.cpp

Issue 14460010: Implement the Blink part of the Device Motion API. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: fixed re-entrancy issue Created 7 years, 7 months 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/page/DOMWindow.cpp
diff --git a/Source/core/page/DOMWindow.cpp b/Source/core/page/DOMWindow.cpp
index ad755343c9eedddb18cf26b774dd5360e803b51f..2ae40094a91ec4cf45e876cadf9902b235fd2e83 100644
--- a/Source/core/page/DOMWindow.cpp
+++ b/Source/core/page/DOMWindow.cpp
@@ -1537,8 +1537,8 @@ bool DOMWindow::addEventListener(const AtomicString& eventType, PassRefPtr<Event
else if (eventType == eventNames().beforeunloadEvent && allowsBeforeUnloadListeners(this))
addBeforeUnloadEventListener(this);
else if (eventType == eventNames().devicemotionEvent && RuntimeEnabledFeatures::deviceMotionEnabled()) {
- if (DeviceMotionController* controller = DeviceMotionController::from(page()))
- controller->addDeviceEventListener(this);
+ if (DeviceMotionController* controller = DeviceMotionController::from(document()))
Peter Beverloo 2013/05/08 13:15:01 I think it's confusing that you're passing documen
timvolodine 2013/05/09 10:08:28 hmm, the document is actually needed to dispatch t
Peter Beverloo 2013/05/09 11:31:38 Right. Now that we're no longer storing the DOMWi
+ controller->startUpdating();
} else if (eventType == eventNames().deviceorientationEvent && RuntimeEnabledFeatures::deviceOrientationEnabled()) {
if (DeviceOrientationController* controller = DeviceOrientationController::from(page()))
controller->addDeviceEventListener(this);
@@ -1564,8 +1564,8 @@ bool DOMWindow::removeEventListener(const AtomicString& eventType, EventListener
else if (eventType == eventNames().beforeunloadEvent && allowsBeforeUnloadListeners(this))
removeBeforeUnloadEventListener(this);
else if (eventType == eventNames().devicemotionEvent) {
- if (DeviceMotionController* controller = DeviceMotionController::from(page()))
- controller->removeDeviceEventListener(this);
+ if (DeviceMotionController* controller = DeviceMotionController::from(document()))
+ controller->stopUpdating();
} else if (eventType == eventNames().deviceorientationEvent) {
if (DeviceOrientationController* controller = DeviceOrientationController::from(page()))
controller->removeDeviceEventListener(this);
@@ -1620,10 +1620,10 @@ void DOMWindow::removeAllEventListeners()
{
EventTarget::removeAllEventListeners();
- if (DeviceMotionController* controller = DeviceMotionController::from(page()))
- controller->removeAllDeviceEventListeners(this);
+ if (DeviceMotionController* controller = DeviceMotionController::from(document()))
+ controller->stopUpdating();
if (DeviceOrientationController* controller = DeviceOrientationController::from(page()))
- controller->removeAllDeviceEventListeners(this);
+ controller->removeDeviceEventListener(this);
if (Document* document = this->document())
document->didRemoveEventTargetNode(document);

Powered by Google App Engine
This is Rietveld 408576698