The original Geolocation implementation used a platform-specific GeolocationService provided in WebCore and owned by the Geolocation object. A client-based Geolocation implementation was later added in Bug 32499.
The maintenance burden of two implementations is becoming increasingly high, particularly in the light of possible refactorings to solve b/f cache problems, discussed in Bug 40162
The client-based implementation seems to be the correct approach as it avoids the layering violations of the initial approach, so we should switch all ports to use the client-based implementation.
*** This bug has been marked as a duplicate of bug 78853 ***