No, I can't file one. I was told by Praveen Narayanaswamy via 
https://bugreport.java.com/bugreport/ that I should send an email to 
awt-dev@openjdk.java.net for feature requests.

Excerpts from Sergey Bylokhov's message of August 12, 2020 12:11 am:
> Hi, Alex.
> 
> Do you have a bugid for this issue?
> 
> On 04.08.2020 05:23, alex.hell...@gmail.com wrote:
>> From: "Alex Xu (Hello71)" <alex_y...@yahoo.ca>
>> 
>> gtk_show_uri uses gappinfo, not gvfs. see 
>> https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2359
>> 
>> this fixes Desktop.browse for systems without gvfs installed. this
>> doesn't accurately reflect systems which use libgnome gnome_url_show,
>> but gtk_show_uri should be used on all modern GNOME systems anyways.
>> ---
>>   .../native/libawt_xawt/awt/gtk2_interface.c   | 37 ++++--------------
>>   .../native/libawt_xawt/awt/gtk2_interface.h   |  2 +-
>>   .../native/libawt_xawt/awt/gtk3_interface.c   | 38 ++++---------------
>>   .../native/libawt_xawt/awt/gtk3_interface.h   |  2 +-
>>   4 files changed, 16 insertions(+), 63 deletions(-)
>> 
>> diff --git a/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.c 
>> b/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.c
>> index 4995044dc49..744868c31f0 100644
>> --- a/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.c
>> +++ b/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.c
>> @@ -362,9 +362,7 @@ do { \
>>   
>>   
>>   static void update_supported_actions(JNIEnv *env) {
>> -    GVfs * (*fp_g_vfs_get_default) (void);
>> -    const gchar * const * (*fp_g_vfs_get_supported_uri_schemes) (GVfs * 
>> vfs);
>> -    const gchar * const * schemes = NULL;
>> +    GAppInfo * (*fp_g_app_info_get_default_for_uri_scheme) (const char *);
>>   
>>       jclass cls_action = (*env)->FindClass(env, "java/awt/Desktop$Action");
>>       CHECK_NULL(cls_action);
>> @@ -385,38 +383,17 @@ static void update_supported_actions(JNIEnv *env) {
>>   
>>       ADD_SUPPORTED_ACTION("OPEN");
>>   
>> -    /**
>> -     * gtk_show_uri() documentation says:
>> -     *
>> -     * > you need to install gvfs to get support for uri schemes such as 
>> http://
>> -     * > or ftp://, as only local files are handled by GIO itself.
>> -     *
>> -     * So OPEN action was safely added here.
>> -     * However, it looks like Solaris 11 have gvfs support only for 32-bit
>> -     * applications only by default.
>> -     */
>> -
>> -    fp_g_vfs_get_default = dl_symbol("g_vfs_get_default");
>> -    fp_g_vfs_get_supported_uri_schemes = 
>> dl_symbol("g_vfs_get_supported_uri_schemes");
>> +    fp_g_app_info_get_default_for_uri_scheme = 
>> dl_symbol("g_app_info_get_default_for_uri_scheme");
>>       dlerror();
>>   
>> -    if (fp_g_vfs_get_default && fp_g_vfs_get_supported_uri_schemes) {
>> -        GVfs * vfs = fp_g_vfs_get_default();
>> -        schemes = vfs ? fp_g_vfs_get_supported_uri_schemes(vfs) : NULL;
>> -        if (schemes) {
>> -            int i = 0;
>> -            while (schemes[i]) {
>> -                if (strcmp(schemes[i], "http") == 0) {
>> -                    ADD_SUPPORTED_ACTION("BROWSE");
>> -                    ADD_SUPPORTED_ACTION("MAIL");
>> -                    break;
>> -                }
>> -                i++;
>> -            }
>> +    if (fp_g_app_info_get_default_for_uri_scheme) {
>> +        if (fp_g_app_info_get_default_for_uri_scheme("http")) {
>> +            ADD_SUPPORTED_ACTION("BROWSE");
>> +            ADD_SUPPORTED_ACTION("MAIL");
>>           }
>>       } else {
>>   #ifdef DEBUG
>> -        fprintf(stderr, "Cannot load g_vfs_get_supported_uri_schemes\n");
>> +        fprintf(stderr, "Cannot load 
>> g_app_info_get_default_for_uri_scheme\n");
>>   #endif /* DEBUG */
>>       }
>>   
>> diff --git a/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h 
>> b/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h
>> index 18e53496899..45b149ea40e 100644
>> --- a/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h
>> +++ b/src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h
>> @@ -51,7 +51,7 @@ typedef enum
>>   
>>   /* We define all structure pointers to be void* */
>>   typedef void GMainContext;
>> -typedef void GVfs;
>> +typedef void GAppInfo;
>>   
>>   typedef void GdkColormap;
>>   typedef void GdkDrawable;
>> diff --git a/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c 
>> b/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c
>> index 886437e2a79..bd5afbcbf00 100644
>> --- a/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c
>> +++ b/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c
>> @@ -135,9 +135,7 @@ do {                                                     
>>                       \
>>   
>>   
>>   static void update_supported_actions(JNIEnv *env) {
>> -    GVfs * (*fp_g_vfs_get_default) (void);
>> -    const gchar * const * (*fp_g_vfs_get_supported_uri_schemes) (GVfs * 
>> vfs);
>> -    const gchar * const * schemes = NULL;
>> +    GAppInfo * (*fp_g_app_info_get_default_for_uri_scheme) (const gchar *);
>>   
>>       jclass cls_action = (*env)->FindClass(env, "java/awt/Desktop$Action");
>>       CHECK_NULL(cls_action);
>> @@ -163,39 +161,17 @@ static void update_supported_actions(JNIEnv *env) {
>>   
>>       ADD_SUPPORTED_ACTION("OPEN");
>>   
>> -    /**
>> -     * gtk_show_uri() documentation says:
>> -     *
>> -     * > you need to install gvfs to get support for uri schemes such as 
>> http://
>> -     * > or ftp://, as only local files are handled by GIO itself.
>> -     *
>> -     * So OPEN action was safely added here.
>> -     * However, it looks like Solaris 11 have gvfs support only for 32-bit
>> -     * applications only by default.
>> -     */
>> -
>> -    fp_g_vfs_get_default = dl_symbol("g_vfs_get_default");
>> -    fp_g_vfs_get_supported_uri_schemes =
>> -                           dl_symbol("g_vfs_get_supported_uri_schemes");
>> +    fp_g_app_info_get_default_for_uri_scheme = 
>> dl_symbol("g_app_info_get_default_for_uri_scheme");
>>       dlerror();
>>   
>> -    if (fp_g_vfs_get_default && fp_g_vfs_get_supported_uri_schemes) {
>> -        GVfs * vfs = fp_g_vfs_get_default();
>> -        schemes = vfs ? fp_g_vfs_get_supported_uri_schemes(vfs) : NULL;
>> -        if (schemes) {
>> -            int i = 0;
>> -            while (schemes[i]) {
>> -                if (strcmp(schemes[i], "http") == 0) {
>> -                    ADD_SUPPORTED_ACTION("BROWSE");
>> -                    ADD_SUPPORTED_ACTION("MAIL");
>> -                    break;
>> -                }
>> -                i++;
>> -            }
>> +    if (fp_g_app_info_get_default_for_uri_scheme) {
>> +        if (fp_g_app_info_get_default_for_uri_scheme("http")) {
>> +            ADD_SUPPORTED_ACTION("BROWSE");
>> +            ADD_SUPPORTED_ACTION("MAIL");
>>           }
>>       } else {
>>   #ifdef DEBUG
>> -        fprintf(stderr, "Cannot load g_vfs_get_supported_uri_schemes\n");
>> +        fprintf(stderr, "Cannot load 
>> g_app_info_get_default_for_uri_scheme\n");
>>   #endif /* DEBUG */
>>       }
>>   
>> diff --git a/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.h 
>> b/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.h
>> index 8b461ff335e..faafa44501a 100644
>> --- a/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.h
>> +++ b/src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.h
>> @@ -177,7 +177,7 @@ typedef enum _cairo_status {
>>   /* We define all structure pointers to be void* */
>>   typedef void GdkPixbuf;
>>   typedef void GMainContext;
>> -typedef void GVfs;
>> +typedef void GAppInfo;
>>   
>>   typedef void GdkColormap;
>>   typedef void GdkDrawable;
>> 
> 
> 
> -- 
> Best regards, Sergey.
> 

Reply via email to