[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e
weinig at apple.com
weinig at apple.com
Fri Jan 21 15:15:56 UTC 2011
The following commit has been merged in the debian/experimental branch:
commit 4201e96ec5eda975cc39c1d5a9e425c5fa87eb76
Author: weinig at apple.com <weinig at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Jan 10 19:20:15 2011 +0000
Make Geolocation features work in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=52078
Reviewed by Anders Carlsson.
Step 1 - Add enough support to get position data from a provider.
This does not include permission support.
* Platform/CoreIPC/HandleMessage.h:
Add #include of Arguments.h for CoreIPC::In and Out definitions.
* Platform/CoreIPC/MessageID.h:
Add new message types.
* Shared/API/c/WKBase.h:
* Shared/APIObject.h:
Add new API types.
* Shared/WebGeolocationPosition.cpp: Added.
* Shared/WebGeolocationPosition.h: Added.
Internal position representation.
* UIProcess/API/C/WKAPICast.h:
Add casts for new API types.
* UIProcess/API/C/WKContext.cpp:
* UIProcess/API/C/WKContext.h:
* UIProcess/API/C/WKGeolocationManager.cpp: Added.
* UIProcess/API/C/WKGeolocationManager.h: Added.
* UIProcess/API/C/WKGeolocationPosition.cpp: Added.
* UIProcess/API/C/WKGeolocationPosition.h: Added.
* UIProcess/API/C/WebKit2.h:
Add API to provide and control geolocation data.
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::WebContext::~WebContext):
(WebKit::WebContext::processDidClose):
(WebKit::WebContext::didReceiveMessage):
* UIProcess/WebContext.h:
(WebKit::WebContext::geolocationManagerProxy):
* UIProcess/WebGeolocationManagerProxy.cpp: Added.
(WebKit::WebGeolocationManagerProxy::create):
(WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
(WebKit::WebGeolocationManagerProxy::~WebGeolocationManagerProxy):
(WebKit::WebGeolocationManagerProxy::invalidate):
(WebKit::WebGeolocationManagerProxy::initializeProvider):
(WebKit::WebGeolocationManagerProxy::providerDidChangePosition):
(WebKit::WebGeolocationManagerProxy::providerDidFailToDeterminePosition):
(WebKit::WebGeolocationManagerProxy::didReceiveMessage):
(WebKit::WebGeolocationManagerProxy::startUpdating):
(WebKit::WebGeolocationManagerProxy::stopUpdating):
* UIProcess/WebGeolocationManagerProxy.h: Added.
(WebKit::WebGeolocationManagerProxy::clearContext):
(WebKit::WebGeolocationManagerProxy::type):
* UIProcess/WebGeolocationManagerProxy.messages.in: Added.
* UIProcess/WebGeolocationProvider.cpp: Added.
(WebKit::WebGeolocationProvider::startUpdating):
(WebKit::WebGeolocationProvider::stopUpdating):
* UIProcess/WebGeolocationProvider.h: Added.
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didReceiveMessage):
* WebProcess/Geolocation: Added.
* WebProcess/Geolocation/WebGeolocationManager.cpp: Added.
(WebKit::WebGeolocationManager::WebGeolocationManager):
(WebKit::WebGeolocationManager::~WebGeolocationManager):
(WebKit::WebGeolocationManager::didReceiveMessage):
(WebKit::WebGeolocationManager::registerWebPage):
(WebKit::WebGeolocationManager::unregisterWebPage):
(WebKit::WebGeolocationManager::didChangePosition):
(WebKit::WebGeolocationManager::didFailToDeterminePosition):
* WebProcess/Geolocation/WebGeolocationManager.h: Added.
* WebProcess/Geolocation/WebGeolocationManager.messages.in: Added.
* WebProcess/WebCoreSupport/WebGeolocationClient.cpp: Added.
(WebKit::WebGeolocationClient::geolocationDestroyed):
(WebKit::WebGeolocationClient::startUpdating):
(WebKit::WebGeolocationClient::stopUpdating):
(WebKit::WebGeolocationClient::setEnableHighAccuracy):
(WebKit::WebGeolocationClient::lastPosition):
(WebKit::WebGeolocationClient::requestPermission):
(WebKit::WebGeolocationClient::cancelPermissionRequest):
* WebProcess/WebCoreSupport/WebGeolocationClient.h: Added.
(WebKit::WebGeolocationClient::WebGeolocationClient):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::didReceiveMessage):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::geolocationManager):
Pipe geolocation positions/errors from the UIProcess to the WebProcess.
* DerivedSources.make:
* DerivedSources.pro:
* WebKit2.pro:
* WebKit2.xcodeproj/project.pbxproj:
* win/WebKit2.vcproj:
* win/WebKit2Common.vsprops:
* win/WebKit2Generated.make:
Add new files.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75395 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index d7bc8d8..6b00ff5 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,106 @@
+2011-01-10 Sam Weinig <sam at webkit.org>
+
+ Reviewed by Anders Carlsson.
+
+ Make Geolocation features work in WebKit2
+ https://bugs.webkit.org/show_bug.cgi?id=52078
+
+ Step 1 - Add enough support to get position data from a provider.
+ This does not include permission support.
+
+ * Platform/CoreIPC/HandleMessage.h:
+ Add #include of Arguments.h for CoreIPC::In and Out definitions.
+
+ * Platform/CoreIPC/MessageID.h:
+ Add new message types.
+
+ * Shared/API/c/WKBase.h:
+ * Shared/APIObject.h:
+ Add new API types.
+
+ * Shared/WebGeolocationPosition.cpp: Added.
+ * Shared/WebGeolocationPosition.h: Added.
+ Internal position representation.
+
+ * UIProcess/API/C/WKAPICast.h:
+ Add casts for new API types.
+
+ * UIProcess/API/C/WKContext.cpp:
+ * UIProcess/API/C/WKContext.h:
+ * UIProcess/API/C/WKGeolocationManager.cpp: Added.
+ * UIProcess/API/C/WKGeolocationManager.h: Added.
+ * UIProcess/API/C/WKGeolocationPosition.cpp: Added.
+ * UIProcess/API/C/WKGeolocationPosition.h: Added.
+ * UIProcess/API/C/WebKit2.h:
+ Add API to provide and control geolocation data.
+
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::~WebContext):
+ (WebKit::WebContext::processDidClose):
+ (WebKit::WebContext::didReceiveMessage):
+ * UIProcess/WebContext.h:
+ (WebKit::WebContext::geolocationManagerProxy):
+ * UIProcess/WebGeolocationManagerProxy.cpp: Added.
+ (WebKit::WebGeolocationManagerProxy::create):
+ (WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
+ (WebKit::WebGeolocationManagerProxy::~WebGeolocationManagerProxy):
+ (WebKit::WebGeolocationManagerProxy::invalidate):
+ (WebKit::WebGeolocationManagerProxy::initializeProvider):
+ (WebKit::WebGeolocationManagerProxy::providerDidChangePosition):
+ (WebKit::WebGeolocationManagerProxy::providerDidFailToDeterminePosition):
+ (WebKit::WebGeolocationManagerProxy::didReceiveMessage):
+ (WebKit::WebGeolocationManagerProxy::startUpdating):
+ (WebKit::WebGeolocationManagerProxy::stopUpdating):
+ * UIProcess/WebGeolocationManagerProxy.h: Added.
+ (WebKit::WebGeolocationManagerProxy::clearContext):
+ (WebKit::WebGeolocationManagerProxy::type):
+ * UIProcess/WebGeolocationManagerProxy.messages.in: Added.
+ * UIProcess/WebGeolocationProvider.cpp: Added.
+ (WebKit::WebGeolocationProvider::startUpdating):
+ (WebKit::WebGeolocationProvider::stopUpdating):
+ * UIProcess/WebGeolocationProvider.h: Added.
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didReceiveMessage):
+ * WebProcess/Geolocation: Added.
+ * WebProcess/Geolocation/WebGeolocationManager.cpp: Added.
+ (WebKit::WebGeolocationManager::WebGeolocationManager):
+ (WebKit::WebGeolocationManager::~WebGeolocationManager):
+ (WebKit::WebGeolocationManager::didReceiveMessage):
+ (WebKit::WebGeolocationManager::registerWebPage):
+ (WebKit::WebGeolocationManager::unregisterWebPage):
+ (WebKit::WebGeolocationManager::didChangePosition):
+ (WebKit::WebGeolocationManager::didFailToDeterminePosition):
+ * WebProcess/Geolocation/WebGeolocationManager.h: Added.
+ * WebProcess/Geolocation/WebGeolocationManager.messages.in: Added.
+ * WebProcess/WebCoreSupport/WebGeolocationClient.cpp: Added.
+ (WebKit::WebGeolocationClient::geolocationDestroyed):
+ (WebKit::WebGeolocationClient::startUpdating):
+ (WebKit::WebGeolocationClient::stopUpdating):
+ (WebKit::WebGeolocationClient::setEnableHighAccuracy):
+ (WebKit::WebGeolocationClient::lastPosition):
+ (WebKit::WebGeolocationClient::requestPermission):
+ (WebKit::WebGeolocationClient::cancelPermissionRequest):
+ * WebProcess/WebCoreSupport/WebGeolocationClient.h: Added.
+ (WebKit::WebGeolocationClient::WebGeolocationClient):
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::WebPage):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::WebProcess):
+ (WebKit::WebProcess::didReceiveMessage):
+ * WebProcess/WebProcess.h:
+ (WebKit::WebProcess::geolocationManager):
+ Pipe geolocation positions/errors from the UIProcess to the WebProcess.
+
+ * DerivedSources.make:
+ * DerivedSources.pro:
+ * WebKit2.pro:
+ * WebKit2.xcodeproj/project.pbxproj:
+ * win/WebKit2.vcproj:
+ * win/WebKit2Common.vsprops:
+ * win/WebKit2Generated.make:
+ Add new files.
+
2011-01-10 Martin Robinson <mrobinson at igalia.com>
GTK+ build fix. Continue to fix 'make dist.'
diff --git a/WebKit2/DerivedSources.make b/WebKit2/DerivedSources.make
index 413d3f0..f12239a 100644
--- a/WebKit2/DerivedSources.make
+++ b/WebKit2/DerivedSources.make
@@ -24,6 +24,7 @@ VPATH = \
$(WebKit2)/PluginProcess \
$(WebKit2)/Shared/Plugins \
$(WebKit2)/WebProcess/Authentication \
+ $(WebKit2)/WebProcess/Geolocation \
$(WebKit2)/WebProcess/Plugins \
$(WebKit2)/WebProcess/WebCoreSupport \
$(WebKit2)/WebProcess/WebPage \
@@ -44,6 +45,8 @@ MESSAGE_RECEIVERS = \
WebContext \
WebDatabaseManager \
WebDatabaseManagerProxy \
+ WebGeolocationManager \
+ WebGeolocationManagerProxy \
WebInspector \
WebInspectorProxy \
WebPage \
diff --git a/WebKit2/DerivedSources.pro b/WebKit2/DerivedSources.pro
index ee9c140..46d8489 100644
--- a/WebKit2/DerivedSources.pro
+++ b/WebKit2/DerivedSources.pro
@@ -76,6 +76,7 @@ defineReplace(message_receiver_generator_output) {
VPATH = \
PluginProcess \
WebProcess/Authentication \
+ WebProcess/Geolocation \
WebProcess/Plugins \
WebProcess/WebCoreSupport \
WebProcess/WebPage \
@@ -94,6 +95,8 @@ MESSAGE_RECEIVERS = \
WebContext.messages.in \
WebDatabaseManager.messages.in \
WebDatabaseManagerProxy.messages.in \
+ WebGeolocationManager.messages.in \
+ WebGeolocationManagerProxy.messages.in \
WebInspectorProxy.messages.in \
WebPage/WebInspector.messages.in \
WebPage/WebPage.messages.in \
diff --git a/WebKit2/Platform/CoreIPC/HandleMessage.h b/WebKit2/Platform/CoreIPC/HandleMessage.h
index 1ed1a1b..534e825 100644
--- a/WebKit2/Platform/CoreIPC/HandleMessage.h
+++ b/WebKit2/Platform/CoreIPC/HandleMessage.h
@@ -1,6 +1,8 @@
#ifndef HandleMessage_h
#define HandleMessage_h
+#include "Arguments.h"
+
namespace CoreIPC {
// Dispatch functions with no reply arguments.
diff --git a/WebKit2/Platform/CoreIPC/MessageID.h b/WebKit2/Platform/CoreIPC/MessageID.h
index fbcc733..b19a5f7 100644
--- a/WebKit2/Platform/CoreIPC/MessageID.h
+++ b/WebKit2/Platform/CoreIPC/MessageID.h
@@ -39,16 +39,18 @@ enum MessageClass {
MessageClassDrawingAreaLegacy,
MessageClassInjectedBundle,
MessageClassWebDatabaseManager,
+ MessageClassWebGeolocationManagerProxy,
MessageClassWebInspector,
MessageClassWebPage,
MessageClassWebProcess,
// Messages sent by the web process to the UI process.
- MessageClassDrawingAreaProxyLegacy,
MessageClassDownloadProxy,
+ MessageClassDrawingAreaProxyLegacy,
MessageClassWebContext,
MessageClassWebContextLegacy,
MessageClassWebDatabaseManagerProxy,
+ MessageClassWebGeolocationManager,
MessageClassWebInspectorProxy,
MessageClassWebPageProxy,
MessageClassWebProcessProxy,
diff --git a/WebKit2/Shared/API/c/WKBase.h b/WebKit2/Shared/API/c/WKBase.h
index 0e7984a..0f0dad9 100644
--- a/WebKit2/Shared/API/c/WKBase.h
+++ b/WebKit2/Shared/API/c/WKBase.h
@@ -72,6 +72,8 @@ typedef const struct OpaqueWKDownload* WKDownloadRef;
typedef const struct OpaqueWKFormSubmissionListener* WKFormSubmissionListenerRef;
typedef const struct OpaqueWKFrame* WKFrameRef;
typedef const struct OpaqueWKFramePolicyListener* WKFramePolicyListenerRef;
+typedef const struct OpaqueWKGeolocationManager* WKGeolocationManagerRef;
+typedef const struct OpaqueWKGeolocationPosition* WKGeolocationPositionRef;
typedef const struct OpaqueWKInspector* WKInspectorRef;
typedef const struct OpaqueWKNavigationData* WKNavigationDataRef;
typedef const struct OpaqueWKOpenPanelParameters* WKOpenPanelParametersRef;
diff --git a/WebKit2/Shared/APIObject.h b/WebKit2/Shared/APIObject.h
index 6b402a3..9d3bd04 100644
--- a/WebKit2/Shared/APIObject.h
+++ b/WebKit2/Shared/APIObject.h
@@ -68,6 +68,8 @@ public:
TypeFormSubmissionListener,
TypeFrame,
TypeFramePolicyListener,
+ TypeGeolocationPosition,
+ TypeGeolocationManager,
TypeInspector,
TypeNavigationData,
TypeOpenPanelParameters,
diff --git a/WebKit2/Shared/WebGeolocationPosition.cpp b/WebKit2/Shared/WebGeolocationPosition.cpp
new file mode 100644
index 0000000..9cda350
--- /dev/null
+++ b/WebKit2/Shared/WebGeolocationPosition.cpp
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "WebGeolocationPosition.h"
+
+#include "ArgumentCoders.h"
+#include "Arguments.h"
+
+namespace WebKit {
+
+WebGeolocationPosition::WebGeolocationPosition(double timestamp, double latitude, double longitude, double accuracy)
+{
+ m_data.timestamp = timestamp;
+ m_data.latitude = latitude;
+ m_data.longitude = longitude;
+ m_data.accuracy = accuracy;
+}
+
+WebGeolocationPosition::~WebGeolocationPosition()
+{
+}
+
+void WebGeolocationPosition::Data::encode(CoreIPC::ArgumentEncoder* encoder) const
+{
+ encoder->encode(CoreIPC::In(timestamp, latitude, longitude, accuracy));
+}
+
+bool WebGeolocationPosition::Data::decode(CoreIPC::ArgumentDecoder* decoder, Data& data)
+{
+ return decoder->decode(CoreIPC::Out(data.timestamp, data.latitude, data.longitude, data.accuracy));
+}
+
+} // namespace WebKit
diff --git a/WebKit2/Shared/WebGeolocationPosition.h b/WebKit2/Shared/WebGeolocationPosition.h
new file mode 100644
index 0000000..6b268fb
--- /dev/null
+++ b/WebKit2/Shared/WebGeolocationPosition.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebGeolocationPosition_h
+#define WebGeolocationPosition_h
+
+#include "APIObject.h"
+#include "ArgumentEncoder.h"
+#include "ArgumentDecoder.h"
+#include <wtf/PassRefPtr.h>
+
+namespace WebKit {
+
+class WebGeolocationPosition : public APIObject {
+public:
+ static const Type APIType = TypeGeolocationPosition;
+
+ struct Data {
+ void encode(CoreIPC::ArgumentEncoder*) const;
+ static bool decode(CoreIPC::ArgumentDecoder*, Data&);
+
+ double timestamp;
+ double latitude;
+ double longitude;
+ double accuracy;
+ };
+
+ static PassRefPtr<WebGeolocationPosition> create(double timestamp, double latitude, double longitude, double accuracy)
+ {
+ return adoptRef(new WebGeolocationPosition(timestamp, latitude, longitude, accuracy));
+ }
+
+ virtual ~WebGeolocationPosition();
+
+ double timestamp() const { return m_data.timestamp; }
+ double latitude() const { return m_data.latitude; }
+ double longitude() const { return m_data.longitude; }
+ double accuracy() const { return m_data.accuracy; }
+
+ const Data& data() const { return m_data; }
+
+private:
+ WebGeolocationPosition(double timestamp, double latitude, double longitude, double accuracy);
+
+ virtual Type type() const { return APIType; }
+
+ Data m_data;
+};
+
+} // namespace WebKit
+
+#endif // WebGeolocationPosition_h
diff --git a/WebKit2/UIProcess/API/C/WKAPICast.h b/WebKit2/UIProcess/API/C/WKAPICast.h
index b8ffcc4..b3e8e83 100644
--- a/WebKit2/UIProcess/API/C/WKAPICast.h
+++ b/WebKit2/UIProcess/API/C/WKAPICast.h
@@ -51,6 +51,8 @@ class WebDatabaseManagerProxy;
class WebFormSubmissionListenerProxy;
class WebFramePolicyListenerProxy;
class WebFrameProxy;
+class WebGeolocationManagerProxy;
+class WebGeolocationPosition;
class WebInspectorProxy;
class WebNavigationData;
class WebOpenPanelParameters;
@@ -71,6 +73,8 @@ WK_ADD_API_MAPPING(WKDownloadRef, DownloadProxy)
WK_ADD_API_MAPPING(WKFormSubmissionListenerRef, WebFormSubmissionListenerProxy)
WK_ADD_API_MAPPING(WKFramePolicyListenerRef, WebFramePolicyListenerProxy)
WK_ADD_API_MAPPING(WKFrameRef, WebFrameProxy)
+WK_ADD_API_MAPPING(WKGeolocationManagerRef, WebGeolocationManagerProxy)
+WK_ADD_API_MAPPING(WKGeolocationPositionRef, WebGeolocationPosition)
WK_ADD_API_MAPPING(WKNavigationDataRef, WebNavigationData)
WK_ADD_API_MAPPING(WKOpenPanelParametersRef, WebOpenPanelParameters)
WK_ADD_API_MAPPING(WKOpenPanelResultListenerRef, WebOpenPanelResultListenerProxy)
diff --git a/WebKit2/UIProcess/API/C/WKContext.cpp b/WebKit2/UIProcess/API/C/WKContext.cpp
index 2e416e7..c207225 100644
--- a/WebKit2/UIProcess/API/C/WKContext.cpp
+++ b/WebKit2/UIProcess/API/C/WKContext.cpp
@@ -162,6 +162,11 @@ WKDatabaseManagerRef WKContextGetDatabaseManager(WKContextRef contextRef)
return toAPI(toImpl(contextRef)->databaseManagerProxy());
}
+WKGeolocationManagerRef WKContextGetGeolocationManager(WKContextRef contextRef)
+{
+ return toAPI(toImpl(contextRef)->geolocationManagerProxy());
+}
+
void WKContextStartMemorySampler(WKContextRef contextRef, WKDoubleRef interval)
{
toImpl(contextRef)->startMemorySampler(toImpl(interval)->value());
diff --git a/WebKit2/UIProcess/API/C/WKContext.h b/WebKit2/UIProcess/API/C/WKContext.h
index 13762ad..810ad20 100644
--- a/WebKit2/UIProcess/API/C/WKContext.h
+++ b/WebKit2/UIProcess/API/C/WKContext.h
@@ -124,6 +124,7 @@ WK_EXPORT void WKContextStartMemorySampler(WKContextRef context, WKDoubleRef int
WK_EXPORT void WKContextStopMemorySampler(WKContextRef context);
WK_EXPORT WKDatabaseManagerRef WKContextGetDatabaseManager(WKContextRef context);
+WK_EXPORT WKGeolocationManagerRef WKContextGetGeolocationManager(WKContextRef context);
#ifdef __cplusplus
}
diff --git a/WebKit2/UIProcess/API/C/WKGeolocationManager.cpp b/WebKit2/UIProcess/API/C/WKGeolocationManager.cpp
new file mode 100644
index 0000000..ed399ad
--- /dev/null
+++ b/WebKit2/UIProcess/API/C/WKGeolocationManager.cpp
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "WKGeolocationManager.h"
+
+#include "WKAPICast.h"
+#include "WebGeolocationManagerProxy.h"
+
+using namespace WebKit;
+
+WKTypeID WKGeolocationManagerGetTypeID()
+{
+ return toAPI(WebGeolocationManagerProxy::APIType);
+}
+
+void WKGeolocationManagerSetProvider(WKGeolocationManagerRef geolocationManagerRef, const WKGeolocationProvider* wkProvider)
+{
+ if (wkProvider && wkProvider->version)
+ return;
+ toImpl(geolocationManagerRef)->initializeProvider(wkProvider);
+}
+
+void WKGeolocationManagerProviderDidChangePosition(WKGeolocationManagerRef geolocationManagerRef, WKGeolocationPositionRef positionRef)
+{
+ toImpl(geolocationManagerRef)->providerDidChangePosition(toImpl(positionRef));
+}
+
+void WKGeolocationManagerProviderDidFailToDeterminePosition(WKGeolocationManagerRef geolocationManagerRef)
+{
+ toImpl(geolocationManagerRef)->providerDidFailToDeterminePosition();
+}
diff --git a/WebKit2/UIProcess/API/C/WKGeolocationManager.h b/WebKit2/UIProcess/API/C/WKGeolocationManager.h
new file mode 100644
index 0000000..07cbd79
--- /dev/null
+++ b/WebKit2/UIProcess/API/C/WKGeolocationManager.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WKGeolocationManager_h
+#define WKGeolocationManager_h
+
+#include <WebKit2/WKBase.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Provider.
+typedef void (*WKGeolocationProviderStartUpdatingCallback)(WKGeolocationManagerRef geolocationManager, const void* clientInfo);
+typedef void (*WKGeolocationProviderStopUpdatingCallback)(WKGeolocationManagerRef geolocationManager, const void* clientInfo);
+
+struct WKGeolocationProvider {
+ int version;
+ const void * clientInfo;
+ WKGeolocationProviderStartUpdatingCallback startUpdating;
+ WKGeolocationProviderStopUpdatingCallback stopUpdating;
+};
+typedef struct WKGeolocationProvider WKGeolocationProvider;
+
+WK_EXPORT WKTypeID WKGeolocationManagerGetTypeID();
+
+WK_EXPORT void WKGeolocationManagerSetProvider(WKGeolocationManagerRef geolocationManager, const WKGeolocationProvider* provider);
+
+WK_EXPORT void WKGeolocationManagerProviderDidChangePosition(WKGeolocationManagerRef geolocationManager, WKGeolocationPositionRef position);
+WK_EXPORT void WKGeolocationManagerProviderDidFailToDeterminePosition(WKGeolocationManagerRef geolocationManager);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WKGeolocationManager_h */
diff --git a/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp b/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp
new file mode 100644
index 0000000..7977369
--- /dev/null
+++ b/WebKit2/UIProcess/API/C/WKGeolocationPosition.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "WKGeolocationPosition.h"
+
+#include "WKAPICast.h"
+#include "WebGeolocationPosition.h"
+
+using namespace WebKit;
+
+WKTypeID WKGeolocationPositionGetTypeID()
+{
+ return toAPI(WebGeolocationPosition::APIType);
+}
+
+WKGeolocationPositionRef WKGeolocationPositionCreate(double timestamp, double latitude, double longitude, double accuracy)
+{
+ RefPtr<WebGeolocationPosition> position = WebGeolocationPosition::create(timestamp, latitude, longitude, accuracy);
+ return toAPI(position.release().releaseRef());
+}
diff --git a/WebKit2/UIProcess/API/C/WKGeolocationPosition.h b/WebKit2/UIProcess/API/C/WKGeolocationPosition.h
new file mode 100644
index 0000000..85183fd
--- /dev/null
+++ b/WebKit2/UIProcess/API/C/WKGeolocationPosition.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WKGeolocationPosition_h
+#define WKGeolocationPosition_h
+
+#include <WebKit2/WKBase.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+WK_EXPORT WKTypeID WKGeolocationPositionGetTypeID();
+
+WK_EXPORT WKGeolocationPositionRef WKGeolocationPositionCreate(double timestamp, double latitude, double longitude, double accuracy);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WKGeolocationPosition_h */
diff --git a/WebKit2/UIProcess/API/C/WebKit2.h b/WebKit2/UIProcess/API/C/WebKit2.h
index 5c56722..8f6e5f0 100644
--- a/WebKit2/UIProcess/API/C/WebKit2.h
+++ b/WebKit2/UIProcess/API/C/WebKit2.h
@@ -39,6 +39,8 @@
#include <WebKit2/WKFormSubmissionListener.h>
#include <WebKit2/WKFrame.h>
#include <WebKit2/WKFramePolicyListener.h>
+#include <WebKit2/WKGeolocationManager.h>
+#include <WebKit2/WKGeolocationPosition.h>
#include <WebKit2/WKMutableArray.h>
#include <WebKit2/WKMutableDictionary.h>
#include <WebKit2/WKNavigationData.h>
diff --git a/WebKit2/UIProcess/WebContext.cpp b/WebKit2/UIProcess/WebContext.cpp
index 679ae2e..84b8eac 100644
--- a/WebKit2/UIProcess/WebContext.cpp
+++ b/WebKit2/UIProcess/WebContext.cpp
@@ -36,6 +36,7 @@
#include "WebContextUserMessageCoders.h"
#include "WebCoreArgumentCoders.h"
#include "WebDatabaseManagerProxy.h"
+#include "WebGeolocationManagerProxy.h"
#include "WebPageGroup.h"
#include "WebMemorySampler.h"
#include "WebProcessCreationParameters.h"
@@ -92,6 +93,7 @@ WebContext::WebContext(ProcessModel processModel, const String& injectedBundlePa
, m_memorySamplerEnabled(false)
, m_memorySamplerInterval(1400.0)
, m_databaseManagerProxy(WebDatabaseManagerProxy::create(this))
+ , m_geolocationManagerProxy(WebGeolocationManagerProxy::create(this))
#if PLATFORM(WIN)
, m_shouldPaintNativeControls(true)
#endif
@@ -109,6 +111,9 @@ WebContext::~WebContext()
WebProcessManager::shared().contextWasDestroyed(this);
+ m_geolocationManagerProxy->invalidate();
+ m_geolocationManagerProxy->clearContext();
+
#ifndef NDEBUG
webContextCounter.decrement();
#endif
@@ -232,6 +237,7 @@ void WebContext::processDidClose(WebProcessProxy* process)
m_downloads.clear();
m_databaseManagerProxy->invalidate();
+ m_geolocationManagerProxy->invalidate();
m_process = 0;
}
@@ -471,6 +477,11 @@ void WebContext::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::Mes
return;
}
+ if (messageID.is<CoreIPC::MessageClassWebGeolocationManagerProxy>()) {
+ m_geolocationManagerProxy->didReceiveMessage(connection, messageID, arguments);
+ return;
+ }
+
switch (messageID.get<WebContextLegacyMessage::Kind>()) {
case WebContextLegacyMessage::PostMessage: {
String messageName;
diff --git a/WebKit2/UIProcess/WebContext.h b/WebKit2/UIProcess/WebContext.h
index c45dc62..1217e0a 100644
--- a/WebKit2/UIProcess/WebContext.h
+++ b/WebKit2/UIProcess/WebContext.h
@@ -46,6 +46,7 @@ namespace WebKit {
class DownloadProxy;
class WebDatabaseManagerProxy;
+class WebGeolocationManagerProxy;
class WebPageGroup;
class WebPageProxy;
struct WebProcessCreationParameters;
@@ -126,6 +127,7 @@ public:
static HashSet<String, CaseFoldingHash> pdfAndPostScriptMIMETypes();
WebDatabaseManagerProxy* databaseManagerProxy() const { return m_databaseManagerProxy.get(); }
+ WebGeolocationManagerProxy* geolocationManagerProxy() const { return m_geolocationManagerProxy.get(); }
struct Statistics {
unsigned wkViewCount;
@@ -196,6 +198,7 @@ private:
double m_memorySamplerInterval;
RefPtr<WebDatabaseManagerProxy> m_databaseManagerProxy;
+ RefPtr<WebGeolocationManagerProxy> m_geolocationManagerProxy;
#if PLATFORM(WIN)
bool m_shouldPaintNativeControls;
diff --git a/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp b/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp
new file mode 100644
index 0000000..0842ca6
--- /dev/null
+++ b/WebKit2/UIProcess/WebGeolocationManagerProxy.cpp
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "WebGeolocationManagerProxy.h"
+
+#include "WebContext.h"
+#include "WebGeolocationManagerMessages.h"
+
+namespace WebKit {
+
+PassRefPtr<WebGeolocationManagerProxy> WebGeolocationManagerProxy::create(WebContext* context)
+{
+ return adoptRef(new WebGeolocationManagerProxy(context));
+}
+
+WebGeolocationManagerProxy::WebGeolocationManagerProxy(WebContext* context)
+ : m_isUpdating(false)
+ , m_context(context)
+{
+}
+
+WebGeolocationManagerProxy::~WebGeolocationManagerProxy()
+{
+}
+
+void WebGeolocationManagerProxy::invalidate()
+{
+ stopUpdating();
+}
+
+void WebGeolocationManagerProxy::initializeProvider(const WKGeolocationProvider* provider)
+{
+ m_provider.initialize(provider);
+}
+
+void WebGeolocationManagerProxy::providerDidChangePosition(WebGeolocationPosition* position)
+{
+ if (!m_context)
+ return;
+
+ // FIXME: Should this check for a valid process?
+ m_context->process()->send(Messages::WebGeolocationManager::DidChangePosition(position->data()), 0);
+}
+
+void WebGeolocationManagerProxy::providerDidFailToDeterminePosition()
+{
+ if (!m_context)
+ return;
+
+ // FIXME: Should this check for a valid process?
+ m_context->process()->send(Messages::WebGeolocationManager::DidFailToDeterminePosition(), 0);
+}
+
+void WebGeolocationManagerProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
+{
+ didReceiveWebGeolocationManagerProxyMessage(connection, messageID, arguments);
+}
+
+void WebGeolocationManagerProxy::startUpdating()
+{
+ if (m_isUpdating)
+ return;
+
+ m_provider.startUpdating(this);
+ m_isUpdating = true;
+}
+
+void WebGeolocationManagerProxy::stopUpdating()
+{
+ if (!m_isUpdating)
+ return;
+
+ m_provider.stopUpdating(this);
+ m_isUpdating = false;
+}
+
+} // namespace WebKit
diff --git a/WebKit2/UIProcess/WebGeolocationManagerProxy.h b/WebKit2/UIProcess/WebGeolocationManagerProxy.h
new file mode 100644
index 0000000..5091693
--- /dev/null
+++ b/WebKit2/UIProcess/WebGeolocationManagerProxy.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebGeolocationManagerProxy_h
+#define WebGeolocationManagerProxy_h
+
+#include "APIObject.h"
+#include "MessageID.h"
+#include "WebGeolocationProvider.h"
+
+namespace CoreIPC {
+class ArgumentDecoder;
+class Connection;
+}
+
+namespace WebKit {
+
+class WebContext;
+class WebGeolocationPosition;
+
+class WebGeolocationManagerProxy : public APIObject {
+public:
+ static const Type APIType = TypeGeolocationManager;
+
+ static PassRefPtr<WebGeolocationManagerProxy> create(WebContext*);
+ virtual ~WebGeolocationManagerProxy();
+
+ void invalidate();
+ void clearContext() { m_context = 0; }
+
+ void initializeProvider(const WKGeolocationProvider*);
+
+ void providerDidChangePosition(WebGeolocationPosition*);
+ void providerDidFailToDeterminePosition();
+
+ void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+
+private:
+ explicit WebGeolocationManagerProxy(WebContext*);
+
+ virtual Type type() const { return APIType; }
+
+ // Implemented in generated WebGeolocationManagerProxyMessageReceiver.cpp
+ void didReceiveWebGeolocationManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+
+ void startUpdating();
+ void stopUpdating();
+
+ bool m_isUpdating;
+
+ WebContext* m_context;
+ WebGeolocationProvider m_provider;
+};
+
+} // namespace WebKit
+
+#endif // WebGeolocationManagerProxy_h
diff --git a/WebKit2/UIProcess/WebGeolocationManagerProxy.messages.in b/WebKit2/UIProcess/WebGeolocationManagerProxy.messages.in
new file mode 100644
index 0000000..fe5a273
--- /dev/null
+++ b/WebKit2/UIProcess/WebGeolocationManagerProxy.messages.in
@@ -0,0 +1,26 @@
+# Copyright (C) 2011 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+messages -> WebGeolocationManagerProxy {
+ StartUpdating();
+ StopUpdating();
+}
diff --git a/WebKit2/UIProcess/WebGeolocationProvider.cpp b/WebKit2/UIProcess/WebGeolocationProvider.cpp
new file mode 100644
index 0000000..c48ee89
--- /dev/null
+++ b/WebKit2/UIProcess/WebGeolocationProvider.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "WebGeolocationProvider.h"
+
+#include "WKAPICast.h"
+#include "WebGeolocationManagerProxy.h"
+
+namespace WebKit {
+
+void WebGeolocationProvider::startUpdating(WebGeolocationManagerProxy* geolocationManager)
+{
+ if (!m_client.startUpdating)
+ return;
+
+ m_client.startUpdating(toAPI(geolocationManager), m_client.clientInfo);
+}
+
+void WebGeolocationProvider::stopUpdating(WebGeolocationManagerProxy* geolocationManager)
+{
+ if (!m_client.stopUpdating)
+ return;
+
+ m_client.stopUpdating(toAPI(geolocationManager), m_client.clientInfo);
+}
+
+} // namespace WebKit
diff --git a/WebKit2/UIProcess/WebGeolocationProvider.h b/WebKit2/UIProcess/WebGeolocationProvider.h
new file mode 100644
index 0000000..b5b8bd0
--- /dev/null
+++ b/WebKit2/UIProcess/WebGeolocationProvider.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebGeolocationProvider_h
+#define WebGeolocationProvider_h
+
+#include "APIClient.h"
+#include "WKGeolocationManager.h"
+#include <wtf/Forward.h>
+
+namespace WebKit {
+
+class WebGeolocationManagerProxy;
+
+class WebGeolocationProvider : public APIClient<WKGeolocationProvider> {
+public:
+ void startUpdating(WebGeolocationManagerProxy*);
+ void stopUpdating(WebGeolocationManagerProxy*);
+};
+
+} // namespace WebKit
+
+#endif // WebGeolocationProvider_h
diff --git a/WebKit2/UIProcess/WebProcessProxy.cpp b/WebKit2/UIProcess/WebProcessProxy.cpp
index dcc66aa..063bbcc 100644
--- a/WebKit2/UIProcess/WebProcessProxy.cpp
+++ b/WebKit2/UIProcess/WebProcessProxy.cpp
@@ -226,7 +226,8 @@ void WebProcessProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC
if (messageID.is<CoreIPC::MessageClassWebContext>()
|| messageID.is<CoreIPC::MessageClassWebContextLegacy>()
|| messageID.is<CoreIPC::MessageClassDownloadProxy>()
- || messageID.is<CoreIPC::MessageClassWebDatabaseManagerProxy>()) {
+ || messageID.is<CoreIPC::MessageClassWebDatabaseManagerProxy>()
+ || messageID.is<CoreIPC::MessageClassWebGeolocationManagerProxy>()) {
m_context->didReceiveMessage(connection, messageID, arguments);
return;
}
diff --git a/WebKit2/WebKit2.pro b/WebKit2/WebKit2.pro
index 43b7cfd..c1937e0 100644
--- a/WebKit2/WebKit2.pro
+++ b/WebKit2/WebKit2.pro
@@ -144,6 +144,7 @@ WEBKIT2_INCLUDEPATH = \
WebProcess/Authentication \
WebProcess/Downloads \
WebProcess/Downloads/qt \
+ WebProcess/Geolocation \
WebProcess/InjectedBundle \
WebProcess/InjectedBundle/DOM \
WebProcess/InjectedBundle/API/c \
@@ -183,6 +184,8 @@ WEBKIT2_GENERATED_HEADERS = \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebContextMessages.h \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebDatabaseManagerMessages.h \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebDatabaseManagerProxyMessages.h \
+ $$WEBKIT2_GENERATED_SOURCES_DIR/WebGeolocationManagerMessages.h \
+ $$WEBKIT2_GENERATED_SOURCES_DIR/WebGeolocationManagerProxyMessages.h \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebInspectorMessages.h \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebInspectorProxyMessages.h \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebPageMessages.h \
@@ -201,6 +204,8 @@ WEBKIT2_GENERATED_SOURCES = \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebContextMessageReceiver.cpp \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebDatabaseManagerMessageReceiver.cpp \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebDatabaseManagerProxyMessageReceiver.cpp \
+ $$WEBKIT2_GENERATED_SOURCES_DIR/WebGeolocationManagerMessageReceiver.cpp \
+ $$WEBKIT2_GENERATED_SOURCES_DIR/WebGeolocationManagerProxyMessageReceiver.cpp \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebInspectorMessageReceiver.cpp \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebInspectorProxyMessageReceiver.cpp \
$$WEBKIT2_GENERATED_SOURCES_DIR/WebPageMessageReceiver.cpp \
@@ -274,6 +279,7 @@ HEADERS += \
Shared/WebEvent.h \
Shared/WebEventConversion.h \
Shared/WebFindOptions.h \
+ Shared/WebGeolocationPosition.h \
Shared/WebImage.h \
Shared/WebNavigationDataStore.h \
Shared/WebNumber.h \
@@ -304,6 +310,8 @@ HEADERS += \
UIProcess/API/C/WKDownload.h \
UIProcess/API/C/WKFrame.h \
UIProcess/API/C/WKFramePolicyListener.h \
+ UIProcess/API/C/WKGeolocationManager.h \
+ UIProcess/API/C/WKGeolocationPosition.h \
UIProcess/API/C/WKInspector.h \
UIProcess/API/C/WKOpenPanelParameters.h \
UIProcess/API/C/WKOpenPanelResultListener.h \
@@ -361,6 +369,8 @@ HEADERS += \
UIProcess/WebFrameListenerProxy.h \
UIProcess/WebFramePolicyListenerProxy.h \
UIProcess/WebFrameProxy.h \
+ UIProcess/WebGeolocationManagerProxy.h \
+ UIProcess/WebGeolocationProvider.h \
UIProcess/WebHistoryClient.h \
UIProcess/WebInspectorProxy.h \
UIProcess/WebLoaderClient.h \
@@ -380,6 +390,7 @@ HEADERS += \
WebProcess/Authentication/AuthenticationManager.h \
WebProcess/Downloads/Download.h \
WebProcess/Downloads/DownloadManager.h \
+ WebProcess/Geolocation/WebGeolocationManager.h \
WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h \
WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h \
WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h \
@@ -416,6 +427,7 @@ HEADERS += \
WebProcess/WebCoreSupport/WebEditorClient.h \
WebProcess/WebCoreSupport/WebErrors.h \
WebProcess/WebCoreSupport/WebFrameLoaderClient.h \
+ WebProcess/WebCoreSupport/WebGeolocationClient.h \
WebProcess/WebCoreSupport/WebInspectorClient.h \
WebProcess/WebCoreSupport/WebInspectorFrontendClient.h \
WebProcess/WebCoreSupport/WebPlatformStrategies.h \
@@ -484,6 +496,7 @@ SOURCES += \
Shared/WebError.cpp \
Shared/WebEvent.cpp \
Shared/WebEventConversion.cpp \
+ Shared/WebGeolocationPosition.cpp \
Shared/WebKeyboardEvent.cpp \
Shared/WebImage.cpp \
Shared/WebMouseEvent.cpp \
@@ -516,6 +529,8 @@ SOURCES += \
UIProcess/API/C/WKDownload.cpp \
UIProcess/API/C/WKFrame.cpp \
UIProcess/API/C/WKFramePolicyListener.cpp \
+ UIProcess/API/C/WKGeolocationManager.cpp \
+ UIProcess/API/C/WKGeolocationPosition.cpp \
UIProcess/API/C/WKInspector.cpp \
UIProcess/API/C/WKOpenPanelParameters.cpp \
UIProcess/API/C/WKOpenPanelResultListener.cpp \
@@ -563,6 +578,8 @@ SOURCES += \
UIProcess/WebFrameListenerProxy.cpp \
UIProcess/WebFramePolicyListenerProxy.cpp \
UIProcess/WebFrameProxy.cpp \
+ UIProcess/WebGeolocationManagerProxy.cpp \
+ UIProcess/WebGeolocationProvider.cpp \
UIProcess/WebHistoryClient.cpp \
UIProcess/WebInspectorProxy.cpp \
UIProcess/WebLoaderClient.cpp \
@@ -590,6 +607,7 @@ SOURCES += \
WebProcess/Authentication/AuthenticationManager.cpp \
WebProcess/Downloads/Download.cpp \
WebProcess/Downloads/DownloadManager.cpp \
+ WebProcess/Geolocation/WebGeolocationManager.cpp \
WebProcess/Downloads/qt/DownloadQt.cpp \
WebProcess/InjectedBundle/API/c/WKBundle.cpp \
WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.cpp \
@@ -632,6 +650,7 @@ SOURCES += \
WebProcess/WebCoreSupport/WebDragClient.cpp \
WebProcess/WebCoreSupport/WebEditorClient.cpp \
WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp \
+ WebProcess/WebCoreSupport/WebGeolocationClient.cpp \
WebProcess/WebCoreSupport/WebInspectorClient.cpp \
WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp \
WebProcess/WebCoreSupport/WebPlatformStrategies.cpp \
diff --git a/WebKit2/WebKit2.xcodeproj/project.pbxproj b/WebKit2/WebKit2.xcodeproj/project.pbxproj
index 818858c..d855abd 100644
--- a/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -311,6 +311,16 @@
BC032DD110F4389F0058C15A /* WebPageProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = BC032DCB10F4389F0058C15A /* WebPageProxy.h */; };
BC032DD310F4389F0058C15A /* WebProcessManager.h in Headers */ = {isa = PBXBuildFile; fileRef = BC032DCD10F4389F0058C15A /* WebProcessManager.h */; };
BC032DD510F4389F0058C15A /* WebProcessProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = BC032DCF10F4389F0058C15A /* WebProcessProxy.h */; };
+ BC0E5FE512D697160012A72A /* WebGeolocationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = BC0E5FE312D697160012A72A /* WebGeolocationManager.h */; };
+ BC0E5FE612D697160012A72A /* WebGeolocationManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0E5FE412D697160012A72A /* WebGeolocationManager.cpp */; };
+ BC0E606112D6BA910012A72A /* WebGeolocationManagerMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0E605F12D6BA910012A72A /* WebGeolocationManagerMessageReceiver.cpp */; };
+ BC0E606212D6BA910012A72A /* WebGeolocationManagerMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = BC0E606012D6BA910012A72A /* WebGeolocationManagerMessages.h */; };
+ BC0E607312D6BC200012A72A /* WebGeolocationPosition.h in Headers */ = {isa = PBXBuildFile; fileRef = BC0E607112D6BC200012A72A /* WebGeolocationPosition.h */; };
+ BC0E607412D6BC200012A72A /* WebGeolocationPosition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0E607212D6BC200012A72A /* WebGeolocationPosition.cpp */; };
+ BC0E618212D6CB1D0012A72A /* WebGeolocationManagerProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0E618012D6CB1D0012A72A /* WebGeolocationManagerProxyMessageReceiver.cpp */; };
+ BC0E618312D6CB1D0012A72A /* WebGeolocationManagerProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = BC0E618112D6CB1D0012A72A /* WebGeolocationManagerProxyMessages.h */; };
+ BC0E619812D6CD120012A72A /* WKGeolocationPosition.h in Headers */ = {isa = PBXBuildFile; fileRef = BC0E619612D6CD120012A72A /* WKGeolocationPosition.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BC0E619912D6CD120012A72A /* WKGeolocationPosition.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC0E619712D6CD120012A72A /* WKGeolocationPosition.cpp */; };
BC111A5A112F4FBB00337BAB /* WebChromeClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC111A53112F4FBB00337BAB /* WebChromeClient.cpp */; };
BC111A5B112F4FBB00337BAB /* WebContextMenuClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC111A54112F4FBB00337BAB /* WebContextMenuClient.cpp */; };
BC111A5D112F4FBB00337BAB /* WebDragClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC111A56112F4FBB00337BAB /* WebDragClient.cpp */; };
@@ -341,6 +351,10 @@
BC17753F118BABF0007D9E9A /* GenericCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = BC17753E118BABF0007D9E9A /* GenericCallback.h */; };
BC1A7C581136E19C00FB7167 /* ProcessLauncher.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1A7C571136E19C00FB7167 /* ProcessLauncher.h */; };
BC1B419811D41D570011E8DD /* WKBundlePagePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1B419711D41D570011E8DD /* WKBundlePagePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ BC1BE1E012D54A410004A228 /* WebGeolocationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1BE1DE12D54A410004A228 /* WebGeolocationClient.h */; };
+ BC1BE1E112D54A410004A228 /* WebGeolocationClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC1BE1DF12D54A410004A228 /* WebGeolocationClient.cpp */; };
+ BC1BE1F212D54DBD0004A228 /* WebGeolocationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1BE1F012D54DBD0004A228 /* WebGeolocationProvider.h */; };
+ BC1BE1F312D54DBD0004A228 /* WebGeolocationProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC1BE1F112D54DBD0004A228 /* WebGeolocationProvider.cpp */; };
BC1DD7B2114DC396005ADAF3 /* WebCoreArgumentCoders.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1DD7B1114DC396005ADAF3 /* WebCoreArgumentCoders.h */; };
BC1DFE8F12B31CA8005DF730 /* WKOpenPanelResultListener.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1DFE8D12B31CA8005DF730 /* WKOpenPanelResultListener.h */; settings = {ATTRIBUTES = (Public, ); }; };
BC1DFEA412B31F87005DF730 /* WebOpenPanelResultListenerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = BC1DFEA212B31F87005DF730 /* WebOpenPanelResultListenerProxy.h */; };
@@ -422,6 +436,10 @@
BC4BEEAC120A0A5F00FBA0C7 /* InjectedBundleNodeHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4BEEAA120A0A5F00FBA0C7 /* InjectedBundleNodeHandle.cpp */; };
BC4BEFE1120A1A4C00FBA0C7 /* WKBundleNodeHandle.h in Headers */ = {isa = PBXBuildFile; fileRef = BC4BEFDF120A1A4C00FBA0C7 /* WKBundleNodeHandle.h */; settings = {ATTRIBUTES = (Public, ); }; };
BC4BEFE2120A1A4C00FBA0C7 /* WKBundleNodeHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC4BEFE0120A1A4C00FBA0C7 /* WKBundleNodeHandle.cpp */; };
+ BC54CACB12D64291005C67B0 /* WebGeolocationManagerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = BC54CAC912D64291005C67B0 /* WebGeolocationManagerProxy.h */; };
+ BC54CACC12D64291005C67B0 /* WebGeolocationManagerProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC54CACA12D64291005C67B0 /* WebGeolocationManagerProxy.cpp */; };
+ BC54CC1212D674EE005C67B0 /* WKGeolocationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = BC54CC1012D674EE005C67B0 /* WKGeolocationManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BC54CC1312D674EE005C67B0 /* WKGeolocationManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC54CC1112D674EE005C67B0 /* WKGeolocationManager.cpp */; };
BC5744EF12638FB3006F0F12 /* WebPopupItem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC5744ED12638FB3006F0F12 /* WebPopupItem.cpp */; };
BC5744F012638FB3006F0F12 /* WebPopupItem.h in Headers */ = {isa = PBXBuildFile; fileRef = BC5744EE12638FB3006F0F12 /* WebPopupItem.h */; };
BC57450C1263B155006F0F12 /* WKBundleNodeHandlePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BC57450B1263B155006F0F12 /* WKBundleNodeHandlePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -1001,6 +1019,18 @@
BC032DCB10F4389F0058C15A /* WebPageProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPageProxy.h; sourceTree = "<group>"; };
BC032DCD10F4389F0058C15A /* WebProcessManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebProcessManager.h; sourceTree = "<group>"; };
BC032DCF10F4389F0058C15A /* WebProcessProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebProcessProxy.h; sourceTree = "<group>"; };
+ BC0E5FE312D697160012A72A /* WebGeolocationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGeolocationManager.h; sourceTree = "<group>"; };
+ BC0E5FE412D697160012A72A /* WebGeolocationManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGeolocationManager.cpp; sourceTree = "<group>"; };
+ BC0E604812D6B6370012A72A /* WebGeolocationManager.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGeolocationManager.messages.in; sourceTree = "<group>"; };
+ BC0E605F12D6BA910012A72A /* WebGeolocationManagerMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGeolocationManagerMessageReceiver.cpp; sourceTree = "<group>"; };
+ BC0E606012D6BA910012A72A /* WebGeolocationManagerMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGeolocationManagerMessages.h; sourceTree = "<group>"; };
+ BC0E607112D6BC200012A72A /* WebGeolocationPosition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGeolocationPosition.h; sourceTree = "<group>"; };
+ BC0E607212D6BC200012A72A /* WebGeolocationPosition.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGeolocationPosition.cpp; sourceTree = "<group>"; };
+ BC0E615212D6CAC80012A72A /* WebGeolocationManagerProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebGeolocationManagerProxy.messages.in; sourceTree = "<group>"; };
+ BC0E618012D6CB1D0012A72A /* WebGeolocationManagerProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGeolocationManagerProxyMessageReceiver.cpp; sourceTree = "<group>"; };
+ BC0E618112D6CB1D0012A72A /* WebGeolocationManagerProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGeolocationManagerProxyMessages.h; sourceTree = "<group>"; };
+ BC0E619612D6CD120012A72A /* WKGeolocationPosition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKGeolocationPosition.h; sourceTree = "<group>"; };
+ BC0E619712D6CD120012A72A /* WKGeolocationPosition.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKGeolocationPosition.cpp; sourceTree = "<group>"; };
BC111A53112F4FBB00337BAB /* WebChromeClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebChromeClient.cpp; sourceTree = "<group>"; };
BC111A54112F4FBB00337BAB /* WebContextMenuClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebContextMenuClient.cpp; sourceTree = "<group>"; };
BC111A56112F4FBB00337BAB /* WebDragClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebDragClient.cpp; sourceTree = "<group>"; };
@@ -1031,6 +1061,10 @@
BC17753E118BABF0007D9E9A /* GenericCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GenericCallback.h; sourceTree = "<group>"; };
BC1A7C571136E19C00FB7167 /* ProcessLauncher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProcessLauncher.h; sourceTree = "<group>"; };
BC1B419711D41D570011E8DD /* WKBundlePagePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundlePagePrivate.h; sourceTree = "<group>"; };
+ BC1BE1DE12D54A410004A228 /* WebGeolocationClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGeolocationClient.h; sourceTree = "<group>"; };
+ BC1BE1DF12D54A410004A228 /* WebGeolocationClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGeolocationClient.cpp; sourceTree = "<group>"; };
+ BC1BE1F012D54DBD0004A228 /* WebGeolocationProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGeolocationProvider.h; sourceTree = "<group>"; };
+ BC1BE1F112D54DBD0004A228 /* WebGeolocationProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGeolocationProvider.cpp; sourceTree = "<group>"; };
BC1DD7B1114DC396005ADAF3 /* WebCoreArgumentCoders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreArgumentCoders.h; sourceTree = "<group>"; };
BC1DFE8D12B31CA8005DF730 /* WKOpenPanelResultListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKOpenPanelResultListener.h; sourceTree = "<group>"; };
BC1DFE8E12B31CA8005DF730 /* WKOpenPanelResultListener.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKOpenPanelResultListener.cpp; sourceTree = "<group>"; };
@@ -1115,6 +1149,10 @@
BC4BEEAA120A0A5F00FBA0C7 /* InjectedBundleNodeHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundleNodeHandle.cpp; sourceTree = "<group>"; };
BC4BEFDF120A1A4C00FBA0C7 /* WKBundleNodeHandle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleNodeHandle.h; sourceTree = "<group>"; };
BC4BEFE0120A1A4C00FBA0C7 /* WKBundleNodeHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKBundleNodeHandle.cpp; sourceTree = "<group>"; };
+ BC54CAC912D64291005C67B0 /* WebGeolocationManagerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebGeolocationManagerProxy.h; sourceTree = "<group>"; };
+ BC54CACA12D64291005C67B0 /* WebGeolocationManagerProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebGeolocationManagerProxy.cpp; sourceTree = "<group>"; };
+ BC54CC1012D674EE005C67B0 /* WKGeolocationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKGeolocationManager.h; sourceTree = "<group>"; };
+ BC54CC1112D674EE005C67B0 /* WKGeolocationManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKGeolocationManager.cpp; sourceTree = "<group>"; };
BC5744ED12638FB3006F0F12 /* WebPopupItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebPopupItem.cpp; sourceTree = "<group>"; };
BC5744EE12638FB3006F0F12 /* WebPopupItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPopupItem.h; sourceTree = "<group>"; };
BC57450B1263B155006F0F12 /* WKBundleNodeHandlePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleNodeHandlePrivate.h; sourceTree = "<group>"; };
@@ -1640,6 +1678,8 @@
1A2C306F12D555450063DAA2 /* ContextMenuState.h */,
0FB659221208B4DB0044816C /* DrawingAreaInfo.h */,
762B7481120BBA0100819339 /* FontSmoothingLevel.h */,
+ BC0E607212D6BC200012A72A /* WebGeolocationPosition.cpp */,
+ BC0E607112D6BC200012A72A /* WebGeolocationPosition.h */,
BCCF6B2312C93E7A008F9C35 /* ImageOptions.h */,
BC64696D11DBE603006455B0 /* ImmutableArray.cpp */,
BC64696E11DBE603006455B0 /* ImmutableArray.h */,
@@ -1862,6 +1902,7 @@
children = (
512F588612A8834700629530 /* Authentication */,
1A61614C127798B5003ACD86 /* Downloads */,
+ BC0E5FCB12D696DD0012A72A /* Geolocation */,
BC204EDF11C83E72008F3375 /* InjectedBundle */,
1A6FA01C11E1526300DB1371 /* mac */,
1A6FB7AA11E64B4900DB1371 /* Plugins */,
@@ -1870,8 +1911,8 @@
1A6FA31511E3923600DB1371 /* WebKitMain.cpp */,
BC111AE3112F5C2600337BAB /* WebProcess.cpp */,
BC032D9110F437AF0058C15A /* WebProcess.h */,
- 1A6FA01F11E1528700DB1371 /* WebProcessMain.h */,
BC3066B9125A436300E71278 /* WebProcess.messages.in */,
+ 1A6FA01F11E1528700DB1371 /* WebProcessMain.h */,
);
path = WebProcess;
sourceTree = "<group>";
@@ -1896,6 +1937,8 @@
1A433F0C113C53DD00FACDE9 /* WebErrors.h */,
BC111A58112F4FBB00337BAB /* WebFrameLoaderClient.cpp */,
BC032D6A10F4378D0058C15A /* WebFrameLoaderClient.h */,
+ BC1BE1DF12D54A410004A228 /* WebGeolocationClient.cpp */,
+ BC1BE1DE12D54A410004A228 /* WebGeolocationClient.h */,
BC111A59112F4FBB00337BAB /* WebInspectorClient.cpp */,
BC032D6D10F4378D0058C15A /* WebInspectorClient.h */,
1C8E256B1270DE3800BC7BD0 /* WebInspectorFrontendClient.cpp */,
@@ -2007,6 +2050,11 @@
BCE469761214F27B000B98EB /* WebFrameListenerProxy.h */,
BC111B0A112F5E4F00337BAB /* WebFrameProxy.cpp */,
BC9B389F10F538BE00443A15 /* WebFrameProxy.h */,
+ BC54CACA12D64291005C67B0 /* WebGeolocationManagerProxy.cpp */,
+ BC54CAC912D64291005C67B0 /* WebGeolocationManagerProxy.h */,
+ BC0E615212D6CAC80012A72A /* WebGeolocationManagerProxy.messages.in */,
+ BC1BE1F112D54DBD0004A228 /* WebGeolocationProvider.cpp */,
+ BC1BE1F012D54DBD0004A228 /* WebGeolocationProvider.h */,
BCF69F841176CD6F00471A52 /* WebHistoryClient.cpp */,
BCF69F851176CD6F00471A52 /* WebHistoryClient.h */,
1C8E28331275D73800BC7BD0 /* WebInspectorProxy.cpp */,
@@ -2080,19 +2128,23 @@
1AB7D78B1288CD9A00CFD08C /* WKDownload.h */,
BCE469571214EDF4000B98EB /* WKFormSubmissionListener.cpp */,
BCE469581214EDF4000B98EB /* WKFormSubmissionListener.h */,
- BC1DFE8E12B31CA8005DF730 /* WKOpenPanelResultListener.cpp */,
- BC1DFE8D12B31CA8005DF730 /* WKOpenPanelResultListener.h */,
- BC857FE512B843D800EDEB2E /* WKOpenPanelParameters.cpp */,
- BC857FE412B843D800EDEB2E /* WKOpenPanelParameters.h */,
BCD01398110FA420003B8A67 /* WKFrame.cpp */,
BCD01397110FA420003B8A67 /* WKFrame.h */,
BCB9F6A41123DD0D00A137E0 /* WKFramePolicyListener.cpp */,
BCB9F6A31123DD0D00A137E0 /* WKFramePolicyListener.h */,
+ BC54CC1112D674EE005C67B0 /* WKGeolocationManager.cpp */,
+ BC54CC1012D674EE005C67B0 /* WKGeolocationManager.h */,
+ BC0E619712D6CD120012A72A /* WKGeolocationPosition.cpp */,
+ BC0E619612D6CD120012A72A /* WKGeolocationPosition.h */,
1C8E293812761E5B00BC7BD0 /* WKInspector.cpp */,
1C8E293712761E5B00BC7BD0 /* WKInspector.h */,
C09AE5E8125257C20025825D /* WKNativeEvent.h */,
BCF69FA81176D1CB00471A52 /* WKNavigationData.cpp */,
BCF69FA71176D1CB00471A52 /* WKNavigationData.h */,
+ BC857FE512B843D800EDEB2E /* WKOpenPanelParameters.cpp */,
+ BC857FE412B843D800EDEB2E /* WKOpenPanelParameters.h */,
+ BC1DFE8E12B31CA8005DF730 /* WKOpenPanelResultListener.cpp */,
+ BC1DFE8D12B31CA8005DF730 /* WKOpenPanelResultListener.h */,
BCD597D4112B56DC00EC8C23 /* WKPage.cpp */,
BCD597D5112B56DC00EC8C23 /* WKPage.h */,
BC7B633612A45ABA00D174A4 /* WKPageGroup.cpp */,
@@ -2108,6 +2160,16 @@
path = C;
sourceTree = "<group>";
};
+ BC0E5FCB12D696DD0012A72A /* Geolocation */ = {
+ isa = PBXGroup;
+ children = (
+ BC0E5FE412D697160012A72A /* WebGeolocationManager.cpp */,
+ BC0E5FE312D697160012A72A /* WebGeolocationManager.h */,
+ BC0E604812D6B6370012A72A /* WebGeolocationManager.messages.in */,
+ );
+ path = Geolocation;
+ sourceTree = "<group>";
+ };
BC111ADE112F5B9A00337BAB /* mac */ = {
isa = PBXGroup;
children = (
@@ -2504,6 +2566,10 @@
F62A76B312B1B25F0005F1B6 /* WebDatabaseManagerMessages.h */,
F62A76B412B1B25F0005F1B6 /* WebDatabaseManagerProxyMessageReceiver.cpp */,
F62A76B512B1B25F0005F1B6 /* WebDatabaseManagerProxyMessages.h */,
+ BC0E605F12D6BA910012A72A /* WebGeolocationManagerMessageReceiver.cpp */,
+ BC0E606012D6BA910012A72A /* WebGeolocationManagerMessages.h */,
+ BC0E618012D6CB1D0012A72A /* WebGeolocationManagerProxyMessageReceiver.cpp */,
+ BC0E618112D6CB1D0012A72A /* WebGeolocationManagerProxyMessages.h */,
1C8E2A311277852400BC7BD0 /* WebInspectorMessageReceiver.cpp */,
1C8E2A321277852400BC7BD0 /* WebInspectorMessages.h */,
1CA8B943127C882A00576C2B /* WebInspectorProxyMessageReceiver.cpp */,
@@ -2865,8 +2931,17 @@
93FC67C012D3CCF200A60610 /* EncoderAdapter.h in Headers */,
1A5E4DA412D3BD3D0099A2BB /* TextCheckerState.h in Headers */,
518D2CAE12D5153B003BB93B /* WebBackForwardListItem.h in Headers */,
+ BC1BE1E012D54A410004A228 /* WebGeolocationClient.h in Headers */,
+ BC1BE1F212D54DBD0004A228 /* WebGeolocationProvider.h in Headers */,
1A2C307112D555450063DAA2 /* ContextMenuState.h in Headers */,
518D2CCB12D51DFB003BB93B /* SessionState.h in Headers */,
+ BC54CACB12D64291005C67B0 /* WebGeolocationManagerProxy.h in Headers */,
+ BC54CC1212D674EE005C67B0 /* WKGeolocationManager.h in Headers */,
+ BC0E5FE512D697160012A72A /* WebGeolocationManager.h in Headers */,
+ BC0E606212D6BA910012A72A /* WebGeolocationManagerMessages.h in Headers */,
+ BC0E607312D6BC200012A72A /* WebGeolocationPosition.h in Headers */,
+ BC0E618312D6CB1D0012A72A /* WebGeolocationManagerProxyMessages.h in Headers */,
+ BC0E619812D6CD120012A72A /* WKGeolocationPosition.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -3301,7 +3376,16 @@
93FC67BD12D3CCF200A60610 /* DecoderAdapter.cpp in Sources */,
93FC67BF12D3CCF200A60610 /* EncoderAdapter.cpp in Sources */,
518D2CAD12D5153B003BB93B /* WebBackForwardListItem.cpp in Sources */,
+ BC1BE1E112D54A410004A228 /* WebGeolocationClient.cpp in Sources */,
+ BC1BE1F312D54DBD0004A228 /* WebGeolocationProvider.cpp in Sources */,
518D2CCA12D51DFB003BB93B /* SessionState.cpp in Sources */,
+ BC54CACC12D64291005C67B0 /* WebGeolocationManagerProxy.cpp in Sources */,
+ BC54CC1312D674EE005C67B0 /* WKGeolocationManager.cpp in Sources */,
+ BC0E5FE612D697160012A72A /* WebGeolocationManager.cpp in Sources */,
+ BC0E606112D6BA910012A72A /* WebGeolocationManagerMessageReceiver.cpp in Sources */,
+ BC0E607412D6BC200012A72A /* WebGeolocationPosition.cpp in Sources */,
+ BC0E618212D6CB1D0012A72A /* WebGeolocationManagerProxyMessageReceiver.cpp in Sources */,
+ BC0E619912D6CD120012A72A /* WKGeolocationPosition.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp b/WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp
new file mode 100644
index 0000000..b2f8ac8
--- /dev/null
+++ b/WebKit2/WebProcess/Geolocation/WebGeolocationManager.cpp
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "WebGeolocationManager.h"
+
+#include "WebGeolocationManagerProxyMessages.h"
+#include "WebPage.h"
+#include "WebProcess.h"
+
+#if ENABLE(CLIENT_BASED_GEOLOCATION)
+#include <WebCore/GeolocationController.h>
+#include <WebCore/GeolocationError.h>
+#include <WebCore/GeolocationPosition.h>
+#include <WebCore/Page.h>
+#endif
+
+using namespace WebCore;
+
+namespace WebKit {
+
+WebGeolocationManager::WebGeolocationManager(WebProcess* process)
+ : m_process(process)
+{
+}
+
+WebGeolocationManager::~WebGeolocationManager()
+{
+}
+
+void WebGeolocationManager::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments)
+{
+ didReceiveWebGeolocationManagerMessage(connection, messageID, arguments);
+}
+
+void WebGeolocationManager::registerWebPage(WebPage* page)
+{
+#if ENABLE(CLIENT_BASED_GEOLOCATION)
+ bool wasEmpty = m_pageSet.isEmpty();
+
+ m_pageSet.add(page);
+
+ if (wasEmpty)
+ m_process->connection()->send(Messages::WebGeolocationManagerProxy::StartUpdating(), 0);
+#endif
+}
+
+void WebGeolocationManager::unregisterWebPage(WebPage* page)
+{
+#if ENABLE(CLIENT_BASED_GEOLOCATION)
+ m_pageSet.remove(page);
+
+ if (m_pageSet.isEmpty())
+ m_process->connection()->send(Messages::WebGeolocationManagerProxy::StopUpdating(), 0);
+#endif
+}
+
+void WebGeolocationManager::didChangePosition(const WebGeolocationPosition::Data& data)
+{
+#if ENABLE(CLIENT_BASED_GEOLOCATION)
+ RefPtr<GeolocationPosition> position = GeolocationPosition::create(data.timestamp, data.latitude, data.longitude, data.accuracy);
+
+ HashSet<WebPage*>::const_iterator it = m_pageSet.begin();
+ HashSet<WebPage*>::const_iterator end = m_pageSet.end();
+ for (; it != end; ++it) {
+ WebPage* page = *it;
+ if (page->corePage())
+ page->corePage()->geolocationController()->positionChanged(position.get());
+ }
+#endif
+}
+
+void WebGeolocationManager::didFailToDeterminePosition()
+{
+#if ENABLE(CLIENT_BASED_GEOLOCATION)
+ // FIXME: Add localized error string.
+ RefPtr<GeolocationError> error = GeolocationError::create(GeolocationError::PositionUnavailable, /* Localized error string */ String(""));
+
+ HashSet<WebPage*>::const_iterator it = m_pageSet.begin();
+ HashSet<WebPage*>::const_iterator end = m_pageSet.end();
+ for (; it != end; ++it) {
+ WebPage* page = *it;
+ if (page->corePage())
+ page->corePage()->geolocationController()->errorOccurred(error.get());
+ }
+#endif
+}
+
+} // namespace WebKit
diff --git a/WebKit2/WebProcess/Geolocation/WebGeolocationManager.h b/WebKit2/WebProcess/Geolocation/WebGeolocationManager.h
new file mode 100644
index 0000000..6ce6bd2
--- /dev/null
+++ b/WebKit2/WebProcess/Geolocation/WebGeolocationManager.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebGeolocationManager_h
+#define WebGeolocationManager_h
+
+#include "MessageID.h"
+#include "WebGeolocationPosition.h"
+#include <wtf/HashSet.h>
+#include <wtf/Noncopyable.h>
+
+namespace CoreIPC {
+class ArgumentDecoder;
+class Connection;
+}
+
+namespace WebKit {
+
+class WebProcess;
+class WebPage;
+
+class WebGeolocationManager {
+ WTF_MAKE_NONCOPYABLE(WebGeolocationManager);
+public:
+ explicit WebGeolocationManager(WebProcess*);
+ ~WebGeolocationManager();
+
+ void registerWebPage(WebPage*);
+ void unregisterWebPage(WebPage*);
+
+ void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+
+private:
+ // Implemented in generated WebGeolocationManagerMessageReceiver.cpp
+ void didReceiveWebGeolocationManagerMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
+
+ void didChangePosition(const WebGeolocationPosition::Data&);
+ void didFailToDeterminePosition();
+
+ WebProcess* m_process;
+ HashSet<WebPage*> m_pageSet;
+};
+
+} // namespace WebKit
+
+#endif // WebGeolocationManager_h
diff --git a/WebKit2/WebProcess/Geolocation/WebGeolocationManager.messages.in b/WebKit2/WebProcess/Geolocation/WebGeolocationManager.messages.in
new file mode 100644
index 0000000..f2e9a9d
--- /dev/null
+++ b/WebKit2/WebProcess/Geolocation/WebGeolocationManager.messages.in
@@ -0,0 +1,26 @@
+# Copyright (C) 2011 Apple Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+messages -> WebGeolocationManager {
+ DidChangePosition(WebKit::WebGeolocationPosition::Data position);
+ DidFailToDeterminePosition();
+}
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.cpp b/WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.cpp
new file mode 100644
index 0000000..3a1f941
--- /dev/null
+++ b/WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.cpp
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "WebGeolocationClient.h"
+
+#if ENABLE(CLIENT_BASED_GEOLOCATION)
+
+#include "WebGeolocationManager.h"
+#include "WebProcess.h"
+#include <WebCore/GeolocationPosition.h>
+
+using namespace WebCore;
+
+namespace WebKit {
+
+void WebGeolocationClient::geolocationDestroyed()
+{
+ WebProcess::shared().geolocationManager().unregisterWebPage(m_page);
+ delete this;
+}
+
+void WebGeolocationClient::startUpdating()
+{
+ WebProcess::shared().geolocationManager().registerWebPage(m_page);
+}
+
+void WebGeolocationClient::stopUpdating()
+{
+ WebProcess::shared().geolocationManager().unregisterWebPage(m_page);
+}
+
+void WebGeolocationClient::setEnableHighAccuracy(bool)
+{
+}
+
+GeolocationPosition* WebGeolocationClient::lastPosition()
+{
+ // FIXME: Implement this.
+ return 0;
+}
+
+void WebGeolocationClient::requestPermission(Geolocation*)
+{
+ // FIXME: Implement this.
+}
+
+void WebGeolocationClient::cancelPermissionRequest(Geolocation*)
+{
+ // FIXME: Implement this.
+}
+
+} // namespace WebKit
+
+#endif // ENABLE(CLIENT_BASED_GEOLOCATION)
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.h b/WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.h
new file mode 100644
index 0000000..d8c3709
--- /dev/null
+++ b/WebKit2/WebProcess/WebCoreSupport/WebGeolocationClient.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2011 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef WebGeolocationClient_h
+#define WebGeolocationClient_h
+
+#if ENABLE(CLIENT_BASED_GEOLOCATION)
+
+#include <WebCore/GeolocationClient.h>
+
+namespace WebKit {
+
+class WebPage;
+
+class WebGeolocationClient : public WebCore::GeolocationClient {
+public:
+ WebGeolocationClient(WebPage* page)
+ : m_page(page)
+ {
+ }
+
+private:
+ virtual void geolocationDestroyed();
+
+ virtual void startUpdating();
+ virtual void stopUpdating();
+ virtual void setEnableHighAccuracy(bool);
+
+ virtual WebCore::GeolocationPosition* lastPosition();
+
+ virtual void requestPermission(WebCore::Geolocation*);
+ virtual void cancelPermissionRequest(WebCore::Geolocation*);
+
+ WebPage* m_page;
+};
+
+} // namespace WebKit
+
+#endif // ENABLE(CLIENT_BASED_GEOLOCATION)
+
+#endif // WebGeolocationClient_h
diff --git a/WebKit2/WebProcess/WebPage/WebPage.cpp b/WebKit2/WebProcess/WebPage/WebPage.cpp
index 66e1d71..295bcad 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.cpp
+++ b/WebKit2/WebProcess/WebPage/WebPage.cpp
@@ -50,6 +50,7 @@
#include "WebEvent.h"
#include "WebEventConversion.h"
#include "WebFrame.h"
+#include "WebGeolocationClient.h"
#include "WebImage.h"
#include "WebInspector.h"
#include "WebInspectorClient.h"
@@ -148,10 +149,13 @@ WebPage::WebPage(uint64_t pageID, const WebPageCreationParameters& parameters)
pageClients.contextMenuClient = new WebContextMenuClient(this);
pageClients.editorClient = new WebEditorClient(this);
pageClients.dragClient = new WebDragClient(this);
+ pageClients.backForwardClient = WebBackForwardListProxy::create(this);
+#if ENABLE(CLIENT_BASED_GEOLOCATION)
+ pageClients.geolocationClient = \new WebGeolocationClient(this);
+#endif
#if ENABLE(INSPECTOR)
pageClients.inspectorClient = new WebInspectorClient(this);
#endif
- pageClients.backForwardClient = WebBackForwardListProxy::create(this);
m_page = adoptPtr(new Page(pageClients));
// Qt does not yet call setIsInWindow. Until it does, just leave
diff --git a/WebKit2/WebProcess/WebProcess.cpp b/WebKit2/WebProcess/WebProcess.cpp
index 5da9602..4f572e3 100644
--- a/WebKit2/WebProcess/WebProcess.cpp
+++ b/WebKit2/WebProcess/WebProcess.cpp
@@ -36,6 +36,7 @@
#include "WebCoreArgumentCoders.h"
#include "WebDatabaseManager.h"
#include "WebFrame.h"
+#include "WebGeolocationManagerMessages.h"
#include "WebMemorySampler.h"
#include "WebPage.h"
#include "WebPageCreationParameters.h"
@@ -112,6 +113,7 @@ WebProcess::WebProcess()
, m_networkAccessManager(0)
#endif
, m_textCheckerState()
+ , m_geolocationManager(this)
{
#if USE(PLATFORM_STRATEGIES)
// Initialize our platform strategies.
@@ -510,6 +512,11 @@ void WebProcess::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::Mes
return;
}
+ if (messageID.is<CoreIPC::MessageClassWebGeolocationManager>()) {
+ m_geolocationManager.didReceiveMessage(connection, messageID, arguments);
+ return;
+ }
+
if (messageID.is<CoreIPC::MessageClassInjectedBundle>()) {
if (!m_injectedBundle)
return;
diff --git a/WebKit2/WebProcess/WebProcess.h b/WebKit2/WebProcess/WebProcess.h
index 65c993f..e82cf15 100644
--- a/WebKit2/WebProcess/WebProcess.h
+++ b/WebKit2/WebProcess/WebProcess.h
@@ -33,6 +33,7 @@
#include "SharedMemory.h"
#include "TextCheckerState.h"
#include "VisitedLinkTable.h"
+#include "WebGeolocationManager.h"
#include "WebPageGroupProxy.h"
#include <WebCore/LinkHash.h>
#include <wtf/Forward.h>
@@ -107,8 +108,12 @@ public:
bool shouldUseCustomRepresentationForMIMEType(const String& mimeType) const { return m_mimeTypesWithCustomRepresentations.contains(mimeType); }
+ // Text Checking
const TextCheckerState& textCheckerState() const { return m_textCheckerState; }
+ // Geolocation
+ WebGeolocationManager& geolocationManager() { return m_geolocationManager; }
+
private:
WebProcess();
@@ -186,6 +191,7 @@ private:
HashSet<String, CaseFoldingHash> m_mimeTypesWithCustomRepresentations;
TextCheckerState m_textCheckerState;
+ WebGeolocationManager m_geolocationManager;
};
} // namespace WebKit
diff --git a/WebKit2/win/WebKit2.vcproj b/WebKit2/win/WebKit2.vcproj
index 09ac554..499b010 100755
--- a/WebKit2/win/WebKit2.vcproj
+++ b/WebKit2/win/WebKit2.vcproj
@@ -591,6 +591,14 @@
>
</File>
<File
+ RelativePath="..\Shared\WebGeolocationPosition.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\Shared\WebGeolocationPosition.h"
+ >
+ </File>
+ <File
RelativePath="..\Shared\WebImage.cpp"
>
</File>
@@ -1247,6 +1255,22 @@
</File>
</Filter>
<Filter
+ Name="Geolocation"
+ >
+ <File
+ RelativePath="..\WebProcess\Geolocation\WebGeolocationManager.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebProcess\Geolocation\WebGeolocationManager.h"
+ >
+ </File>
+ <File
+ RelativePath="..\WebProcess\Geolocation\WebGeolocationManager.messages.in"
+ >
+ </File>
+ </Filter>
+ <Filter
Name="WebCoreSupport"
>
<File
@@ -1306,6 +1330,14 @@
>
</File>
<File
+ RelativePath="..\WebProcess\WebCoreSupport\WebGeolocationClient.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WebProcess\WebCoreSupport\WebGeolocationClient.h"
+ >
+ </File>
+ <File
RelativePath="..\WebProcess\WebCoreSupport\WebInspectorClient.cpp"
>
</File>
@@ -2159,6 +2191,26 @@
>
</File>
<File
+ RelativePath="..\UIProcess\WebGeolocationManagerProxy.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\UIProcess\WebGeolocationManagerProxy.h"
+ >
+ </File>
+ <File
+ RelativePath="..\UIProcess\WebGeolocationManagerProxy.messages.in"
+ >
+ </File>
+ <File
+ RelativePath="..\UIProcess\WebGeolocationProvider.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\UIProcess\WebGeolocationProvider.h"
+ >
+ </File>
+ <File
RelativePath="..\UIProcess\WebHistoryClient.cpp"
>
</File>
@@ -2281,10 +2333,6 @@
<Filter
Name="API"
>
- <File
- RelativePath="..\UIProcess\API\C\WKDatabaseManager.cpp"
- >
- </File>
<Filter
Name="C"
>
@@ -2361,6 +2409,10 @@
>
</File>
<File
+ RelativePath="..\UIProcess\API\C\WKDatabaseManager.cpp"
+ >
+ </File>
+ <File
RelativePath="..\UIProcess\API\C\WKDatabaseManager.h"
>
</File>
@@ -2397,6 +2449,22 @@
>
</File>
<File
+ RelativePath="..\UIProcess\API\C\WKGeolocationManager.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\UIProcess\API\C\WKGeolocationManager.h"
+ >
+ </File>
+ <File
+ RelativePath="..\UIProcess\API\C\WKGeolocationPosition.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\UIProcess\API\C\WKGeolocationPosition.h"
+ >
+ </File>
+ <File
RelativePath="..\UIProcess\API\C\WKInspector.cpp"
>
</File>
@@ -2999,6 +3067,22 @@
>
</File>
<File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebGeolocationManagerMessageReceiver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebGeolocationManagerMessages.h"
+ >
+ </File>
+ <File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebGeolocationManagerProxyMessageReceiver.cpp"
+ >
+ </File>
+ <File
+ RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebGeolocationManagerProxyMessages.h"
+ >
+ </File>
+ <File
RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\WebInspectorMessageReceiver.cpp"
>
</File>
diff --git a/WebKit2/win/WebKit2Common.vsprops b/WebKit2/win/WebKit2Common.vsprops
index 93c08a1..d1467c9 100755
--- a/WebKit2/win/WebKit2Common.vsprops
+++ b/WebKit2/win/WebKit2Common.vsprops
@@ -6,7 +6,7 @@
>
<Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""$(ProjectDir)\..\Platform";"$(ProjectDir)\..\Platform\CoreIPC";"$(ProjectDir)\..\PluginProcess";"$(ProjectDir)\..\Shared";"$(ProjectDir)\..\Shared\win";"$(ProjectDir)\..\Shared\cf";"$(ProjectDir)\..\Shared\API\c";"$(ProjectDir)\..\Shared\API\c\cf";"$(ProjectDir)\..\Shared\API\c\win";"$(ProjectDir)\..\Shared\CoreIPCSupport";"$(ProjectDir)\..\Shared\Plugins";"$(ProjectDir)\..\Shared\Plugins\Netscape";"$(ProjectDir)\..\UIProcess";"$(ProjectDir)\..\UIProcess\API\C";"$(ProjectDir)\..\UIProcess\API\C\win";"$(ProjectDir)\..\UIProcess\API\cpp";"$(ProjectDir)\..\UIProcess\API\win";"$(ProjectDir)\..\UIProcess\Authentication";"$(ProjectDir)\..\UIProcess\Downloads";"$(ProjectDir)\..\UIProcess\Launcher";"$(ProjectDir)\..\UIProcess\Plugins";"$(ProjectDir)\..\UIProcess\win";"$(ProjectDir)\..\WebProcess";"$(ProjectDir)\..\WebProcess\WebCoreSupport";"$(ProjectDir)\..\WebProcess\WebCoreSupport\win";"$(ProjectDir)\..\WebProcess\WebPage";"$(ProjectDir)\..\WebProcess\WebPage\win";"$(ProjectDir)\..\WebProcess\InjectedBundle";"$(ProjectDir)\..\WebProcess\InjectedBundle\API\c";"$(ProjectDir)\..\WebProcess\InjectedBundle\DOM";"$(ProjectDir)\..\WebProcess\InjectedBundle\win";"$(ProjectDir)\..\WebProcess\Plugins";"$(ProjectDir)\..\WebProcess\Plugins\Netscape";"$(ProjectDir)\..\WebProcess\win";"$(ProjectDir)\..\WebProcess\Authentication";"$(ProjectDir)\..\WebProcess\Downloads";"$(ProjectDir)\..\WebProcess\Downloads\cf";"$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources";"$(ConfigurationBuildDir)\Include";"$(ConfigurationBuildDir)\Include\private";"$(WebKitLibrariesDir)\Include";"$(WebKitLibrariesDir)\Include\private";"$(WebKitLibrariesDir)\Include\pthreads";"$(ConfigurationBuildDir)\Include\JavaScriptCore";"$(ConfigurationBuildDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\private\JavaScriptCore";"$(ConfigurationBuildDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders""
+ AdditionalIncludeDirectories=""$(ProjectDir)\..\Platform";"$(ProjectDir)\..\Platform\CoreIPC";"$(ProjectDir)\..\PluginProcess";"$(ProjectDir)\..\Shared";"$(ProjectDir)\..\Shared\win";"$(ProjectDir)\..\Shared\cf";"$(ProjectDir)\..\Shared\API\c";"$(ProjectDir)\..\Shared\API\c\cf";"$(ProjectDir)\..\Shared\API\c\win";"$(ProjectDir)\..\Shared\CoreIPCSupport";"$(ProjectDir)\..\Shared\Plugins";"$(ProjectDir)\..\Shared\Plugins\Netscape";"$(ProjectDir)\..\UIProcess";"$(ProjectDir)\..\UIProcess\API\C";"$(ProjectDir)\..\UIProcess\API\C\win";"$(ProjectDir)\..\UIProcess\API\cpp";"$(ProjectDir)\..\UIProcess\API\win";"$(ProjectDir)\..\UIProcess\Authentication";"$(ProjectDir)\..\UIProcess\Downloads";"$(ProjectDir)\..\UIProcess\Launcher";"$(ProjectDir)\..\UIProcess\Plugins";"$(ProjectDir)\..\UIProcess\win";"$(ProjectDir)\..\WebProcess";"$(ProjectDir)\..\WebProcess\WebCoreSupport";"$(ProjectDir)\..\WebProcess\WebCoreSupport\win";"$(ProjectDir)\..\WebProcess\WebPage";"$(ProjectDir)\..\WebProcess\WebPage\win";"$(ProjectDir)\..\WebProcess\InjectedBundle";"$(ProjectDir)\..\WebProcess\InjectedBundle\API\c";"$(ProjectDir)\..\WebProcess\InjectedBundle\DOM";"$(ProjectDir)\..\WebProcess\InjectedBundle\win";"$(ProjectDir)\..\WebProcess\Plugins";"$(ProjectDir)\..\WebProcess\Plugins\Netscape";"$(ProjectDir)\..\WebProcess\win";"$(ProjectDir)\..\WebProcess\Authentication";"$(ProjectDir)\..\WebProcess\Downloads";"$(ProjectDir)\..\WebProcess\Downloads\cf";"$(ProjectDir)\..\WebProcess\Geolocation";"$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources";"$(ConfigurationBuildDir)\Include";"$(ConfigurationBuildDir)\Include\private";"$(WebKitLibrariesDir)\Include";"$(WebKitLibrariesDir)\Include\private";"$(WebKitLibrariesDir)\Include\pthreads";"$(ConfigurationBuildDir)\Include\JavaScriptCore";"$(ConfigurationBuildDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\Include\JavaScriptCore";"$(WebKitLibrariesDir)\Include\private\JavaScriptCore";"$(ConfigurationBuildDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\Include\WebCore\ForwardingHeaders""
PreprocessorDefinitions="_USRDLL;WEBKIT_EXPORTS;FRAMEWORK_NAME=WebKit;BUILDING_WEBKIT"
UsePrecompiledHeader="2"
PrecompiledHeaderThrough="WebKit2Prefix.h"
diff --git a/WebKit2/win/WebKit2Generated.make b/WebKit2/win/WebKit2Generated.make
index c08cec1..30e19bf 100644
--- a/WebKit2/win/WebKit2Generated.make
+++ b/WebKit2/win/WebKit2Generated.make
@@ -48,6 +48,8 @@ all:
xcopy /y /d "..\UIProcess\API\C\WKFormSubmissionListener.h" "$(CONFIGURATIONBUILDDIR)\include\WebKit2"
xcopy /y /d "..\UIProcess\API\C\WKFrame.h" "$(CONFIGURATIONBUILDDIR)\include\WebKit2"
xcopy /y /d "..\UIProcess\API\C\WKFramePolicyListener.h" "$(CONFIGURATIONBUILDDIR)\include\WebKit2"
+ xcopy /y /d "..\UIProcess\API\C\WKGeolocationManager.h" "$(CONFIGURATIONBUILDDIR)\include\WebKit2"
+ xcopy /y /d "..\UIProcess\API\C\WKGeolocationPosition.h" "$(CONFIGURATIONBUILDDIR)\include\WebKit2"
xcopy /y /d "..\UIProcess\API\c\WKInspector.h" "$(CONFIGURATIONBUILDDIR)\include\WebKit2"
xcopy /y /d "..\UIProcess\API\C\WKNativeEvent.h" "$(CONFIGURATIONBUILDDIR)\include\WebKit2"
xcopy /y /d "..\UIProcess\API\C\WKNavigationData.h" "$(CONFIGURATIONBUILDDIR)\include\WebKit2"
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list