[PATCH weston] introduces a setting to give permission to any client to do screenshots
Bill Spitzak
spitzak at gmail.com
Mon Dec 16 13:32:58 PST 2013
Could an api be added so that one client can "give" access to an object
to another client? This would allow a single secure client to implement
all the rules for what is allowed to be a screen saver, rather than
having the rules be in the compositor.
What I thought was something like this:
- "secure" client gets the object id for the screen shooter api
- It can ask the compositor for a "key" to this id. This is a big
random-looking number
- It then sends this key (using any method it wants, such as argv to
exec) to a client that does not have any more privledges other than
being able to connect to the wayland compositor.
- This client sends the key in a new request to the compositor
- If the key is one it recently generated, the compositor responds with
something much like the global registry events, giving the type and id
of the same object. Otherwise it responds with an error.
- Client can now use the screen shooter object.
This does not really solve the screen shooter problem, but perhaps moves
it somewhere more convenient.
I also think this api would be useful so that a parent client can create
a subsurface and then pass it to a child executable to draw into. This
appears a lot simpler than the proposed mechanism where the child
creates the subsurface.
Speaking from a user pov:
If the user wants to run a screen saver app they downloaded, then when
they run it the first time it should pop up a dialog saying "this app
wants to be able to take images of the screen" and if the user hits ok
it runs. Anything more complicated than that, including anything
requiring the screen shooter to be "installed" or giving it setuid, is
unacceptable.
More information about the wayland-devel
mailing list