This is a table of plasmoids vs. security constraints. they need to be checked before release, because we can't actually force c++ code to follow them.
the table's a bit ugly, but functional; if you're good with wiki syntax feel free to make it prettier. :)
the meaning of cells in this table:
- R: Required
- O: Optional
- U: Unused
- 1: couldn't check (crash or similar)
- 2: too much effort (like, non-applet class needs to access Applet::hasAuthorization)
- 3: way too much effort (webkit, urgh)
- 4: low priority (doesn't belong on screensaver)
after checking a plasmoid+feature, X-Plasma-Requires-<feature> in the plasmoid's .desktop should be set to one of Required, Optional or Unused.
- Required: the plasmoid cannot do without this feature
- Unused: the plasmoid doesn't use this feature at all
- Optional: it has made optional in the code using hasAuthorization() (see the comic or picture-frame for examples)
tips on checking for features:
- anything in the config dialog doesn't count
- FileDialog can just be grepped for - I'm not aware of anything that a plasmoid is likely to use that could expose it indirectly.
- LaunchApp can usually be checked by grepping for KRun. there are exceptions, though - battery uses KToolInvocation::kdeinitExec.
- it's always good to play with the actual plasmoid a bit if you can't remember every single feature it has.
TODO: plasmoids that are new in 4.4 need adding to this list!