Bug 393727

Summary: QDesktopServices::openUrl() fails on KDE Plasma
Product: [Applications] Falkon Reporter: Kayra Akman <ckakman>
Component: generalAssignee: David Rosca <nowrep>
Status: RESOLVED NOT A BUG    
Severity: normal CC: ckakman, mgraesslin, private2.6.3
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Kubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Kayra Akman 2018-05-01 12:31:20 UTC
I have filed the following bug report for Qt: https://bugreports.qt.io/browse/QTBUG-68027

It seems that Qt - Plasma integration is not working for openUrl(). I am not sure whether plasma-integration is the correct project for such an error. Please correct the Product if necessary, and close this issue if it needs to be fix in Qt.
Comment 1 Martin Flöser 2018-05-01 13:30:26 UTC
Works for me. Do you have a browser configured at all?
Comment 2 Kayra Akman 2018-05-01 13:39:44 UTC
(In reply to Martin Flöser from comment #1)
> Works for me. Do you have a browser configured at all?

I had only Falkon installed and it was the selected browser. The links in KDE documentation in KHelpCenter was working, so I assumed Falkon was OK.

I have also installed Firefox. Now openUrl() works. Regardless of which browser is selected, Firefox is always opened. So it is not a Qt bug after all.

It seems another bug report is needed for Falkon not being recognized as a valid web browser although Default Applications > Web Browser "knows" about Falkon.
Comment 3 Martin Flöser 2018-05-01 13:44:50 UTC
Moving to falkon, maybe the falkon devs have an idea.
Comment 4 The_assassin 2018-05-02 06:40:45 UTC
>I have filed the following bug report for Qt:
I'm using a GTK system and your test application works here. It just triggers gvfs-open, so i think you just have some system misconfiguration (IMO).
Comment 5 Kayra Akman 2018-05-02 08:50:24 UTC
(In reply to Moonchild from comment #4)
> >I have filed the following bug report for Qt:
> I'm using a GTK system and your test application works here. It just
> triggers gvfs-open, so i think you just have some system misconfiguration
> (IMO).

It turned out Falkon was not recognized/reported as a web browser. Please see Comment #2 by me.
Comment 6 David Rosca 2018-05-02 09:14:32 UTC
Can you test with "xdg-open", that's what QDesktopServices::openUrl() should be calling.
Comment 7 Kayra Akman 2018-05-02 09:54:23 UTC
(In reply to David Rosca from comment #6)
> Can you test with "xdg-open", that's what QDesktopServices::openUrl() should
> be calling.

xdg-open was not available on my system. After installing the xdg-utils package openUrl() successfully opened Falkon. So it was neither Qt, nor KDE Plasma/Falkon issue.

I've checked the relevant function in Qt (http://code.qt.io/cgit/qt/qtbase.git/tree/src/platformsupport/services/genericunix/qgenericunixservices.cpp?h=5.9.5#n106) If xdg-open is not available, Qt checks for kmfclient on KDE. If that check fails, it checks for well-known browsers. That last check explains why Firefox was opened although Falkon was the default browser.

Maybe Falkon should be added upstream into the "if (desktop == QByteArray("KDE"))" section.
Comment 8 David Rosca 2018-05-02 10:03:22 UTC
xdg-open is standard desktop utility, it should be installed by default with all desktop environments. If not, you should probably report bug to your distribution.