D27140: Calculate KAuthAction::isValid on demand

David Edmundson noreply at phabricator.kde.org
Mon Feb 3 19:29:29 GMT 2020


davidedmundson created this revision.
Herald added a project: Frameworks.
Herald added a subscriber: kde-frameworks-devel.
davidedmundson requested review of this revision.

REVISION SUMMARY
  Polkit1Backend fetches a list of /all/ actions once on startup, when we
  want to see if an action is valid we compare it to this list.
  
  Fine in principle except that if isValid() is called, we have to block
  via a nested event loop to wait for the full list to be fetched.
  
  Given we construct actions on startup and the backend on startup we
  almost always hit this. It can easily time out (the case I'm debugging
  here) or if it's invoked from QML it would simply crash.
  
  Any good fix would be an API/behavioural break. (T12643 <https://phabricator.kde.org/T12643>)
  
  In practice few places call isValid() at which point the cache is
  fetched and we hide the problem, also we can document it.
  
  It's not slower as the only backend that has
  CheckActionExistenceCapability is a cache lookup anyway.

TEST PLAN
  Used on a slow VM with a slow KCM
  My actions started working

REPOSITORY
  R283 KAuth

BRANCH
  delayed_isValid

REVISION DETAIL
  https://phabricator.kde.org/D27140

AFFECTED FILES
  src/kauthaction.cpp
  src/kauthaction.h

To: davidedmundson
Cc: kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20200203/0cff9186/attachment.html>


More information about the Kde-frameworks-devel mailing list