File tree 4 files changed +26
-5
lines changed
4 files changed +26
-5
lines changed Original file line number Diff line number Diff line change @@ -563,7 +563,7 @@ - (RCTImageURLLoaderRequest *)_loadImageOrDataWithURLRequest:(NSURLRequest *)req
563
563
}
564
564
}
565
565
});
566
-
566
+
567
567
return [[RCTImageURLLoaderRequest alloc ] initWithRequestId: requestId imageURL: request.URL cancellationBlock: ^{
568
568
BOOL alreadyCancelled = atomic_fetch_or (cancelled.get (), 1 );
569
569
if (alreadyCancelled) {
@@ -801,12 +801,24 @@ - (void)trackURLImageVisibilityForRequest:(RCTImageURLLoaderRequest *)loaderRequ
801
801
}
802
802
}
803
803
804
+ - (void )trackURLImageRequestDidCancel : (RCTImageURLLoaderRequest *)loaderRequest
805
+ {
806
+ if (!loaderRequest) {
807
+ return ;
808
+ }
809
+
810
+ id <RCTImageURLLoader> loadHandler = [self imageURLLoaderForURL: loaderRequest.imageURL];
811
+ if ([loadHandler respondsToSelector: @selector (trackURLImageRequestDidCancel: )]) {
812
+ [(id <RCTImageURLLoaderWithAttribution>)loadHandler trackURLImageRequestDidCancel: loaderRequest];
813
+ }
814
+ }
815
+
804
816
- (void )trackURLImageDidDestroy : (RCTImageURLLoaderRequest *)loaderRequest
805
817
{
806
818
if (!loaderRequest) {
807
819
return ;
808
820
}
809
-
821
+
810
822
id <RCTImageURLLoader> loadHandler = [self imageURLLoaderForURL: loaderRequest.imageURL];
811
823
if ([loadHandler respondsToSelector: @selector (trackURLImageDidDestroy: )]) {
812
824
[(id <RCTImageURLLoaderWithAttribution>)loadHandler trackURLImageDidDestroy: loaderRequest];
Original file line number Diff line number Diff line change @@ -44,6 +44,11 @@ RCT_EXTERN void RCTEnableImageLoadingPerfInstrumentation(BOOL enabled);
44
44
*/
45
45
- (void )trackURLImageVisibilityForRequest : (RCTImageURLLoaderRequest *)loaderRequest imageView : (UIView *)imageView ;
46
46
47
+ /* *
48
+ * Image instrumentation - notify that the request was cancelled.
49
+ */
50
+ - (void )trackURLImageRequestDidCancel : (RCTImageURLLoaderRequest *)loaderRequest ;
51
+
47
52
/* *
48
53
* Image instrumentation - notify that the native image view was destroyed.
49
54
*/
Original file line number Diff line number Diff line change @@ -65,6 +65,11 @@ struct ImageURLLoaderAttribution {
65
65
*/
66
66
- (void )trackURLImageVisibilityForRequest : (RCTImageURLLoaderRequest *)loaderRequest imageView : (UIView *)imageView ;
67
67
68
+ /* *
69
+ * Image instrumentation - notify that the request was cancelled.
70
+ */
71
+ - (void )trackURLImageRequestDidCancel : (RCTImageURLLoaderRequest *)loaderRequest ;
72
+
68
73
/* *
69
74
* Image instrumentation - notify that the native image view was destroyed.
70
75
*/
Original file line number Diff line number Diff line change @@ -218,9 +218,8 @@ - (void)setResizeMode:(RCTResizeMode)resizeMode
218
218
219
219
- (void )cancelImageLoad
220
220
{
221
- if (_loaderRequest.cancellationBlock ) {
222
- _loaderRequest.cancellationBlock ();
223
- }
221
+ [_loaderRequest cancel ];
222
+ [_imageLoader trackURLImageRequestDidCancel: _loaderRequest];
224
223
225
224
_loaderRequest = nil ;
226
225
_pendingImageSource = nil ;
You can’t perform that action at this time.
0 commit comments