commit 169d398bfeda3baa0bebad1414b01e1af4576b9a Author: David Edmundson Date: Mon Jan 6 12:18:00 2020 +0000 egister Secret Agent on startup Summary: Plasma NM's KDED is loaded on boot, but effectively does nothing until the relevant plasmoid triggers the KDED. This makes some sense for notifications and monitors, as it allows a user to opt of a UI plasma network manager experience. However, we want the secret agent as early in the boot as possible. If a user is running NM, they definitely want this component active, and if NM isn't running then registering the agent will no-op anyway. DBus logs show that with this patch, I am retrieving my password and a full 1500ms before org.kde.plasmanetworkmanagement.init is called and my initial wifi connected 3s faster than before this patch. We could potentially move this kded to phase 0 and get us even earlier. Test Plan: Had a wifi with security set to "Store password for this user only" Added dbus-monitor into my startup scripts Logged in, wifi connected, logs showed a difference Reviewers: #plasma, jgrulich! Subscribers: plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D26462 --- b/kded/service.cpp +++ a/kded/service.cpp @@ -54,8 +54,6 @@ NetworkManagementService::NetworkManagem connect(this, &KDEDModule::moduleRegistered, this, &NetworkManagementService::init); - d->agent = new SecretAgent(this); - connect(d->agent, &SecretAgent::secretsError, this, &NetworkManagementService::secretsError); } NetworkManagementService::~NetworkManagementService() @@ -67,6 +65,11 @@ void NetworkManagementService::init() { Q_D(NetworkManagementService); + if (!d->agent) { + d->agent = new SecretAgent(this); + connect(d->agent, &SecretAgent::secretsError, this, &NetworkManagementService::secretsError); + } + if (!d->notification) { d->notification = new Notification(this); }