Skip to content

Add an extension manager with disable and uninstall controls #35

Description

@culpen90

Why

Quartz can install and restore Chromium-format WebExtensions, but the current UI only shows an extension status alert listing installed names. Users need a way to disable or remove extensions without manually editing Application Support or defaults.

Where to start

  • Sources/Quartz/QuartzApp.swift
  • Sources/Quartz/QuartzWebExtensionSupport.swift
  • The existing Extensions > Extension Status menu item

Suggested approach

Turn the status alert into a small native extension manager. A first version can be simple: show installed extensions in a list, allow disabling/enabling, and allow uninstalling. Uninstall should remove the saved path from UserDefaults, unload the WKWebExtensionContext if supported, and remove copied extension files from Quartz's Application Support directory when Quartz owns them.

Be careful not to delete a user's original source folder if they installed an unpacked extension from outside Quartz's copied storage.

Acceptance criteria

  • Users can see installed extension names in a native manager UI.
  • Users can disable/enable an installed extension.
  • Users can uninstall an installed extension.
  • Uninstalled extensions do not reload after quitting and reopening Quartz.
  • The Extensions toolbar/menu state updates after changes.
  • swift build succeeds.

Testing

  • Install a local unpacked extension or .zip extension.
  • Restart Quartz and confirm it reloads.
  • Disable it and confirm its action is unavailable.
  • Uninstall it, restart Quartz, and confirm it is gone.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions