Changeset 152344 in webkit
- Timestamp:
- Jul 3, 2013 1:43:41 AM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r152340 r152344 1 2013-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 1 13 2013-07-02 Zan Dobersek <zdobersek@igalia.com> 2 14 -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp
r152084 r152344 494 494 } 495 495 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(); 496 static void destroyPluginList(GList* plugins) 497 { 498 g_list_free_full(plugins, g_object_unref); 499 } 500 501 static 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)); 505 508 } 506 509 … … 521 524 g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context)); 522 525 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); 528 528 } 529 529 … … 542 542 { 543 543 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)); 558 547 } 559 548
Note: See TracChangeset
for help on using the changeset viewer.