diff options
Diffstat (limited to 'WebKit/chromium/src/WebGeolocationServiceMock.cpp')
| -rw-r--r-- | WebKit/chromium/src/WebGeolocationServiceMock.cpp | 24 |
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); } |
