web-dev-qa-db-fra.com

Cliquer sur le lien dans PDF génère des milliers de processus xdg-open

J'ai un PDF avec un lien vers une page Web, qui fonctionnait auparavant (il ouvrirait le lien dans Firefox, via xdg-open). Cependant, lorsque je clique dessus maintenant, littéralement des milliers des processus xdg-open sont démarrés et le plasma-desktop fonctionne à 100% cpu.

Je ne sais pas comment commencer à résoudre ce problème. Qu'est-ce qui pourrait provoquer ce problème?

Un exemple de problème PDF est ici .

Voici une capture d'écran de ce qui se passe. Notez la barre des tâches corrompue en raison de milliers d'instances xdg-open Here is a screenshot of what happens. Note the corrupted taskbar due to thousands of xdg-open instances

2
Supernormal

Il semble que le coupable était un mauvais paramètre dans Dolphin, où l'action par défaut "ouvrir en tant que" pour les fichiers html était xdg-open, ce qui, je suppose, a provoqué une boucle infinie. Après avoir changé le programme par défaut en Firefox à la place, il fonctionne comme prévu.

J'aurais pensé qu'avoir sélectionné Firefox dans "Paramètres système/Programmes par défaut" aurait suffi, mais apparemment pas.

0
Supernormal

Je viens de rencontrer le même problème, mais pour avoir ouvert un mailto: lien. L'approche pour déboguer le problème est probablement similaire à la vôtre, cependant.

Tout d'abord, trouvez ce qui gère le schéma mailto (ou dans votre cas, http):

$ xdg-mime query default x-scheme-handler/mailto
kmailservice5.desktop

Maintenant, qu'est-ce que kmailservice5.desktop?

$ locate kmailservice5.desktop
/usr/share/applications/kmailservice5.desktop

L'ouverture du fichier ci-dessus montre:

[Desktop Entry]
Type=Application
Exec=kmailservice5 %u
Icon=mail-message-new
MimeType=x-scheme-handler/mailto;

X-DocPath=kioslave5/mailto/index.html
NoDisplay=true

# KMailService is the handler for mailto URLs
Name=KMailService
...

Je me demande quoi kmailservice5 Est-ce que?

$ kmailservice5 --help
   xdg-open -- opens a file or URL in the user's preferred
   application

Synopsis

   xdg-open { file | URL }

   xdg-open { --help | --manual | --version }

Use 'man xdg-open' or 'xdg-open --manual' for additional info.

C'est exactement la même sortie que xdg-open --help! C'est bizarre ... J'ai recherché la source de kmailservice5 et trouvé http://api.kde.org/frameworks-api/frameworks5-apidocs/kio/html/kmailservice_8cpp_source.html . Il s'agit d'une application simple qui appelle QDesktopServices::openUrlhttps://doc.qt.io/qt-5/qdesktopservices.html#openUrl (Dans KDE4, l'application de messagerie a été explicitement invoquée via KToolInvocation::invokeMailer ; Ma mise à niveau partielle vers KDE5 est probablement la raison de cette rupture).

En d'autres termes, mailto: ... ouvre le gestionnaire de mailto :, qui ouvre le gestionnaire de mailto :, etc. Cela ne se termine jamais et la seule façon de terminer cette boucle était d'émettre killall kde-open plasma-desktop.


Pour résoudre le problème, j'ai créé un robs-mailto.desktop avec le contenu suivant:

[Desktop Entry]
Type=Application
Exec=kdialog --msgbox "Rob's mailto handler: %u"
Icon=mail-message-new
MimeType=x-scheme-handler/mailto;

Name=RobsMailtoHandler

et l’a enregistré comme suit:

$ xdg-mime default robs-mailto.desktop x-scheme-handler/mailto

et vérifié qu'il était correctement enregistré:

$ xdg-mime query default x-scheme-handler/mailto
robs-mailto.desktop

$ xdg-open mailto:[email protected]
# (opened a KDialog window that printed the email address, as I specified)
3
Rob W

Oui, ne faites pas de xdg-open l'application préférée. Parce que le travail de xdg-open est pour trouver l'application préférée. Une récursion infinie s'ensuit.

En d'autres termes, xdg-open est un "client" du système de préférences mime/apps. Il faut spécifier quelque part ce qui est réellement est l'application préférée, et cela ne peut pas être xdg-open lui-même.

Avez-vous défini xdg-open comme application préférée pour le texte/html, ou cela a-t-il été fait par votre distribution?

1
David Faure