| Summary: | Epiphany Browser Webapps fail to launch due to lack of execute permissions on .desktop files | ||
|---|---|---|---|
| Product: | [Frameworks and Libraries] frameworks-kio | Reporter: | angeltmail |
| Component: | general | Assignee: | KIO Bugs <kio-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | a.samirh78, alexander.lohnau, kdelibs-bugs-null, nate |
| Priority: | NOR | ||
| Version First Reported In: | 5.81.0 | ||
| Target Milestone: | --- | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| Latest Commit: | https://invent.kde.org/frameworks/kio/commit/9fef54905d25fcebe7f3f554537df4ceef49a541 | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
|
Description
angeltmail
2021-04-22 16:26:19 UTC
It seems that it is caused by the desktop files being symlinks and in KIO no untrustedProgramHandler is found in KIO::ApplicationLauncherJob::start A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kio/-/merge_requests/427 Git commit 9fef54905d25fcebe7f3f554537df4ceef49a541 by David Faure, on behalf of Ahmad Samir. Committed on 13/05/2021 at 23:06. Pushed by dfaure into branch 'master'. When finding a job delegate extension, also try the uiDelegate() of its parents A use case for this is an OpenUrlJob, urlJob, that has a KIO::JobUiDelegate, it tries to open a .desktop file, and ends up creating an ApplicationLauncherJob subjob, appJob: - calling appJob->setUiDelegate(urlJob->uiDelegate()) won't work because the uiDelegate() of urlJob is already tracking a job - creating a new, basic, KJobUiDelegate for appJob won't work because we need a KIO::JobUiDelegate (e.g. to get a untrustedProgramInterface if the .desktop file isn't owned by root and isn't executable), however KIO::JobUiDelegate is in KIOWidgets and those jobs are in KIOGui Instead, change KIO::delegateExtension() to check the uiDelegate() of the parent of its KJob arg, if that parent is a KCompositeJob (the only class that can have sub-jobs). And if that doesn't work, check the parent of the parent... etc (dfaure's suggestion); until we find one or return nulltpr. M +14 -1 src/core/jobuidelegatefactory.h https://invent.kde.org/frameworks/kio/commit/9fef54905d25fcebe7f3f554537df4ceef49a541 |