GeolocationServiceChromium.cpp [plain text]
#include "config.h"
#include "GeolocationServiceChromium.h"
#include "ChromiumBridge.h"
namespace WebCore {
GeolocationServiceChromium::GeolocationServiceChromium(GeolocationServiceClient* c)
: GeolocationService(c),
m_geolocation(reinterpret_cast<Geolocation*>(c)),
m_geolocationServiceBridge(ChromiumBridge::createGeolocationServiceBridge(this)),
m_lastError(PositionError::create(PositionError::POSITION_UNAVAILABLE, ""))
{
}
void GeolocationServiceChromium::setIsAllowed(bool allowed)
{
m_geolocation->setIsAllowed(allowed);
}
void GeolocationServiceChromium::setLastPosition(PassRefPtr<Geoposition> geoposition)
{
m_lastPosition = geoposition;
positionChanged();
}
void GeolocationServiceChromium::setLastError(int errorCode, const String& message)
{
m_lastError = PositionError::create(static_cast<PositionError::ErrorCode>(errorCode), message);
errorOccurred();
}
Frame* GeolocationServiceChromium::frame()
{
return m_geolocation->frame();
}
bool GeolocationServiceChromium::startUpdating(PositionOptions* options)
{
return m_geolocationServiceBridge->startUpdating(options);
}
void GeolocationServiceChromium::stopUpdating()
{
return m_geolocationServiceBridge->stopUpdating();
}
void GeolocationServiceChromium::suspend()
{
return m_geolocationServiceBridge->suspend();
}
void GeolocationServiceChromium::resume()
{
return m_geolocationServiceBridge->resume();
}
Geoposition* GeolocationServiceChromium::lastPosition() const
{
return m_lastPosition.get();
}
PositionError* GeolocationServiceChromium::lastError() const
{
return m_lastError.get();
}
static GeolocationService* createGeolocationServiceChromium(GeolocationServiceClient* c)
{
return new GeolocationServiceChromium(c);
}
GeolocationService::FactoryFunction* GeolocationService::s_factoryFunction = &createGeolocationServiceChromium;
}