add install addon functionality

This commit is contained in:
Fabian Freund
2025-05-05 14:34:47 +02:00
parent 8e0325f6b5
commit 35fcae3ed7
7 changed files with 1526 additions and 170 deletions
@@ -24,4 +24,16 @@ class GeckoAddonsApiImpl(private val context: Context) : GeckoAddonsApi {
WebExtensionActionType.PAGE -> components.features.webExtensionToolbarFeature.invokeAddonPageAction(extensionId)
}
}
override fun installAddon(url: String, callback: (Result<Unit>) -> Unit) {
components.core.addonManager.installAddon(
url = url,
onSuccess = { _ ->
callback(Result.success(Unit))
},
onError = { e ->
callback(Result.failure(e))
}
)
}
}
@@ -39,6 +39,10 @@ class GeckoAddonService extends GeckoAddonEvents {
return _api.invokeAddonAction(extensionId, actionType);
}
Future<void> installAddon(Uri url) {
return _api.installAddon(url.toString());
}
@override
void onRemoveWebExtensionAction(
int timestamp,
File diff suppressed because it is too large Load Diff
@@ -1058,6 +1058,9 @@ abstract class GeckoAddonsApi {
void startAddonManagerActivity();
void invokeAddonAction(String extensionId, WebExtensionActionType actionType);
@async
void installAddon(String url);
}
@FlutterApi()