RESOLVED FIXED130898
[GTK] Geoclue2 providers won't work after reloading
https://bugs.webkit.org/show_bug.cgi?id=130898
Summary [GTK] Geoclue2 providers won't work after reloading
Mario Sanchez Prada
Reported 2014-03-28 07:00:56 PDT
There is a bug in the code of the Geoclue2 geolocation provider that prevents geolocation from working if you try to reload a page after having started using the geolocation API previously. Steps to reproduce: 1. Open http://html5demos.com/geo in a geolocation in Minibrowser 2. Allow to know the location when requested through a dialog 3. Wait until it says "Found you!" 4. Reload the page and repeat step 2 Expected outcome: You should see the found location once again Actual: You will see "Failed" instead, because the geolocation provider is trying to use the same client proxy for geoclue2 service, that is no longer available after having called geoclue_client_call_stop() in GeolocarionProviderGeoclue::stopUpdating(), since apparently it can be reused from previous times.
Attachments
Patch proposal (3.19 KB, patch)
2014-03-28 07:14 PDT, Mario Sanchez Prada
no flags
Mario Sanchez Prada
Comment 1 2014-03-28 07:14:53 PDT
Created attachment 228049 [details] Patch proposal The fix is quite simple. Please consider reviewing it quickly so we can request integrating it into the stable branch before the next release. Thanks!
Martin Robinson
Comment 2 2014-03-28 07:34:03 PDT
Comment on attachment 228049 [details] Patch proposal View in context: https://bugs.webkit.org/attachment.cgi?id=228049&action=review > Source/WebCore/platform/geoclue/GeolocationProviderGeoclue2.cpp:76 > - startGeoclueClient(); > + geoclue_manager_call_get_client(m_managerProxy.get(), nullptr, reinterpret_cast<GAsyncReadyCallback>(getGeoclueClientCallback), this); You don't mention in the changelog why you no longer call startGeoclueClient.
Mario Sanchez Prada
Comment 3 2014-03-28 07:46:49 PDT
(In reply to comment #2) > (From update of attachment 228049 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=228049&action=review > > > Source/WebCore/platform/geoclue/GeolocationProviderGeoclue2.cpp:76 > > - startGeoclueClient(); > > + geoclue_manager_call_get_client(m_managerProxy.get(), nullptr, reinterpret_cast<GAsyncReadyCallback>(getGeoclueClientCallback), this); > > You don't mention in the changelog why you no longer call startGeoclueClient. I no longer call him here because it will be called later on, once the client proxy is created, down in createGeoclueClientProxyCallback(). Not sure whether it's worth mentioning that in the ChangeLog?
Mario Sanchez Prada
Comment 4 2014-03-28 08:05:18 PDT
Comment on attachment 228049 [details] Patch proposal Thanks for the review!
WebKit Commit Bot
Comment 5 2014-03-28 08:34:29 PDT
Comment on attachment 228049 [details] Patch proposal Clearing flags on attachment: 228049 Committed r166406: <http://trac.webkit.org/changeset/166406>
WebKit Commit Bot
Comment 6 2014-03-28 08:34:32 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.