[epiphany/pgriffis/web-extension-gtask: 12/15] WebExtensions: Add WEB_EXTENSION_ERROR quark




commit f5636eee80e1931035a0a0cbcc33c9477db3bef9
Author: Patrick Griffis <pgriffis igalia com>
Date:   Thu May 26 14:41:20 2022 -0500

    WebExtensions: Add WEB_EXTENSION_ERROR quark
    
    Part-of: <https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/1119>

 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 c08f6e996..6994a1435 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]