new setting: Zoom on All Websites
This commit is contained in:
+6
@@ -375,6 +375,12 @@ class EngineSettingsReplicationService
|
||||
settings.inputAutoZoomEnabled,
|
||||
);
|
||||
}
|
||||
if (previous.value?.forceUserScalableContent !=
|
||||
settings.forceUserScalableContent) {
|
||||
await _service.forceUserScalableContent(
|
||||
settings.forceUserScalableContent,
|
||||
);
|
||||
}
|
||||
// LNA Settings
|
||||
if (previous.value?.lnaBlocking != settings.lnaBlocking) {
|
||||
await _service.lnaBlocking(settings.lnaBlocking);
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ final class EngineSettingsReplicationServiceProvider
|
||||
}
|
||||
|
||||
String _$engineSettingsReplicationServiceHash() =>
|
||||
r'41c07a48bbc90a90dd6f5a0bd48d55a3e02a1b64';
|
||||
r'cceb6359fd11a1e570208615fde0e9cb5e5f7ba3';
|
||||
|
||||
abstract class _$EngineSettingsReplicationService extends $Notifier<void> {
|
||||
void build();
|
||||
|
||||
@@ -62,6 +62,14 @@ const List<SettingsSectionDefinition> webContentSettingsSections = [
|
||||
keywords: ['forms'],
|
||||
child: _InputAutoZoomEnabledTile(),
|
||||
),
|
||||
SettingsEntryDefinition(
|
||||
title: 'Zoom on All Websites',
|
||||
subtitle:
|
||||
'Allow pinch and zoom, even on websites that prevent this '
|
||||
'gesture',
|
||||
keywords: ['pinch', 'accessibility'],
|
||||
child: _ForceUserScalableContentTile(),
|
||||
),
|
||||
],
|
||||
),
|
||||
SettingsSectionDefinition(
|
||||
@@ -308,6 +316,36 @@ class _InputAutoZoomEnabledTile extends HookConsumerWidget {
|
||||
}
|
||||
}
|
||||
|
||||
class _ForceUserScalableContentTile extends HookConsumerWidget {
|
||||
const _ForceUserScalableContentTile();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final forceUserScalableContent = ref.watch(
|
||||
engineSettingsWithDefaultsProvider.select(
|
||||
(s) => s.forceUserScalableContent,
|
||||
),
|
||||
);
|
||||
|
||||
return SwitchListTile.adaptive(
|
||||
title: const Text('Zoom on All Websites'),
|
||||
subtitle: const Text(
|
||||
'Allow pinch and zoom, even on websites that prevent this gesture',
|
||||
),
|
||||
secondary: const Icon(MdiIcons.gesturePinch),
|
||||
value: forceUserScalableContent,
|
||||
onChanged: (value) async {
|
||||
await ref
|
||||
.read(saveEngineSettingsControllerProvider.notifier)
|
||||
.save(
|
||||
(currentSettings) =>
|
||||
currentSettings.copyWith.forceUserScalableContent(value),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class _PdfViewerTile extends HookConsumerWidget {
|
||||
const _PdfViewerTile();
|
||||
|
||||
|
||||
@@ -122,6 +122,8 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable {
|
||||
bool get fontInflationEnabled => super.fontInflationEnabled!;
|
||||
@override
|
||||
bool get inputAutoZoomEnabled => super.inputAutoZoomEnabled!;
|
||||
@override
|
||||
bool get forceUserScalableContent => super.forceUserScalableContent!;
|
||||
|
||||
// Process Isolation Settings (require app restart)
|
||||
@override
|
||||
@@ -223,6 +225,7 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable {
|
||||
required super.screenWidthOverride,
|
||||
required super.screenHeightOverride,
|
||||
required super.inputAutoZoomEnabled,
|
||||
required super.forceUserScalableContent,
|
||||
required super.fissionEnabled,
|
||||
required super.isolatedProcessEnabled,
|
||||
required super.appZygoteProcessEnabled,
|
||||
@@ -279,6 +282,7 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable {
|
||||
super.screenWidthOverride,
|
||||
super.screenHeightOverride,
|
||||
bool? inputAutoZoomEnabled,
|
||||
bool? forceUserScalableContent,
|
||||
bool? fissionEnabled,
|
||||
bool? isolatedProcessEnabled,
|
||||
bool? appZygoteProcessEnabled,
|
||||
@@ -349,6 +353,7 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable {
|
||||
fontSizeFactor: fontSizeFactor ?? 1.0,
|
||||
fontInflationEnabled: fontInflationEnabled ?? false,
|
||||
inputAutoZoomEnabled: inputAutoZoomEnabled ?? true,
|
||||
forceUserScalableContent: forceUserScalableContent ?? false,
|
||||
fissionEnabled: fissionEnabled ?? true,
|
||||
isolatedProcessEnabled: isolatedProcessEnabled ?? false,
|
||||
appZygoteProcessEnabled: appZygoteProcessEnabled ?? false,
|
||||
@@ -432,6 +437,7 @@ class EngineSettings extends GeckoEngineSettings with FastEquatable {
|
||||
screenWidthOverride,
|
||||
screenHeightOverride,
|
||||
inputAutoZoomEnabled,
|
||||
forceUserScalableContent,
|
||||
fissionEnabled,
|
||||
isolatedProcessEnabled,
|
||||
appZygoteProcessEnabled,
|
||||
|
||||
@@ -125,6 +125,8 @@ abstract class _$EngineSettingsCWProxy {
|
||||
|
||||
EngineSettings inputAutoZoomEnabled(bool? inputAutoZoomEnabled);
|
||||
|
||||
EngineSettings forceUserScalableContent(bool? forceUserScalableContent);
|
||||
|
||||
EngineSettings fissionEnabled(bool? fissionEnabled);
|
||||
|
||||
EngineSettings isolatedProcessEnabled(bool? isolatedProcessEnabled);
|
||||
@@ -193,6 +195,7 @@ abstract class _$EngineSettingsCWProxy {
|
||||
int? screenWidthOverride,
|
||||
int? screenHeightOverride,
|
||||
bool? inputAutoZoomEnabled,
|
||||
bool? forceUserScalableContent,
|
||||
bool? fissionEnabled,
|
||||
bool? isolatedProcessEnabled,
|
||||
bool? appZygoteProcessEnabled,
|
||||
@@ -416,6 +419,10 @@ class _$EngineSettingsCWProxyImpl implements _$EngineSettingsCWProxy {
|
||||
EngineSettings inputAutoZoomEnabled(bool? inputAutoZoomEnabled) =>
|
||||
call(inputAutoZoomEnabled: inputAutoZoomEnabled);
|
||||
|
||||
@override
|
||||
EngineSettings forceUserScalableContent(bool? forceUserScalableContent) =>
|
||||
call(forceUserScalableContent: forceUserScalableContent);
|
||||
|
||||
@override
|
||||
EngineSettings fissionEnabled(bool? fissionEnabled) =>
|
||||
call(fissionEnabled: fissionEnabled);
|
||||
@@ -500,6 +507,7 @@ class _$EngineSettingsCWProxyImpl implements _$EngineSettingsCWProxy {
|
||||
Object? screenWidthOverride = const $CopyWithPlaceholder(),
|
||||
Object? screenHeightOverride = const $CopyWithPlaceholder(),
|
||||
Object? inputAutoZoomEnabled = const $CopyWithPlaceholder(),
|
||||
Object? forceUserScalableContent = const $CopyWithPlaceholder(),
|
||||
Object? fissionEnabled = const $CopyWithPlaceholder(),
|
||||
Object? isolatedProcessEnabled = const $CopyWithPlaceholder(),
|
||||
Object? appZygoteProcessEnabled = const $CopyWithPlaceholder(),
|
||||
@@ -731,6 +739,11 @@ class _$EngineSettingsCWProxyImpl implements _$EngineSettingsCWProxy {
|
||||
? _value.inputAutoZoomEnabled
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: inputAutoZoomEnabled as bool?,
|
||||
forceUserScalableContent:
|
||||
forceUserScalableContent == const $CopyWithPlaceholder()
|
||||
? _value.forceUserScalableContent
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
: forceUserScalableContent as bool?,
|
||||
fissionEnabled: fissionEnabled == const $CopyWithPlaceholder()
|
||||
? _value.fissionEnabled
|
||||
// ignore: cast_nullable_to_non_nullable
|
||||
@@ -874,6 +887,7 @@ EngineSettings _$EngineSettingsFromJson(
|
||||
screenWidthOverride: (json['screenWidthOverride'] as num?)?.toInt(),
|
||||
screenHeightOverride: (json['screenHeightOverride'] as num?)?.toInt(),
|
||||
inputAutoZoomEnabled: json['inputAutoZoomEnabled'] as bool?,
|
||||
forceUserScalableContent: json['forceUserScalableContent'] as bool?,
|
||||
fissionEnabled: json['fissionEnabled'] as bool?,
|
||||
isolatedProcessEnabled: json['isolatedProcessEnabled'] as bool?,
|
||||
appZygoteProcessEnabled: json['appZygoteProcessEnabled'] as bool?,
|
||||
@@ -935,6 +949,7 @@ Map<String, dynamic> _$EngineSettingsToJson(
|
||||
'fontSizeFactor': instance.fontSizeFactor,
|
||||
'fontInflationEnabled': instance.fontInflationEnabled,
|
||||
'inputAutoZoomEnabled': instance.inputAutoZoomEnabled,
|
||||
'forceUserScalableContent': instance.forceUserScalableContent,
|
||||
'fissionEnabled': instance.fissionEnabled,
|
||||
'isolatedProcessEnabled': instance.isolatedProcessEnabled,
|
||||
'appZygoteProcessEnabled': instance.appZygoteProcessEnabled,
|
||||
|
||||
@@ -214,6 +214,8 @@ class EngineSettingsRepository extends _$EngineSettingsRepository {
|
||||
DriftSqlType.bool,
|
||||
db.typeMapping,
|
||||
),
|
||||
'forceUserScalableContent': settings['forceUserScalableContent']
|
||||
?.readAs(DriftSqlType.bool, db.typeMapping),
|
||||
// Process Isolation Settings
|
||||
'fissionEnabled': settings['fissionEnabled']?.readAs(
|
||||
DriftSqlType.bool,
|
||||
|
||||
@@ -34,7 +34,7 @@ final class EngineSettingsRepositoryProvider
|
||||
}
|
||||
|
||||
String _$engineSettingsRepositoryHash() =>
|
||||
r'db077d5aa6a7aec5cdb019308cc942079567bab9';
|
||||
r'1442aa09d8f77bacaed9265e59c16dc555c74b16';
|
||||
|
||||
abstract class _$EngineSettingsRepository
|
||||
extends $StreamNotifier<EngineSettings> {
|
||||
|
||||
Reference in New Issue
Block a user