Index: third_party/WebKit/Source/modules/sensor/Sensor.cpp |
diff --git a/third_party/WebKit/Source/modules/sensor/Sensor.cpp b/third_party/WebKit/Source/modules/sensor/Sensor.cpp |
index 070b3b88aa3107e7257ddbff65b4110899b8bd19..a93c3818b149ce3885b637e3dab3b674ae5a8b09 100644 |
--- a/third_party/WebKit/Source/modules/sensor/Sensor.cpp |
+++ b/third_party/WebKit/Source/modules/sensor/Sensor.cpp |
@@ -179,6 +179,15 @@ void Sensor::onStopRequestCompleted(bool result) |
void Sensor::pageVisibilityChanged() |
{ |
updatePollingStatus(); |
+ |
+ if (!m_sensorProxy || !m_sensorProxy->isInitialized()) |
+ return; |
+ |
+ if (page()->visibilityState() != PageVisibilityStateVisible) { |
+ m_sensorProxy->suspend(); |
+ } else { |
+ m_sensorProxy->resume(); |
+ } |
} |
void Sensor::startListening() |