Fix for https://bugs.webkit.org/show_bug.cgi?id=32499
Add client based Geolocation provider

Reviewed by Dan Bernstein.

Add first cut of a client based Geolocation provider. This is guarded by
ENABLE(CLIENT_BASED_GEOLOCATION) and is off by default for now. This adds a
GeolocationControllerClient interface that no-one currently implements,
but will in a subsequent patch.

WebCore: 

* GNUmakefile.am:
* WebCore.base.exp:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCoreSources.bkl:
* page/Geolocation.cpp:
(WebCore::createGeopositionFromGeolocationPosition):
(WebCore::createPositionErrorFromGeolocationError):
(WebCore::Geolocation::Geolocation):
(WebCore::Geolocation::~Geolocation):
(WebCore::Geolocation::disconnectFrame):
(WebCore::Geolocation::lastPosition):
(WebCore::Geolocation::startRequest):
(WebCore::Geolocation::fatalErrorOccurred):
(WebCore::Geolocation::requestTimedOut):
(WebCore::Geolocation::clearWatch):
(WebCore::Geolocation::handleError):
(WebCore::Geolocation::positionChanged):
(WebCore::Geolocation::makeSuccessCallbacks):
(WebCore::Geolocation::errorOccurred):
(WebCore::Geolocation::geolocationServicePositionChanged):
(WebCore::Geolocation::geolocationServiceErrorOccurred):
(WebCore::Geolocation::startUpdating):
(WebCore::Geolocation::stopUpdating):
* page/Geolocation.h:
* page/GeolocationController.cpp: Added.
(WebCore::GeolocationController::GeolocationController):
(WebCore::GeolocationController::~GeolocationController):
(WebCore::GeolocationController::addObserver):
(WebCore::GeolocationController::removeObserver):
(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::errorOccurred):
(WebCore::GeolocationController::lastPosition):
* page/GeolocationController.h: Added.
* page/GeolocationControllerClient.h: Added.
(WebCore::GeolocationControllerClient::~GeolocationControllerClient):
* page/GeolocationError.h: Added.
(WebCore::GeolocationError::):
(WebCore::GeolocationError::create):
(WebCore::GeolocationError::code):
(WebCore::GeolocationError::message):
* page/GeolocationPosition.h: Added.
(WebCore::GeolocationPosition::create):
(WebCore::GeolocationPosition::timestamp):
(WebCore::GeolocationPosition::latitude):
(WebCore::GeolocationPosition::longitude):
(WebCore::GeolocationPosition::accuracy):
(WebCore::GeolocationPosition::altitude):
(WebCore::GeolocationPosition::altitudeAccuracy):
(WebCore::GeolocationPosition::heading):
(WebCore::GeolocationPosition::speed):
(WebCore::GeolocationPosition::canProvideAltitude):
(WebCore::GeolocationPosition::canProvideAltitudeAccuracy):
(WebCore::GeolocationPosition::canProvideHeading):
(WebCore::GeolocationPosition::canProvideSpeed):
(WebCore::GeolocationPosition::GeolocationPosition):
* page/Geoposition.h:
(WebCore::Geoposition::create):
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::geolocationController):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):

WebKit/chromium: 

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::WebViewImpl):

WebKit/gtk: 

* webkit/webkitwebview.cpp:
(webkit_web_view_init):

WebKit/mac: 

* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]):

WebKit/qt: 

* Api/qwebpage.cpp:
(QWebPagePrivate::QWebPagePrivate):

WebKit/win: 

* WebView.cpp:
(WebView::initWithFrame):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52103 268f45cc-cd09-0410-ab3c-d52691b4dbfc
29 files changed