Modified: trunk/Source/WebKit2/ChangeLog (151825 => 151826)
--- trunk/Source/WebKit2/ChangeLog 2013-06-21 06:02:58 UTC (rev 151825)
+++ trunk/Source/WebKit2/ChangeLog 2013-06-21 08:07:10 UTC (rev 151826)
@@ -1,3 +1,15 @@
+2013-06-20 Carlos Garcia Campos <[email protected]>
+
+ [GTK] Migrate WebKitWebResource to GTask
+ https://bugs.webkit.org/show_bug.cgi?id=117152
+
+ Reviewed by Gustavo Noronha Silva.
+
+ * UIProcess/API/gtk/WebKitWebResource.cpp:
+ (resourceDataCallback):
+ (webkit_web_resource_get_data):
+ (webkit_web_resource_get_data_finish):
+
2013-06-20 Sergio Correia <[email protected]>
[WK2] Looping for EINTR on close() is incorrect for Linux, at least
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp (151825 => 151826)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp 2013-06-21 06:02:58 UTC (rev 151825)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp 2013-06-21 08:07:10 UTC (rev 151826)
@@ -311,20 +311,15 @@
struct ResourceGetDataAsyncData {
RefPtr<WebData> webData;
- GRefPtr<GCancellable> cancellable;
};
WEBKIT_DEFINE_ASYNC_DATA_STRUCT(ResourceGetDataAsyncData)
static void resourceDataCallback(WKDataRef wkData, WKErrorRef, void* context)
{
- GRefPtr<GSimpleAsyncResult> result = adoptGRef(G_SIMPLE_ASYNC_RESULT(context));
- ResourceGetDataAsyncData* data = ""
- GError* error = 0;
- if (g_cancellable_set_error_if_cancelled(data->cancellable.get(), &error))
- g_simple_async_result_take_error(result.get(), error);
- else
- data->webData = toImpl(wkData);
- g_simple_async_result_complete(result.get());
+ GRefPtr<GTask> task = adoptGRef(G_TASK(context));
+ ResourceGetDataAsyncData* data = ""
+ data->webData = toImpl(wkData);
+ g_task_return_boolean(task.get(), TRUE);
}
/**
@@ -343,16 +338,13 @@
{
g_return_if_fail(WEBKIT_IS_WEB_RESOURCE(resource));
- GSimpleAsyncResult* result = g_simple_async_result_new(G_OBJECT(resource), callback, userData,
- reinterpret_cast<gpointer>(webkit_web_resource_get_data));
- ResourceGetDataAsyncData* data = ""
- data->cancellable = cancellable;
- g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyResourceGetDataAsyncData));
+ GTask* task = g_task_new(resource, cancellable, callback, userData);
+ g_task_set_task_data(task, createResourceGetDataAsyncData(), reinterpret_cast<GDestroyNotify>(destroyResourceGetDataAsyncData));
if (resource->priv->isMainResource)
- resource->priv->frame->getMainResourceData(DataCallback::create(result, resourceDataCallback));
+ resource->priv->frame->getMainResourceData(DataCallback::create(task, resourceDataCallback));
else {
String url = ""
- resource->priv->frame->getResourceData(WebURL::create(url).get(), DataCallback::create(result, resourceDataCallback));
+ resource->priv->frame->getResourceData(WebURL::create(url).get(), DataCallback::create(task, resourceDataCallback));
}
}
@@ -371,15 +363,13 @@
guchar* webkit_web_resource_get_data_finish(WebKitWebResource* resource, GAsyncResult* result, gsize* length, GError** error)
{
g_return_val_if_fail(WEBKIT_IS_WEB_RESOURCE(resource), 0);
- g_return_val_if_fail(G_IS_ASYNC_RESULT(result), 0);
+ g_return_val_if_fail(g_task_is_valid(result, resource), 0);
- GSimpleAsyncResult* simple = G_SIMPLE_ASYNC_RESULT(result);
- g_warn_if_fail(g_simple_async_result_get_source_tag(simple) == webkit_web_resource_get_data);
-
- if (g_simple_async_result_propagate_error(simple, error))
+ GTask* task = G_TASK(result);
+ if (!g_task_propagate_boolean(task, error))
return 0;
- ResourceGetDataAsyncData* data = ""
+ ResourceGetDataAsyncData* data = ""
if (length)
*length = data->webData->size();
return static_cast<guchar*>(g_memdup(data->webData->bytes(), data->webData->size()));