summaryrefslogtreecommitdiffstats
path: root/WebCore
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-05-18 15:17:44 +0100
committerSteve Block <steveblock@google.com>2010-05-18 15:17:44 +0100
commit0394c84380567e7a4b3cee843340a3529eb73be1 (patch)
tree80e2d08aa0be28b07e922ad64af1903125ee9b84 /WebCore
parent4cd028871582a7f15f06fa772e65aa2f76e4e0d5 (diff)
downloadexternal_webkit-0394c84380567e7a4b3cee843340a3529eb73be1.zip
external_webkit-0394c84380567e7a4b3cee843340a3529eb73be1.tar.gz
external_webkit-0394c84380567e7a4b3cee843340a3529eb73be1.tar.bz2
Make sure Geolocation is robust to location providers being absent on the device.
Bug: 2692830 Change-Id: Ib6395a04ec916a04cdd3a09569c4ea373fb422e9
Diffstat (limited to 'WebCore')
-rw-r--r--WebCore/platform/android/GeolocationServiceAndroid.cpp2
-rw-r--r--WebCore/platform/android/GeolocationServiceBridge.cpp8
-rw-r--r--WebCore/platform/android/GeolocationServiceBridge.h2
3 files changed, 6 insertions, 6 deletions
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, "<init>", "(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);