Changeset 151723 in webkit
- Timestamp:
- Jun 19, 2013 12:13:26 AM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r151708 r151723 1 2013-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 1 19 2013-06-18 Roger Fong <roger_fong@apple.com> 2 20 -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp
r137469 r151723 150 150 } 151 151 152 struct GetAcceptPolicyAsyncData {153 WKHTTPCookieAcceptPolicy policy;154 GRefPtr<GCancellable> cancellable;155 };156 WEBKIT_DEFINE_ASYNC_DATA_STRUCT(GetAcceptPolicyAsyncData)157 158 152 static void webkitCookieManagerGetAcceptPolicyCallback(WKHTTPCookieAcceptPolicy policy, WKErrorRef, void* context) 159 153 { 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); 168 156 } 169 157 … … 184 172 g_return_if_fail(WEBKIT_IS_COOKIE_MANAGER(manager)); 185 173 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)); 193 176 } 194 177 … … 206 189 { 207 190 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 } 225 196 226 197 static void webkitCookieManagerGetDomainsWithCookiesCallback(WKArrayRef wkDomains, WKErrorRef, void* context) 227 198 { 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())); 244 211 } 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)); 246 214 } 247 215 … … 262 230 g_return_if_fail(WEBKIT_IS_COOKIE_MANAGER(manager)); 263 231 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)); 270 234 } 271 235 … … 286 250 { 287 251 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)); 298 255 } 299 256
Note: See TracChangeset
for help on using the changeset viewer.