bug#24066: icecat "mailto" handler does not work - and cannot be reconfigured by user

2020-10-26 Thread Jonathan Brielmaier
This issue annoys me, so I searched for a workaround which I found :)

In Icecat go to about:preferences -> General -> Applications (only a
header): Set mailto to `Use other` and set it to
`/run/current-system/profile/bin/icedove`.

$ grep mailto
/gnu/store/3zxx08qfl9q6d9s80p58521y9x3ni3p1-icedove-78.3.3/share/applications/icedove.desktop
MimeType=x-scheme-handler/mailto;

That seems correct. xdg-open mailto:f...@gnu.org works for me always, so
it really seems a Icecat/Firefox thing...





bug#24066: icecat "mailto" handler does not work - and cannot be reconfigured by user

2020-10-16 Thread Brendan Tildesley
If I click the reply via email button in Icecat, it switches to icedove 
but does not open a reply email at all.
In ungoogled-chromium, it opens up a blank reply email, failing to fill 
the To, CC, Subject with anything.


If I click the equivalent mailto link on the issues page in Icecat, its 
the same
If I click the equivalent mailto link, but in chromium, it opens a 
new email, but only the Subject is filled out. No To or CC.


I've always thus replied to the mailing list by manually copy-pasting 
the the Subject, adding Re:, and trying to find the posters email 
address, and bug address to add in To/CC. Is this related to your bug?








bug#24066: icecat "mailto" handler does not work - and cannot be reconfigured by user

2020-10-13 Thread Maxim Cournoyer
Hello Danny,

Danny Milosavljevic  writes:

[...]

> Checking the application preferences of icecat, it only gives "always
> ask" (note: it doesn't ask) and not an application for "mailto". (in
> GuixSD)

Testing in latest IceCat, there's a 'Use other...' entry in the mailto
applications configuration.  I also saw 'Emacs' in the list of potential
applications to open mailto URIs, tried it and it opened Emacs.

Does that work for you?

To get the applications recognized as supporting this URI scheme, they
must provide a .desktop file which mentions support for it, for example
via a MimeType=x-scheme-handler entry:

--8<---cut here---start->8---
$ grep -rin 'x-scheme-handler' $(guix build weechat)
/gnu/store/...-weechat-2.9/share/applications/weechat.desktop:17:MimeType=x-scheme-handler/irc;x-scheme-handler/ircs;--8<---cut
 here---end--->8---

This information gets compiled into a MIME database by a profile hook
under:

--8<---cut here---start->8---
$ grep 'x-scheme-handler/ircs' 
~/.guix-profile/share/applications/mimeinfo.cache 
x-scheme-handler/ircs=weechat.desktop;
--8<---cut here---end--->8---

And Icecat picks its up to show ircs:// URIs and shows the application
as registered for this type in its Applications settings view.

Maxim





bug#24066: icecat "mailto" handler does not work - and cannot be reconfigured by user

2016-07-25 Thread Danny Milosavljevic
> Unless I misunderstood what you mean: this already exists.  On the page
> you linked to above look for “reply via email to”.  It’s followed by a
> button.  When you click on it you get a “mailto”-Link.

Whoops. I should have read the page better.

However, clicking on that button in icecat does not send E-Mail for me. 

Monitoring the network interface I can see that it redirects to a mailto: URL. 
So that's nice.

Checking the application preferences of icecat, it only gives "always ask" 
(note: it doesn't ask) and not an application for "mailto". (in GuixSD)

Creating my own HTML page with a mailto link doesn't work either.

Therefore, I reported a bug to Guix too.

Bug report follows:

"mailto:; links don't work in icecat.

Checking the icecat source code, there are several ways to handle E-Mail. One 
of them is as "external helper app". One of those (not sure whether it's the 
correct one) uses gio's g_app_info_launch_default_for_uri in order to launch 
helper applications.

There is a test 
icecat-38.8.0/uriloader/exthandler/tests/unit/test_handlerService.js that does:

  let isLinux = ("@mozilla.org/gio-service;1" in Components.classes);
  if (isLinux) {
// Check mailto handler from GIO
// If there isn't one, then we have no mailto handler
let gIOSvc = Cc["@mozilla.org/gio-service;1"].
 createInstance(Ci.nsIGIOService);
try {
  gIOSvc.getAppForURIScheme("mailto");
  noMailto = false;
} catch (ex) {
  noMailto = true;
}
  }

And this ./toolkit/system/gnome/nsGIOService.cpp uses 
g_app_info_launch_default_for_uri .

Therefore, I tried it out:

#include 
#include 
#include 

int main() {
GError* error;
g_app_info_launch_default_for_uri("mailto:f...@example.com;, NULL, 
);
// g_app_info_launch_default_for_uri("http://www.google.at/;, NULL, 
);
if (error) {
g_warning("err %s", error->message);
g_error_free(error);
return 1;
} else
return 0;
}

I get:

** (process:12464): WARNING **: err Operation not supported

If I debug it some more I get:

$ strace -f ./g 2>&1 |grep open |grep -v ENOENT

open("/home/dannym/.local/share//mime/mime.cache", O_RDONLY) = 3
open("/home/dannym/.guix-profile/share/mime/mime.cache", O_RDONLY) = 3
open("/run/current-system/profile/share/mime/mime.cache", O_RDONLY) = 3
open("/home/dannym/.guix-profile/share/mime/mime.cache", O_RDONLY) = 3
open("/run/current-system/profile/share/mime/mime.cache", O_RDONLY) = 3
open("/home/dannym/.guix-profile/lib/gio/modules", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/home/dannym/.guix-profile/lib/gio/modules/giomodule.cache", O_RDONLY) = 4
open("/home/dannym/.guix-profile/lib/gio/modules/libdconfsettings.so", 
O_RDONLY|O_CLOEXEC) = 4
open("/run/current-system/profile/lib/gio/modules", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/run/current-system/profile/lib/gio/modules/giomodule.cache", O_RDONLY) = 
4
open("/gnu/store/6qrijb6cfyvs8svacr0l9a75vcpypr5f-glib-2.48.0/lib/gio/modules", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/gnu/store/4lbgxvsk8xl75hlkjqgrqvmpq74app73-dconf-0.26.0/lib/gio/modules",
 O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/gnu/store/4lbgxvsk8xl75hlkjqgrqvmpq74app73-dconf-0.26.0/lib/gio/modules/giomodule.cache",
 O_RDONLY) = 4
open("/home/dannym/.guix-profile/lib/gio/modules", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/home/dannym/.guix-profile/lib/gio/modules/giomodule.cache", O_RDONLY) = 4
open("/run/current-system/profile/lib/gio/modules", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open("/run/current-system/profile/lib/gio/modules/giomodule.cache", O_RDONLY) = 
4
open("/gnu/store/m3py3rk71ihlfgvj2kss7054hwfqwkpq-glib-2.48.0/lib/gio/modules", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
[pid 12632] open("/usr/share/locale/locale.alias", O_RDONLY 
[pid 12632] open("/home/dannym/.config/mimeapps.list", O_RDONLY) = 5
[pid 12632] 
open("/gnu/store/8m00x5x8ykmar27s9248cmhnkdb2n54a-glibc-2.22/lib/gconv/gconv-modules",
 O_RDONLY|O_CLOEXEC) = 5
[pid 12632] open("/home/dannym/.local/share/applications", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5
[pid 12632] open("/home/dannym/.local/share/applications/mimeapps.list", 
O_RDONLY) = 5
[pid 12632] open("/home/dannym/.local/share/applications/mimeinfo.cache", 
O_RDONLY) = 5
[pid 12632] open("/home/dannym/.guix-profile/share/applications", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5
[pid 12632] open("/run/current-system/profile/share/applications", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5
[pid 12632] 
open("/run/current-system/profile/share/applications/mimeinfo.cache", O_RDONLY) 
= 5
[pid 12632] open("/home/dannym/.guix-profile/share/applications", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5
[pid 12632] open("/run/current-system/profile/share/applications", 
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5
[pid 12632]