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);