Title: [131733] trunk/Source/WebKit2
Revision
131733
Author
[email protected]
Date
2012-10-18 05:35:12 -0700 (Thu, 18 Oct 2012)

Log Message

[GTK] Don't use the C API internally in WebKitWebResource
https://bugs.webkit.org/show_bug.cgi?id=96783

Reviewed by Xan Lopez.

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/WebKitWebResource.cpp:
(_WebKitWebResourcePrivate):
(webkitWebResourceCreate):
(webkitWebResourceGetFrame):
(ResourceGetDataAsyncData):
(resourceDataCallback):
(webkit_web_resource_get_data):
(webkit_web_resource_get_data_finish):
* UIProcess/API/gtk/WebKitWebResourcePrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(setCertificateToMainResource):
(webkitWebViewResourceLoadStarted):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (131732 => 131733)


--- trunk/Source/WebKit2/ChangeLog	2012-10-18 12:31:11 UTC (rev 131732)
+++ trunk/Source/WebKit2/ChangeLog	2012-10-18 12:35:12 UTC (rev 131733)
@@ -1,5 +1,29 @@
 2012-10-18  Carlos Garcia Campos  <[email protected]>
 
+        [GTK] Don't use the C API internally in WebKitWebResource
+        https://bugs.webkit.org/show_bug.cgi?id=96783
+
+        Reviewed by Xan Lopez.
+
+        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/WebKitWebResource.cpp:
+        (_WebKitWebResourcePrivate):
+        (webkitWebResourceCreate):
+        (webkitWebResourceGetFrame):
+        (ResourceGetDataAsyncData):
+        (resourceDataCallback):
+        (webkit_web_resource_get_data):
+        (webkit_web_resource_get_data_finish):
+        * UIProcess/API/gtk/WebKitWebResourcePrivate.h:
+        * UIProcess/API/gtk/WebKitWebView.cpp:
+        (setCertificateToMainResource):
+        (webkitWebViewResourceLoadStarted):
+
+2012-10-18  Carlos Garcia Campos  <[email protected]>
+
         [GTK] Don't use the C API internally in WebKitURIResponse
         https://bugs.webkit.org/show_bug.cgi?id=96782
 

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp (131732 => 131733)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp	2012-10-18 12:31:11 UTC (rev 131732)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp	2012-10-18 12:35:12 UTC (rev 131733)
@@ -20,6 +20,8 @@
 #include "config.h"
 #include "WebKitWebResource.h"
 
+#include "WebData.h"
+#include "WebFrameProxy.h"
 #include "WebKitMarshal.h"
 #include "WebKitURIRequest.h"
 #include "WebKitWebResourcePrivate.h"
@@ -27,8 +29,6 @@
 #include <wtf/gobject/GRefPtr.h>
 #include <wtf/text/CString.h>
 
-using namespace WebKit;
-
 enum {
     SENT_REQUEST,
     RECEIVED_DATA,
@@ -47,7 +47,7 @@
 
 
 struct _WebKitWebResourcePrivate {
-    WKRetainPtr<WKFrameRef> wkFrame;
+    RefPtr<WebFrameProxy> frame;
     CString uri;
     GRefPtr<WebKitURIResponse> response;
     bool isMainResource;
@@ -205,11 +205,11 @@
     g_object_notify(G_OBJECT(resource), "uri");
 }
 
-WebKitWebResource* webkitWebResourceCreate(WKFrameRef wkFrame, WebKitURIRequest* request, bool isMainResource)
+WebKitWebResource* webkitWebResourceCreate(WebFrameProxy* frame, WebKitURIRequest* request, bool isMainResource)
 {
     ASSERT(wkFrame);
     WebKitWebResource* resource = WEBKIT_WEB_RESOURCE(g_object_new(WEBKIT_TYPE_WEB_RESOURCE, NULL));
-    resource->priv->wkFrame = wkFrame;
+    resource->priv->frame = frame;
     resource->priv->uri = webkit_uri_request_get_uri(request);
     resource->priv->isMainResource = isMainResource;
     return resource;
@@ -243,9 +243,9 @@
     g_signal_emit(resource, signals[FINISHED], 0, NULL);
 }
 
-WKFrameRef webkitWebResourceGetFrame(WebKitWebResource* resource)
+WebFrameProxy* webkitWebResourceGetFrame(WebKitWebResource* resource)
 {
-    return resource->priv->wkFrame.get();
+    return resource->priv->frame.get();
 }
 
 /**
@@ -307,7 +307,7 @@
 }
 
 struct ResourceGetDataAsyncData {
-    WKDataRef wkData;
+    RefPtr<WebData> webData;
     GRefPtr<GCancellable> cancellable;
 };
 WEBKIT_DEFINE_ASYNC_DATA_STRUCT(ResourceGetDataAsyncData)
@@ -320,7 +320,7 @@
     if (g_cancellable_set_error_if_cancelled(data->cancellable.get(), &error))
         g_simple_async_result_take_error(result.get(), error);
     else
-        data->wkData = wkData;
+        data->webData = toImpl(wkData);
     g_simple_async_result_complete(result.get());
 }
 
@@ -346,10 +346,10 @@
     data->cancellable = cancellable;
     g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyResourceGetDataAsyncData));
     if (resource->priv->isMainResource)
-        WKFrameGetMainResourceData(resource->priv->wkFrame.get(), resourceDataCallback, result);
+        resource->priv->frame->getMainResourceData(DataCallback::create(result, resourceDataCallback));
     else {
-        WKRetainPtr<WKURLRef> url(AdoptWK, WKURLCreateWithUTF8CString(resource->priv->uri.data()));
-        WKFrameGetResourceData(resource->priv->wkFrame.get(), url.get(), resourceDataCallback, result);
+        String url = ""
+        resource->priv->frame->getResourceData(WebURL::create(url).get(), DataCallback::create(result, resourceDataCallback));
     }
 }
 
@@ -378,6 +378,6 @@
 
     ResourceGetDataAsyncData* data = ""
     if (length)
-        *length = WKDataGetSize(data->wkData);
-    return static_cast<guchar*>(g_memdup(WKDataGetBytes(data->wkData), WKDataGetSize(data->wkData)));
+        *length = data->webData->size();
+    return static_cast<guchar*>(g_memdup(data->webData->bytes(), data->webData->size()));
 }

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResourcePrivate.h (131732 => 131733)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResourcePrivate.h	2012-10-18 12:31:11 UTC (rev 131732)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResourcePrivate.h	2012-10-18 12:35:12 UTC (rev 131733)
@@ -23,13 +23,15 @@
 #include "WebKitPrivate.h"
 #include "WebKitWebResource.h"
 
-WebKitWebResource* webkitWebResourceCreate(WKFrameRef, WebKitURIRequest*, bool isMainResource);
+using namespace WebKit;
+
+WebKitWebResource* webkitWebResourceCreate(WebFrameProxy*, WebKitURIRequest*, bool isMainResource);
 void webkitWebResourceSentRequest(WebKitWebResource*, WebKitURIRequest*, WebKitURIResponse*);
 void webkitWebResourceSetResponse(WebKitWebResource*, WebKitURIResponse*);
 void webkitWebResourceNotifyProgress(WebKitWebResource*, guint64 bytesReceived);
 void webkitWebResourceFinished(WebKitWebResource*);
 void webkitWebResourceFailed(WebKitWebResource*, GError*);
-WKFrameRef webkitWebResourceGetFrame(WebKitWebResource*);
+WebFrameProxy* webkitWebResourceGetFrame(WebKitWebResource*);
 
 
 #endif // WebKitWebResourcePrivate_h

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp (131732 => 131733)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp	2012-10-18 12:31:11 UTC (rev 131732)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp	2012-10-18 12:35:12 UTC (rev 131733)
@@ -1231,7 +1231,7 @@
     ASSERT(priv->mainResource.get());
 
     webkitURIResponseSetCertificateInfo(webkit_web_resource_get_response(priv->mainResource.get()),
-                                        toImpl(WKFrameGetCertificateInfo(webkitWebResourceGetFrame(priv->mainResource.get()))));
+                                        webkitWebResourceGetFrame(priv->mainResource.get())->certificateInfo());
 }
 
 static void webkitWebViewEmitLoadChanged(WebKitWebView* webView, WebKitLoadEvent loadEvent)
@@ -1467,7 +1467,7 @@
 {
     WebKitWebViewPrivate* priv = webView->priv;
     bool isMainResource = frame->isMainFrame() && !priv->mainResource;
-    WebKitWebResource* resource = webkitWebResourceCreate(toAPI(frame), request, isMainResource);
+    WebKitWebResource* resource = webkitWebResourceCreate(frame, request, isMainResource);
     if (isMainResource) {
         priv->mainResource = resource;
         waitForMainResourceResponseIfWaitingForResource(webView);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to