Files
ladybird/Base/etc/SystemServer.ini
Andreas Kling e3782a7f99 ImageDecoder: Add a new service for out-of-process image decoding :^)
The new ImageDecoder service (available for members of "image" via
/tmp/portal/image) allows you to decode images in a separate process.

This will allow programs to confidently load untrusted images, since
the bulk of the security concerns are sandboxed to a separate process.

The only API right now is a synchronous IPC DecodeImage() call that
takes a shbuf with encoded image data and returns a shared buffer and
metadata for the decoded image.

It also comes with a very simple library for interfacing with the
ImageDecoder service: LibImageDecoderClient. The name is a bit of a
mouthful but I guess we can rename it later if we think of something
nicer to call it.

There's obviously a bit of overhead to spawning a separate process
for every image decode, so this is mostly only appropriate for
untrusted images (e.g stuff downloaded from the web) and not necessary
for trusted local images (e.g stuff in /res)
2020-06-22 21:47:00 +02:00

143 lines
2.1 KiB
INI

[ProtocolServer]
Socket=/tmp/portal/protocol
SocketPermissions=660
Lazy=1
Priority=low
KeepAlive=1
User=protocol
BootModes=text,graphical
[WebContent]
Socket=/tmp/portal/webcontent
SocketPermissions=660
Lazy=1
User=webcontent
BootModes=graphical
MultiInstance=1
AcceptSocketConnections=1
[ImageDecoder]
Socket=/tmp/portal/image
SocketPermissions=660
Lazy=1
User=image
BootModes=graphical
MultiInstance=1
AcceptSocketConnections=1
[LookupServer]
Socket=/tmp/portal/lookup
SocketPermissions=660
Lazy=1
Priority=low
KeepAlive=1
User=lookup
BootModes=text,graphical
[DHCPClient]
Priority=low
KeepAlive=1
User=root
BootModes=text,graphical
[NotificationServer]
Socket=/tmp/portal/notify
SocketPermissions=660
Lazy=1
Priority=low
KeepAlive=1
User=notify
[LaunchServer]
Socket=/tmp/portal/launch
SocketPermissions=600
Lazy=1
User=anon
BootModes=text,graphical
[WindowServer]
Socket=/tmp/portal/window
SocketPermissions=660
Priority=high
KeepAlive=1
User=window
[Clipboard]
Socket=/tmp/portal/clipboard
SocketPermissions=660
Priority=low
User=clipboard
[SystemMenu]
KeepAlive=1
User=anon
[Clock.MenuApplet]
KeepAlive=1
Priority=low
User=anon
[CPUGraph.MenuApplet]
Executable=/bin/ResourceGraph.MenuApplet
Arguments=--cpu --name=CPUGraph --color=limegreen
Priority=low
KeepAlive=1
User=anon
[MemoryGraph.MenuApplet]
Executable=/bin/ResourceGraph.MenuApplet
Arguments=--memory --name=MemoryGraph --color=cyan
Priority=low
KeepAlive=1
User=anon
[Audio.MenuApplet]
Priority=low
KeepAlive=1
User=anon
[UserName.MenuApplet]
Priority=low
KeepAlive=1
User=anon
[ClipboardHistory.MenuApplet]
Priority=low
KeepAlive=1
User=anon
[AudioServer]
Socket=/tmp/portal/audio
# TODO: we may want to start it lazily, but right now WindowServer connects to it immediately on startup
Priority=high
KeepAlive=1
User=anon
[Taskbar]
KeepAlive=1
User=anon
[Desktop]
Executable=/bin/FileManager
Arguments=--desktop
KeepAlive=1
User=anon
[Terminal]
User=anon
WorkingDirectory=/home/anon
[Shell@tty0]
Executable=/bin/Shell
StdIO=/dev/tty0
Environment=TERM=xterm
KeepAlive=1
BootModes=text
[Shell@tty1]
Executable=/bin/Shell
StdIO=/dev/tty1
Environment=TERM=xterm
KeepAlive=1
BootModes=text