Changeset 152344 in webkit


Ignore:
Timestamp:
Jul 3, 2013 1:43:41 AM (11 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Migrate WebKitWebContext to GTask
https://bugs.webkit.org/show_bug.cgi?id=117153

Reviewed by Gustavo Noronha Silva.

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextGetPluginThread):
(webkit_web_context_get_plugins):
(webkit_web_context_get_plugins_finish):

Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r152340 r152344  
     12013-07-03  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Migrate WebKitWebContext to GTask
     4        https://bugs.webkit.org/show_bug.cgi?id=117153
     5
     6        Reviewed by Gustavo Noronha Silva.
     7
     8        * UIProcess/API/gtk/WebKitWebContext.cpp:
     9        (webkitWebContextGetPluginThread):
     10        (webkit_web_context_get_plugins):
     11        (webkit_web_context_get_plugins_finish):
     12
    1132013-07-02  Zan Dobersek  <zdobersek@igalia.com>
    214
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp

    r152084 r152344  
    494494}
    495495
    496 struct GetPluginsAsyncData {
    497     Vector<PluginModuleInfo> plugins;
    498 };
    499 WEBKIT_DEFINE_ASYNC_DATA_STRUCT(GetPluginsAsyncData)
    500 
    501 static void webkitWebContextGetPluginThread(GSimpleAsyncResult* result, GObject* object, GCancellable*)
    502 {
    503     GetPluginsAsyncData* data = static_cast<GetPluginsAsyncData*>(g_simple_async_result_get_op_res_gpointer(result));
    504     data->plugins = WEBKIT_WEB_CONTEXT(object)->priv->context->pluginInfoStore().plugins();
     496static void destroyPluginList(GList* plugins)
     497{
     498    g_list_free_full(plugins, g_object_unref);
     499}
     500
     501static void webkitWebContextGetPluginThread(GTask* task, gpointer object, gpointer taskData, GCancellable*)
     502{
     503    Vector<PluginModuleInfo> plugins = WEBKIT_WEB_CONTEXT(object)->priv->context->pluginInfoStore().plugins();
     504    GList* returnValue = 0;
     505    for (size_t i = 0; i < plugins.size(); ++i)
     506        returnValue = g_list_prepend(returnValue, webkitPluginCreate(plugins[i]));
     507    g_task_return_pointer(task, returnValue, reinterpret_cast<GDestroyNotify>(destroyPluginList));
    505508}
    506509
     
    521524    g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
    522525
    523     GRefPtr<GSimpleAsyncResult> result = adoptGRef(g_simple_async_result_new(G_OBJECT(context), callback, userData,
    524                                                                              reinterpret_cast<gpointer>(webkit_web_context_get_plugins)));
    525     g_simple_async_result_set_op_res_gpointer(result.get(), createGetPluginsAsyncData(),
    526                                               reinterpret_cast<GDestroyNotify>(destroyGetPluginsAsyncData));
    527     g_simple_async_result_run_in_thread(result.get(), webkitWebContextGetPluginThread, G_PRIORITY_DEFAULT, cancellable);
     526    GRefPtr<GTask> task = adoptGRef(g_task_new(context, cancellable, callback, userData));
     527    g_task_run_in_thread(task.get(), webkitWebContextGetPluginThread);
    528528}
    529529
     
    542542{
    543543    g_return_val_if_fail(WEBKIT_IS_WEB_CONTEXT(context), 0);
    544     g_return_val_if_fail(G_IS_ASYNC_RESULT(result), 0);
    545 
    546     GSimpleAsyncResult* simpleResult = G_SIMPLE_ASYNC_RESULT(result);
    547     g_warn_if_fail(g_simple_async_result_get_source_tag(simpleResult) == webkit_web_context_get_plugins);
    548 
    549     if (g_simple_async_result_propagate_error(simpleResult, error))
    550         return 0;
    551 
    552     GetPluginsAsyncData* data = static_cast<GetPluginsAsyncData*>(g_simple_async_result_get_op_res_gpointer(simpleResult));
    553     GList* plugins = 0;
    554     for (size_t i = 0; i < data->plugins.size(); ++i)
    555         plugins = g_list_prepend(plugins, webkitPluginCreate(data->plugins[i]));
    556 
    557     return plugins;
     544    g_return_val_if_fail(g_task_is_valid(result, context), 0);
     545
     546    return static_cast<GList*>(g_task_propagate_pointer(G_TASK(result), error));
    558547}
    559548
Note: See TracChangeset for help on using the changeset viewer.