Uninstall plugins from settings

This commit is contained in:
2026-05-07 23:28:36 -04:00
parent 8ec468f57e
commit eddd694ae9
6 changed files with 230 additions and 4 deletions
@@ -19,6 +19,7 @@ pub enum PluginAuditAction {
Installed,
Enabled,
Disabled,
Uninstalled,
}
#[derive(Clone, Debug, Eq, PartialEq)]
@@ -119,6 +120,18 @@ impl BrowserCore {
Ok(())
}
pub fn uninstall_plugin(&mut self, plugin_id: &PluginId) -> Result<(), CoreError> {
let plugin_index = self
.installed_plugins
.iter()
.position(|plugin| plugin.id() == plugin_id)
.ok_or_else(|| CoreError::PluginNotFound { id: plugin_id.clone() })?;
self.installed_plugins.remove(plugin_index);
self.record_plugin_audit_event(plugin_id.clone(), PluginAuditAction::Uninstalled);
Ok(())
}
fn record_plugin_audit_event(&mut self, plugin_id: PluginId, action: PluginAuditAction) {
self.plugin_audit_events.push(PluginAuditEvent::record(
plugin_id,