From 0394c84380567e7a4b3cee843340a3529eb73be1 Mon Sep 17 00:00:00 2001 From: Steve Block Date: Tue, 18 May 2010 15:17:44 +0100 Subject: Make sure Geolocation is robust to location providers being absent on the device. Bug: 2692830 Change-Id: Ib6395a04ec916a04cdd3a09569c4ea373fb422e9 --- WebCore/platform/android/GeolocationServiceAndroid.cpp | 2 +- WebCore/platform/android/GeolocationServiceBridge.cpp | 8 ++++---- WebCore/platform/android/GeolocationServiceBridge.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'WebCore') diff --git a/WebCore/platform/android/GeolocationServiceAndroid.cpp b/WebCore/platform/android/GeolocationServiceAndroid.cpp index 7f7d58e..12a9098 100644 --- a/WebCore/platform/android/GeolocationServiceAndroid.cpp +++ b/WebCore/platform/android/GeolocationServiceAndroid.cpp @@ -96,7 +96,7 @@ bool GeolocationServiceAndroid::startUpdating(PositionOptions* options, bool sus // ANDROID // TODO: Upstream to webkit.org. See https://bugs.webkit.org/show_bug.cgi?id=34082 if (!suspend) - m_javaBridge->start(); + return m_javaBridge->start(); } return true; diff --git a/WebCore/platform/android/GeolocationServiceBridge.cpp b/WebCore/platform/android/GeolocationServiceBridge.cpp index a30d2e6..be68193 100644 --- a/WebCore/platform/android/GeolocationServiceBridge.cpp +++ b/WebCore/platform/android/GeolocationServiceBridge.cpp @@ -84,11 +84,11 @@ GeolocationServiceBridge::~GeolocationServiceBridge() stopJavaImplementation(); } -void GeolocationServiceBridge::start() +bool GeolocationServiceBridge::start() { ASSERT(m_javaGeolocationServiceObject); - getJNIEnv()->CallVoidMethod(m_javaGeolocationServiceObject, - javaGeolocationServiceClassMethodIDs[GeolocationServiceMethodStart]); + return getJNIEnv()->CallBooleanMethod(m_javaGeolocationServiceObject, + javaGeolocationServiceClassMethodIDs[GeolocationServiceMethodStart]); } void GeolocationServiceBridge::stop() @@ -177,7 +177,7 @@ void GeolocationServiceBridge::startJavaImplementation() javaGeolocationServiceClassMethodIDs[GeolocationServiceMethodInit] = env->GetMethodID(javaGeolocationServiceClass, "", "(J)V"); javaGeolocationServiceClassMethodIDs[GeolocationServiceMethodStart] = - env->GetMethodID(javaGeolocationServiceClass, "start", "()V"); + env->GetMethodID(javaGeolocationServiceClass, "start", "()Z"); javaGeolocationServiceClassMethodIDs[GeolocationServiceMethodStop] = env->GetMethodID(javaGeolocationServiceClass, "stop", "()V"); javaGeolocationServiceClassMethodIDs[GeolocationServiceMethodSetEnableGps] = diff --git a/WebCore/platform/android/GeolocationServiceBridge.h b/WebCore/platform/android/GeolocationServiceBridge.h index 6cf9ead..5d26142 100644 --- a/WebCore/platform/android/GeolocationServiceBridge.h +++ b/WebCore/platform/android/GeolocationServiceBridge.h @@ -43,7 +43,7 @@ public: GeolocationServiceBridge(ListenerInterface* listener); ~GeolocationServiceBridge(); - void start(); + bool start(); void stop(); void setEnableGps(bool enable); -- cgit v1.1