mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Override X-Requested-With header value in WebView requests (closes #6781)
This commit is contained in:
		| @@ -32,6 +32,7 @@ import eu.kanade.tachiyomi.network.NetworkHelper | ||||
| import eu.kanade.tachiyomi.ui.base.delegate.SecureActivityDelegate | ||||
| import eu.kanade.tachiyomi.util.preference.asImmediateFlow | ||||
| import eu.kanade.tachiyomi.util.system.AuthenticatorUtil | ||||
| import eu.kanade.tachiyomi.util.system.WebViewUtil | ||||
| import eu.kanade.tachiyomi.util.system.animatorDurationScale | ||||
| import eu.kanade.tachiyomi.util.system.logcat | ||||
| import eu.kanade.tachiyomi.util.system.notification | ||||
| @@ -148,6 +149,23 @@ open class App : Application(), DefaultLifecycleObserver, ImageLoaderFactory { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override fun getPackageName(): String { | ||||
|         try { | ||||
|             // Override the value passed as X-Requested-With in WebView requests | ||||
|             val stackTrace = Thread.currentThread().stackTrace | ||||
|             for (element in stackTrace) { | ||||
|                 if ("org.chromium.base.BuildInfo".equals(element.className, ignoreCase = true)) { | ||||
|                     if ("getAll".equals(element.methodName, ignoreCase = true)) { | ||||
|                         return WebViewUtil.SPOOF_PACKAGE_NAME | ||||
|                     } | ||||
|                     break | ||||
|                 } | ||||
|             } | ||||
|         } catch (e: Exception) { | ||||
|         } | ||||
|         return super.getPackageName() | ||||
|     } | ||||
|  | ||||
|     protected open fun setupAcra() { | ||||
|         if (BuildConfig.FLAVOR != "dev") { | ||||
|             initAcra { | ||||
|   | ||||
| @@ -101,7 +101,6 @@ class CloudflareInterceptor(private val context: Context) : Interceptor { | ||||
|  | ||||
|         val origRequestUrl = request.url.toString() | ||||
|         val headers = request.headers.toMultimap().mapValues { it.value.getOrNull(0) ?: "" }.toMutableMap() | ||||
|         headers["X-Requested-With"] = WebViewUtil.REQUESTED_WITH | ||||
|  | ||||
|         executor.execute { | ||||
|             val webview = WebView(context) | ||||
|   | ||||
| @@ -105,7 +105,6 @@ class WebViewActivity : BaseActivity() { | ||||
|                 headers = source.headers.toMultimap().mapValues { it.value.getOrNull(0) ?: "" }.toMutableMap() | ||||
|                 binding.webview.settings.userAgentString = source.headers["User-Agent"] | ||||
|             } | ||||
|             headers["X-Requested-With"] = WebViewUtil.REQUESTED_WITH | ||||
|  | ||||
|             supportActionBar?.subtitle = url | ||||
|  | ||||
|   | ||||
| @@ -9,7 +9,7 @@ import android.webkit.WebView | ||||
| import logcat.LogPriority | ||||
|  | ||||
| object WebViewUtil { | ||||
|     const val REQUESTED_WITH = "com.android.browser" | ||||
|     const val SPOOF_PACKAGE_NAME = "com.android.chrome" | ||||
|  | ||||
|     const val MINIMUM_WEBVIEW_VERSION = 95 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user