Changeset 151723 in webkit


Ignore:
Timestamp:
Jun 19, 2013 12:13:26 AM (11 years ago)
Author:
Carlos Garcia Campos
Message:

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

Reviewed by Gustavo Noronha Silva.

Don't use helper structs for async data since the cancellable is
now accessible from the GTask.

  • UIProcess/API/gtk/WebKitCookieManager.cpp:

(webkitCookieManagerGetAcceptPolicyCallback):
(webkit_cookie_manager_get_accept_policy):
(webkit_cookie_manager_get_accept_policy_finish):
(webkitCookieManagerGetDomainsWithCookiesCallback):
(webkit_cookie_manager_get_domains_with_cookies):
(webkit_cookie_manager_get_domains_with_cookies_finish):

Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r151708 r151723  
     12013-06-18  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Migrate WebKitCookieManager to GTask
     4        https://bugs.webkit.org/show_bug.cgi?id=117150
     5
     6        Reviewed by Gustavo Noronha Silva.
     7
     8        Don't use helper structs for async data since the cancellable is
     9        now accessible from the GTask.
     10
     11        * UIProcess/API/gtk/WebKitCookieManager.cpp:
     12        (webkitCookieManagerGetAcceptPolicyCallback):
     13        (webkit_cookie_manager_get_accept_policy):
     14        (webkit_cookie_manager_get_accept_policy_finish):
     15        (webkitCookieManagerGetDomainsWithCookiesCallback):
     16        (webkit_cookie_manager_get_domains_with_cookies):
     17        (webkit_cookie_manager_get_domains_with_cookies_finish):
     18
    1192013-06-18  Roger Fong  <roger_fong@apple.com>
    220
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp

    r137469 r151723  
    150150}
    151151
    152 struct GetAcceptPolicyAsyncData {
    153     WKHTTPCookieAcceptPolicy policy;
    154     GRefPtr<GCancellable> cancellable;
    155 };
    156 WEBKIT_DEFINE_ASYNC_DATA_STRUCT(GetAcceptPolicyAsyncData)
    157 
    158152static void webkitCookieManagerGetAcceptPolicyCallback(WKHTTPCookieAcceptPolicy policy, WKErrorRef, void* context)
    159153{
    160     GRefPtr<GSimpleAsyncResult> result = adoptGRef(G_SIMPLE_ASYNC_RESULT(context));
    161     GetAcceptPolicyAsyncData* data = static_cast<GetAcceptPolicyAsyncData*>(g_simple_async_result_get_op_res_gpointer(result.get()));
    162     GError* error = 0;
    163     if (g_cancellable_set_error_if_cancelled(data->cancellable.get(), &error))
    164         g_simple_async_result_take_error(result.get(), error);
    165     else
    166         data->policy = policy;
    167     g_simple_async_result_complete(result.get());
     154    GRefPtr<GTask> task = adoptGRef(G_TASK(context));
     155    g_task_return_int(task.get(), policy);
    168156}
    169157
     
    184172    g_return_if_fail(WEBKIT_IS_COOKIE_MANAGER(manager));
    185173
    186     GSimpleAsyncResult* result = g_simple_async_result_new(G_OBJECT(manager), callback, userData,
    187                                                            reinterpret_cast<gpointer>(webkit_cookie_manager_get_accept_policy));
    188     GetAcceptPolicyAsyncData* data = createGetAcceptPolicyAsyncData();
    189     data->cancellable = cancellable;
    190     g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyGetAcceptPolicyAsyncData));
    191 
    192     manager->priv->webCookieManager->getHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyCallback::create(result, webkitCookieManagerGetAcceptPolicyCallback));
     174    GTask* task = g_task_new(manager, cancellable, callback, userData);
     175    manager->priv->webCookieManager->getHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyCallback::create(task, webkitCookieManagerGetAcceptPolicyCallback));
    193176}
    194177
     
    206189{
    207190    g_return_val_if_fail(WEBKIT_IS_COOKIE_MANAGER(manager), WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY);
    208     g_return_val_if_fail(G_IS_ASYNC_RESULT(result), WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY);
    209 
    210     GSimpleAsyncResult* simpleResult = G_SIMPLE_ASYNC_RESULT(result);
    211     g_warn_if_fail(g_simple_async_result_get_source_tag(simpleResult) == webkit_cookie_manager_get_accept_policy);
    212 
    213     if (g_simple_async_result_propagate_error(simpleResult, error))
    214         return WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY;
    215 
    216     GetAcceptPolicyAsyncData* data = static_cast<GetAcceptPolicyAsyncData*>(g_simple_async_result_get_op_res_gpointer(simpleResult));
    217     return static_cast<WebKitCookieAcceptPolicy>(data->policy);
    218 }
    219 
    220 struct GetDomainsWithCookiesAsyncData {
    221     GRefPtr<GPtrArray> domains;
    222     GRefPtr<GCancellable> cancellable;
    223 };
    224 WEBKIT_DEFINE_ASYNC_DATA_STRUCT(GetDomainsWithCookiesAsyncData)
     191    g_return_val_if_fail(g_task_is_valid(result, manager), WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY);
     192
     193    gssize returnValue = g_task_propagate_int(G_TASK(result), error);
     194    return returnValue == -1 ? WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY : static_cast<WebKitCookieAcceptPolicy>(returnValue);
     195}
    225196
    226197static void webkitCookieManagerGetDomainsWithCookiesCallback(WKArrayRef wkDomains, WKErrorRef, void* context)
    227198{
    228     GRefPtr<GSimpleAsyncResult> result = adoptGRef(G_SIMPLE_ASYNC_RESULT(context));
    229     GetDomainsWithCookiesAsyncData* data = static_cast<GetDomainsWithCookiesAsyncData*>(g_simple_async_result_get_op_res_gpointer(result.get()));
    230     GError* error = 0;
    231     if (g_cancellable_set_error_if_cancelled(data->cancellable.get(), &error))
    232         g_simple_async_result_take_error(result.get(), error);
    233     else {
    234         ImmutableArray* domains = toImpl(wkDomains);
    235         data->domains = adoptGRef(g_ptr_array_new_with_free_func(g_free));
    236         for (size_t i = 0; i < domains->size(); ++i) {
    237             WebString* domainString = static_cast<WebString*>(domains->at(i));
    238             String domain = domainString->string();
    239             if (domain.isEmpty())
    240                 continue;
    241             g_ptr_array_add(data->domains.get(), g_strdup(domain.utf8().data()));
    242         }
    243         g_ptr_array_add(data->domains.get(), 0);
     199    GRefPtr<GTask> task = adoptGRef(G_TASK(context));
     200    if (g_task_return_error_if_cancelled(task.get()))
     201        return;
     202
     203    ImmutableArray* domains = toImpl(wkDomains);
     204    GPtrArray* returnValue = g_ptr_array_sized_new(domains->size());
     205    for (size_t i = 0; i < domains->size(); ++i) {
     206        WebString* domainString = static_cast<WebString*>(domains->at(i));
     207        String domain = domainString->string();
     208        if (domain.isEmpty())
     209            continue;
     210        g_ptr_array_add(returnValue, g_strdup(domain.utf8().data()));
    244211    }
    245     g_simple_async_result_complete(result.get());
     212    g_ptr_array_add(returnValue, 0);
     213    g_task_return_pointer(task.get(), g_ptr_array_free(returnValue, FALSE), reinterpret_cast<GDestroyNotify>(g_strfreev));
    246214}
    247215
     
    262230    g_return_if_fail(WEBKIT_IS_COOKIE_MANAGER(manager));
    263231
    264     GSimpleAsyncResult* result = g_simple_async_result_new(G_OBJECT(manager), callback, userData,
    265                                                            reinterpret_cast<gpointer>(webkit_cookie_manager_get_domains_with_cookies));
    266     GetDomainsWithCookiesAsyncData* data = createGetDomainsWithCookiesAsyncData();
    267     data->cancellable = cancellable;
    268     g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyGetDomainsWithCookiesAsyncData));
    269     manager->priv->webCookieManager->getHostnamesWithCookies(ArrayCallback::create(result, webkitCookieManagerGetDomainsWithCookiesCallback));
     232    GTask* task = g_task_new(manager, cancellable, callback, userData);
     233    manager->priv->webCookieManager->getHostnamesWithCookies(ArrayCallback::create(task, webkitCookieManagerGetDomainsWithCookiesCallback));
    270234}
    271235
     
    286250{
    287251    g_return_val_if_fail(WEBKIT_IS_COOKIE_MANAGER(manager), 0);
    288     g_return_val_if_fail(G_IS_ASYNC_RESULT(result), 0);
    289 
    290     GSimpleAsyncResult* simpleResult = G_SIMPLE_ASYNC_RESULT(result);
    291     g_warn_if_fail(g_simple_async_result_get_source_tag(simpleResult) == webkit_cookie_manager_get_domains_with_cookies);
    292 
    293     if (g_simple_async_result_propagate_error(simpleResult, error))
    294         return 0;
    295 
    296     GetDomainsWithCookiesAsyncData* data = static_cast<GetDomainsWithCookiesAsyncData*>(g_simple_async_result_get_op_res_gpointer(simpleResult));
    297     return reinterpret_cast<char**>(g_ptr_array_free(data->domains.leakRef(), FALSE));
     252    g_return_val_if_fail(g_task_is_valid(result, manager), 0);
     253
     254    return reinterpret_cast<char**>(g_task_propagate_pointer(G_TASK(result), error));
    298255}
    299256
Note: See TracChangeset for help on using the changeset viewer.