add setting to control mozAddonManager API

This commit is contained in:
Fabian Freund
2026-03-11 13:06:23 +01:00
parent 05e68c1dab
commit c189987339
10 changed files with 79 additions and 14 deletions
@@ -206,6 +206,7 @@ class _AdvancedSection extends StatelessWidget {
_FissionEnabledTile(),
_IsolatedProcessEnabledTile(),
_AppZygoteProcessEnabledTile(),
_ExtensionsWebAPIEnabledTile(),
],
);
}
@@ -839,6 +840,39 @@ class _AppZygoteProcessEnabledTile extends HookConsumerWidget {
}
}
class _ExtensionsWebAPIEnabledTile extends HookConsumerWidget {
const _ExtensionsWebAPIEnabledTile();
@override
Widget build(BuildContext context, WidgetRef ref) {
final extensionsWebAPIEnabled = ref.watch(
engineSettingsWithDefaultsProvider.select(
(s) => s.extensionsWebAPIEnabled,
),
);
return SwitchListTile.adaptive(
title: const Text('Extensions Web API'),
subtitle: const Text(
'Enable mozAddonManager API exposure for web content and extension pages. Requires app restart.',
),
secondary: const Icon(Icons.extension),
value: extensionsWebAPIEnabled,
onChanged: (value) async {
await ref
.read(saveEngineSettingsControllerProvider.notifier)
.save(
(currentSettings) =>
currentSettings.copyWith.extensionsWebAPIEnabled(value),
);
if (context.mounted) {
await _showRestartDialog(context, ref);
}
},
);
}
}
Future<void> _showRestartDialog(BuildContext context, WidgetRef ref) async {
final result = await showQuitBrowserDialog(context);
if (result == true && context.mounted) {