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