diff options
Diffstat (limited to 'WebCore/page/Geolocation.cpp')
-rw-r--r-- | WebCore/page/Geolocation.cpp | 7 |
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) |