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

Unified Diff: third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp

Issue 2529343002: [sensors] Fix flakiness in generic sensors tests (Closed)
Patch Set: Created 4 years, 1 month 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: third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp
diff --git a/third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp b/third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp
index b2309114253196c350bd7826deba6e89434ab4e1..de85ce72ad14a2a4948e843ec87c2053d6c1931c 100644
--- a/third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp
+++ b/third_party/WebKit/Source/modules/sensor/SensorProviderProxy.cpp
@@ -14,6 +14,13 @@ namespace blink {
// SensorProviderProxy
SensorProviderProxy::SensorProviderProxy(LocalFrame* frame) {
+ initializeSensorProviderIfNeeded(frame);
+}
+
+void SensorProviderProxy::initializeSensorProviderIfNeeded(LocalFrame* frame) {
+ if (m_sensorProvider)
+ return;
+
frame->interfaceProvider()->getInterface(mojo::GetProxy(&m_sensorProvider));
m_sensorProvider.set_connection_error_handler(convertToBaseCallback(
WTF::bind(&SensorProviderProxy::onSensorProviderConnectionError,
@@ -31,6 +38,8 @@ SensorProviderProxy* SensorProviderProxy::from(LocalFrame* frame) {
if (!result) {
result = new SensorProviderProxy(frame);
Supplement<LocalFrame>::provideTo(*frame, supplementName(), result);
+ } else {
+ result->initializeSensorProviderIfNeeded(frame);
Mikhail 2016/11/28 10:42:51 maybe split methods, like "isInitialized() const"
shalamov 2016/11/28 12:50:54 Done.
}
return result;
}
@@ -66,6 +75,11 @@ SensorProxy* SensorProviderProxy::getSensorProxy(
return nullptr;
}
+device::mojom::blink::SensorProvider* SensorProviderProxy::getSensorProvider()
Mikhail 2016/11/28 10:42:51 why move it here (and rename)? IMO it's fine to ke
shalamov 2016/11/28 12:50:54 Wanted to make lazy getter, but then noticed that
+ const {
+ return m_sensorProvider.get();
+}
+
void SensorProviderProxy::onSensorProviderConnectionError() {
if (!Platform::current()) {
// TODO(rockot): Clean this up once renderer shutdown sequence is fixed.

Powered by Google App Engine
This is Rietveld 408576698