custom user agent

This commit is contained in:
Fabian Freund
2025-05-17 19:48:27 +02:00
parent 9af6ff6630
commit cf89e2ad80
9 changed files with 99 additions and 3 deletions
@@ -103,6 +103,9 @@ class GeckoEngineSettingsApiImpl : GeckoEngineSettingsApi {
WebContentIsolationStrategy.ISOLATE_HIGH_VALUE -> mozilla.components.concept.engine.fission.WebContentIsolationStrategy.ISOLATE_HIGH_VALUE
}
}
if(settings.userAgent != null) {
components.core.engineSettings.userAgentString = settings.userAgent;
}
}
override fun updateRuntimeSettings(settings: GeckoEngineSettings) {
@@ -149,6 +152,10 @@ class GeckoEngineSettingsApiImpl : GeckoEngineSettingsApi {
if(settings.webContentIsolationStrategy != null) {
components.core.engine.settings.webContentIsolationStrategy = components.core.engineSettings.webContentIsolationStrategy
}
if(settings.userAgent != null) {
components.core.engine.settings.userAgentString = components.core.engineSettings.userAgentString
reloadSession = true
}
if(reloadSession) {
components.useCases.sessionUseCases.reload()
@@ -1451,7 +1451,8 @@ data class GeckoEngineSettings (
val cookieBannerHandlingModePrivateBrowsing: CookieBannerHandlingMode? = null,
val cookieBannerHandlingGlobalRules: Boolean? = null,
val cookieBannerHandlingGlobalRulesSubFrames: Boolean? = null,
val webContentIsolationStrategy: WebContentIsolationStrategy? = null
val webContentIsolationStrategy: WebContentIsolationStrategy? = null,
val userAgent: String? = null
)
{
companion object {
@@ -1466,7 +1467,8 @@ data class GeckoEngineSettings (
val cookieBannerHandlingGlobalRules = pigeonVar_list[7] as Boolean?
val cookieBannerHandlingGlobalRulesSubFrames = pigeonVar_list[8] as Boolean?
val webContentIsolationStrategy = pigeonVar_list[9] as WebContentIsolationStrategy?
return GeckoEngineSettings(javascriptEnabled, trackingProtectionPolicy, httpsOnlyMode, globalPrivacyControlEnabled, preferredColorScheme, cookieBannerHandlingMode, cookieBannerHandlingModePrivateBrowsing, cookieBannerHandlingGlobalRules, cookieBannerHandlingGlobalRulesSubFrames, webContentIsolationStrategy)
val userAgent = pigeonVar_list[10] as String?
return GeckoEngineSettings(javascriptEnabled, trackingProtectionPolicy, httpsOnlyMode, globalPrivacyControlEnabled, preferredColorScheme, cookieBannerHandlingMode, cookieBannerHandlingModePrivateBrowsing, cookieBannerHandlingGlobalRules, cookieBannerHandlingGlobalRulesSubFrames, webContentIsolationStrategy, userAgent)
}
}
fun toList(): List<Any?> {
@@ -1481,6 +1483,7 @@ data class GeckoEngineSettings (
cookieBannerHandlingGlobalRules,
cookieBannerHandlingGlobalRulesSubFrames,
webContentIsolationStrategy,
userAgent,
)
}
override fun equals(other: Any?): Boolean {
@@ -1790,6 +1790,7 @@ class GeckoEngineSettings {
this.cookieBannerHandlingGlobalRules,
this.cookieBannerHandlingGlobalRulesSubFrames,
this.webContentIsolationStrategy,
this.userAgent,
});
bool? javascriptEnabled;
@@ -1812,6 +1813,8 @@ class GeckoEngineSettings {
WebContentIsolationStrategy? webContentIsolationStrategy;
String? userAgent;
List<Object?> _toList() {
return <Object?>[
javascriptEnabled,
@@ -1824,6 +1827,7 @@ class GeckoEngineSettings {
cookieBannerHandlingGlobalRules,
cookieBannerHandlingGlobalRulesSubFrames,
webContentIsolationStrategy,
userAgent,
];
}
@@ -1843,6 +1847,7 @@ class GeckoEngineSettings {
cookieBannerHandlingGlobalRules: result[7] as bool?,
cookieBannerHandlingGlobalRulesSubFrames: result[8] as bool?,
webContentIsolationStrategy: result[9] as WebContentIsolationStrategy?,
userAgent: result[10] as String?,
);
}
@@ -549,6 +549,7 @@ class GeckoEngineSettings {
final bool? cookieBannerHandlingGlobalRules;
final bool? cookieBannerHandlingGlobalRulesSubFrames;
final WebContentIsolationStrategy? webContentIsolationStrategy;
final String? userAgent;
GeckoEngineSettings(
this.javascriptEnabled,
@@ -561,6 +562,7 @@ class GeckoEngineSettings {
this.cookieBannerHandlingGlobalRules,
this.cookieBannerHandlingGlobalRulesSubFrames,
this.webContentIsolationStrategy,
this.userAgent,
);
}