summaryrefslogtreecommitdiffstats
path: root/WebCore/page/Geolocation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/page/Geolocation.cpp')
-rw-r--r--WebCore/page/Geolocation.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/WebCore/page/Geolocation.cpp b/WebCore/page/Geolocation.cpp
index abdb8bf..523c21d 100644
--- a/WebCore/page/Geolocation.cpp
+++ b/WebCore/page/Geolocation.cpp
@@ -421,6 +421,8 @@ void Geolocation::setIsAllowed(bool allowed)
if (isAllowed()) {
// Permission request was made during the startUpdating process
m_startRequestPermissionNotifier->startTimerIfNeeded();
+ // The notifier is always ref'ed by m_oneShots or m_watchers.
+ GeoNotifier* notifier = m_startRequestPermissionNotifier.get();
m_startRequestPermissionNotifier = 0;
#if ENABLE(CLIENT_BASED_GEOLOCATION)
if (!m_frame)
@@ -428,7 +430,7 @@ void Geolocation::setIsAllowed(bool allowed)
Page* page = m_frame->page();
if (!page)
return;
- page->geolocationController()->addObserver(this);
+ page->geolocationController()->addObserver(this, notifier->m_options->enableHighAccuracy());
#else
// TODO: Handle startUpdate() for non-client based implementations using pre-emptive policy
#endif
@@ -648,8 +650,7 @@ bool Geolocation::startUpdating(GeoNotifier* notifier)
if (!page)
return false;
- // FIXME: Pass options to client.
- page->geolocationController()->addObserver(this);
+ page->geolocationController()->addObserver(this, notifier->m_options->enableHighAccuracy());
return true;
#else
#if PLATFORM(ANDROID)