nyxt icon indicating copy to clipboard operation
nyxt copied to clipboard

`mailto` links don't work

Open wongandj opened this issue 1 year ago • 2 comments

Describe the bug Links with addresses starting with mailto: don't open in the mail client; instead nyxt attempts to open them and fails. This is an issue, as many places where mailto links are used (e.g. mailing list web interfaces) include parameters that otherwise can't be set in the UI of many email clients (e.g. "In-Reply-To" headers.) Precise recipe to reproduce the issue Enter the command xdg-open mailto:[email protected]. If properly configured, your mail client should open. Now, launch nyxt and click this link. Nyxt will fail to launch your mail client.

For website-specific issues: Can you reproduce this issue with Epiphany / GNOME Web (https://wiki.gnome.org/Apps/Web)? N/A

Information

  • OS name+version: Guix 070c073
  • Graphics card and driver: AMD Radeon 7900XTX, radv Mesa 24.3.2
  • Desktop environment / Window manager name+version: Hyprland 0.47.0
  • Installation method (Flatpak, Guix, package manager, build from source): Guix (channel aadcg cb6faa5, aadcg-nyxt)
  • Output of nyxt --system-information:
Nyxt version: 3.12.0
Renderer: GI-GTK
Operating system kernel: Linux 6.12.11
Lisp implementation: SBCL 2.4.10 (Dynamic space size: 3221225472)
Features: (:NYXT-GI-GTK :NYXT-GTK :NYXT-GI-GTK :NYXT-GTK :NYXT-3.12 :NYXT-3 :NYXT-3.12.0
 :CLIPBOARD-CONTENT-METHOD :SWANK :SLYNK :PLUMP-UTF-32 :PARENSCRIPT :NSYMBOLS
 :FSET-EXT-STRINGS :SBCL+SAFE-STANDARD-READTABLE :NAMED-READTABLES :GLOBAL-VARS
 :CL-FAD :LPARALLEL :21BIT-CHARS :CUSTOM-HASH-TABLE-NATIVE :CL-PPCRE-UNICODE
 :CL-UNICODE :CL-JSON-DOUBLE-FLOAT-IS-SUBSUMED
 :CL-JSON-SINGLE-FLOAT-IS-SUBSUMED :CHUNGA :FLEXI-STREAMS :CL-PPCRE :WEBKIT2
 :WEBKIT-2.44.1 :WEBKIT-2.44 :WEBKIT-2 :WEBKIT2-CORS-ALLOWLIST
 :WEBKIT2-PASTE-PLAINTEXT :WEBKIT2-TRACKING :WEBKIT2-MUTE :WEBKIT2-EMOJI
 :WEBKIT2-MEDIA :WEBKIT2-SANDBOXING :GTK-3-22 :GTK-3-20 :GTK-3-18 :GTK-3-16
 :GTK-3-14 :GTK-3-12 :GTK-3-10 :GTK-3-8 :GTK-3-6 :GTK-3-4 :GTK :GDK-3-22
 :GDK-3-20 :GDK-3-18 :GDK-3-16 :GDK-3-14 :GDK-3-12 :GDK-3-10 :GDK-3-8 :GDK-3-6
 :GDK-3-4 :CAIRO-1-10 :CAIRO-1-12 :GDK-PIXBUF :CLOSER-MOP :GLIB-2-30 :GLIB-2-32
 :GLIB-2-34 :GLIB-2-36 :GLIB-2-38 :GLIB-2-40 :GLIB-2-42 :GLIB-2-44 :GLIB-2-46
 :GLIB-2-48 :GLIB-2-50 :GLIB-2-52 :GLIB-2-54 :GLIB-2-56 :GLIB-2-58 :GLIB
 :BORDEAUX-THREADS :LPARALLEL.WITH-CLTL2 :LPARALLEL.WITH-CAS
 :LPARALLEL.WITH-STEALING-SCHEDULER :SPLIT-SEQUENCE
 CFFI-FEATURES:FLAT-NAMESPACE CFFI-FEATURES:X86-64 CFFI-FEATURES:UNIX :CFFI
 CFFI-SYS::FLAT-NAMESPACE ALEXANDRIA::SEQUENCE-EMPTYP :FAST-IO-SV :FAST-IO
 :CL-JSON-CLOS :CL-JSON :SBCL-USES-SB-ROTATE-BYTE CHIPZ-SYSTEM:GRAY-STREAMS
 :THREAD-SUPPORT :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-UNIX
 :NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :ARENA-ALLOCATOR :X86-64 :GENCGC :64-BIT
 :ANSI-CL :COMMON-LISP :ELF :IEEE-FLOATING-POINT :LINUX :LITTLE-ENDIAN
 :PACKAGE-LOCAL-NICKNAMES :SB-CORE-COMPRESSION :SB-LDB :SB-PACKAGE-LOCKS
 :SB-THREAD :SB-UNICODE :SBCL :UNIX)

ASDF version: 3.3.7
ASDF registries: (NYXT-SOURCE-REGISTRY ENVIRONMENT-SOURCE-REGISTRY)
Critical dependencies: (/tmp/guix-build-aadcg-nyxt-3.12.0.drv-0/source/_build/cl-cffi-gtk/gtk/cl-cffi-gtk.asd
 /tmp/guix-build-aadcg-nyxt-3.12.0.drv-0/source/_build/cl-gobject-introspection/cl-gobject-introspection.asd
 /tmp/guix-build-aadcg-nyxt-3.12.0.drv-0/source/_build/cl-webkit/webkit2/cl-webkit2.asd)

Guix version: 

Output when started from a shell

~ 🮲🮳 nyxt
Nyxt version 3.12.0
<INFO> [00:10:16] Source location: #P"/gnu/store/hd7mgl09glflizslbvjn5qffgdjbi349-aadcg-nyxt-3.12.0/share/nyxt/"
<INFO> [00:10:16] Loading Lisp file #P"/home/wong/.config/nyxt/auto-config.3.lisp".
<INFO> [00:10:16] Loading Lisp file #P"/home/wong/.config/nyxt/config.lisp".
<INFO> [00:10:16] Listening to socket: #P"/run/user/1000/nyxt/nyxt.socket"

(process:2): Gtk-WARNING **: 05:10:16.286: Locale not supported by C library.
        Using the fallback 'C' locale.

(WebKitWebProcess:2): Gdk-WARNING **: 05:10:16.290: Failed to read portal settings: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface ?org.freedesktop.portal.Settings? on object at path /org/freedesktop/portal/desktop
<INFO> [00:10:16] Loading #P"/home/wong/.local/share/nyxt/history/default.lisp".

(process:2): Gtk-WARNING **: 05:10:16.807: Locale not supported by C library.
        Using the fallback 'C' locale.

(WebKitWebProcess:2): Gdk-WARNING **: 05:10:16.810: Failed to read portal settings: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface ?org.freedesktop.portal.Settings? on object at path /org/freedesktop/portal/desktop
<INFO> [00:10:16] Loading #P"/home/wong/.local/share/nyxt/auto-rules.lisp".
<INFO> [00:10:16] Loading #P"/home/wong/.local/share/nyxt/hostlist-stevenblack.txt".
<INFO> [00:10:16] Restoring 5 buffers from history.

(process:2): Gtk-WARNING **: 05:10:17.566: Locale not supported by C library.
        Using the fallback 'C' locale.

(WebKitWebProcess:2): Gdk-WARNING **: 05:10:17.569: Failed to read portal settings: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface ?org.freedesktop.portal.Settings? on object at path /org/freedesktop/portal/desktop
<INFO> [00:10:17] Loading "https://github.com/atlas-engineer/nyxt/issues/new?template=bug_report.md".

(process:2): Gtk-WARNING **: 05:10:17.712: Locale not supported by C library.
        Using the fallback 'C' locale.

(WebKitWebProcess:2): Gdk-WARNING **: 05:10:17.715: Failed to read portal settings: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface ?org.freedesktop.portal.Settings? on object at path /org/freedesktop/portal/desktop
<INFO> [00:10:19] Finished loading "https://github.com/atlas-engineer/nyxt/issues/new?template=bug_report.md".

** (nyxt:12190): WARNING **: 00:10:36.761: WebKitWebView returned by WebKitWebView::create signal was not created with the related WebKitWebView

(process:2): Gtk-WARNING **: 05:10:36.792: Locale not supported by C library.
        Using the fallback 'C' locale.

(WebKitWebProcess:2): Gdk-WARNING **: 05:10:36.795: Failed to read portal settings: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface ?org.freedesktop.portal.Settings? on object at path /org/freedesktop/portal/desktop
<INFO> [00:10:36] Failed to load URL mailto:[email protected] in buffer 6005.
<INFO> [00:10:36] Loading "mailto:[email protected]".
<INFO> [00:10:36] Loading "mailto:[email protected]".
<INFO> [00:10:36] Finished loading "mailto:[email protected]".
<INFO> [00:10:36] Finished loading "mailto:[email protected]".
<INFO> [00:10:40] Loading "https://github.com/atlas-engineer/nyxt/issues/new?template=bug_report.md".
<INFO> [00:10:41] Finished loading "https://github.com/atlas-engineer/nyxt/issues/new?template=bug_report.md".
<INFO> [00:10:41] Deleting socket #P"/run/user/1000/nyxt/nyxt.socket".

wongandj avatar Feb 02 '25 05:02 wongandj

That seems easy to fix. Just see how the javascript scheme is handled in buffer-load. Patches welcome.

aadcg avatar Feb 03 '25 10:02 aadcg

buffer-load may only handle requests that we explicitly load, if the user clicks on the link, then it shall not work!

jmercouris avatar Mar 02 '25 19:03 jmercouris