summaryrefslogtreecommitdiffstats
path: root/WebKit/chromium/src/WebGeolocationServiceMock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/chromium/src/WebGeolocationServiceMock.cpp')
-rw-r--r--WebKit/chromium/src/WebGeolocationServiceMock.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/WebKit/chromium/src/WebGeolocationServiceMock.cpp b/WebKit/chromium/src/WebGeolocationServiceMock.cpp
index 2eed352..00d819b 100644
--- a/WebKit/chromium/src/WebGeolocationServiceMock.cpp
+++ b/WebKit/chromium/src/WebGeolocationServiceMock.cpp
@@ -36,6 +36,7 @@
#include "GeolocationServiceMock.h"
#include "WebString.h"
#include <wtf/CurrentTime.h>
+#include <wtf/HashMap.h>
#if ENABLE(GEOLOCATION)
@@ -121,8 +122,25 @@ void GeolocationServiceChromiumMock::geolocationServiceErrorOccurred(Geolocation
namespace WebKit {
+class WebGeolocationServiceMockImpl : public WebGeolocationServiceMock {
+public:
+ virtual ~WebGeolocationServiceMockImpl() { }
+ virtual void requestPermissionForFrame(int bridgeId, const WebURL& url);
+ virtual int attachBridge(WebGeolocationServiceBridge*);
+ virtual void detachBridge(int bridgeId);
+
+private:
+ typedef HashMap<int, WebGeolocationServiceBridge*> IdToBridgeMap;
+ IdToBridgeMap m_idToBridgeMap;
+};
+
bool WebGeolocationServiceMock::s_mockGeolocationPermission = false;
+WebGeolocationServiceMock* WebGeolocationServiceMock::createWebGeolocationServiceMock()
+{
+ return new WebGeolocationServiceMockImpl;
+}
+
void WebGeolocationServiceMock::setMockGeolocationPermission(bool allowed)
{
s_mockGeolocationPermission = allowed;
@@ -142,7 +160,7 @@ void WebGeolocationServiceMock::setMockGeolocationError(int errorCode, const Web
GeolocationServiceMock::setError(positionError);
}
-void WebGeolocationServiceMock::requestPermissionForFrame(int bridgeId, const WebURL& url)
+void WebGeolocationServiceMockImpl::requestPermissionForFrame(int bridgeId, const WebURL& url)
{
IdToBridgeMap::iterator iter = m_idToBridgeMap.find(bridgeId);
if (iter == m_idToBridgeMap.end())
@@ -150,7 +168,7 @@ void WebGeolocationServiceMock::requestPermissionForFrame(int bridgeId, const We
iter->second->setIsAllowed(s_mockGeolocationPermission);
}
-int WebGeolocationServiceMock::attachBridge(WebGeolocationServiceBridge* bridge)
+int WebGeolocationServiceMockImpl::attachBridge(WebGeolocationServiceBridge* bridge)
{
static int nextAvailableWatchId = 1;
// In case of overflow, make sure the ID remains positive, but reuse the ID values.
@@ -160,7 +178,7 @@ int WebGeolocationServiceMock::attachBridge(WebGeolocationServiceBridge* bridge)
return nextAvailableWatchId++;
}
-void WebGeolocationServiceMock::detachBridge(int bridgeId)
+void WebGeolocationServiceMockImpl::detachBridge(int bridgeId)
{
m_idToBridgeMap.remove(bridgeId);
}