[epiphany/pgriffis/web-extension-gtask] WebExtensions: Handle invalid args passed to ephy_send_message()
- From: Patrick Griffis <pgriffis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/pgriffis/web-extension-gtask] WebExtensions: Handle invalid args passed to ephy_send_message()
- Date: Thu, 26 May 2022 18:13:58 +0000 (UTC)
commit 78dbf4b409ec04ca855cd3c9261019ee9189f688
Author: Patrick Griffis <pgriffis igalia com>
Date: Thu May 26 13:12:24 2022 -0500
WebExtensions: Handle invalid args passed to ephy_send_message()
embed/web-process-extension/ephy-webextension-api.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
---
diff --git a/embed/web-process-extension/ephy-webextension-api.c
b/embed/web-process-extension/ephy-webextension-api.c
index 41cd1f6dc..98c6a66a7 100644
--- a/embed/web-process-extension/ephy-webextension-api.c
+++ b/embed/web-process-extension/ephy-webextension-api.c
@@ -224,7 +224,14 @@ ephy_send_message (const char *function_name,
char *args_json;
/* TODO: If function_args is list and last arg is callable, treat it as `chrome` API. */
- /* TODO: Check for valid types for args, resolve, reject. */
+
+ if (!jsc_value_is_function (reject_callback))
+ return; /* Can't reject in this case. */
+
+ if (!jsc_value_is_array (function_args) || !jsc_value_is_function (resolve_callback)) {
+ jsc_value_function_call (reject_callback, G_TYPE_STRING, "Invalid Arguments", G_TYPE_NONE);
+ return;
+ }
task = g_task_new (extension, NULL, (GAsyncReadyCallback)on_ephy_message_finish, NULL);
data = ephy_message_data_new (resolve_callback, reject_callback);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]