Title: [218173] trunk/Source/WebKit2
- Revision
- 218173
- Author
- carlo...@webkit.org
- Date
- 2017-06-13 03:34:55 -0700 (Tue, 13 Jun 2017)
Log Message
[GTK] Use API::GeolocationProvider in WebKitGeolocationProvider
https://bugs.webkit.org/show_bug.cgi?id=173151
Reviewed by Žan Doberšek.
Also cleanup a bit the WebKitGeolocationProvider implementation, it doesn't need to be refcounted.
* UIProcess/API/gtk/WebKitGeolocationProvider.cpp:
(WebKit::GeolocationProvider::GeolocationProvider):
(WebKit::WebKitGeolocationProvider::~WebKitGeolocationProvider):
(WebKit::WebKitGeolocationProvider::WebKitGeolocationProvider):
(toGeolocationProvider): Deleted.
(startUpdatingCallback): Deleted.
(stopUpdatingCallback): Deleted.
(WebKitGeolocationProvider::~WebKitGeolocationProvider): Deleted.
(WebKitGeolocationProvider::create): Deleted.
(WebKitGeolocationProvider::WebKitGeolocationProvider): Deleted.
(WebKitGeolocationProvider::startUpdating): Deleted.
(WebKitGeolocationProvider::stopUpdating): Deleted.
(WebKitGeolocationProvider::notifyPositionChanged): Deleted.
(WebKitGeolocationProvider::notifyErrorOccurred): Deleted.
* UIProcess/API/gtk/WebKitGeolocationProvider.h:
* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (218172 => 218173)
--- trunk/Source/WebKit2/ChangeLog 2017-06-13 10:31:38 UTC (rev 218172)
+++ trunk/Source/WebKit2/ChangeLog 2017-06-13 10:34:55 UTC (rev 218173)
@@ -1,5 +1,32 @@
2017-06-13 Carlos Garcia Campos <cgar...@igalia.com>
+ [GTK] Use API::GeolocationProvider in WebKitGeolocationProvider
+ https://bugs.webkit.org/show_bug.cgi?id=173151
+
+ Reviewed by Žan Doberšek.
+
+ Also cleanup a bit the WebKitGeolocationProvider implementation, it doesn't need to be refcounted.
+
+ * UIProcess/API/gtk/WebKitGeolocationProvider.cpp:
+ (WebKit::GeolocationProvider::GeolocationProvider):
+ (WebKit::WebKitGeolocationProvider::~WebKitGeolocationProvider):
+ (WebKit::WebKitGeolocationProvider::WebKitGeolocationProvider):
+ (toGeolocationProvider): Deleted.
+ (startUpdatingCallback): Deleted.
+ (stopUpdatingCallback): Deleted.
+ (WebKitGeolocationProvider::~WebKitGeolocationProvider): Deleted.
+ (WebKitGeolocationProvider::create): Deleted.
+ (WebKitGeolocationProvider::WebKitGeolocationProvider): Deleted.
+ (WebKitGeolocationProvider::startUpdating): Deleted.
+ (WebKitGeolocationProvider::stopUpdating): Deleted.
+ (WebKitGeolocationProvider::notifyPositionChanged): Deleted.
+ (WebKitGeolocationProvider::notifyErrorOccurred): Deleted.
+ * UIProcess/API/gtk/WebKitGeolocationProvider.h:
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (webkitWebContextConstructed):
+
+2017-06-13 Carlos Garcia Campos <cgar...@igalia.com>
+
[GTK] Use API::IconDatabaseClient in WebKitFaviconDatabase
https://bugs.webkit.org/show_bug.cgi?id=173146
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.cpp (218172 => 218173)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.cpp 2017-06-13 10:31:38 UTC (rev 218172)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.cpp 2017-06-13 10:34:55 UTC (rev 218173)
@@ -26,55 +26,47 @@
#include "config.h"
#include "WebKitGeolocationProvider.h"
+#if ENABLE(GEOLOCATION)
+
+#include "APIGeolocationProvider.h"
#include "WebGeolocationManagerProxy.h"
#include "WebGeolocationPosition.h"
-using namespace WebKit;
+namespace WebKit {
-#if ENABLE(GEOLOCATION)
+class GeolocationProvider : public API::GeolocationProvider {
+public:
+ explicit GeolocationProvider(WebKitGeolocationProvider& provider)
+ : m_provider(provider)
+ {
+ }
-static inline WebKitGeolocationProvider* toGeolocationProvider(const void* clientInfo)
-{
- return static_cast<WebKitGeolocationProvider*>(const_cast<void*>(clientInfo));
-}
+private:
+ void startUpdating(WebGeolocationManagerProxy&) override
+ {
+ m_provider.startUpdating();
+ }
-static void startUpdatingCallback(WKGeolocationManagerRef, const void* clientInfo)
-{
- toGeolocationProvider(clientInfo)->startUpdating();
-}
+ void stopUpdating(WebGeolocationManagerProxy&) override
+ {
+ m_provider.stopUpdating();
+ }
-static void stopUpdatingCallback(WKGeolocationManagerRef, const void* clientInfo)
-{
- toGeolocationProvider(clientInfo)->stopUpdating();
-}
+ WebKitGeolocationProvider& m_provider;
+};
WebKitGeolocationProvider::~WebKitGeolocationProvider()
{
m_provider.stopUpdating();
- WKGeolocationManagerSetProvider(toAPI(m_geolocationManager.get()), nullptr);
+ m_geolocationManager->setProvider(nullptr);
}
-Ref<WebKitGeolocationProvider> WebKitGeolocationProvider::create(WebGeolocationManagerProxy* geolocationManager)
-{
- return adoptRef(*new WebKitGeolocationProvider(geolocationManager));
-}
-
WebKitGeolocationProvider::WebKitGeolocationProvider(WebGeolocationManagerProxy* geolocationManager)
: m_geolocationManager(geolocationManager)
, m_provider(this)
{
ASSERT(geolocationManager);
-
- WKGeolocationProviderV1 wkGeolocationProvider = {
- {
- 1, // version
- this, // clientInfo
- },
- startUpdatingCallback,
- stopUpdatingCallback,
- 0 // setEnableHighAccuracy
- };
- WKGeolocationManagerSetProvider(toAPI(geolocationManager), &wkGeolocationProvider.base);
+ geolocationManager->setProvider(std::make_unique<GeolocationProvider>(*this));
}
void WebKitGeolocationProvider::startUpdating()
@@ -98,4 +90,6 @@
m_geolocationManager->providerDidFailToDeterminePosition();
}
+} // namespace WebKit
+
#endif // ENABLE(GEOLOCATION)
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.h (218172 => 218173)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.h 2017-06-13 10:31:38 UTC (rev 218172)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.h 2017-06-13 10:34:55 UTC (rev 218173)
@@ -17,30 +17,25 @@
* Boston, MA 02110-1301, USA.
*/
-#ifndef WebKitGeolocationProvider_h
-#define WebKitGeolocationProvider_h
+#pragma once
#if ENABLE(GEOLOCATION)
-#include "WebKitPrivate.h"
#include <WebCore/GeolocationProviderGeoclue.h>
#include <WebCore/GeolocationProviderGeoclueClient.h>
-#include <wtf/Ref.h>
-#include <wtf/RefCounted.h>
namespace WebKit {
+class WebGeolocationManagerProxy;
-class WebKitGeolocationProvider : public RefCounted<WebKitGeolocationProvider>, public WebCore::GeolocationProviderGeoclueClient {
+class WebKitGeolocationProvider final : public WebCore::GeolocationProviderGeoclueClient {
public:
- virtual ~WebKitGeolocationProvider();
- static Ref<WebKitGeolocationProvider> create(WebGeolocationManagerProxy*);
+ explicit WebKitGeolocationProvider(WebGeolocationManagerProxy*);
+ ~WebKitGeolocationProvider();
void startUpdating();
void stopUpdating();
private:
- WebKitGeolocationProvider(WebGeolocationManagerProxy*);
-
// GeolocationProviderGeoclueClient interface.
void notifyPositionChanged(int, double, double, double, double, double) override;
void notifyErrorOccurred(const char*) override;
@@ -53,4 +48,3 @@
#endif // ENABLE(GEOLOCATION)
-#endif // WebKitGeolocationProvider_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (218172 => 218173)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2017-06-13 10:31:38 UTC (rev 218172)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2017-06-13 10:34:55 UTC (rev 218173)
@@ -165,7 +165,7 @@
URISchemeHandlerMap uriSchemeHandlers;
URISchemeRequestMap uriSchemeRequests;
#if ENABLE(GEOLOCATION)
- RefPtr<WebKitGeolocationProvider> geolocationProvider;
+ std::unique_ptr<WebKitGeolocationProvider> geolocationProvider;
#endif
RefPtr<WebKitNotificationProvider> notificationProvider;
GRefPtr<WebKitWebsiteDataManager> websiteDataManager;
@@ -322,7 +322,7 @@
attachCustomProtocolManagerClientToContext(webContext);
#if ENABLE(GEOLOCATION)
- priv->geolocationProvider = WebKitGeolocationProvider::create(priv->processPool->supplement<WebGeolocationManagerProxy>());
+ priv->geolocationProvider = std::make_unique<WebKitGeolocationProvider>(priv->processPool->supplement<WebGeolocationManagerProxy>());
#endif
priv->notificationProvider = WebKitNotificationProvider::create(priv->processPool->supplement<WebNotificationManagerProxy>(), webContext);
#if ENABLE(REMOTE_INSPECTOR)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes