[gnome-software/mwleeds/pwa-plugin] fixup! Revive webapp support



commit 743b3661afd3b2955df4a1e7335bc8d34bc281ea
Author: Phaedrus Leeds <mwleeds protonmail com>
Date:   Tue Feb 8 08:11:28 2022 -0800

    fixup! Revive webapp support

 plugins/epiphany/gs-plugin-epiphany.c              |  2 ++
 .../epiphany/org.gnome.Epiphany.WebAppProvider.xml | 34 +++++++++++++---------
 2 files changed, 23 insertions(+), 13 deletions(-)
---
diff --git a/plugins/epiphany/gs-plugin-epiphany.c b/plugins/epiphany/gs-plugin-epiphany.c
index cc5e9cd51..263b89510 100644
--- a/plugins/epiphany/gs-plugin-epiphany.c
+++ b/plugins/epiphany/gs-plugin-epiphany.c
@@ -60,6 +60,8 @@ gs_epiphany_error_convert (GError **perror)
 
                if (g_str_equal (remote_error, "org.freedesktop.DBus.Error.ServiceUnknown")) {
                        error->code = GS_PLUGIN_ERROR_NOT_SUPPORTED;
+               } else if (g_str_has_prefix (remote_error, "org.gnome.Epiphany.WebAppProvider.Error")) {
+                       error->code = GS_PLUGIN_ERROR_FAILED;
                } else {
                        g_warning ("Can’t reliably fixup remote error ‘%s’", remote_error);
                        error->code = GS_PLUGIN_ERROR_FAILED;
diff --git a/plugins/epiphany/org.gnome.Epiphany.WebAppProvider.xml 
b/plugins/epiphany/org.gnome.Epiphany.WebAppProvider.xml
index 9ff86cd55..e61cf840a 100644
--- a/plugins/epiphany/org.gnome.Epiphany.WebAppProvider.xml
+++ b/plugins/epiphany/org.gnome.Epiphany.WebAppProvider.xml
@@ -7,22 +7,14 @@
       org.gnome.Epiphany.WebAppProvider:
       @short_description: Webapp provider interface
 
-      The interface used for handling Epiphany Webapps in GNOME Software.
-
-      This documentation describes version 1 of this interface.
+      The interface used for handling Epiphany Webapps in GNOME Software, or other
+      clients (version 1).
   -->
   <interface name="org.gnome.Epiphany.WebAppProvider">
-    <!--
-        version:
-
-        The API version number.
-    -->
-    <property name="version" type="u" access="read"/>
-
     <!--
         GetInstalledApps:
         @desktop_file_ids: An array of .desktop file names, one for each
-          installed web app
+          installed web app, with the .desktop suffix included
 
         Returns the set of installed Epiphany web applications. The caller can
         use them with g_desktop_app_info_new() if outside the sandbox.
@@ -49,6 +41,10 @@
         installation without a user facing dialog. The icon given to
         org.freedesktop.portal.InstallDynamicLauncher.RequestInstallToken() will
         be used, and the name given to that method should match the @name given here.
+
+        If the arguments passed are invalid this method returns the error
+        `org.gnome.Epiphany.WebAppProvider.Error.InvalidArgs`, and otherwise
+        `org.gnome.Epiphany.WebAppProvider.Error.Failed`.
     -->
     <method name="Install">
       <arg type="s" name="url" direction="in" />
@@ -58,16 +54,28 @@
 
     <!--
         Uninstall:
-        @desktop_file_id: the filename of the .desktop file for an installed web app
+        @desktop_file_id: the filename of the .desktop file for an installed web
+          app, with the .desktop suffix
 
         Uninstalls a web app. Note that the @desktop_file_id is just a filename
         not a full path, and it's the same one returned by the
         GetInstalledWebApps() method.
 
-        An error will be returned if the specified web app is not installed.
+        The error `org.gnome.Epiphany.WebAppProvider.Error.NotInstalled` will be
+        returned if the specified web app is not installed. The other possible
+        error values are `org.gnome.Epiphany.WebAppProvider.Error.InvalidArgs`
+        and `org.gnome.Epiphany.WebAppProvider.Error.Failed`.
     -->
     <method name="Uninstall">
       <arg type="s" name="desktop_path" direction="in" />
     </method>
+    <!--
+        Version:
+
+        The API version number, to be incremented for backwards compatible
+        changes so clients can determine which features are available. For
+        backwards incompatible changes, the interface name will change.
+    -->
+    <property name="Version" type="u" access="read"/>
   </interface>
 </node>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]