<table><tr><td style="">GeeXT created this revision.<br />GeeXT added a reviewer: jgrulich.<br />Herald added a project: Frameworks.<br />Herald added a subscriber: kde-frameworks-devel.<br />GeeXT requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D18762">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Currently KRun in Flatpak/Snap doesn't support portals so it can't launch an application<br />
for a given url (because it can't break through sandbox). This patch allows KRun to use<br />
portals to pass the url through sandbox. QDesktopServices::openUrl handles that case and sends<br />
appropriate DBus calls to portals, so URIs will be proccessed accordingly by host system.</p>

<p>FEATURE: 399380</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>I couldn't build KIO from master in current flatpak KDE runtime (even without the patch), so here are commands to test the patch on top<br />
of KIO 5.54.1:</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">Install org.kde.Sdk 5.12 from flathub</li>
<li class="remarkup-list-item">Install org.kde.konversation from KDE Nightly flatpak repo (<a href="https://community.kde.org/Guidelines_and_HOWTOs/Flatpak" class="remarkup-link" target="_blank" rel="noreferrer">https://community.kde.org/Guidelines_and_HOWTOs/Flatpak</a>)</li>
<li class="remarkup-list-item">Apply the patch to KIO 5.54.1</li>
<li class="remarkup-list-item">run 'flatpak run --filesystem=host --command=sh --devel org.kde.Sdk//5.12' to enter SDK</li>
<li class="remarkup-list-item">build KIO</li>
<li class="remarkup-list-item">exit SDK (exit or Ctrl+D)</li>
<li class="remarkup-list-item">run flatpak shell with Konversation 'flatpak run --filesystem=host --command=sh org.kde.konversation'</li>
<li class="remarkup-list-item">run LD_PRELOAD="path/to/libKF5KIOCore.so path/top/libKF5KIOWidgets.so path/to/libKF5KIOFileWidgets.so" /app/bin/konversation</li>
</ol>

<p>to run it with just compiled KIO (the compiled libraries are located in bin directory inside your build directory)<br />
Now link clicks should pass sandbox and do the appropriate actions (open browser for http links, email application for mailto links,<br />
file manager for file://...)</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R241 KIO</div></div></div><br /><div><strong>BRANCH</strong><div><div>flatpak_open_url (branched from master)</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D18762">https://phabricator.kde.org/D18762</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>src/widgets/krun.cpp</div></div></div><br /><div><strong>To: </strong>GeeXT, jgrulich<br /><strong>Cc: </strong>kde-frameworks-devel, michaelh, ngraham, bruns<br /></div>