Skip to content

Commit 9be22e8

Browse files
Veeren Mandaliafacebook-github-bot
authored andcommitted
Unregister URIs from Reverse MBP Fallback
Reviewed By: malmeida Differential Revision: D66250348 fbshipit-source-id: 9acbac48acb7169989c58a6e977d2b07fcaf1aa5
1 parent 5c2cb44 commit 9be22e8

File tree

5 files changed

+15
-0
lines changed

5 files changed

+15
-0
lines changed

urimod/src/main/java/com/facebook/fresco/urimod/NopUriModifier.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,6 @@ object NopUriModifier : UriModifierInterface {
2424
): ModificationResult = ModificationResult.Disabled("NopUriModifier")
2525

2626
override fun modifyPrefetchUri(uri: Uri, callerContext: Any?): Uri = uri
27+
28+
override fun unregisterReverseFallbackUri(uri: Uri) = Unit
2729
}

urimod/src/main/java/com/facebook/fresco/urimod/UriModifierInterface.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ interface UriModifierInterface {
2525

2626
fun modifyPrefetchUri(uri: Uri, callerContext: Any?): Uri?
2727

28+
fun unregisterReverseFallbackUri(uri: Uri)
29+
2830
sealed class ModificationResult(private val comment: String) {
2931

3032
abstract val bestAllowlistedSize: Int?

vito/core-java-impl/src/main/java/com/facebook/fresco/vito/core/impl/VitoImagePipelineImpl.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,12 @@ class VitoImagePipelineImpl(
169169
imagePipeline.evictFromCache(uri)
170170
}
171171

172+
override fun hintUnmodifiedUri(imageRequest: VitoImageRequest) {
173+
imageRequest.finalImageRequest?.sourceUri?.let {
174+
UriModifier.INSTANCE.unregisterReverseFallbackUri(it)
175+
}
176+
}
177+
172178
private fun experimentalDynamicSizeVito2(): Boolean = config.experimentalDynamicSizeVito2()
173179

174180
private fun experimentalDynamicSizeWithCacheFallbackVito2(): Boolean =

vito/core/src/main/java/com/facebook/fresco/vito/core/VitoImagePipeline.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,6 @@ interface VitoImagePipeline {
6565
fun evictFromCaches(imageRequest: VitoImageRequest) {
6666
throw UnsupportedOperationException("Method not implemented: evictFromCaches")
6767
}
68+
69+
fun hintUnmodifiedUri(imageRequest: VitoImageRequest) = Unit
6870
}

vito/litho/src/main/java/com/facebook/fresco/vito/litho/FrescoVitoImage2Spec.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,9 @@ object FrescoVitoImage2Spec {
196196
forceKeepOriginalSize.set(isInDiskCache != false)
197197
}
198198
if (forceKeepOriginalSize.get() == true) {
199+
// Tell image pipeline that we're using an unmodified URL so it can ensure we can prefetch
200+
FrescoVitoProvider.getImagePipeline().hintUnmodifiedUri(requestCachedValue)
201+
199202
// Prefetch in OnPrepare since no prefetch will happen in OnBoundsDefined
200203
maybePrefetchInOnPrepare(
201204
prefetch,

0 commit comments

Comments
 (0)