add setting to control mozAddonManager API
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -123,6 +123,8 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable {
|
||||
bool get isolatedProcessEnabled => super.isolatedProcessEnabled!;
|
||||
@override
|
||||
bool get appZygoteProcessEnabled => super.appZygoteProcessEnabled!;
|
||||
@override
|
||||
bool get extensionsWebAPIEnabled => super.extensionsWebAPIEnabled!;
|
||||
|
||||
final QueryParameterStripping queryParameterStripping;
|
||||
|
||||
@@ -202,6 +204,7 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable {
|
||||
required super.fissionEnabled,
|
||||
required super.isolatedProcessEnabled,
|
||||
required super.appZygoteProcessEnabled,
|
||||
required super.extensionsWebAPIEnabled,
|
||||
required super.lnaBlocking,
|
||||
required super.lnaBlockTrackers,
|
||||
required super.lnaEnabled,
|
||||
@@ -252,6 +255,7 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable {
|
||||
bool? fissionEnabled,
|
||||
bool? isolatedProcessEnabled,
|
||||
bool? appZygoteProcessEnabled,
|
||||
bool? extensionsWebAPIEnabled,
|
||||
bool? lnaBlocking,
|
||||
bool? lnaBlockTrackers,
|
||||
bool? lnaEnabled,
|
||||
@@ -317,6 +321,7 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable {
|
||||
fissionEnabled: fissionEnabled ?? true,
|
||||
isolatedProcessEnabled: isolatedProcessEnabled ?? false,
|
||||
appZygoteProcessEnabled: appZygoteProcessEnabled ?? false,
|
||||
extensionsWebAPIEnabled: extensionsWebAPIEnabled ?? true,
|
||||
lnaBlocking: lnaBlocking,
|
||||
lnaBlockTrackers: lnaBlockTrackers,
|
||||
lnaEnabled: lnaEnabled,
|
||||
@@ -381,6 +386,7 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable {
|
||||
fissionEnabled,
|
||||
isolatedProcessEnabled,
|
||||
appZygoteProcessEnabled,
|
||||
extensionsWebAPIEnabled,
|
||||
lnaBlocking,
|
||||
lnaBlockTrackers,
|
||||
lnaEnabled,
|
||||
|
||||
@@ -117,6 +117,8 @@ abstract class _$EngineSettingsCWProxy {
|
||||
|
||||
EngineSettings appZygoteProcessEnabled(bool? appZygoteProcessEnabled);
|
||||
|
||||
EngineSettings extensionsWebAPIEnabled(bool? extensionsWebAPIEnabled);
|
||||
|
||||
EngineSettings lnaBlocking(bool? lnaBlocking);
|
||||
|
||||
EngineSettings lnaBlockTrackers(bool? lnaBlockTrackers);
|
||||
@@ -175,6 +177,7 @@ abstract class _$EngineSettingsCWProxy {
|
||||
bool? fissionEnabled,
|
||||
bool? isolatedProcessEnabled,
|
||||
bool? appZygoteProcessEnabled,
|
||||
bool? extensionsWebAPIEnabled,
|
||||
bool? lnaBlocking,
|
||||
bool? lnaBlockTrackers,
|
||||
bool? lnaEnabled,
|
||||
@@ -383,6 +386,10 @@ class _$EngineSettingsCWProxyImpl implements _$EngineSettingsCWProxy {
|
||||
EngineSettings appZygoteProcessEnabled(bool? appZygoteProcessEnabled) =>
|
||||
call(appZygoteProcessEnabled: appZygoteProcessEnabled);
|
||||
|
||||
@override
|
||||
EngineSettings extensionsWebAPIEnabled(bool? extensionsWebAPIEnabled) =>
|
||||
call(extensionsWebAPIEnabled: extensionsWebAPIEnabled);
|
||||
|
||||
@override
|
||||
EngineSettings lnaBlocking(bool? lnaBlocking) =>
|
||||
call(lnaBlocking: lnaBlocking);
|
||||
@@ -449,6 +456,7 @@ class _$EngineSettingsCWProxyImpl implements _$EngineSettingsCWProxy {
|
||||
Object? fissionEnabled = const $CopyWithPlaceholder(),
|
||||
Object? isolatedProcessEnabled = const $CopyWithPlaceholder(),
|
||||
Object? appZygoteProcessEnabled = const $CopyWithPlaceholder(),
|
||||
Object? extensionsWebAPIEnabled = const $CopyWithPlaceholder(),
|
||||
Object? lnaBlocking = const $CopyWithPlaceholder(),
|
||||
Object? lnaBlockTrackers = const $CopyWithPlaceholder(),
|
||||
Object? lnaEnabled = const $CopyWithPlaceholder(),
|
||||
@@ -662,6 +670,11 @@ class _$EngineSettingsCWProxyImpl implements _$EngineSettingsCWProxy {
|
||||
? _value.appZygoteProcessEnabled
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: appZygoteProcessEnabled as bool?,
|
||||
extensionsWebAPIEnabled:
|
||||
extensionsWebAPIEnabled == const $CopyWithPlaceholder()
|
||||
? _value.extensionsWebAPIEnabled
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: extensionsWebAPIEnabled as bool?,
|
||||
lnaBlocking: lnaBlocking == const $CopyWithPlaceholder()
|
||||
? _value.lnaBlocking
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
@@ -781,6 +794,7 @@ EngineSettings _$EngineSettingsFromJson(
|
||||
fissionEnabled: json['fissionEnabled'] as bool?,
|
||||
isolatedProcessEnabled: json['isolatedProcessEnabled'] as bool?,
|
||||
appZygoteProcessEnabled: json['appZygoteProcessEnabled'] as bool?,
|
||||
extensionsWebAPIEnabled: json['extensionsWebAPIEnabled'] as bool?,
|
||||
lnaBlocking: json['lnaBlocking'] as bool?,
|
||||
lnaBlockTrackers: json['lnaBlockTrackers'] as bool?,
|
||||
lnaEnabled: json['lnaEnabled'] as bool?,
|
||||
@@ -839,6 +853,7 @@ Map<String, dynamic> _$EngineSettingsToJson(
|
||||
'fissionEnabled': instance.fissionEnabled,
|
||||
'isolatedProcessEnabled': instance.isolatedProcessEnabled,
|
||||
'appZygoteProcessEnabled': instance.appZygoteProcessEnabled,
|
||||
'extensionsWebAPIEnabled': instance.extensionsWebAPIEnabled,
|
||||
'queryParameterStripping':
|
||||
_$QueryParameterStrippingEnumMap[instance.queryParameterStripping]!,
|
||||
'bounceTrackingProtectionMode':
|
||||
|
||||
@@ -212,6 +212,10 @@ class EngineSettingsRepository extends _$EngineSettingsRepository {
|
||||
DriftSqlType.bool,
|
||||
db.typeMapping,
|
||||
),
|
||||
'extensionsWebAPIEnabled': settings['extensionsWebAPIEnabled']?.readAs(
|
||||
DriftSqlType.bool,
|
||||
db.typeMapping,
|
||||
),
|
||||
// LNA Settings
|
||||
'lnaBlocking': settings['lnaBlocking']?.readAs(
|
||||
DriftSqlType.bool,
|
||||
|
||||
@@ -34,7 +34,7 @@ final class EngineSettingsRepositoryProvider
|
||||
}
|
||||
|
||||
String _$engineSettingsRepositoryHash() =>
|
||||
r'3d062d316bfcb86f3216846ed2cf5edd148460eb';
|
||||
r'4abe41cfeba8e39484683033f11c54be644fa2b2';
|
||||
|
||||
abstract class _$EngineSettingsRepository
|
||||
extends $StreamNotifier<EngineSettings> {
|
||||
|
||||
Reference in New Issue
Block a user