54 lines
2.3 KiB
Dart
54 lines
2.3 KiB
Dart
import 'package:copy_with_extension/copy_with_extension.dart';
|
|
import 'package:flutter_mozilla_components/flutter_mozilla_components.dart';
|
|
import 'package:json_annotation/json_annotation.dart';
|
|
|
|
part 'engine_settings.g.dart';
|
|
|
|
@CopyWith()
|
|
@JsonSerializable(includeIfNull: true, constructor: 'withDefaults')
|
|
class EngineSettings extends GeckoEngineSettings {
|
|
EngineSettings({
|
|
super.javascriptEnabled,
|
|
super.trackingProtectionPolicy,
|
|
super.httpsOnlyMode,
|
|
super.globalPrivacyControlEnabled,
|
|
super.preferredColorScheme,
|
|
super.cookieBannerHandlingMode,
|
|
super.cookieBannerHandlingModePrivateBrowsing,
|
|
super.cookieBannerHandlingGlobalRules,
|
|
super.cookieBannerHandlingGlobalRulesSubFrames,
|
|
super.webContentIsolationStrategy,
|
|
});
|
|
|
|
EngineSettings.withDefaults({
|
|
bool? javascriptEnabled,
|
|
TrackingProtectionPolicy? trackingProtectionPolicy,
|
|
HttpsOnlyMode? httpsOnlyMode,
|
|
bool? globalPrivacyControlEnabled,
|
|
ColorScheme? preferredColorScheme,
|
|
CookieBannerHandlingMode? cookieBannerHandlingMode,
|
|
CookieBannerHandlingMode? cookieBannerHandlingModePrivateBrowsing,
|
|
bool? cookieBannerHandlingGlobalRules,
|
|
bool? cookieBannerHandlingGlobalRulesSubFrames,
|
|
WebContentIsolationStrategy? webContentIsolationStrategy,
|
|
}) : super(
|
|
javascriptEnabled: javascriptEnabled ?? true,
|
|
trackingProtectionPolicy:
|
|
trackingProtectionPolicy ?? TrackingProtectionPolicy.strict,
|
|
httpsOnlyMode: httpsOnlyMode ?? HttpsOnlyMode.enabled,
|
|
globalPrivacyControlEnabled: globalPrivacyControlEnabled ?? true,
|
|
preferredColorScheme: preferredColorScheme ?? ColorScheme.system,
|
|
cookieBannerHandlingMode:
|
|
cookieBannerHandlingMode ?? CookieBannerHandlingMode.rejectAll,
|
|
cookieBannerHandlingModePrivateBrowsing:
|
|
cookieBannerHandlingModePrivateBrowsing ??
|
|
CookieBannerHandlingMode.rejectAll,
|
|
cookieBannerHandlingGlobalRules:
|
|
cookieBannerHandlingGlobalRules ?? true,
|
|
cookieBannerHandlingGlobalRulesSubFrames:
|
|
cookieBannerHandlingGlobalRulesSubFrames ?? true,
|
|
webContentIsolationStrategy: webContentIsolationStrategy ??
|
|
WebContentIsolationStrategy.isolateHighValue,
|
|
);
|
|
}
|