add various engine settings
This commit is contained in:
+14
-1
@@ -77,12 +77,25 @@ object EngineProvider {
|
||||
// About config it's no longer enabled by default
|
||||
builder.aboutConfigEnabled(true)
|
||||
builder.extensionsProcessEnabled(true)
|
||||
builder.extensionsWebAPIEnabled(true)
|
||||
builder.extensionsWebAPIEnabled(false)
|
||||
//builder.debugLogging(components.logLevel == Log.Priority.DEBUG)
|
||||
builder.consoleOutput(components.logLevel == Log.Priority.DEBUG)
|
||||
builder.contentBlocking(contentBlocking.build())
|
||||
builder.locales(arrayOf("en-US", "en")) // Will be overridden later
|
||||
|
||||
// Apply builder-only settings from startup config
|
||||
GlobalComponents.startupSettings?.let { settings ->
|
||||
settings.fissionEnabled?.let { builder.fissionEnabled(it) }
|
||||
settings.isolatedProcessEnabled?.let { builder.isolatedProcessEnabled(it) }
|
||||
settings.appZygoteProcessEnabled?.let { builder.appZygoteProcessEnabled(it) }
|
||||
settings.displayDensityOverride?.let { builder.displayDensityOverride(it.toFloat()) }
|
||||
val screenWidth = settings.screenWidthOverride
|
||||
val screenHeight = settings.screenHeightOverride
|
||||
if (screenWidth != null && screenHeight != null && screenWidth > 0 && screenHeight > 0) {
|
||||
builder.screenSizeOverride(screenWidth.toInt(), screenHeight.toInt())
|
||||
}
|
||||
}
|
||||
|
||||
runtime = GeckoRuntime.create(context, builder.build())
|
||||
}
|
||||
|
||||
|
||||
+4
@@ -12,6 +12,7 @@ import eu.weblibre.flutter_mozilla_components.pigeons.BrowserExtensionEvents
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.BounceTrackingProtectionMode
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.ContentBlocking
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoAddonEvents
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoEngineSettings
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoSelectionActionEvents
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoStateEvents
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoSuggestionEvents
|
||||
@@ -77,6 +78,9 @@ object GlobalComponents {
|
||||
// External download manager setting
|
||||
var useExternalDownloadManager: Boolean = false
|
||||
|
||||
// Startup settings for builder-only GeckoRuntimeSettings (fission, process isolation, etc.)
|
||||
var startupSettings: GeckoEngineSettings? = null
|
||||
|
||||
fun shouldOpenLinksInApp(isExternalSession: Boolean = false): Boolean {
|
||||
return when (engineSettingsApi!!.getAppLinksMode()) {
|
||||
eu.weblibre.flutter_mozilla_components.pigeons.AppLinksMode.ALWAYS -> true
|
||||
|
||||
+5
@@ -21,6 +21,7 @@ import eu.weblibre.flutter_mozilla_components.pigeons.AddonCollection
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.BrowserExtensionEvents
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.ContentBlocking
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoAddonEvents
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoEngineSettings
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoAddonsApi
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoAppLinksApi
|
||||
import eu.weblibre.flutter_mozilla_components.pigeons.GeckoBookmarksApi
|
||||
@@ -165,6 +166,7 @@ class GeckoBrowserApiImpl : GeckoBrowserApi {
|
||||
addonCollection: AddonCollection?,
|
||||
fxaServerOverride: String?,
|
||||
syncTokenServerOverride: String?,
|
||||
startupSettings: GeckoEngineSettings?,
|
||||
) {
|
||||
synchronized(this) {
|
||||
if (!isGeckoInitialized) {
|
||||
@@ -179,6 +181,9 @@ class GeckoBrowserApiImpl : GeckoBrowserApi {
|
||||
|
||||
Log.addSink(PriorityAwareLogSink(level, geckoLogging))
|
||||
|
||||
// Store startup settings before runtime creation
|
||||
GlobalComponents.startupSettings = startupSettings
|
||||
|
||||
setupGeckoEngine(
|
||||
profileFolder,
|
||||
level,
|
||||
|
||||
+58
@@ -242,6 +242,34 @@ class GeckoEngineSettingsApiImpl : GeckoEngineSettingsApi {
|
||||
// components.core.engineSettings.automaticLanguageAdjustment = false
|
||||
components.core.runtime.settings.locales = settings.locales.toTypedArray()
|
||||
}
|
||||
|
||||
// Web Content Settings
|
||||
if(settings.webFontsEnabled != null) {
|
||||
components.core.engineSettings.webFontsEnabled = settings.webFontsEnabled
|
||||
}
|
||||
if(settings.automaticFontSizeAdjustment != null) {
|
||||
components.core.engineSettings.automaticFontSizeAdjustment = settings.automaticFontSizeAdjustment
|
||||
}
|
||||
if(settings.fontSizeFactor != null && settings.automaticFontSizeAdjustment != true) {
|
||||
components.core.engineSettings.fontSizeFactor = settings.fontSizeFactor.toFloat()
|
||||
}
|
||||
if(settings.fontInflationEnabled != null && settings.automaticFontSizeAdjustment != true) {
|
||||
components.core.engineSettings.fontInflationEnabled = settings.fontInflationEnabled
|
||||
}
|
||||
if(settings.inputAutoZoomEnabled != null) {
|
||||
components.core.runtime.settings.inputAutoZoomEnabled = settings.inputAutoZoomEnabled
|
||||
}
|
||||
|
||||
// LNA Settings
|
||||
if(settings.lnaBlocking != null) {
|
||||
components.core.engineSettings.lnaBlockingEnabled = settings.lnaBlocking
|
||||
}
|
||||
if(settings.lnaBlockTrackers != null) {
|
||||
components.core.engineSettings.lnaTrackerBlockingEnabled = settings.lnaBlockTrackers
|
||||
}
|
||||
if(settings.lnaEnabled != null) {
|
||||
components.core.engineSettings.lnaFeatureEnabled = settings.lnaEnabled
|
||||
}
|
||||
}
|
||||
|
||||
override fun updateRuntimeSettings(settings: GeckoEngineSettings) {
|
||||
@@ -313,6 +341,36 @@ class GeckoEngineSettingsApiImpl : GeckoEngineSettingsApi {
|
||||
components.core.engine.settings.fingerprintingProtectionOverrides = components.core.engineSettings.fingerprintingProtectionOverrides
|
||||
}
|
||||
|
||||
// Web Content runtime settings
|
||||
if(settings.webFontsEnabled != null) {
|
||||
components.core.engine.settings.webFontsEnabled = components.core.engineSettings.webFontsEnabled
|
||||
reloadSession = true
|
||||
}
|
||||
if(settings.automaticFontSizeAdjustment != null) {
|
||||
components.core.engine.settings.automaticFontSizeAdjustment = components.core.engineSettings.automaticFontSizeAdjustment
|
||||
}
|
||||
if(settings.fontSizeFactor != null) {
|
||||
components.core.engine.settings.fontSizeFactor = components.core.engineSettings.fontSizeFactor
|
||||
reloadSession = true
|
||||
}
|
||||
if(settings.fontInflationEnabled != null) {
|
||||
components.core.engine.settings.fontInflationEnabled = components.core.engineSettings.fontInflationEnabled
|
||||
reloadSession = true
|
||||
}
|
||||
// LNA settings
|
||||
if(settings.lnaEnabled != null) {
|
||||
components.core.engine.settings.lnaFeatureEnabled = components.core.engineSettings.lnaFeatureEnabled
|
||||
reloadSession = true
|
||||
}
|
||||
if(settings.lnaBlocking != null) {
|
||||
components.core.engine.settings.lnaBlockingEnabled = components.core.engineSettings.lnaBlockingEnabled
|
||||
reloadSession = true
|
||||
}
|
||||
if(settings.lnaBlockTrackers != null) {
|
||||
components.core.engine.settings.lnaTrackerBlockingEnabled = components.core.engineSettings.lnaTrackerBlockingEnabled
|
||||
reloadSession = true
|
||||
}
|
||||
|
||||
if(reloadSession) {
|
||||
components.useCases.sessionUseCases.reload()
|
||||
}
|
||||
|
||||
+47
-4
@@ -2291,7 +2291,21 @@ data class GeckoEngineSettings (
|
||||
/** Allow baseline tracking protection exceptions (prevents major site breakage) */
|
||||
val allowListBaseline: Boolean? = null,
|
||||
/** Allow convenience tracking protection exceptions (fixes minor issues) */
|
||||
val allowListConvenience: Boolean? = null
|
||||
val allowListConvenience: Boolean? = null,
|
||||
val webFontsEnabled: Boolean? = null,
|
||||
val automaticFontSizeAdjustment: Boolean? = null,
|
||||
val fontSizeFactor: Double? = null,
|
||||
val fontInflationEnabled: Boolean? = null,
|
||||
val displayDensityOverride: Double? = null,
|
||||
val screenWidthOverride: Long? = null,
|
||||
val screenHeightOverride: Long? = null,
|
||||
val inputAutoZoomEnabled: Boolean? = null,
|
||||
val fissionEnabled: Boolean? = null,
|
||||
val isolatedProcessEnabled: Boolean? = null,
|
||||
val appZygoteProcessEnabled: Boolean? = null,
|
||||
val lnaBlocking: Boolean? = null,
|
||||
val lnaBlockTrackers: Boolean? = null,
|
||||
val lnaEnabled: Boolean? = null
|
||||
)
|
||||
{
|
||||
companion object {
|
||||
@@ -2323,7 +2337,21 @@ data class GeckoEngineSettings (
|
||||
val suspectedFingerprintersScope = pigeonVar_list[24] as TrackingScope?
|
||||
val allowListBaseline = pigeonVar_list[25] as Boolean?
|
||||
val allowListConvenience = pigeonVar_list[26] as Boolean?
|
||||
return GeckoEngineSettings(javascriptEnabled, trackingProtectionPolicy, httpsOnlyMode, globalPrivacyControlEnabled, preferredColorScheme, cookieBannerHandlingMode, cookieBannerHandlingModePrivateBrowsing, cookieBannerHandlingGlobalRules, cookieBannerHandlingGlobalRulesSubFrames, webContentIsolationStrategy, userAgent, contentBlocking, enterpriseRootsEnabled, dohSettings, fingerprintingProtectionOverrides, locales, blockCookies, customCookiePolicy, blockTrackingContent, trackingContentScope, blockCryptominers, blockFingerprinters, blockRedirectTrackers, blockSuspectedFingerprinters, suspectedFingerprintersScope, allowListBaseline, allowListConvenience)
|
||||
val webFontsEnabled = pigeonVar_list[27] as Boolean?
|
||||
val automaticFontSizeAdjustment = pigeonVar_list[28] as Boolean?
|
||||
val fontSizeFactor = pigeonVar_list[29] as Double?
|
||||
val fontInflationEnabled = pigeonVar_list[30] as Boolean?
|
||||
val displayDensityOverride = pigeonVar_list[31] as Double?
|
||||
val screenWidthOverride = pigeonVar_list[32] as Long?
|
||||
val screenHeightOverride = pigeonVar_list[33] as Long?
|
||||
val inputAutoZoomEnabled = pigeonVar_list[34] as Boolean?
|
||||
val fissionEnabled = pigeonVar_list[35] as Boolean?
|
||||
val isolatedProcessEnabled = pigeonVar_list[36] as Boolean?
|
||||
val appZygoteProcessEnabled = pigeonVar_list[37] as Boolean?
|
||||
val lnaBlocking = pigeonVar_list[38] as Boolean?
|
||||
val lnaBlockTrackers = pigeonVar_list[39] as Boolean?
|
||||
val lnaEnabled = pigeonVar_list[40] as Boolean?
|
||||
return GeckoEngineSettings(javascriptEnabled, trackingProtectionPolicy, httpsOnlyMode, globalPrivacyControlEnabled, preferredColorScheme, cookieBannerHandlingMode, cookieBannerHandlingModePrivateBrowsing, cookieBannerHandlingGlobalRules, cookieBannerHandlingGlobalRulesSubFrames, webContentIsolationStrategy, userAgent, contentBlocking, enterpriseRootsEnabled, dohSettings, fingerprintingProtectionOverrides, locales, blockCookies, customCookiePolicy, blockTrackingContent, trackingContentScope, blockCryptominers, blockFingerprinters, blockRedirectTrackers, blockSuspectedFingerprinters, suspectedFingerprintersScope, allowListBaseline, allowListConvenience, webFontsEnabled, automaticFontSizeAdjustment, fontSizeFactor, fontInflationEnabled, displayDensityOverride, screenWidthOverride, screenHeightOverride, inputAutoZoomEnabled, fissionEnabled, isolatedProcessEnabled, appZygoteProcessEnabled, lnaBlocking, lnaBlockTrackers, lnaEnabled)
|
||||
}
|
||||
}
|
||||
fun toList(): List<Any?> {
|
||||
@@ -2355,6 +2383,20 @@ data class GeckoEngineSettings (
|
||||
suspectedFingerprintersScope,
|
||||
allowListBaseline,
|
||||
allowListConvenience,
|
||||
webFontsEnabled,
|
||||
automaticFontSizeAdjustment,
|
||||
fontSizeFactor,
|
||||
fontInflationEnabled,
|
||||
displayDensityOverride,
|
||||
screenWidthOverride,
|
||||
screenHeightOverride,
|
||||
inputAutoZoomEnabled,
|
||||
fissionEnabled,
|
||||
isolatedProcessEnabled,
|
||||
appZygoteProcessEnabled,
|
||||
lnaBlocking,
|
||||
lnaBlockTrackers,
|
||||
lnaEnabled,
|
||||
)
|
||||
}
|
||||
override fun equals(other: Any?): Boolean {
|
||||
@@ -4793,7 +4835,7 @@ private open class GeckoPigeonCodec : StandardMessageCodec() {
|
||||
/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
|
||||
interface GeckoBrowserApi {
|
||||
fun getGeckoVersion(): String
|
||||
fun initialize(profileFolder: String, logLevel: LogLevel, contentBlocking: ContentBlocking, addonCollection: AddonCollection?, fxaServerOverride: String?, syncTokenServerOverride: String?)
|
||||
fun initialize(profileFolder: String, logLevel: LogLevel, contentBlocking: ContentBlocking, addonCollection: AddonCollection?, fxaServerOverride: String?, syncTokenServerOverride: String?, startupSettings: GeckoEngineSettings?)
|
||||
fun showNativeFragment(): Boolean
|
||||
fun onTrimMemory(level: Long)
|
||||
fun openInCustomTab(url: String, private: Boolean, contextId: String?)
|
||||
@@ -4833,8 +4875,9 @@ interface GeckoBrowserApi {
|
||||
val addonCollectionArg = args[3] as AddonCollection?
|
||||
val fxaServerOverrideArg = args[4] as String?
|
||||
val syncTokenServerOverrideArg = args[5] as String?
|
||||
val startupSettingsArg = args[6] as GeckoEngineSettings?
|
||||
val wrapped: List<Any?> = try {
|
||||
api.initialize(profileFolderArg, logLevelArg, contentBlockingArg, addonCollectionArg, fxaServerOverrideArg, syncTokenServerOverrideArg)
|
||||
api.initialize(profileFolderArg, logLevelArg, contentBlockingArg, addonCollectionArg, fxaServerOverrideArg, syncTokenServerOverrideArg, startupSettingsArg)
|
||||
listOf(null)
|
||||
} catch (exception: Throwable) {
|
||||
GeckoPigeonUtils.wrapError(exception)
|
||||
|
||||
@@ -23,8 +23,9 @@ class GeckoBrowserService {
|
||||
ContentBlocking contentBlocking,
|
||||
AddonCollection? addonCollection,
|
||||
String? fxaServerOverride,
|
||||
String? syncTokenServerOverride,
|
||||
) {
|
||||
String? syncTokenServerOverride, [
|
||||
GeckoEngineSettings? startupSettings,
|
||||
]) {
|
||||
return _api.initialize(
|
||||
profileFolder,
|
||||
logLevel,
|
||||
@@ -32,6 +33,7 @@ class GeckoBrowserService {
|
||||
addonCollection,
|
||||
fxaServerOverride,
|
||||
syncTokenServerOverride,
|
||||
startupSettings,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+50
@@ -135,6 +135,56 @@ class GeckoEngineSettingsService {
|
||||
);
|
||||
}
|
||||
|
||||
// Web Content Settings
|
||||
Future<void> webFontsEnabled(bool state) {
|
||||
return _api.updateRuntimeSettings(
|
||||
GeckoEngineSettings(webFontsEnabled: state),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> automaticFontSizeAdjustment(bool state) {
|
||||
return _api.updateRuntimeSettings(
|
||||
GeckoEngineSettings(automaticFontSizeAdjustment: state),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> fontSizeFactor(double state) {
|
||||
return _api.updateRuntimeSettings(
|
||||
GeckoEngineSettings(fontSizeFactor: state),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> fontInflationEnabled(bool state) {
|
||||
return _api.updateRuntimeSettings(
|
||||
GeckoEngineSettings(fontInflationEnabled: state),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> inputAutoZoomEnabled(bool state) {
|
||||
return _api.updateRuntimeSettings(
|
||||
GeckoEngineSettings(inputAutoZoomEnabled: state),
|
||||
);
|
||||
}
|
||||
|
||||
// LNA Settings
|
||||
Future<void> lnaBlocking(bool? state) {
|
||||
return _api.updateRuntimeSettings(
|
||||
GeckoEngineSettings(lnaBlocking: state),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> lnaBlockTrackers(bool? state) {
|
||||
return _api.updateRuntimeSettings(
|
||||
GeckoEngineSettings(lnaBlockTrackers: state),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> lnaEnabled(bool? state) {
|
||||
return _api.updateRuntimeSettings(
|
||||
GeckoEngineSettings(lnaEnabled: state),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> setPullToRefreshEnabled(bool enabled) {
|
||||
return _api.setPullToRefreshEnabled(enabled);
|
||||
}
|
||||
|
||||
@@ -2710,6 +2710,20 @@ class GeckoEngineSettings {
|
||||
this.suspectedFingerprintersScope,
|
||||
this.allowListBaseline,
|
||||
this.allowListConvenience,
|
||||
this.webFontsEnabled,
|
||||
this.automaticFontSizeAdjustment,
|
||||
this.fontSizeFactor,
|
||||
this.fontInflationEnabled,
|
||||
this.displayDensityOverride,
|
||||
this.screenWidthOverride,
|
||||
this.screenHeightOverride,
|
||||
this.inputAutoZoomEnabled,
|
||||
this.fissionEnabled,
|
||||
this.isolatedProcessEnabled,
|
||||
this.appZygoteProcessEnabled,
|
||||
this.lnaBlocking,
|
||||
this.lnaBlockTrackers,
|
||||
this.lnaEnabled,
|
||||
});
|
||||
|
||||
bool? javascriptEnabled;
|
||||
@@ -2778,6 +2792,34 @@ class GeckoEngineSettings {
|
||||
/// Allow convenience tracking protection exceptions (fixes minor issues)
|
||||
bool? allowListConvenience;
|
||||
|
||||
bool? webFontsEnabled;
|
||||
|
||||
bool? automaticFontSizeAdjustment;
|
||||
|
||||
double? fontSizeFactor;
|
||||
|
||||
bool? fontInflationEnabled;
|
||||
|
||||
double? displayDensityOverride;
|
||||
|
||||
int? screenWidthOverride;
|
||||
|
||||
int? screenHeightOverride;
|
||||
|
||||
bool? inputAutoZoomEnabled;
|
||||
|
||||
bool? fissionEnabled;
|
||||
|
||||
bool? isolatedProcessEnabled;
|
||||
|
||||
bool? appZygoteProcessEnabled;
|
||||
|
||||
bool? lnaBlocking;
|
||||
|
||||
bool? lnaBlockTrackers;
|
||||
|
||||
bool? lnaEnabled;
|
||||
|
||||
List<Object?> _toList() {
|
||||
return <Object?>[
|
||||
javascriptEnabled,
|
||||
@@ -2807,6 +2849,20 @@ class GeckoEngineSettings {
|
||||
suspectedFingerprintersScope,
|
||||
allowListBaseline,
|
||||
allowListConvenience,
|
||||
webFontsEnabled,
|
||||
automaticFontSizeAdjustment,
|
||||
fontSizeFactor,
|
||||
fontInflationEnabled,
|
||||
displayDensityOverride,
|
||||
screenWidthOverride,
|
||||
screenHeightOverride,
|
||||
inputAutoZoomEnabled,
|
||||
fissionEnabled,
|
||||
isolatedProcessEnabled,
|
||||
appZygoteProcessEnabled,
|
||||
lnaBlocking,
|
||||
lnaBlockTrackers,
|
||||
lnaEnabled,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -2843,6 +2899,20 @@ class GeckoEngineSettings {
|
||||
suspectedFingerprintersScope: result[24] as TrackingScope?,
|
||||
allowListBaseline: result[25] as bool?,
|
||||
allowListConvenience: result[26] as bool?,
|
||||
webFontsEnabled: result[27] as bool?,
|
||||
automaticFontSizeAdjustment: result[28] as bool?,
|
||||
fontSizeFactor: result[29] as double?,
|
||||
fontInflationEnabled: result[30] as bool?,
|
||||
displayDensityOverride: result[31] as double?,
|
||||
screenWidthOverride: result[32] as int?,
|
||||
screenHeightOverride: result[33] as int?,
|
||||
inputAutoZoomEnabled: result[34] as bool?,
|
||||
fissionEnabled: result[35] as bool?,
|
||||
isolatedProcessEnabled: result[36] as bool?,
|
||||
appZygoteProcessEnabled: result[37] as bool?,
|
||||
lnaBlocking: result[38] as bool?,
|
||||
lnaBlockTrackers: result[39] as bool?,
|
||||
lnaEnabled: result[40] as bool?,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -5584,14 +5654,14 @@ class GeckoBrowserApi {
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> initialize(String profileFolder, LogLevel logLevel, ContentBlocking contentBlocking, AddonCollection? addonCollection, String? fxaServerOverride, String? syncTokenServerOverride) async {
|
||||
Future<void> initialize(String profileFolder, LogLevel logLevel, ContentBlocking contentBlocking, AddonCollection? addonCollection, String? fxaServerOverride, String? syncTokenServerOverride, GeckoEngineSettings? startupSettings) async {
|
||||
final pigeonVar_channelName = 'dev.flutter.pigeon.flutter_mozilla_components.GeckoBrowserApi.initialize$pigeonVar_messageChannelSuffix';
|
||||
final pigeonVar_channel = BasicMessageChannel<Object?>(
|
||||
pigeonVar_channelName,
|
||||
pigeonChannelCodec,
|
||||
binaryMessenger: pigeonVar_binaryMessenger,
|
||||
);
|
||||
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[profileFolder, logLevel, contentBlocking, addonCollection, fxaServerOverride, syncTokenServerOverride]);
|
||||
final Future<Object?> pigeonVar_sendFuture = pigeonVar_channel.send(<Object?>[profileFolder, logLevel, contentBlocking, addonCollection, fxaServerOverride, syncTokenServerOverride, startupSettings]);
|
||||
final pigeonVar_replyList = await pigeonVar_sendFuture as List<Object?>?;
|
||||
if (pigeonVar_replyList == null) {
|
||||
throw _createConnectionError(pigeonVar_channelName);
|
||||
|
||||
@@ -878,6 +878,26 @@ class GeckoEngineSettings {
|
||||
/// Allow convenience tracking protection exceptions (fixes minor issues)
|
||||
final bool? allowListConvenience;
|
||||
|
||||
// Web Content Settings
|
||||
final bool? webFontsEnabled;
|
||||
final bool? automaticFontSizeAdjustment;
|
||||
final double? fontSizeFactor;
|
||||
final bool? fontInflationEnabled;
|
||||
final double? displayDensityOverride;
|
||||
final int? screenWidthOverride;
|
||||
final int? screenHeightOverride;
|
||||
final bool? inputAutoZoomEnabled;
|
||||
|
||||
// Process Isolation Settings (require app restart)
|
||||
final bool? fissionEnabled;
|
||||
final bool? isolatedProcessEnabled;
|
||||
final bool? appZygoteProcessEnabled;
|
||||
|
||||
// Local Network Access (LNA) Settings
|
||||
final bool? lnaBlocking;
|
||||
final bool? lnaBlockTrackers;
|
||||
final bool? lnaEnabled;
|
||||
|
||||
GeckoEngineSettings(
|
||||
this.javascriptEnabled,
|
||||
this.trackingProtectionPolicy,
|
||||
@@ -906,6 +926,20 @@ class GeckoEngineSettings {
|
||||
this.suspectedFingerprintersScope,
|
||||
this.allowListBaseline,
|
||||
this.allowListConvenience,
|
||||
this.webFontsEnabled,
|
||||
this.automaticFontSizeAdjustment,
|
||||
this.fontSizeFactor,
|
||||
this.fontInflationEnabled,
|
||||
this.displayDensityOverride,
|
||||
this.screenWidthOverride,
|
||||
this.screenHeightOverride,
|
||||
this.inputAutoZoomEnabled,
|
||||
this.fissionEnabled,
|
||||
this.isolatedProcessEnabled,
|
||||
this.appZygoteProcessEnabled,
|
||||
this.lnaBlocking,
|
||||
this.lnaBlockTrackers,
|
||||
this.lnaEnabled,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1103,6 +1137,7 @@ abstract class GeckoBrowserApi {
|
||||
AddonCollection? addonCollection,
|
||||
String? fxaServerOverride,
|
||||
String? syncTokenServerOverride,
|
||||
GeckoEngineSettings? startupSettings,
|
||||
);
|
||||
bool showNativeFragment();
|
||||
void onTrimMemory(int level);
|
||||
|
||||
Reference in New Issue
Block a user