Skip to content

Commit 8061c9d

Browse files
authored
Merge pull request #207 from hotwired/ignore-esm-blob-urls
Ignore blob:http* ESM shim requests when cold booting the WebView
2 parents 6522c8b + 67fdbfe commit 8061c9d

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

turbo/src/main/kotlin/dev/hotwire/turbo/http/TurboWebViewRequestInterceptor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package dev.hotwire.turbo.http
33
import android.webkit.WebResourceRequest
44
import android.webkit.WebResourceResponse
55
import dev.hotwire.turbo.session.TurboSession
6+
import dev.hotwire.turbo.util.isHttpGetRequest
67
import dev.hotwire.turbo.util.logEvent
78

89
internal class TurboWebViewRequestInterceptor(val session: TurboSession) {
@@ -38,8 +39,7 @@ internal class TurboWebViewRequestInterceptor(val session: TurboSession) {
3839
}
3940

4041
private fun shouldInterceptRequest(request: WebResourceRequest): Boolean {
41-
return request.method.equals("GET", ignoreCase = true) &&
42-
request.url.scheme?.startsWith("HTTP", ignoreCase = true) == true
42+
return request.isHttpGetRequest()
4343
}
4444

4545
private fun logCurrentVisitResult(url: String, result: TurboHttpRepository.Result) {

turbo/src/main/kotlin/dev/hotwire/turbo/session/TurboSession.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,8 @@ class TurboSession internal constructor(
657657
*/
658658
override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
659659
val location = request.url.toString()
660-
val isColdBootRedirect = isColdBooting && currentVisit?.location != location
660+
val isHttpRequest = request.isHttpGetRequest()
661+
val isColdBootRedirect = isHttpRequest && isColdBooting && currentVisit?.location != location
661662
val shouldOverride = isReady || isColdBootRedirect
662663

663664
// Don't allow onPageFinished to process its

turbo/src/main/kotlin/dev/hotwire/turbo/util/TurboExtensions.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import android.animation.ArgbEvaluator
44
import android.animation.ValueAnimator
55
import android.content.Context
66
import android.os.Handler
7+
import android.webkit.WebResourceRequest
78
import com.google.gson.Gson
89
import com.google.gson.GsonBuilder
910
import com.google.gson.reflect.TypeToken
@@ -37,6 +38,11 @@ internal fun File.deleteAllFilesInDirectory() {
3738
}
3839
}
3940

41+
internal fun WebResourceRequest.isHttpGetRequest(): Boolean {
42+
return method.equals("GET", ignoreCase = true) &&
43+
url.scheme?.startsWith("HTTP", ignoreCase = true) == true
44+
}
45+
4046
internal fun Any.toJson(): String {
4147
return gson.toJson(this)
4248
}

0 commit comments

Comments
 (0)