Base: Launch Clipboard at session start-up

The clipboard service hasn't been ported to user-based portals with
others services as it is needed at `GUI::Application` creation and thus
before the first login, as the `LoginServer` needs one.

This problem as been solved thanks to session-based portals, a clipboard
portal is now created at boot for the "login" session and another for
each "user" session.

With a user-based portal, the "login" portal would have needed to be
created for the `root` user, exposing us to security issues. It now, can
be owned by the `window` user.
This commit is contained in:
Lucas CHOLLET 2022-10-04 16:19:08 +02:00 committed by Linus Groh
parent 1be337353b
commit 3197c1793a
3 changed files with 8 additions and 3 deletions

View file

@ -20,10 +20,10 @@ User=window
StdIO=/dev/tty0
[Clipboard]
Socket=/tmp/portal/clipboard
Socket=/tmp/session/%sid/portal/clipboard
SocketPermissions=600
Priority=low
User=anon
User=window
[Shell@tty0]
Executable=/bin/Shell

View file

@ -1,3 +1,8 @@
[Clipboard]
Socket=/tmp/session/%sid/portal/clipboard
SocketPermissions=600
Priority=low
[ConfigServer]
Socket=/tmp/session/%sid/portal/config
SocketPermissions=600

View file

@ -16,7 +16,7 @@ namespace GUI {
class ConnectionToClipboardServer final
: public IPC::ConnectionToServer<ClipboardClientEndpoint, ClipboardServerEndpoint>
, public ClipboardClientEndpoint {
IPC_CLIENT_CONNECTION(ConnectionToClipboardServer, "/tmp/portal/clipboard"sv)
IPC_CLIENT_CONNECTION(ConnectionToClipboardServer, "/tmp/session/%sid/portal/clipboard"sv)
private:
ConnectionToClipboardServer(NonnullOwnPtr<Core::Stream::LocalSocket> socket)