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

Unified Diff: Source/modules/device_orientation/DeviceOrientationController.cpp

Issue 209333008: [DevTools] Support device orientation override on device with sensors. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebaselined test Created 6 years, 9 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/modules/device_orientation/DeviceOrientationController.cpp
diff --git a/Source/modules/device_orientation/DeviceOrientationController.cpp b/Source/modules/device_orientation/DeviceOrientationController.cpp
index 038c419c6dc7dccf2990f5bc9ccc518e850990a4..d78e016aa58d9308d3a7478178136142da5404cb 100644
--- a/Source/modules/device_orientation/DeviceOrientationController.cpp
+++ b/Source/modules/device_orientation/DeviceOrientationController.cpp
@@ -49,6 +49,8 @@ DeviceOrientationController::~DeviceOrientationController()
void DeviceOrientationController::didChangeDeviceOrientation(DeviceOrientationData* deviceOrientationData)
{
+ if (m_overrideOrientationData)
+ return;
dispatchDeviceEvent(DeviceOrientationEvent::create(EventTypeNames::deviceorientation, deviceOrientationData));
}
@@ -67,15 +69,19 @@ DeviceOrientationController& DeviceOrientationController::from(Document& documen
return *controller;
}
+DeviceOrientationData* DeviceOrientationController::lastData()
+{
+ return m_overrideOrientationData ? m_overrideOrientationData.get() : DeviceOrientationDispatcher::instance().latestDeviceOrientationData();
+}
+
bool DeviceOrientationController::hasLastData()
{
- return DeviceOrientationDispatcher::instance().latestDeviceOrientationData();
+ return lastData();
}
PassRefPtr<Event> DeviceOrientationController::getLastEvent()
{
- return DeviceOrientationEvent::create(EventTypeNames::deviceorientation,
- DeviceOrientationDispatcher::instance().latestDeviceOrientationData());
+ return DeviceOrientationEvent::create(EventTypeNames::deviceorientation, lastData());
}
void DeviceOrientationController::registerWithDispatcher()
@@ -117,4 +123,21 @@ void DeviceOrientationController::didRemoveAllEventListeners(DOMWindow* window)
m_hasEventListener = false;
}
+void DeviceOrientationController::setOverride(DeviceOrientationData* deviceOrientationData)
+{
+ m_overrideOrientationData.clear();
+ didChangeDeviceOrientation(deviceOrientationData);
+ m_overrideOrientationData = deviceOrientationData;
+}
+
+void DeviceOrientationController::clearOverride()
+{
+ if (!m_overrideOrientationData)
+ return;
+ m_overrideOrientationData.clear();
+ DeviceOrientationData* orientation = lastData();
+ if (orientation)
+ didChangeDeviceOrientation(orientation);
+}
+
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698