User:Chani/Plans/ConstraintsList: Difference between revisions

From KDE TechBase
(Created page with 'the meaning of cells in this table: *nothing: that constraint for that plasmoid has not been checked yet *T: the plasmoid cannot satisfy this constraint and X-Plasma-Requires-<co...')
 
(constraintslist for 4.5 done)
 
(32 intermediate revisions by 3 users not shown)
Line 1: Line 1:
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:
the meaning of cells in this table:
*nothing: that constraint for that plasmoid has not been checked yet
*R: Required
*T: the plasmoid cannot satisfy this constraint and X-Plasma-Requires-<contraint>=true has been set in the .desktop file.
*O: Optional
*F: the plasmoid satisfies this constraint and X-Plasma-Requires-<contraint>=false has been set in the .desktop file.
*U: Unused
*O: it has made optional in the code using isAllowed, and X-Plasma-Requires-<contraint>=false has been set in the .desktop file.
*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.


oh bloody hell. the .desktop file has no way to mark optional, which is bad for scripts, because if they say false they may never get it at all. FIXME I think I need to change from a bool to an enum or something, and I hope it's not too late.
TODO: a few of the 'required' entries for 4.4 could be made optional with a little work (weather, for example). we just don't really have the time.


{|  
{|  
|-
|-
! Plasmoid
! Plasmoid
! 4.3
! 4.3
! 4.4
! 4.4
! 4.5
! 4.5
|-
!
! FileDialog
! LaunchApp
! FileDialog
! LaunchApp
! FileDialog
! FileDialog
! KRun
! LauchApp
|-
|-
! colspan=3 | workspace/plasma
! colspan=7 | workspace/plasma
|-
|-
| activitybar
| activitybar
| U
| U
| U
| U
|-
| analog-clock
| U
| U
| U
| U
| U
| U
|-
| battery
| U
| O
| U
| O
| U
| O
|-
| calendar
| U
| U
| U
| U
| U
| U (exposing PIM data though)
|-
| currentappcontrol
|
|  
|  
| X
| 4
|
|-
|-
| analog-clock
| devicenotifier
| U
| R
| U
| R (could be made O?)
| U
| R (could be made O?)
|-
| digital-clock
| U
| U
| U
| U
| U
| U
|-
| icon
| U
| R
| U
| R
|-
| kickoff
| U
| R
| U
| R
| U
| R
|-
| lock_logout
| U
| U
| U
| U
|-
| pager
| U
| U
| 4
|
| U
| U(4?)
|-
| panelspacer
| 4
|
| 4
|
| 4
|
|-
| quicklaunch
| R
| R
| R
| R
| R
| R
|-
| searchbox
|
|
| 4
|
| 4
|
|-
| system-monitor
| U
| U
| U
| U
| U
| U
|-
| systemtray
| 4
|
| 4
|
| 4
|  
|  
|-
| tasks
| U
| U
| U
| U
| U
| U
|-
| trash
| U
| R
| U
| R
| U
| R
|-
| webbrowser
| 3
|  
|  
| 3
|
| 3
|
|-
|-
| battery
| windowlist
|
|  
|  
| 4
|
| 4
|  
|  
| 4
|-
|-
! colspan=3 | apps/plasma
! colspan=7 | apps/plasma
|-
|-
| folderview
| folderview
| 4
|
| 4
|
| 4
|
|-
! colspan=7 | kdeplasma-addons
|-
| bball
| U
| U
| U
| U
| U
| U
|-
| binary-clock
| U
| U
| U
| U
| U
| U
|-
| blackboard
|
|
| U
| U
| U
| U
|-
| bookmarks
|
|
|
|
| 4
|
|-
| bubblemon
| U
| U
| U
| U
| U
| U
|-
| calculator
| U
| U
| U
| U
| U
| U
|-
| charselect
| U
| U
| U
| U
| U
| U
|-
| comic
| O
| O
| O
| O
| O
| O
|-
| dict
| U
| U
| U
| U
| U
| U
|-
| eyes
| U
| U
| U
| U
| U
| U
|-
| fifteenPuzzle
| U
| U
| U
| U
| U
| U
|-
| fileWatcher
| U
| U
| U
| U
| U
| U
|-
| frame
| U
| O
| U
| O
| U
| O
|-
| fuzzy-clock
| U
| U
| U
| U
| U
| U
|-
| incomingmsg
| U
| U
| U
| U
| U
| U
|-
| kdeobservatory
|
|
|
|
| U
| U
|-
| kimpanel
|
|
|
|
| U
| U
|-
| knowledgebase
|
|
| U
| R
| U
| R
|-
| kolourpicker
| U
| U
| U
| U
| U
| U
|-
| konqprofiles
| U
| R
| U
| R
| U
| R
|-
| konsoleprofiles
| U
| R
| U
| R
| U
| R
|-
| lancelot
| U
| R
| U
| R
| U
| R
|-
| leavenote
| 3
|
| 3
|
| 3
|
|-
| life
| U
| U
| U
| U
| U
| U
|-
| luna
| U
| U
| U
| U
| U
| U
|-
| magnifique
| 3
|
| U
| U
| U
| U
|-
| mediaplayer
| R
| U
| R
| U
| R
| U
|-
| microblog
| 3
|
| 3
|
| 3
|
|-
| news
|
| 3
|
| 3
|
| 3
|-
| notes
| U
| U
|
|
| U
| U
|-
| nowplaying
| U
| U
| U
| U
| U
| U
|-
| opendesktop
| 2
|
|
|
| U
| R
|-
| opendesktop-activities
|
|
| 4? U
| U
| U
| O
|-
| paste
| 4
|
| 4
|
| 4
|
|-
| pastebin
| U
| U
| U
| R
| U
| R
|-
| plasmaboard
|
|
| 4
|  
|  
| 4
|  
|  
|-
|-
! colspan=3 | kdeplasma-addons
| qalculate
|
|
|
|
| U
| U
|-
| previewer
| R
| R
| R
| R
| R
| R
|-
| rememberthemilk
| U
| U
| U
| U
| U
| U
|-
| rssnow
| 2
|
|
|
| U
| R
|-
| showdashboard
| 4
|
| 4
|
| 4
|
|-
| showdesktop
| 4
|
| 4
|
| 4
|
|-
| systemloadviewer
| U
| U
| U
| U
| U
| O
|-
| timer
| U
| U
| U
| U
| U
| O
|-
| unitconverter
| U
| U
| U
| U
| U
| U
|-
| weather
| 1
|
| U
| R
| U
| R
|-
| weatherstation
| 1
|
| U
| R
| U
| O
|-
|-
! colspan=3 | playground/base/plasma
! colspan=7 | playground/base/plasma
|}
|}

Latest revision as of 10:09, 25 June 2010

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: a few of the 'required' entries for 4.4 could be made optional with a little work (weather, for example). we just don't really have the time.

Plasmoid 4.3 4.3 4.4 4.4 4.5 4.5
FileDialog LaunchApp FileDialog LaunchApp FileDialog LauchApp
workspace/plasma
activitybar U U U U
analog-clock U U U U U U
battery U O U O U O
calendar U U U U U U (exposing PIM data though)
currentappcontrol 4
devicenotifier U R U R (could be made O?) U R (could be made O?)
digital-clock U U U U U U
icon U R U R
kickoff U R U R U R
lock_logout U U U U
pager U U 4 U U(4?)
panelspacer 4 4 4
quicklaunch R R R R R R
searchbox 4 4
system-monitor U U U U U U
systemtray 4 4 4
tasks U U U U U U
trash U R U R U R
webbrowser 3 3 3
windowlist 4 4 4
apps/plasma
folderview 4 4 4
kdeplasma-addons
bball U U U U U U
binary-clock U U U U U U
blackboard U U U U
bookmarks 4
bubblemon U U U U U U
calculator U U U U U U
charselect U U U U U U
comic O O O O O O
dict U U U U U U
eyes U U U U U U
fifteenPuzzle U U U U U U
fileWatcher U U U U U U
frame U O U O U O
fuzzy-clock U U U U U U
incomingmsg U U U U U U
kdeobservatory U U
kimpanel U U
knowledgebase U R U R
kolourpicker U U U U U U
konqprofiles U R U R U R
konsoleprofiles U R U R U R
lancelot U R U R U R
leavenote 3 3 3
life U U U U U U
luna U U U U U U
magnifique 3 U U U U
mediaplayer R U R U R U
microblog 3 3 3
news 3 3 3
notes U U U U
nowplaying U U U U U U
opendesktop 2 U R
opendesktop-activities 4? U U U O
paste 4 4 4
pastebin U U U R U R
plasmaboard 4 4
qalculate U U
previewer R R R R R R
rememberthemilk U U U U U U
rssnow 2 U R
showdashboard 4 4 4
showdesktop 4 4 4
systemloadviewer U U U U U O
timer U U U U U O
unitconverter U U U U U U
weather 1 U R U R
weatherstation 1 U R U O
playground/base/plasma