Diff
Modified: trunk/Source/WebKit2/ChangeLog (117734 => 117735)
--- trunk/Source/WebKit2/ChangeLog 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/ChangeLog 2012-05-21 06:39:22 UTC (rev 117735)
@@ -1,3 +1,50 @@
+2012-05-20 Carlos Garcia Campos <[email protected]>
+
+ [GTK] Add GCancellable parameter to all methods using gio async pattern
+ https://bugs.webkit.org/show_bug.cgi?id=86843
+
+ Reviewed by Gustavo Noronha Silva.
+
+ Add a private macro WEBKIT_DEFINE_ASYNC_DATA_STRUCT() to make it
+ easier to define temporary structs used in async operations.
+
+ * UIProcess/API/gtk/WebKitCookieManager.cpp:
+ (GetAcceptPolicyAsyncData):
+ (webkitCookieManagerGetAcceptPolicyCallback):
+ (webkit_cookie_manager_get_accept_policy):
+ (webkit_cookie_manager_get_accept_policy_finish):
+ (GetDomainsWithCookiesAsyncData):
+ (webkitCookieManagerGetDomainsWithCookiesCallback):
+ (webkit_cookie_manager_get_domains_with_cookies):
+ (webkit_cookie_manager_get_domains_with_cookies_finish):
+ * UIProcess/API/gtk/WebKitCookieManager.h:
+ * UIProcess/API/gtk/WebKitPrivate.h:
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (webkit_web_context_get_plugins):
+ * UIProcess/API/gtk/WebKitWebResource.cpp:
+ (ResourceGetDataAsyncData):
+ (resourceDataCallback):
+ (webkit_web_resource_get_data):
+ (webkit_web_resource_get_data_finish):
+ * UIProcess/API/gtk/WebKitWebResource.h:
+ * UIProcess/API/gtk/WebKitWebView.cpp:
+ (ValidateEditingCommandAsyncData):
+ (didValidateCommand):
+ (webkit_web_view_can_execute_editing_command):
+ (webkit_web_view_can_execute_editing_command_finish):
+ (RunJavaScriptAsyncData::~RunJavaScriptAsyncData):
+ (RunJavaScriptAsyncData):
+ (webkitWebViewRunJavaScriptCallback):
+ (webkit_web_view_run_javascript):
+ (webkit_web_view_run_javascript_finish):
+ * UIProcess/API/gtk/WebKitWebView.h:
+ * UIProcess/API/gtk/tests/TestCookieManager.cpp:
+ * UIProcess/API/gtk/tests/TestResources.cpp:
+ * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
+ * UIProcess/API/gtk/tests/TestWebViewEditor.cpp:
+ * UIProcess/API/gtk/tests/WebViewTest.cpp:
+ (WebViewTest::runJavaScriptAndWaitUntilFinished):
+
2012-05-19 Andy Estes <[email protected]>
Use USE_APPKIT and USE_SECURITY_FRAMEWORK in a few more places
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp 2012-05-21 06:39:22 UTC (rev 117735)
@@ -117,16 +117,28 @@
WKCookieManagerSetHTTPCookieAcceptPolicy(manager->priv->wkCookieManager.get(), policy);
}
+struct GetAcceptPolicyAsyncData {
+ WKHTTPCookieAcceptPolicy policy;
+ GRefPtr<GCancellable> cancellable;
+};
+WEBKIT_DEFINE_ASYNC_DATA_STRUCT(GetAcceptPolicyAsyncData)
+
static void webkitCookieManagerGetAcceptPolicyCallback(WKHTTPCookieAcceptPolicy policy, WKErrorRef, void* context)
{
GRefPtr<GSimpleAsyncResult> result = adoptGRef(G_SIMPLE_ASYNC_RESULT(context));
- g_simple_async_result_set_op_res_gpointer(result.get(), GUINT_TO_POINTER(policy), 0);
+ GetAcceptPolicyAsyncData* data = ""
+ 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->policy = policy;
g_simple_async_result_complete(result.get());
}
/**
* webkit_cookie_manager_get_accept_policy:
* @cookie_manager: a #WebKitCookieManager
+ * @cancellable: (allow-none): a #GCancellable or %NULL to ignore
* @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
* @user_data: (closure): the data to pass to callback function
*
@@ -135,12 +147,16 @@
* When the operation is finished, @callback will be called. You can then call
* webkit_cookie_manager_get_accept_policy_finish() to get the result of the operation.
*/
-void webkit_cookie_manager_get_accept_policy(WebKitCookieManager* manager, GAsyncReadyCallback callback, gpointer userData)
+void webkit_cookie_manager_get_accept_policy(WebKitCookieManager* manager, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData)
{
g_return_if_fail(WEBKIT_IS_COOKIE_MANAGER(manager));
GSimpleAsyncResult* result = g_simple_async_result_new(G_OBJECT(manager), callback, userData,
reinterpret_cast<gpointer>(webkit_cookie_manager_get_accept_policy));
+ GetAcceptPolicyAsyncData* data = ""
+ data->cancellable = cancellable;
+ g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyGetAcceptPolicyAsyncData));
+
WKCookieManagerGetHTTPCookieAcceptPolicy(manager->priv->wkCookieManager.get(), result, webkitCookieManagerGetAcceptPolicyCallback);
}
@@ -165,28 +181,41 @@
if (g_simple_async_result_propagate_error(simpleResult, error))
return WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY;
- return static_cast<WebKitCookieAcceptPolicy>(GPOINTER_TO_UINT(g_simple_async_result_get_op_res_gpointer(simpleResult)));
+ GetAcceptPolicyAsyncData* data = ""
+ return static_cast<WebKitCookieAcceptPolicy>(data->policy);
}
+struct GetDomainsWithCookiesAsyncData {
+ GRefPtr<GPtrArray> domains;
+ GRefPtr<GCancellable> cancellable;
+};
+WEBKIT_DEFINE_ASYNC_DATA_STRUCT(GetDomainsWithCookiesAsyncData)
+
static void webkitCookieManagerGetDomainsWithCookiesCallback(WKArrayRef wkDomains, WKErrorRef, void* context)
{
GRefPtr<GSimpleAsyncResult> result = adoptGRef(G_SIMPLE_ASYNC_RESULT(context));
- GPtrArray* domains = g_ptr_array_new_with_free_func(g_free);
- for (size_t i = 0; i < WKArrayGetSize(wkDomains); ++i) {
- WKStringRef wkDomain = static_cast<WKStringRef>(WKArrayGetItemAtIndex(wkDomains, i));
- String domain = toImpl(wkDomain)->string();
- if (domain.isEmpty())
- continue;
- g_ptr_array_add(domains, g_strdup(domain.utf8().data()));
+ GetDomainsWithCookiesAsyncData* data = ""
+ 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->domains = adoptGRef(g_ptr_array_new_with_free_func(g_free));
+ for (size_t i = 0; i < WKArrayGetSize(wkDomains); ++i) {
+ WKStringRef wkDomain = static_cast<WKStringRef>(WKArrayGetItemAtIndex(wkDomains, i));
+ String domain = toImpl(wkDomain)->string();
+ if (domain.isEmpty())
+ continue;
+ g_ptr_array_add(data->domains.get(), g_strdup(domain.utf8().data()));
+ }
+ g_ptr_array_add(data->domains.get(), 0);
}
- g_ptr_array_add(domains, 0);
- g_simple_async_result_set_op_res_gpointer(result.get(), domains, reinterpret_cast<GDestroyNotify>(g_ptr_array_unref));
g_simple_async_result_complete(result.get());
}
/**
* webkit_cookie_manager_get_domains_with_cookies:
* @cookie_manager: a #WebKitCookieManager
+ * @cancellable: (allow-none): a #GCancellable or %NULL to ignore
* @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
* @user_data: (closure): the data to pass to callback function
*
@@ -195,12 +224,15 @@
* When the operation is finished, @callback will be called. You can then call
* webkit_cookie_manager_get_domains_with_cookies_finish() to get the result of the operation.
*/
-void webkit_cookie_manager_get_domains_with_cookies(WebKitCookieManager* manager, GAsyncReadyCallback callback, gpointer userData)
+void webkit_cookie_manager_get_domains_with_cookies(WebKitCookieManager* manager, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData)
{
g_return_if_fail(WEBKIT_IS_COOKIE_MANAGER(manager));
GSimpleAsyncResult* result = g_simple_async_result_new(G_OBJECT(manager), callback, userData,
reinterpret_cast<gpointer>(webkit_cookie_manager_get_domains_with_cookies));
+ GetDomainsWithCookiesAsyncData* data = ""
+ data->cancellable = cancellable;
+ g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyGetDomainsWithCookiesAsyncData));
WKCookieManagerGetHostnamesWithCookies(manager->priv->wkCookieManager.get(), result, webkitCookieManagerGetDomainsWithCookiesCallback);
}
@@ -228,8 +260,8 @@
if (g_simple_async_result_propagate_error(simpleResult, error))
return 0;
- GPtrArray* domains = static_cast<GPtrArray*>(g_simple_async_result_get_op_res_gpointer(simpleResult));
- return reinterpret_cast<char**>(g_ptr_array_free(domains, FALSE));
+ GetDomainsWithCookiesAsyncData* data = ""
+ return reinterpret_cast<char**>(g_ptr_array_free(data->domains.leakRef(), FALSE));
}
/**
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.h (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.h 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.h 2012-05-21 06:39:22 UTC (rev 117735)
@@ -74,6 +74,7 @@
WEBKIT_API void
webkit_cookie_manager_get_accept_policy (WebKitCookieManager *cookie_manager,
+ GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
@@ -84,6 +85,7 @@
WEBKIT_API void
webkit_cookie_manager_get_domains_with_cookies (WebKitCookieManager *cookie_manager,
+ GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitPrivate.h 2012-05-21 06:39:22 UTC (rev 117735)
@@ -44,6 +44,19 @@
#define COMPILE_ASSERT_MATCHING_ENUM(webkitName, webcoreName) \
COMPILE_ASSERT(int(webkitName) == int(webcoreName), mismatchingEnums)
+#define WEBKIT_DEFINE_ASYNC_DATA_STRUCT(structName) \
+static structName* create##structName() \
+{ \
+ structName* data = "" \
+ new (data) structName(); \
+ return data; \
+} \
+static void destroy##structName(structName* data) \
+{ \
+ data->~structName(); \
+ g_slice_free(structName, data); \
+}
+
unsigned wkEventModifiersToGdkModifiers(WKEventModifiers);
#endif // WebKitPrivate_h
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2012-05-21 06:39:22 UTC (rev 117735)
@@ -256,20 +256,8 @@
struct GetPluginsAsyncData {
Vector<PluginModuleInfo> plugins;
};
+WEBKIT_DEFINE_ASYNC_DATA_STRUCT(GetPluginsAsyncData)
-static GetPluginsAsyncData* getPluginsAsyncDataCreate()
-{
- GetPluginsAsyncData* data = ""
- new (data) GetPluginsAsyncData();
- return data;
-}
-
-static void getPluginsAsyncDataDestroy(GetPluginsAsyncData* data)
-{
- data->~GetPluginsAsyncData();
- g_slice_free(GetPluginsAsyncData, data);
-}
-
static void webkitWebContextGetPluginThread(GSimpleAsyncResult* result, GObject* object, GCancellable*)
{
GetPluginsAsyncData* data = ""
@@ -294,8 +282,8 @@
GRefPtr<GSimpleAsyncResult> result = adoptGRef(g_simple_async_result_new(G_OBJECT(context), callback, userData,
reinterpret_cast<gpointer>(webkit_web_context_get_plugins)));
- g_simple_async_result_set_op_res_gpointer(result.get(), getPluginsAsyncDataCreate(),
- reinterpret_cast<GDestroyNotify>(getPluginsAsyncDataDestroy));
+ g_simple_async_result_set_op_res_gpointer(result.get(), createGetPluginsAsyncData(),
+ reinterpret_cast<GDestroyNotify>(destroyGetPluginsAsyncData));
g_simple_async_result_run_in_thread(result.get(), webkitWebContextGetPluginThread, G_PRIORITY_DEFAULT, cancellable);
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.cpp 2012-05-21 06:39:22 UTC (rev 117735)
@@ -301,16 +301,28 @@
return resource->priv->response.get();
}
-static void resourceDataCallback(WKDataRef data, WKErrorRef, void* context)
+struct ResourceGetDataAsyncData {
+ WKDataRef wkData;
+ 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));
- g_simple_async_result_set_op_res_gpointer(result.get(), const_cast<OpaqueWKData*>(data), 0);
+ ResourceGetDataAsyncData* data = ""
+ 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->wkData = wkData;
g_simple_async_result_complete(result.get());
}
/**
* webkit_web_resource_get_data:
* @resource: a #WebKitWebResource
+ * @cancellable: (allow-none): a #GCancellable or %NULL to ignore
* @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
* @user_data: (closure): the data to pass to callback function
*
@@ -319,12 +331,15 @@
* When the operation is finished, @callback will be called. You can then call
* webkit_web_resource_get_data_finish() to get the result of the operation.
*/
-void webkit_web_resource_get_data(WebKitWebResource* resource, GAsyncReadyCallback callback, gpointer userData)
+void webkit_web_resource_get_data(WebKitWebResource* resource, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData)
{
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 = ""
+ data->cancellable = cancellable;
+ g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyResourceGetDataAsyncData));
if (resource->priv->isMainResource)
WKFrameGetMainResourceData(resource->priv->wkFrame.get(), resourceDataCallback, result);
else {
@@ -356,8 +371,8 @@
if (g_simple_async_result_propagate_error(simple, error))
return 0;
- WKDataRef wkData = static_cast<WKDataRef>(g_simple_async_result_get_op_res_gpointer(simple));
+ ResourceGetDataAsyncData* data = ""
if (length)
- *length = WKDataGetSize(wkData);
- return static_cast<guchar*>(g_memdup(WKDataGetBytes(wkData), WKDataGetSize(wkData)));
+ *length = WKDataGetSize(data->wkData);
+ return static_cast<guchar*>(g_memdup(WKDataGetBytes(data->wkData), WKDataGetSize(data->wkData)));
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.h (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.h 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebResource.h 2012-05-21 06:39:22 UTC (rev 117735)
@@ -63,6 +63,7 @@
WEBKIT_API void
webkit_web_resource_get_data (WebKitWebResource *resource,
+ GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp 2012-05-21 06:39:22 UTC (rev 117735)
@@ -1618,10 +1618,21 @@
return zoomTextOnly ? WKPageGetTextZoomFactor(wkPage) : WKPageGetPageZoomFactor(wkPage);
}
+struct ValidateEditingCommandAsyncData {
+ bool isEnabled;
+ GRefPtr<GCancellable> cancellable;
+};
+WEBKIT_DEFINE_ASYNC_DATA_STRUCT(ValidateEditingCommandAsyncData)
+
static void didValidateCommand(WKStringRef command, bool isEnabled, int32_t state, WKErrorRef, void* context)
{
GRefPtr<GSimpleAsyncResult> result = adoptGRef(G_SIMPLE_ASYNC_RESULT(context));
- g_simple_async_result_set_op_res_gboolean(result.get(), isEnabled);
+ ValidateEditingCommandAsyncData* data = ""
+ 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->isEnabled = isEnabled;
g_simple_async_result_complete(result.get());
}
@@ -1629,6 +1640,7 @@
* webkit_web_view_can_execute_editing_command:
* @web_view: a #WebKitWebView
* @command: the command to check
+ * @cancellable: (allow-none): a #GCancellable or %NULL to ignore
* @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
* @user_data: (closure): the data to pass to callback function
*
@@ -1637,13 +1649,17 @@
* When the operation is finished, @callback will be called. You can then call
* webkit_web_view_can_execute_editing_command_finish() to get the result of the operation.
*/
-void webkit_web_view_can_execute_editing_command(WebKitWebView* webView, const char* command, GAsyncReadyCallback callback, gpointer userData)
+void webkit_web_view_can_execute_editing_command(WebKitWebView* webView, const char* command, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData)
{
g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
g_return_if_fail(command);
GSimpleAsyncResult* result = g_simple_async_result_new(G_OBJECT(webView), callback, userData,
reinterpret_cast<gpointer>(webkit_web_view_can_execute_editing_command));
+ ValidateEditingCommandAsyncData* data = ""
+ data->cancellable = cancellable;
+ g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyValidateEditingCommandAsyncData));
+
WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
WKRetainPtr<WKStringRef> wkCommand(AdoptWK, WKStringCreateWithUTF8CString(command));
WKPageValidateCommand(toAPI(page), wkCommand.get(), result, didValidateCommand);
@@ -1669,7 +1685,9 @@
if (g_simple_async_result_propagate_error(simple, error))
return FALSE;
- return g_simple_async_result_get_op_res_gboolean(simple);
+
+ ValidateEditingCommandAsyncData* data = ""
+ return data->isEnabled;
}
/**
@@ -1730,15 +1748,29 @@
return webView->priv->_javascript_GlobalContext;
}
+struct RunJavaScriptAsyncData {
+ ~RunJavaScriptAsyncData()
+ {
+ if (scriptResult)
+ webkit_javascript_result_unref(scriptResult);
+ }
+
+ WebKitJavascriptResult* scriptResult;
+ GRefPtr<GCancellable> cancellable;
+};
+WEBKIT_DEFINE_ASYNC_DATA_STRUCT(RunJavaScriptAsyncData)
+
static void webkitWebViewRunJavaScriptCallback(WKSerializedScriptValueRef wkSerializedScriptValue, WKErrorRef, void* context)
{
GRefPtr<GSimpleAsyncResult> result = adoptGRef(G_SIMPLE_ASYNC_RESULT(context));
- if (wkSerializedScriptValue) {
+ RunJavaScriptAsyncData* data = ""
+ GError* error = 0;
+ if (g_cancellable_set_error_if_cancelled(data->cancellable.get(), &error))
+ g_simple_async_result_take_error(result.get(), error);
+ else if (wkSerializedScriptValue) {
GRefPtr<WebKitWebView> webView = adoptGRef(WEBKIT_WEB_VIEW(g_async_result_get_source_object(G_ASYNC_RESULT(result.get()))));
- WebKitJavascriptResult* scriptResult = webkitJavascriptResultCreate(webView.get(), wkSerializedScriptValue);
- g_simple_async_result_set_op_res_gpointer(result.get(), scriptResult, reinterpret_cast<GDestroyNotify>(webkit_javascript_result_unref));
+ data->scriptResult = webkitJavascriptResultCreate(webView.get(), wkSerializedScriptValue);
} else {
- GError* error = 0;
g_set_error_literal(&error, WEBKIT_JAVASCRIPT_ERROR, WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED, _("An exception was raised in _javascript_"));
g_simple_async_result_take_error(result.get(), error);
}
@@ -1749,6 +1781,7 @@
* webkit_web_view_run_javascript:
* @web_view: a #WebKitWebView
* @script: the script to run
+ * @cancellable: (allow-none): a #GCancellable or %NULL to ignore
* @callback: (scope async): a #GAsyncReadyCallback to call when the script finished
* @user_data: (closure): the data to pass to callback function
*
@@ -1757,7 +1790,7 @@
* When the operation is finished, @callback will be called. You can then call
* webkit_web_view_run_javascript_finish() to get the result of the operation.
*/
-void webkit_web_view_run_javascript(WebKitWebView* webView, const gchar* script, GAsyncReadyCallback callback, gpointer userData)
+void webkit_web_view_run_javascript(WebKitWebView* webView, const gchar* script, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData)
{
g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
g_return_if_fail(script);
@@ -1766,6 +1799,9 @@
WKRetainPtr<WKStringRef> wkScript = adoptWK(WKStringCreateWithUTF8CString(script));
GSimpleAsyncResult* result = g_simple_async_result_new(G_OBJECT(webView), callback, userData,
reinterpret_cast<gpointer>(webkit_web_view_run_javascript));
+ RunJavaScriptAsyncData* data = ""
+ data->cancellable = cancellable;
+ g_simple_async_result_set_op_res_gpointer(result, data, reinterpret_cast<GDestroyNotify>(destroyRunJavaScriptAsyncData));
WKPageRunJavaScriptInMainFrame(wkPage, wkScript.get(), result, webkitWebViewRunJavaScriptCallback);
}
@@ -1844,8 +1880,8 @@
if (g_simple_async_result_propagate_error(simpleResult, error))
return 0;
- WebKitJavascriptResult* scriptResult = static_cast<WebKitJavascriptResult*>(g_simple_async_result_get_op_res_gpointer(simpleResult));
- return scriptResult ? webkit_javascript_result_ref(scriptResult) : 0;
+ RunJavaScriptAsyncData* data = ""
+ return data->scriptResult ? webkit_javascript_result_ref(data->scriptResult) : 0;
}
/**
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h 2012-05-21 06:39:22 UTC (rev 117735)
@@ -263,6 +263,7 @@
WEBKIT_API void
webkit_web_view_can_execute_editing_command (WebKitWebView *web_view,
const gchar *command,
+ GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
@@ -284,6 +285,7 @@
WEBKIT_API void
webkit_web_view_run_javascript (WebKitWebView *web_view,
const gchar *script,
+ GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
WEBKIT_API WebKitJavascriptResult *
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestCookieManager.cpp (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestCookieManager.cpp 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestCookieManager.cpp 2012-05-21 06:39:22 UTC (rev 117735)
@@ -74,7 +74,7 @@
WebKitCookieAcceptPolicy getAcceptPolicy()
{
m_acceptPolicy = WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY;
- webkit_cookie_manager_get_accept_policy(m_cookieManager, getAcceptPolicyReadyCallback, this);
+ webkit_cookie_manager_get_accept_policy(m_cookieManager, 0, getAcceptPolicyReadyCallback, this);
g_main_loop_run(m_mainLoop);
return m_acceptPolicy;
@@ -100,7 +100,7 @@
{
g_strfreev(m_domains);
m_domains = 0;
- webkit_cookie_manager_get_domains_with_cookies(m_cookieManager, getDomainsReadyCallback, this);
+ webkit_cookie_manager_get_domains_with_cookies(m_cookieManager, 0, getDomainsReadyCallback, this);
g_main_loop_run(m_mainLoop);
return m_domains;
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestResources.cpp 2012-05-21 06:39:22 UTC (rev 117735)
@@ -150,7 +150,7 @@
void checkResourceData(WebKitWebResource* resource)
{
m_resourceDataSize = 0;
- webkit_web_resource_get_data(resource, resourceGetDataCallback, this);
+ webkit_web_resource_get_data(resource, 0, resourceGetDataCallback, this);
g_main_loop_run(m_mainLoop);
const char* uri = webkit_web_resource_get_uri(resource);
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp 2012-05-21 06:39:22 UTC (rev 117735)
@@ -675,7 +675,7 @@
void requestFullScreenAndWaitUntilEnteredFullScreen()
{
m_event = None;
- webkit_web_view_run_javascript(m_webView, "document.documentElement.webkitRequestFullScreen();", 0, 0);
+ webkit_web_view_run_javascript(m_webView, "document.documentElement.webkitRequestFullScreen();", 0, 0, 0);
g_main_loop_run(m_mainLoop);
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebViewEditor.cpp (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebViewEditor.cpp 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebViewEditor.cpp 2012-05-21 06:39:22 UTC (rev 117735)
@@ -47,7 +47,7 @@
bool canExecuteEditingCommand(const char* command)
{
m_canExecuteEditingCommand = false;
- webkit_web_view_can_execute_editing_command(m_webView, command, reinterpret_cast<GAsyncReadyCallback>(canExecuteEditingCommandReadyCallback), this);
+ webkit_web_view_can_execute_editing_command(m_webView, command, 0, reinterpret_cast<GAsyncReadyCallback>(canExecuteEditingCommandReadyCallback), this);
g_main_loop_run(m_mainLoop);
return m_canExecuteEditingCommand;
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp (117734 => 117735)
--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp 2012-05-21 06:39:22 UTC (rev 117735)
@@ -268,7 +268,7 @@
webkit_javascript_result_unref(m_javascriptResult);
m_javascriptResult = 0;
m_javascriptError = error;
- webkit_web_view_run_javascript(m_webView, _javascript_, reinterpret_cast<GAsyncReadyCallback>(runJavaScriptReadyCallback), this);
+ webkit_web_view_run_javascript(m_webView, _javascript_, 0, reinterpret_cast<GAsyncReadyCallback>(runJavaScriptReadyCallback), this);
g_main_loop_run(m_mainLoop);
return m_javascriptResult;
Modified: trunk/Tools/ChangeLog (117734 => 117735)
--- trunk/Tools/ChangeLog 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Tools/ChangeLog 2012-05-21 06:39:22 UTC (rev 117735)
@@ -1,3 +1,13 @@
+2012-05-20 Carlos Garcia Campos <[email protected]>
+
+ [GTK] Add GCancellable parameter to all methods using gio async pattern
+ https://bugs.webkit.org/show_bug.cgi?id=86843
+
+ Reviewed by Gustavo Noronha Silva.
+
+ * MiniBrowser/gtk/BrowserWindow.c:
+ (browser_window_load_uri):
+
2012-05-20 Daniel Bates <[email protected]>
svn-apply cannot apply patches to files that contain space
Modified: trunk/Tools/MiniBrowser/gtk/BrowserWindow.c (117734 => 117735)
--- trunk/Tools/MiniBrowser/gtk/BrowserWindow.c 2012-05-21 06:30:51 UTC (rev 117734)
+++ trunk/Tools/MiniBrowser/gtk/BrowserWindow.c 2012-05-21 06:39:22 UTC (rev 117735)
@@ -508,5 +508,5 @@
return;
}
- webkit_web_view_run_javascript(window->webView, strstr(uri, "_javascript_:"), NULL, NULL);
+ webkit_web_view_run_javascript(window->webView, strstr(uri, "_javascript_:"), NULL, NULL, NULL);
}