[epiphany/pgriffis/web-extension-gtask: 1/3] WebExtensions: Add WEB_EXTENSION_ERROR quark
- From: Patrick Griffis <pgriffis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/pgriffis/web-extension-gtask: 1/3] WebExtensions: Add WEB_EXTENSION_ERROR quark
- Date: Thu, 26 May 2022 19:52:35 +0000 (UTC)
commit 21560f27dd3385d45256bd066d259e03e5954858
Author: Patrick Griffis <pgriffis igalia com>
Date: Thu May 26 14:41:20 2022 -0500
WebExtensions: Add WEB_EXTENSION_ERROR quark
src/webextension/api/notifications.c | 4 ++--
src/webextension/api/pageaction.c | 12 +++++------
src/webextension/api/runtime.c | 2 +-
src/webextension/api/storage.c | 6 +++---
src/webextension/api/tabs.c | 30 +++++++++++++--------------
src/webextension/ephy-web-extension-manager.c | 2 +-
src/webextension/ephy-web-extension.c | 2 ++
src/webextension/ephy-web-extension.h | 10 +++++++++
8 files changed, 40 insertions(+), 28 deletions(-)
---
diff --git a/src/webextension/api/notifications.c b/src/webextension/api/notifications.c
index 5a367c174..43b9e196b 100644
--- a/src/webextension/api/notifications.c
+++ b/src/webextension/api/notifications.c
@@ -39,7 +39,7 @@ notifications_handler_create (EphyWebExtension *self,
EphyNotification *notify;
if (!jsc_value_is_object (value)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -85,6 +85,6 @@ ephy_web_extension_api_notifications_handler (EphyWebExtension *self,
}
g_warning ("%s(): '%s' not implemented by Epiphany!", __FUNCTION__, name);
- error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, "Not Implemented");
+ error = g_error_new_literal (WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_NOT_IMPLEMENTED, "Not Implemented");
g_task_return_error (task, g_steal_pointer (&error));
}
diff --git a/src/webextension/api/pageaction.c b/src/webextension/api/pageaction.c
index aa52a0c56..686b70e15 100644
--- a/src/webextension/api/pageaction.c
+++ b/src/webextension/api/pageaction.c
@@ -66,7 +66,7 @@ pageaction_handler_seticon (EphyWebExtension *self,
action = pageaction_get_action (self, value);
if (!action) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -90,7 +90,7 @@ pageaction_handler_settitle (EphyWebExtension *self,
action = pageaction_get_action (self, value);
if (!action) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -112,7 +112,7 @@ pageaction_handler_gettitle (EphyWebExtension *self,
action = pageaction_get_action (self, value);
if (!action) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -132,7 +132,7 @@ pageaction_handler_show (EphyWebExtension *self,
action = pageaction_get_action (self, value);
if (!action) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -152,7 +152,7 @@ pageaction_handler_hide (EphyWebExtension *self,
action = pageaction_get_action (self, value);
if (!action) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -195,6 +195,6 @@ ephy_web_extension_api_pageaction_handler (EphyWebExtension *self,
}
g_warning ("%s(): '%s' not implemented by Epiphany!", __FUNCTION__, name);
- error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, "Not Implemented");
+ error = g_error_new_literal (WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_NOT_IMPLEMENTED, "Not Implemented");
g_task_return_error (task, g_steal_pointer (&error));
}
diff --git a/src/webextension/api/runtime.c b/src/webextension/api/runtime.c
index 988cc8799..3f519afd0 100644
--- a/src/webextension/api/runtime.c
+++ b/src/webextension/api/runtime.c
@@ -122,6 +122,6 @@ ephy_web_extension_api_runtime_handler (EphyWebExtension *self,
}
g_warning ("%s(): '%s' not implemented by Epiphany!", __FUNCTION__, name);
- error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, "Not Implemented");
+ error = g_error_new_literal (WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_NOT_IMPLEMENTED, "Not Implemented");
g_task_return_error (task, g_steal_pointer (&error));
}
diff --git a/src/webextension/api/storage.c b/src/webextension/api/storage.c
index c4da61a28..89dfb1cd4 100644
--- a/src/webextension/api/storage.c
+++ b/src/webextension/api/storage.c
@@ -69,7 +69,7 @@ storage_handler_local_set (EphyWebExtension *self,
g_autoptr (JSCValue) value = jsc_value_object_get_property_at_index (args, 0);
if (!jsc_value_is_object (value)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -204,7 +204,7 @@ ephy_web_extension_api_storage_handler (EphyWebExtension *self,
if (!ephy_web_extension_has_permission (self, "storage")) {
g_warning ("Extension %s tried to use storage without permission.", ephy_web_extension_get_name (self));
- error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED, "Permission Denied");
+ error = g_error_new_literal (WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_PERMISSION_DENIED, "Permission
Denied");
g_task_return_error (task, g_steal_pointer (&error));
return;
}
@@ -226,6 +226,6 @@ ephy_web_extension_api_storage_handler (EphyWebExtension *self,
}
g_warning ("%s(): '%s' not implemented by Epiphany!", __FUNCTION__, name);
- error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, "Not Implemented");
+ error = g_error_new_literal (WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_NOT_IMPLEMENTED, "Not Implemented");
g_task_return_error (task, g_steal_pointer (&error));
}
diff --git a/src/webextension/api/tabs.c b/src/webextension/api/tabs.c
index 053a87a8d..be94623ef 100644
--- a/src/webextension/api/tabs.c
+++ b/src/webextension/api/tabs.c
@@ -247,7 +247,7 @@ tabs_handler_insert_css (EphyWebExtension *self,
}
if (!jsc_value_is_object (obj)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -257,12 +257,12 @@ tabs_handler_insert_css (EphyWebExtension *self,
target_web_view = get_web_view_for_tab_id (shell, jsc_value_to_int32 (tab_id_value), NULL);
if (!target_web_view) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
if (!ephy_web_extension_has_host_permission (self, EPHY_WEB_VIEW (target_web_view), TRUE)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED, "Permission Denied");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_PERMISSION_DENIED, "Permission
Denied");
return NULL;
}
@@ -301,7 +301,7 @@ tabs_handler_remove_css (EphyWebExtension *self,
}
if (!jsc_value_is_object (obj)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -311,12 +311,12 @@ tabs_handler_remove_css (EphyWebExtension *self,
target_web_view = get_web_view_for_tab_id (shell, jsc_value_to_int32 (tab_id_value), NULL);
if (!target_web_view) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
if (!ephy_web_extension_has_host_permission (self, EPHY_WEB_VIEW (target_web_view), TRUE)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED, "Permission Denied");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_PERMISSION_DENIED, "Permission
Denied");
return NULL;
}
@@ -345,13 +345,13 @@ tabs_handler_get (EphyWebExtension *self,
tab_id_value = jsc_value_object_get_property_at_index (args, 0);
if (!jsc_value_is_number (tab_id_value)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
target_web_view = EPHY_WEB_VIEW (get_web_view_for_tab_id (shell, jsc_value_to_int32 (args),
&parent_window));
if (!target_web_view) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -386,7 +386,7 @@ tabs_handler_execute_script (EphyWebExtension *self,
}
if (!jsc_value_is_object (obj)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -399,7 +399,7 @@ tabs_handler_execute_script (EphyWebExtension *self,
g_autofree char *resource_path = jsc_value_to_string (file_value);
code = ephy_web_extension_get_resource_as_string (self, resource_path[0] == '/' ? resource_path + 1 :
resource_path);
} else {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -410,7 +410,7 @@ tabs_handler_execute_script (EphyWebExtension *self,
if (code && target_web_view) {
if (!ephy_web_extension_has_host_permission (self, EPHY_WEB_VIEW (target_web_view), TRUE)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED, "Permission Denied");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_PERMISSION_DENIED, "Permission
Denied");
return NULL;
}
@@ -440,13 +440,13 @@ tabs_handler_send_message (EphyWebExtension *self,
tab_id_value = jsc_value_object_get_property_at_index (args, 0);
if (!jsc_value_is_number (tab_id_value)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
message_value = jsc_value_object_get_property_at_index (args, 1);
if (jsc_value_is_undefined (message_value)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT, "Invalid Arguments");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_INVALID_ARGUMENT, "Invalid
Arguments");
return NULL;
}
@@ -457,7 +457,7 @@ tabs_handler_send_message (EphyWebExtension *self,
if (target_web_view) {
if (!ephy_web_extension_has_host_permission (self, EPHY_WEB_VIEW (target_web_view), TRUE)) {
- g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED, "Permission Denied");
+ g_set_error_literal (error, WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_PERMISSION_DENIED, "Permission
Denied");
return NULL;
}
@@ -508,6 +508,6 @@ ephy_web_extension_api_tabs_handler (EphyWebExtension *self,
}
g_warning ("%s(): '%s' not implemented by Epiphany!", __FUNCTION__, name);
- error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, "Not Implemented");
+ error = g_error_new_literal (WEB_EXTENSION_ERROR, WEB_EXTENSION_ERROR_NOT_IMPLEMENTED, "Not Implemented");
g_task_return_error (task, g_steal_pointer (&error));
}
diff --git a/src/webextension/ephy-web-extension-manager.c b/src/webextension/ephy-web-extension-manager.c
index 16926c04e..c0b0b9223 100644
--- a/src/webextension/ephy-web-extension-manager.c
+++ b/src/webextension/ephy-web-extension-manager.c
@@ -526,7 +526,7 @@ ephy_web_extension_handle_user_message (WebKitWebContext *context,
}
g_warning ("%s(): '%s' not implemented by Epiphany!", __FUNCTION__, name);
- respond_with_error (message, "Not implemented");
+ respond_with_error (message, "Not Implemented");
return TRUE;
}
diff --git a/src/webextension/ephy-web-extension.c b/src/webextension/ephy-web-extension.c
index 1b9e5c479..7d2496c7c 100644
--- a/src/webextension/ephy-web-extension.c
+++ b/src/webextension/ephy-web-extension.c
@@ -112,6 +112,8 @@ struct _EphyWebExtension {
JsonNode *local_storage;
};
+G_DEFINE_QUARK (web - extension - error - quark, web_extension_error)
+
G_DEFINE_TYPE (EphyWebExtension, ephy_web_extension, G_TYPE_OBJECT)
gboolean
diff --git a/src/webextension/ephy-web-extension.h b/src/webextension/ephy-web-extension.h
index 9cd9e64fc..8d57900bc 100644
--- a/src/webextension/ephy-web-extension.h
+++ b/src/webextension/ephy-web-extension.h
@@ -45,6 +45,16 @@ typedef char *(*executeHandler)(EphyWebExtension *web_extension,
JSCValue *args,
GError **error);
+
+extern GQuark web_extension_error_quark (void);
+#define WEB_EXTENSION_ERROR web_extension_error_quark ()
+
+typedef enum {
+ WEB_EXTENSION_ERROR_INVALID_ARGUMENT = 1001,
+ WEB_EXTENSION_ERROR_PERMISSION_DENIED = 1002,
+ WEB_EXTENSION_ERROR_NOT_IMPLEMENTED = 1003,
+} WebExtensionErrorCode;
+
typedef struct {
char *name;
executeTaskHandler execute;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]