[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-frameworks-devel
Subject: D6390: WIP: Add remote runners over DBus
From: David Edmundson <noreply () phabricator ! kde ! org>
Date: 2017-06-26 11:35:05
Message-ID: differential-rev-PHID-DREV-coycrmnnefqnyr2ttpcp-req () phabricator ! kde ! org
[Download RAW message or body]
davidedmundson created this revision.
Restricted Application added projects: Plasma, Frameworks.
Restricted Application added subscribers: Frameworks, plasma-devel.
REVISION SUMMARY
This patch allows adding runners which, rather than being in-process
receive a search term and provide results over DBus.
A metadata file should be installed with metadata for the service and
path, and the remote app should implement the supplied interface.
By using metadata files all the current krunner architecture and config
management works seamlessly, and it allows the possibility for a runner
to be DBus activated if it wants to be.
The goal of this patch is threefold:
- To make it considerably easier to write runners where the data exists
in an already running application. The plasma-browser-integration is a
good example, it currently has it's own custom protocol, and ends up
sending data on all the tabs only to filter it inside krunner, somewhat
wasteful. With this adding searchable tabs to konversation (for example)
would be a ten minute patch.
- Make it easy to write a runner in any other language. An app just
needs to speak DBus with no other dependencies. Potentially even shipped
via the store.
- This approach could work for runners in sandboxes.
TEST PLAN
Wrote new sample app
Got my runner showing results
Brief profiling had roundtrip time as 0ms.
REPOSITORY
R308 KRunner
BRANCH
master
REVISION DETAIL
https://phabricator.kde.org/D6390
AFFECTED FILES
src/CMakeLists.txt
src/data/org.kde.krunner1.xml
src/data/servicetypes/plasma-runner.desktop
src/dbusrunner.cpp
src/dbusrunner_p.h
src/dbusutils_p.h
src/runnermanager.cpp
To: davidedmundson, #plasma
Cc: plasma-devel, #frameworks, ZrenBot, progwolff, lesliezhai, ali-mohamed, \
jensreuterberg, abetts, sebas, apol, mart, lukas
[Attachment #3 (unknown)]
<table><tr><td style="">davidedmundson created this revision.<br />Restricted \
Application added projects: Plasma, Frameworks.<br />Restricted Application added \
subscribers: Frameworks, plasma-devel. </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/D6390" rel="noreferrer">View \
Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>This \
patch allows adding runners which, rather than being in-process<br /> receive a \
search term and provide results over DBus.</p>
<p>A metadata file should be installed with metadata for the service and<br />
path, and the remote app should implement the supplied interface.</p>
<p>By using metadata files all the current krunner architecture and config<br />
management works seamlessly, and it allows the possibility for a runner<br />
to be DBus activated if it wants to be.</p>
<p>The goal of this patch is threefold:</p>
<ul class="remarkup-list">
<li class="remarkup-list-item">To make it considerably easier to write runners where \
the data exists</li> </ul>
<p>in an already running application. The plasma-browser-integration is a<br />
good example, it currently has it's own custom protocol, and ends up<br />
sending data on all the tabs only to filter it inside krunner, somewhat<br />
wasteful. With this adding searchable tabs to konversation (for example) <br />
would be a ten minute patch.</p>
<ul class="remarkup-list">
<li class="remarkup-list-item">Make it easy to write a runner in any other language. \
An app just</li> </ul>
<p>needs to speak DBus with no other dependencies. Potentially even shipped<br />
via the store.</p>
<ul class="remarkup-list">
<li class="remarkup-list-item">This approach could work for runners in \
sandboxes.</li> </ul></div></div><br /><div><strong>TEST PLAN</strong><div><p>Wrote \
new sample app<br /> Got my runner showing results<br />
Brief profiling had roundtrip time as 0ms.</p></div></div><br \
/><div><strong>REPOSITORY</strong><div><div>R308 KRunner</div></div></div><br \
/><div><strong>BRANCH</strong><div><div>master</div></div></div><br \
/><div><strong>REVISION DETAIL</strong><div><a \
href="https://phabricator.kde.org/D6390" \
rel="noreferrer">https://phabricator.kde.org/D6390</a></div></div><br \
/><div><strong>AFFECTED FILES</strong><div><div>src/CMakeLists.txt<br /> \
src/data/org.kde.krunner1.xml<br /> src/data/servicetypes/plasma-runner.desktop<br />
src/dbusrunner.cpp<br />
src/dbusrunner_p.h<br />
src/dbusutils_p.h<br />
src/runnermanager.cpp</div></div></div><br /><div><strong>To: \
</strong>davidedmundson, Plasma<br /><strong>Cc: </strong>plasma-devel, Frameworks, \
ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, \
mart, lukas<br /></div>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic