Skip to content
Snippets Groups Projects
Commit 8ab13dee authored by Matthew Finkel's avatar Matthew Finkel Committed by morgan
Browse files

[android] Add support for new GeckoView interfaces

Bug 40006: Expose Security Level interface

Bug 40019: Expose spoofEnglish pref

Bug 34439: Isolate Icon loader on Android

Bug 41394: Expose privacy.prioritizeonions.enabled to Android.
parent 074f89ab
Branches
Tags
2 merge requests!1202Bug_43099: 2024 YEC Strings,!1136Bug 43085: Rebased alpha onto 128.2.0esr
......@@ -1331,6 +1331,29 @@ class GeckoEngine(
override var globalPrivacyControlEnabled: Boolean
get() = runtime.settings.globalPrivacyControl
set(value) { runtime.settings.setGlobalPrivacyControl(value) }
override var torSecurityLevel: Int
get() = runtime.settings.torSecurityLevel
set(value) {
value.let {
runtime.settings.torSecurityLevel = it
}
}
override var spoofEnglish: Boolean
get() = runtime.settings.spoofEnglish
set(value) {
value.let {
runtime.settings.spoofEnglish = it
localeUpdater.updateValue()
}
}
override var prioritizeOnions: Boolean
get() = runtime.settings.prioritizeOnions
set(value) {
value.let {
runtime.settings.prioritizeOnions = it
}
}
}.apply {
defaultSettings?.let {
this.javascriptEnabled = it.javascriptEnabled
......@@ -1357,6 +1380,9 @@ class GeckoEngine(
this.cookieBannerHandlingGlobalRulesSubFrames = it.cookieBannerHandlingGlobalRulesSubFrames
this.globalPrivacyControlEnabled = it.globalPrivacyControlEnabled
this.emailTrackerBlockingPrivateBrowsing = it.emailTrackerBlockingPrivateBrowsing
this.torSecurityLevel = it.torSecurityLevel
this.spoofEnglish = it.spoofEnglish
this.prioritizeOnions = it.prioritizeOnions
}
}
......
......@@ -88,7 +88,9 @@ private fun Request.toWebRequest(): WebRequest = WebRequest.Builder(url)
.addBodyFrom(this)
.referrer(referrerUrl)
.cacheMode(if (useCaches) CACHE_MODE_DEFAULT else CACHE_MODE_RELOAD)
// Turn off bleeding-edge network features to avoid breaking core browser functionality.
.beConservative(conservative)
.origin(origin)
.build()
private fun WebRequest.Builder.addHeadersFrom(request: Request): WebRequest.Builder {
......
......@@ -62,6 +62,7 @@ open class HttpIconLoader(
redirect = Request.Redirect.FOLLOW,
useCaches = true,
private = request.isPrivate,
origin = request.url
)
return try {
......
......@@ -251,6 +251,15 @@ abstract class Settings {
* Setting to control the email tracker blocking feature in the private browsing mode.
*/
open var emailTrackerBlockingPrivateBrowsing: Boolean by UnsupportedSetting()
/**
* Setting to control the current security level
*/
open var torSecurityLevel: Int by UnsupportedSetting()
open var spoofEnglish: Boolean by UnsupportedSetting()
open var prioritizeOnions: Boolean by UnsupportedSetting()
}
/**
......@@ -301,6 +310,9 @@ data class DefaultSettings(
override var queryParameterStrippingAllowList: String = "",
override var queryParameterStrippingStripList: String = "",
override var emailTrackerBlockingPrivateBrowsing: Boolean = false,
override var torSecurityLevel: Int = 4,
override var spoofEnglish: Boolean = false,
override var prioritizeOnions: Boolean = false,
) : Settings()
class UnsupportedSetting<T> {
......
......@@ -49,6 +49,7 @@ data class Request(
val cookiePolicy: CookiePolicy = CookiePolicy.INCLUDE,
val useCaches: Boolean = true,
val private: Boolean = false,
val origin: String? = null,
) {
var referrerUrl: String? = null
var conservative: Boolean = false
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment