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

Log Message

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

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/WebKitRequestManagerClient.cpp:
(didReceiveURIRequest):
* UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
(_WebKitURISchemeRequestPrivate):
(webkitURISchemeRequestCreate):
(webkit_uri_scheme_request_get_web_view):
(webkitURISchemeRequestReadCallback):
* UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (131602 => 131603)


--- trunk/Source/WebKit2/ChangeLog	2012-10-17 15:36:06 UTC (rev 131602)
+++ trunk/Source/WebKit2/ChangeLog	2012-10-17 15:37:33 UTC (rev 131603)
@@ -1,3 +1,23 @@
+2012-10-17  Carlos Garcia Campos  <[email protected]>
+
+        [GTK] Don't use the C API internally in WebKitURISchemeRequest
+        https://bugs.webkit.org/show_bug.cgi?id=96787
+
+        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/WebKitRequestManagerClient.cpp:
+        (didReceiveURIRequest):
+        * UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
+        (_WebKitURISchemeRequestPrivate):
+        (webkitURISchemeRequestCreate):
+        (webkit_uri_scheme_request_get_web_view):
+        (webkitURISchemeRequestReadCallback):
+        * UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h:
+
 2012-10-17  Christophe Dumez  <[email protected]>
 
         [EFL][WK2] Make sure the favicon database path is set only once

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitRequestManagerClient.cpp (131602 => 131603)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitRequestManagerClient.cpp	2012-10-17 15:36:06 UTC (rev 131602)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitRequestManagerClient.cpp	2012-10-17 15:37:33 UTC (rev 131603)
@@ -29,7 +29,7 @@
 static void didReceiveURIRequest(WKSoupRequestManagerRef soupRequestManagerRef, WKURLRef urlRef, WKPageRef initiatingPageRef, uint64_t requestID, const void* clientInfo)
 {
     WebKitWebContext* webContext = WEBKIT_WEB_CONTEXT(clientInfo);
-    GRefPtr<WebKitURISchemeRequest> request = adoptGRef(webkitURISchemeRequestCreate(webContext, soupRequestManagerRef, urlRef, initiatingPageRef, requestID));
+    GRefPtr<WebKitURISchemeRequest> request = adoptGRef(webkitURISchemeRequestCreate(webContext, toImpl(soupRequestManagerRef), toImpl(urlRef), toImpl(initiatingPageRef), requestID));
     webkitWebContextReceivedURIRequest(webContext, request.get());
 }
 

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp (131602 => 131603)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp	2012-10-17 15:36:06 UTC (rev 131602)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequest.cpp	2012-10-17 15:37:33 UTC (rev 131603)
@@ -20,25 +20,25 @@
 #include "config.h"
 #include "WebKitURISchemeRequest.h"
 
+#include "WebData.h"
 #include "WebKitURISchemeRequestPrivate.h"
 #include "WebKitWebContextPrivate.h"
 #include "WebKitWebView.h"
 #include "WebPageProxy.h"
+#include "WebSoupRequestManagerProxy.h"
 #include <WebCore/GOwnPtrSoup.h>
 #include <libsoup/soup.h>
 #include <wtf/gobject/GRefPtr.h>
 #include <wtf/text/CString.h>
 
-using namespace WebKit;
-
 static const unsigned int gReadBufferSize = 8192;
 
 G_DEFINE_TYPE(WebKitURISchemeRequest, webkit_uri_scheme_request, G_TYPE_OBJECT)
 
 struct _WebKitURISchemeRequestPrivate {
     WebKitWebContext* webContext;
-    WKRetainPtr<WKSoupRequestManagerRef> wkRequestManager;
-    WKRetainPtr<WKPageRef> wkInitiatingPage;
+    RefPtr<WebSoupRequestManagerProxy> webRequestManager;
+    RefPtr<WebPageProxy> initiatingPage;
     uint64_t requestID;
     CString uri;
     GOwnPtr<SoupURI> soupURI;
@@ -71,13 +71,13 @@
     g_type_class_add_private(requestClass, sizeof(WebKitURISchemeRequestPrivate));
 }
 
-WebKitURISchemeRequest* webkitURISchemeRequestCreate(WebKitWebContext* webContext, WKSoupRequestManagerRef wkRequestManager, WKURLRef wkURL, WKPageRef wkInitiatingPage, uint64_t requestID)
+WebKitURISchemeRequest* webkitURISchemeRequestCreate(WebKitWebContext* webContext, WebSoupRequestManagerProxy* webRequestManager, WebURL* webURL, WebPageProxy* initiatingPage, uint64_t requestID)
 {
     WebKitURISchemeRequest* request = WEBKIT_URI_SCHEME_REQUEST(g_object_new(WEBKIT_TYPE_URI_SCHEME_REQUEST, NULL));
     request->priv->webContext = webContext;
-    request->priv->wkRequestManager = wkRequestManager;
-    request->priv->uri = toImpl(wkURL)->string().utf8();
-    request->priv->wkInitiatingPage = wkInitiatingPage;
+    request->priv->webRequestManager = webRequestManager;
+    request->priv->uri = webURL->string().utf8();
+    request->priv->initiatingPage = initiatingPage;
     request->priv->requestID = requestID;
     return request;
 }
@@ -154,7 +154,7 @@
 {
     g_return_val_if_fail(WEBKIT_IS_URI_SCHEME_REQUEST(request), 0);
 
-    return WEBKIT_WEB_VIEW(toImpl(request->priv->wkInitiatingPage.get())->viewWidget());
+    return WEBKIT_WEB_VIEW(request->priv->initiatingPage->viewWidget());
 }
 
 static void webkitURISchemeRequestReadCallback(GInputStream* inputStream, GAsyncResult* result, WebKitURISchemeRequest* schemeRequest)
@@ -168,14 +168,13 @@
     }
 
     WebKitURISchemeRequestPrivate* priv = request->priv;
-    WKRetainPtr<WKDataRef> wkData(AdoptWK, WKDataCreate(bytesRead ? reinterpret_cast<const unsigned char*>(priv->readBuffer) : 0, bytesRead));
+    RefPtr<WebData> webData = WebData::create(reinterpret_cast<const unsigned char*>(priv->readBuffer), bytesRead);
     if (!priv->bytesRead) {
-        // First chunk read. In case of empty reply an empty WKDataRef is sent to the WebProcess.
-        WKRetainPtr<WKStringRef> wkMimeType = !priv->mimeType.isNull() ? adoptWK(WKStringCreateWithUTF8CString(priv->mimeType.data())) : 0;
-        WKSoupRequestManagerDidHandleURIRequest(priv->wkRequestManager.get(), wkData.get(), priv->streamLength, wkMimeType.get(), priv->requestID);
+        // First chunk read. In case of empty reply an empty WebData is sent to the WebProcess.
+        priv->webRequestManager->didHandleURIRequest(webData.get(), priv->streamLength, String::fromUTF8(priv->mimeType.data()), priv->requestID);
     } else if (bytesRead || (!bytesRead && !priv->streamLength)) {
-        // Subsequent chunk read. We only send an empty WKDataRef to the WebProcess when stream length is unknown.
-        WKSoupRequestManagerDidReceiveURIRequestData(priv->wkRequestManager.get(), wkData.get(), priv->requestID);
+        // Subsequent chunk read. We only send an empty WebData to the WebProcess when stream length is unknown.
+        priv->webRequestManager->didReceiveURIRequestData(webData.get(), priv->requestID);
     }
 
     if (!bytesRead) {

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h (131602 => 131603)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h	2012-10-17 15:36:06 UTC (rev 131602)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitURISchemeRequestPrivate.h	2012-10-17 15:37:33 UTC (rev 131603)
@@ -23,9 +23,10 @@
 #include "WebKitPrivate.h"
 #include "WebKitURISchemeRequest.h"
 #include "WebKitWebContext.h"
-#include <WebKit2/WKSoupRequestManager.h>
 
-WebKitURISchemeRequest* webkitURISchemeRequestCreate(WebKitWebContext*, WKSoupRequestManagerRef, WKURLRef, WKPageRef, uint64_t requestID);
+using namespace WebKit;
+
+WebKitURISchemeRequest* webkitURISchemeRequestCreate(WebKitWebContext*, WebSoupRequestManagerProxy*, WebURL*, WebPageProxy*, uint64_t requestID);
 uint64_t webkitURISchemeRequestGetID(WebKitURISchemeRequest*);
 void webkitURISchemeRequestCancel(WebKitURISchemeRequest*);
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to