38 lines
1.1 KiB
Kotlin
38 lines
1.1 KiB
Kotlin
package org.mozilla.fenix.browser
|
|
|
|
import android.os.Build.VERSION.RELEASE
|
|
import mozilla.components.concept.engine.EngineSession
|
|
import mozilla.components.support.ktx.kotlin.sha1
|
|
|
|
/**
|
|
* Utility to rewrite the User-Agent header for requests to whitelisted domains.
|
|
*
|
|
* Follow up: https://github.com/mozilla-mobile/fenix/issues/3341
|
|
*/
|
|
object UserAgentRewriter {
|
|
|
|
/**
|
|
* Updates the User-Agent based on the [whitelistUaFilter] to set the [userAgentGecko69] value.
|
|
*/
|
|
fun maybeRewriteUserAgent(session: EngineSession, host: String) {
|
|
session.settings.userAgentString = if (whitelistUaFilter.contains(host.sha1())) {
|
|
userAgentGecko69
|
|
} else {
|
|
null
|
|
}
|
|
}
|
|
|
|
/**
|
|
* The white-listed domains.
|
|
*/
|
|
private val whitelistUaFilter = setOf(
|
|
"1b12ecd917215146f79a0ac5e01b3059faadab47",
|
|
"a486f819018512f60a8a66324e51be0e1118a91d"
|
|
)
|
|
|
|
/**
|
|
* The User-Agent to use for the white-listed domains.
|
|
*/
|
|
private val userAgentGecko69 = "Mozilla/5.0 (Android $RELEASE; Mobile; rv:69.0) Gecko/69.0 Firefox/69.0"
|
|
}
|