Title: [131598] trunk/Source/WebKit2
Revision
131598
Author
[email protected]
Date
2012-10-17 08:24:20 -0700 (Wed, 17 Oct 2012)

Log Message

[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):

Modified Paths

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();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to