1 /*
2 * Copyright 2012, The Android Open Source Project
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26 #include "config.h"
27 #include "GeolocationClientAndroid.h"
28
29 #include "WebViewCore.h"
30
31 #include <Frame.h>
32 #include <Page.h>
33
34 using WebCore::Geolocation;
35 using WebCore::GeolocationClient;
36 using WebCore::GeolocationController;
37 using WebCore::GeolocationPosition;
38
39 namespace android {
40
GeolocationClientAndroid()41 GeolocationClientAndroid::GeolocationClientAndroid() : m_webViewCore(0)
42 {
43 }
44
~GeolocationClientAndroid()45 GeolocationClientAndroid::~GeolocationClientAndroid()
46 {
47 }
48
geolocationDestroyed()49 void GeolocationClientAndroid::geolocationDestroyed()
50 {
51 delete this;
52 }
53
startUpdating()54 void GeolocationClientAndroid::startUpdating()
55 {
56 client()->startUpdating();
57 }
58
stopUpdating()59 void GeolocationClientAndroid::stopUpdating()
60 {
61 client()->stopUpdating();
62 }
63
setEnableHighAccuracy(bool enableHighAccuracy)64 void GeolocationClientAndroid::setEnableHighAccuracy(bool enableHighAccuracy)
65 {
66 client()->setEnableHighAccuracy(enableHighAccuracy);
67 }
68
lastPosition()69 GeolocationPosition* GeolocationClientAndroid::lastPosition()
70 {
71 return client()->lastPosition();
72 }
73
requestPermission(Geolocation * geolocation)74 void GeolocationClientAndroid::requestPermission(Geolocation* geolocation)
75 {
76 client()->requestPermission(geolocation);
77 }
78
cancelPermissionRequest(Geolocation * geolocation)79 void GeolocationClientAndroid::cancelPermissionRequest(Geolocation* geolocation)
80 {
81 client()->cancelPermissionRequest(geolocation);
82 }
83
setWebViewCore(WebViewCore * webViewCore)84 void GeolocationClientAndroid::setWebViewCore(WebViewCore* webViewCore)
85 {
86 ASSERT(!m_webViewCore);
87 m_webViewCore = webViewCore;
88 ASSERT(m_webViewCore);
89 }
90
client() const91 GeolocationClient* GeolocationClientAndroid::client() const
92 {
93 return m_webViewCore->geolocationManager()->client();
94 }
95
96 } // namespace android
97