History log of /external/webkit/Source/WebKit/android/WebCoreSupport/GeolocationClientAndroid.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5c36c4ca9214cbbe65d12f6b138aef9618d41a99 17-May-2012 Steve Block <steveblock@google.com> Switch to client-based Geolocation

The motivation for this switch is that it is required to enable
PREEMPT_GEOLOCATION_PERMISSION. See b/4500947.

The switch involves changing lots of Android's WebKit plumbing to use a new
GeolocationClientAndroid in WebKit (called from
WebCore::GeolocationController), rather than the existing
GeolocationServiceAndroid in WebCore/platform (called from
WebCore::Geolocation). This is complicated by the need to support mocking for
LayoutTests.

The pattern used is very similar to that used for DeviceOrientation and
DeviceMotion. This patch ...
- Enables CLIENT_BASED_GEOLOCATION
- Leaves PREEMPT_GEOLOCATION_PERMISSION disabled for now
- Removes GeolocationServiceAndroid
- Adds a new GeolocationClientAndroid
- Just a proxy to real client
- Adds a new GeolocationManager
- Manages switching between the real and mock clients
- Provides the appropriate client to GeolocationClientAndroid
- Plumbs to the real client calls for permissions and for suspending/resuming
- Adds a new GeolocationClientImpl
- The real client
- Based heavily on GeolocationServiceAndroid
- Delegates to GeolocationServiceBridge, as GeolocationServiceAndroid did
- Calls back directly to GeolocationController
- Owns the existing GeolocationPermissions
- Updates WebViewCore to call the GeolocationManager for permissions and for
suspending/resuming
- Removes superfluous ChromeClient methods for permissions

Note that support for mocking will be added in a later change. See bug for
details.

Bug: 6511338
Change-Id: I4cdbf55846e76b37c161834b83135b4dc48dbcdc
/external/webkit/Source/WebKit/android/WebCoreSupport/GeolocationClientAndroid.cpp