diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
tree | e367e64a75991c554930278175d403c072de6bb8 /Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp | |
parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
download | qtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz |
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit.
Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp | 55 |
1 files changed, 31 insertions, 24 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp index 7a540d353..f81cd2b17 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp @@ -31,6 +31,23 @@ using namespace WebKit; +/** + * SECTION: WebKitWebResource + * @Short_description: Represents a resource at the end of a URI + * @Title: WebKitWebResource + * + * A #WebKitWebResource encapsulates content for each resource at the + * end of a particular URI. For example, one #WebKitWebResource will + * be created for each separate image and stylesheet when a page is + * loaded. + * + * You can access the response and the URI for a given + * #WebKitWebResource, using webkit_web_resource_get_uri() and + * webkit_web_resource_get_response(), as well as the raw data, using + * webkit_web_resource_get_data(). + * + */ + enum { SENT_REQUEST, RECEIVED_DATA, @@ -90,7 +107,7 @@ static void webkit_web_resource_class_init(WebKitWebResourceClass* resourceClass PROP_URI, g_param_spec_string("uri", _("URI"), - _("The current active URI of the result"), + _("The current active URI of the resource"), 0, WEBKIT_PARAM_READABLE)); @@ -238,7 +255,7 @@ WebFrameProxy* webkitWebResourceGetFrame(WebKitWebResource* resource) * webkit_web_resource_get_uri: * @resource: a #WebKitWebResource * - * Returns the current active URI of @web_view. The active URI might change during + * Returns the current active URI of @resource. The active URI might change during * a load operation: * * <orderedlist> @@ -294,20 +311,15 @@ WebKitURIResponse* webkit_web_resource_get_response(WebKitWebResource* resource) 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 = static_cast<ResourceGetDataAsyncData*>(g_simple_async_result_get_op_res_gpointer(result.get())); - 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 = static_cast<ResourceGetDataAsyncData*>(g_task_get_task_data(task.get())); + data->webData = toImpl(wkData); + g_task_return_boolean(task.get(), TRUE); } /** @@ -326,16 +338,13 @@ void webkit_web_resource_get_data(WebKitWebResource* resource, GCancellable* can { 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 = createResourceGetDataAsyncData(); - 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 = String::fromUTF8(resource->priv->uri.data()); - resource->priv->frame->getResourceData(WebURL::create(url).get(), DataCallback::create(result, resourceDataCallback)); + resource->priv->frame->getResourceData(WebURL::create(url).get(), DataCallback::create(task, resourceDataCallback)); } } @@ -354,15 +363,13 @@ void webkit_web_resource_get_data(WebKitWebResource* resource, GCancellable* can 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); - - GSimpleAsyncResult* simple = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail(g_simple_async_result_get_source_tag(simple) == webkit_web_resource_get_data); + g_return_val_if_fail(g_task_is_valid(result, resource), 0); - 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 = static_cast<ResourceGetDataAsyncData*>(g_simple_async_result_get_op_res_gpointer(simple)); + ResourceGetDataAsyncData* data = static_cast<ResourceGetDataAsyncData*>(g_task_get_task_data(task)); if (length) *length = data->webData->size(); return static_cast<guchar*>(g_memdup(data->webData->bytes(), data->webData->size())); |