Diff
Modified: trunk/Source/WebKit2/ChangeLog (131597 => 131598)
--- trunk/Source/WebKit2/ChangeLog 2012-10-17 15:07:46 UTC (rev 131597)
+++ trunk/Source/WebKit2/ChangeLog 2012-10-17 15:24:20 UTC (rev 131598)
@@ -1,3 +1,33 @@
+2012-10-17 Carlos Garcia Campos <[email protected]>
+
+ [GTK] Don't use the C API internally in WebKitGeolocation classes
+ https://bugs.webkit.org/show_bug.cgi?id=96778
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Using the C++ classes directly instead of the C API wrappers we
+ avoid a lot of toImpl/toAPI casts, string conversions and
+ allocations. The code is also a lot simpler and easier to read.
+
+ * UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp:
+ (_WebKitGeolocationPermissionRequestPrivate):
+ (webkitGeolocationPermissionRequestAllow):
+ (webkitGeolocationPermissionRequestDeny):
+ (webkitGeolocationPermissionRequestFinalize):
+ (webkitGeolocationPermissionRequestCreate):
+ * UIProcess/API/gtk/WebKitGeolocationPermissionRequestPrivate.h:
+ * UIProcess/API/gtk/WebKitGeolocationProvider.cpp:
+ (WebKitGeolocationProvider::create):
+ (WebKitGeolocationProvider::WebKitGeolocationProvider):
+ (WebKitGeolocationProvider::notifyPositionChanged):
+ (WebKitGeolocationProvider::notifyErrorOccurred):
+ * UIProcess/API/gtk/WebKitGeolocationProvider.h:
+ (WebKitGeolocationProvider):
+ * UIProcess/API/gtk/WebKitUIClient.cpp:
+ (decidePolicyForGeolocationPermissionRequest):
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (createDefaultWebContext):
+
2012-10-17 Grzegorz Czajkowski <[email protected]>
[WK2][EFL] Add unit tests for Spelling
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp (131597 => 131598)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp 2012-10-17 15:07:46 UTC (rev 131597)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationPermissionRequest.cpp 2012-10-17 15:24:20 UTC (rev 131598)
@@ -20,6 +20,7 @@
#include "config.h"
#include "WebKitGeolocationPermissionRequest.h"
+#include "GeolocationPermissionRequestProxy.h"
#include "WebKitGeolocationPermissionRequestPrivate.h"
#include "WebKitPermissionRequest.h"
@@ -39,7 +40,7 @@
webkit_permission_request_interface_init))
struct _WebKitGeolocationPermissionRequestPrivate {
- WKRetainPtr<WKGeolocationPermissionRequestRef> wkRequest;
+ RefPtr<GeolocationPermissionRequestProxy> request;
bool madeDecision;
};
@@ -53,7 +54,7 @@
if (priv->madeDecision)
return;
- WKGeolocationPermissionRequestAllow(priv->wkRequest.get());
+ priv->request->allow();
priv->madeDecision = true;
}
@@ -67,7 +68,7 @@
if (priv->madeDecision)
return;
- WKGeolocationPermissionRequestDeny(priv->wkRequest.get());
+ priv->request->deny();
priv->madeDecision = true;
}
@@ -89,7 +90,7 @@
// Default behaviour when no decision has been made is denying the request.
if (!priv->madeDecision)
- WKGeolocationPermissionRequestDeny(priv->wkRequest.get());
+ priv->request->deny();
priv->~WebKitGeolocationPermissionRequestPrivate();
G_OBJECT_CLASS(webkit_geolocation_permission_request_parent_class)->finalize(object);
@@ -102,9 +103,9 @@
g_type_class_add_private(klass, sizeof(WebKitGeolocationPermissionRequestPrivate));
}
-WebKitGeolocationPermissionRequest* webkitGeolocationPermissionRequestCreate(WKGeolocationPermissionRequestRef wkRequest)
+WebKitGeolocationPermissionRequest* webkitGeolocationPermissionRequestCreate(GeolocationPermissionRequestProxy* request)
{
WebKitGeolocationPermissionRequest* geolocationPermissionRequest = WEBKIT_GEOLOCATION_PERMISSION_REQUEST(g_object_new(WEBKIT_TYPE_GEOLOCATION_PERMISSION_REQUEST, NULL));
- geolocationPermissionRequest->priv->wkRequest = wkRequest;
+ geolocationPermissionRequest->priv->request = request;
return geolocationPermissionRequest;
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationPermissionRequestPrivate.h (131597 => 131598)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationPermissionRequestPrivate.h 2012-10-17 15:07:46 UTC (rev 131597)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationPermissionRequestPrivate.h 2012-10-17 15:24:20 UTC (rev 131598)
@@ -23,6 +23,8 @@
#include "WebKitGeolocationPermissionRequest.h"
#include "WebKitPrivate.h"
-WebKitGeolocationPermissionRequest* webkitGeolocationPermissionRequestCreate(WKGeolocationPermissionRequestRef);
+using namespace WebKit;
+WebKitGeolocationPermissionRequest* webkitGeolocationPermissionRequestCreate(GeolocationPermissionRequestProxy*);
+
#endif // WebKitGeolocationPermissionRequestPrivate_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.cpp (131597 => 131598)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.cpp 2012-10-17 15:07:46 UTC (rev 131597)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.cpp 2012-10-17 15:24:20 UTC (rev 131598)
@@ -26,6 +26,9 @@
#include "config.h"
#include "WebKitGeolocationProvider.h"
+#include "WebGeolocationManagerProxy.h"
+#include "WebGeolocationPosition.h"
+
#if ENABLE(GEOLOCATION)
static inline WebKitGeolocationProvider* toGeolocationProvider(const void* clientInfo)
@@ -48,16 +51,16 @@
m_provider.stopUpdating();
}
-PassRefPtr<WebKitGeolocationProvider> WebKitGeolocationProvider::create(WKGeolocationManagerRef wkGeolocationManager)
+PassRefPtr<WebKitGeolocationProvider> WebKitGeolocationProvider::create(WebGeolocationManagerProxy* geolocationManager)
{
- return adoptRef(new WebKitGeolocationProvider(wkGeolocationManager));
+ return adoptRef(new WebKitGeolocationProvider(geolocationManager));
}
-WebKitGeolocationProvider::WebKitGeolocationProvider(WKGeolocationManagerRef wkGeolocationManager)
- : m_wkGeolocationManager(wkGeolocationManager)
+WebKitGeolocationProvider::WebKitGeolocationProvider(WebGeolocationManagerProxy* geolocationManager)
+ : m_geolocationManager(geolocationManager)
, m_provider(this)
{
- ASSERT(wkGeolocationManager);
+ ASSERT(geolocationManager);
WKGeolocationProvider wkGeolocationProvider = {
kWKGeolocationProviderCurrentVersion,
@@ -65,7 +68,7 @@
startUpdatingCallback,
stopUpdatingCallback
};
- WKGeolocationManagerSetProvider(m_wkGeolocationManager.get(), &wkGeolocationProvider);
+ WKGeolocationManagerSetProvider(toAPI(geolocationManager), &wkGeolocationProvider);
}
void WebKitGeolocationProvider::startUpdating()
@@ -80,13 +83,13 @@
void WebKitGeolocationProvider::notifyPositionChanged(int timestamp, double latitude, double longitude, double altitude, double accuracy, double altitudeAccuracy)
{
- WKRetainPtr<WKGeolocationPositionRef> wkGeolocationPosition(AdoptWK, WKGeolocationPositionCreate(timestamp, latitude, longitude, accuracy));
- WKGeolocationManagerProviderDidChangePosition(m_wkGeolocationManager.get(), wkGeolocationPosition.get());
+ RefPtr<WebGeolocationPosition> position = WebGeolocationPosition::create(timestamp, latitude, longitude, accuracy, true, altitude, true, altitudeAccuracy, false, 0, false, 0);
+ m_geolocationManager->providerDidChangePosition(position.get());
}
void WebKitGeolocationProvider::notifyErrorOccurred(const char* message)
{
- WKGeolocationManagerProviderDidFailToDeterminePosition(m_wkGeolocationManager.get());
+ m_geolocationManager->providerDidFailToDeterminePosition();
}
#endif // ENABLE(GEOLOCATION)
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.h (131597 => 131598)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.h 2012-10-17 15:07:46 UTC (rev 131597)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitGeolocationProvider.h 2012-10-17 15:24:20 UTC (rev 131598)
@@ -28,22 +28,24 @@
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
+using namespace WebKit;
+
class WebKitGeolocationProvider : public RefCounted<WebKitGeolocationProvider>, public WebCore::GeolocationProviderGeoclueClient {
public:
virtual ~WebKitGeolocationProvider();
- static PassRefPtr<WebKitGeolocationProvider> create(WKGeolocationManagerRef);
+ static PassRefPtr<WebKitGeolocationProvider> create(WebGeolocationManagerProxy*);
void startUpdating();
void stopUpdating();
private:
- WebKitGeolocationProvider(WKGeolocationManagerRef);
+ WebKitGeolocationProvider(WebGeolocationManagerProxy*);
// GeolocationProviderGeoclueClient interface.
virtual void notifyPositionChanged(int, double, double, double, double, double);
virtual void notifyErrorOccurred(const char*);
- WKRetainPtr<WKGeolocationManagerRef> m_wkGeolocationManager;
+ RefPtr<WebGeolocationManagerProxy> m_geolocationManager;
WebCore::GeolocationProviderGeoclue m_provider;
};
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp (131597 => 131598)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp 2012-10-17 15:07:46 UTC (rev 131597)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitUIClient.cpp 2012-10-17 15:24:20 UTC (rev 131598)
@@ -148,7 +148,7 @@
static void decidePolicyForGeolocationPermissionRequest(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKGeolocationPermissionRequestRef request, const void* clientInfo)
{
- GRefPtr<WebKitGeolocationPermissionRequest> geolocationPermissionRequest = adoptGRef(webkitGeolocationPermissionRequestCreate(request));
+ GRefPtr<WebKitGeolocationPermissionRequest> geolocationPermissionRequest = adoptGRef(webkitGeolocationPermissionRequestCreate(toImpl(request)));
webkitWebViewMakePermissionRequest(WEBKIT_WEB_VIEW(clientInfo), WEBKIT_PERMISSION_REQUEST(geolocationPermissionRequest.get()));
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (131597 => 131598)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2012-10-17 15:07:46 UTC (rev 131597)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2012-10-17 15:24:20 UTC (rev 131598)
@@ -164,7 +164,7 @@
attachRequestManagerClientToContext(webContext.get());
#if ENABLE(GEOLOCATION)
- priv->geolocationProvider = WebKitGeolocationProvider::create(toAPI(priv->context->geolocationManagerProxy()));
+ priv->geolocationProvider = WebKitGeolocationProvider::create(priv->context->geolocationManagerProxy());
#endif
#if ENABLE(SPELLCHECK)
priv->textChecker = WebKitTextChecker::create();