react-native/Libraries/Network
Jean Regisser 1e52ef23e7 Fix retain cyles in RCTNetworkTask when used with RCTFileRequestHandler and RCTDataRequestHandler
Summary: Hi,

While implementing my own `RCTURLRequestHandler` I came across retain cycles in `RCTNetworkTask` when used with `RCTFileRequestHandler` and `RCTDataRequestHandler`.

The `NSBlockOperation` used in `RCTFileRequestHandler` and `RCTDataRequestHandler` could never be dealloc'ed because of a retain cycle.
And then the second issue was that those blocks were also strongly capturing the passed delegate which in this case is the `RCTNetworkTask` itself and then since the task was storing the block as a `requestToken`, the task could never be dealloc'ed as well.

Here are my proposed fixes. Let me know what you think.
Closes https://github.com/facebook/react-native/pull/3884

Reviewed By: svcscm

Differential Revision: D2615353

Pulled By: nicklockwood

fb-gh-sync-id: a73cbecffbebea75aaeb23d39f04a0d87602926f
2015-11-04 07:16:26 -08:00
..
RCTNetwork.xcodeproj Added RCTDataRequestHandler 2015-10-19 09:07:06 -07:00
FormData.js Allow duplicate keys in FormData 2015-10-21 15:18:40 -07:00
NetInfo.js - Fix response variable from getCurrentReachability 2015-10-11 19:42:24 -07:00
RCTDataRequestHandler.h Added RCTDataRequestHandler 2015-10-19 09:07:06 -07:00
RCTDataRequestHandler.m Fix retain cyles in RCTNetworkTask when used with RCTFileRequestHandler and RCTDataRequestHandler 2015-11-04 07:16:26 -08:00
RCTFileRequestHandler.h Added RCTFileRequestHandler 2015-10-13 08:14:28 -07:00
RCTFileRequestHandler.m Fix retain cyles in RCTNetworkTask when used with RCTFileRequestHandler and RCTDataRequestHandler 2015-11-04 07:16:26 -08:00
RCTHTTPRequestHandler.h Refactored networking logic out into RCTDownloadTask 2015-07-23 04:00:31 -08:00
RCTHTTPRequestHandler.m Added lightweight generic annotations 2015-11-03 14:49:30 -08:00
RCTNetInfo.h Rename RCTReachability to RCTNetInfo 2015-08-14 08:20:01 -08:00
RCTNetInfo.m Rename RCTReachability to RCTNetInfo 2015-08-14 08:20:01 -08:00
RCTNetworkTask.h Fix retain cyles in RCTNetworkTask when used with RCTFileRequestHandler and RCTDataRequestHandler 2015-11-04 07:16:26 -08:00
RCTNetworkTask.m Added RCTDataRequestHandler 2015-10-19 09:07:06 -07:00
RCTNetworking.android.js Release React Native for Android 2015-09-14 18:13:39 +01:00
RCTNetworking.h Added RCTDataRequestHandler 2015-10-19 09:07:06 -07:00
RCTNetworking.m Added lightweight generic annotations 2015-11-03 14:49:30 -08:00
XMLHttpRequest.android.js Release React Native for Android 2015-09-14 18:13:39 +01:00
XMLHttpRequest.ios.js Fix null values in network requests 2015-08-14 05:16:02 -08:00
XMLHttpRequestBase.js Fix incorrect lowercase response headers set for XHR responses 2015-07-07 15:05:45 -08:00