Title: [151726] trunk/Source/WebKit2
Revision
151726
Author
[email protected]
Date
2013-06-19 00:33:50 -0700 (Wed, 19 Jun 2013)

Log Message

[GTK][SOUP] Migrate SoupRequestManager to GTask
https://bugs.webkit.org/show_bug.cgi?id=117157

Reviewed by Gustavo Noronha Silva.

GSimpleAsyncResult has been deprecated in favour of GTask.

* WebProcess/soup/WebKitSoupRequestGeneric.cpp:
(webkitSoupRequestGenericSendAsync):
(webkitSoupRequestGenericSendFinish):
* WebProcess/soup/WebSoupRequestManager.cpp:
(WebKit::WebSoupRequestAsyncData::WebSoupRequestAsyncData):
(WebKit::WebSoupRequestAsyncData::releaseTask):
(WebKit::WebSoupRequestManager::didHandleURIRequest):
(WebKit::WebSoupRequestManager::didFailURIRequest):
(WebKit::WebSoupRequestManager::send):
(WebKit::WebSoupRequestManager::finish):
* WebProcess/soup/WebSoupRequestManager.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (151725 => 151726)


--- trunk/Source/WebKit2/ChangeLog	2013-06-19 07:24:36 UTC (rev 151725)
+++ trunk/Source/WebKit2/ChangeLog	2013-06-19 07:33:50 UTC (rev 151726)
@@ -1,5 +1,26 @@
 2013-06-19  Carlos Garcia Campos  <[email protected]>
 
+        [GTK][SOUP] Migrate SoupRequestManager to GTask
+        https://bugs.webkit.org/show_bug.cgi?id=117157
+
+        Reviewed by Gustavo Noronha Silva.
+
+        GSimpleAsyncResult has been deprecated in favour of GTask.
+
+        * WebProcess/soup/WebKitSoupRequestGeneric.cpp:
+        (webkitSoupRequestGenericSendAsync):
+        (webkitSoupRequestGenericSendFinish):
+        * WebProcess/soup/WebSoupRequestManager.cpp:
+        (WebKit::WebSoupRequestAsyncData::WebSoupRequestAsyncData):
+        (WebKit::WebSoupRequestAsyncData::releaseTask):
+        (WebKit::WebSoupRequestManager::didHandleURIRequest):
+        (WebKit::WebSoupRequestManager::didFailURIRequest):
+        (WebKit::WebSoupRequestManager::send):
+        (WebKit::WebSoupRequestManager::finish):
+        * WebProcess/soup/WebSoupRequestManager.h:
+
+2013-06-19  Carlos Garcia Campos  <[email protected]>
+
         [GTK] Migrate WebKitFaviconDatabase to GTask
         https://bugs.webkit.org/show_bug.cgi?id=117156
 

Modified: trunk/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.cpp (151725 => 151726)


--- trunk/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.cpp	2013-06-19 07:24:36 UTC (rev 151725)
+++ trunk/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.cpp	2013-06-19 07:33:50 UTC (rev 151726)
@@ -48,19 +48,13 @@
 
 static void webkitSoupRequestGenericSendAsync(SoupRequest* request, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData)
 {
-    GSimpleAsyncResult* result = g_simple_async_result_new(G_OBJECT(request), callback, userData, reinterpret_cast<void*>(webkitSoupRequestGenericSendAsync));
-    WebProcess::shared().supplement<WebSoupRequestManager>()->send(result, cancellable);
+    WebProcess::shared().supplement<WebSoupRequestManager>()->send(g_task_new(request, cancellable, callback, userData));
 }
 
-static GInputStream* webkitSoupRequestGenericSendFinish(SoupRequest*, GAsyncResult* result, GError** error)
+static GInputStream* webkitSoupRequestGenericSendFinish(SoupRequest* request, GAsyncResult* result, GError** error)
 {
-    GSimpleAsyncResult* simpleResult = G_SIMPLE_ASYNC_RESULT(result);
-    g_warn_if_fail(g_simple_async_result_get_source_tag(simpleResult) == webkitSoupRequestGenericSendAsync);
-
-    if (g_simple_async_result_propagate_error(simpleResult, error))
-        return 0;
-
-    return WebProcess::shared().supplement<WebSoupRequestManager>()->finish(simpleResult);
+    g_return_val_if_fail(g_task_is_valid(result, request), 0);
+    return WebProcess::shared().supplement<WebSoupRequestManager>()->finish(G_TASK(result), error);
 }
 
 static goffset webkitSoupRequestGenericGetContentLength(SoupRequest* request)

Modified: trunk/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.cpp (151725 => 151726)


--- trunk/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.cpp	2013-06-19 07:24:36 UTC (rev 151725)
+++ trunk/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.cpp	2013-06-19 07:33:50 UTC (rev 151726)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012 Igalia S.L.
+ * Copyright (C) 2012, 2013 Igalia S.L.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -42,10 +42,10 @@
 }
 
 struct WebSoupRequestAsyncData {
-    WebSoupRequestAsyncData(GSimpleAsyncResult* result, WebKitSoupRequestGeneric* requestGeneric, GCancellable* cancellable)
-        : result(result)
+    WebSoupRequestAsyncData(GTask* task, WebKitSoupRequestGeneric* requestGeneric)
+        : task(task)
         , request(requestGeneric)
-        , cancellable(cancellable)
+        , cancellable(g_task_get_cancellable(task))
     {
         // If the struct contains a null request, it is because the request failed.
         g_object_add_weak_pointer(G_OBJECT(request), reinterpret_cast<void**>(&request));
@@ -62,14 +62,14 @@
         return g_cancellable_is_cancelled(cancellable.get()) || !request;
     }
 
-    GRefPtr<GSimpleAsyncResult> releaseResult()
+    GRefPtr<GTask> releaseTask()
     {
-        GSimpleAsyncResult* returnValue = result;
-        result = 0;
+        GTask* returnValue = task;
+        task = 0;
         return adoptGRef(returnValue);
     }
 
-    GSimpleAsyncResult* result;
+    GTask* task;
     WebKitSoupRequestGeneric* request;
     GRefPtr<GCancellable> cancellable;
     GRefPtr<GInputStream> stream;
@@ -108,12 +108,12 @@
 {
     WebSoupRequestAsyncData* data = ""
     ASSERT(data);
-    GRefPtr<GSimpleAsyncResult> result = data->releaseResult();
-    ASSERT(result.get());
+    GRefPtr<GTask> task = data->releaseTask();
+    ASSERT(task.get());
 
-    GRefPtr<WebKitSoupRequestGeneric> request = adoptGRef(WEBKIT_SOUP_REQUEST_GENERIC(g_async_result_get_source_object(G_ASYNC_RESULT(result.get()))));
-    webkitSoupRequestGenericSetContentLength(request.get(), contentLength ? contentLength : -1);
-    webkitSoupRequestGenericSetContentType(request.get(), !mimeType.isEmpty() ? mimeType.utf8().data() : 0);
+    WebKitSoupRequestGeneric* request = WEBKIT_SOUP_REQUEST_GENERIC(g_task_get_source_object(task.get()));
+    webkitSoupRequestGenericSetContentLength(request, contentLength ? contentLength : -1);
+    webkitSoupRequestGenericSetContentType(request, !mimeType.isEmpty() ? mimeType.utf8().data() : 0);
 
     GInputStream* dataStream;
     if (!requestData.size()) {
@@ -130,8 +130,7 @@
         data->stream = dataStream;
         webkitSoupRequestInputStreamAddData(WEBKIT_SOUP_REQUEST_INPUT_STREAM(dataStream), requestData.data(), requestData.size());
     }
-    g_simple_async_result_set_op_res_gpointer(result.get(), dataStream, g_object_unref);
-    g_simple_async_result_complete(result.get());
+    g_task_return_pointer(task.get(), dataStream, g_object_unref);
 }
 
 void WebSoupRequestManager::didReceiveURIRequestData(const CoreIPC::DataReference& requestData, uint64_t requestID)
@@ -164,34 +163,31 @@
 {
     WebSoupRequestAsyncData* data = ""
     ASSERT(data);
-    GRefPtr<GSimpleAsyncResult> result = data->releaseResult();
-    ASSERT(result.get());
+    GRefPtr<GTask> task = data->releaseTask();
+    ASSERT(task.get());
 
-    g_simple_async_result_take_error(result.get(),
-        g_error_new_literal(g_quark_from_string(error.domain().utf8().data()),
-            error.errorCode(),
-            error.localizedDescription().utf8().data()));
-    g_simple_async_result_complete(result.get());
-
+    g_task_return_new_error(task.get(), g_quark_from_string(error.domain().utf8().data()),
+        error.errorCode(), "%s", error.localizedDescription().utf8().data());
     m_requestMap.remove(requestID);
 }
 
-void WebSoupRequestManager::send(GSimpleAsyncResult* result, GCancellable* cancellable)
+void WebSoupRequestManager::send(GTask* task)
 {
-    GRefPtr<WebKitSoupRequestGeneric> request = adoptGRef(WEBKIT_SOUP_REQUEST_GENERIC(g_async_result_get_source_object(G_ASYNC_RESULT(result))));
-    SoupRequest* soupRequest = SOUP_REQUEST(request.get());
+    WebKitSoupRequestGeneric* request = WEBKIT_SOUP_REQUEST_GENERIC(g_task_get_source_object(task));
+    SoupRequest* soupRequest = SOUP_REQUEST(request);
     GOwnPtr<char> uriString(soup_uri_to_string(soup_request_get_uri(soupRequest), FALSE));
 
     uint64_t requestID = generateSoupRequestID();
-    m_requestMap.set(requestID, adoptPtr(new WebSoupRequestAsyncData(result, request.get(), cancellable)));
+    m_requestMap.set(requestID, adoptPtr(new WebSoupRequestAsyncData(task, request)));
 
     uint64_t initiatingPageID = WebCore::ResourceHandle::getSoupRequestInitiatingPageID(soupRequest);
     m_process->parentProcessConnection()->send(Messages::WebPageProxy::DidReceiveURIRequest(String::fromUTF8(uriString.get()), requestID), initiatingPageID);
 }
 
-GInputStream* WebSoupRequestManager::finish(GSimpleAsyncResult* result)
+GInputStream* WebSoupRequestManager::finish(GTask* task, GError** error)
 {
-    return G_INPUT_STREAM(g_object_ref(g_simple_async_result_get_op_res_gpointer(result)));
+    gpointer inputStream = g_task_propagate_pointer(task, error);
+    return inputStream ? G_INPUT_STREAM(inputStream) : 0;
 }
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.h (151725 => 151726)


--- trunk/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.h	2013-06-19 07:24:36 UTC (rev 151725)
+++ trunk/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.h	2013-06-19 07:33:50 UTC (rev 151726)
@@ -31,7 +31,7 @@
 #include <wtf/text/WTFString.h>
 
 typedef struct _GInputStream GInputStream;
-typedef struct _GSimpleAsyncResult GSimpleAsyncResult;
+typedef struct _GTask GTask;
 
 namespace WebKit {
 
@@ -46,8 +46,8 @@
 
     static const char* supplementName();
 
-    void send(GSimpleAsyncResult*, GCancellable*);
-    GInputStream* finish(GSimpleAsyncResult*);
+    void send(GTask*);
+    GInputStream* finish(GTask*, GError**);
 
     void registerURIScheme(const String& scheme);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to