Summary:
Flipper Network plugin uses timestamps for various usages e.g. start time of network requests, request duration, etc.
This diff changes the origin of such timestamps.
[NSDate timeIntervalSinceReferenceDate] in favour of FBMonotonicDeviceTimeGetCurrentMilliseconds().
The former uses a timestamp based on date. The latter uses the system boot time.
This translates in errors when the Flipper Desktop app tries to make sense of such timestamps.
This change also adds parity with the Android network plugin that uses System.currentTimeMillis().
The result is multiplied by 1000 as JavaScript expects a timestamp in millseconds.
Reviewed By: fabiomassimo
Differential Revision: D29029192
fbshipit-source-id: b38a4798ecf1564f5801ff3549ffeb9671fa32d6
Summary:
This PR fixes the crash mentioned [here](https://github.com/facebook/flipper/issues/1674#issuecomment-754402609) in the https://github.com/facebook/flipper/issues/1674 . The issue was that logging `NSLog(@"%@", [self valueForKey:@"_methodDescription"]);` in the swizzled network delegate class used to cause a crash. The cause of this was the nil `methodDescription.types` sent to `class_addMethod`.
In the following change we do not add a method to the class which doesn't implement the selector, we will anyway listen for those events from the base NSURLSession class. Removing the `class_addMethod`, fixes both the issue mentioned
[here](https://github.com/facebook/flipper/issues/1674#issuecomment-754402609) in https://github.com/facebook/flipper/issues/1674.
This PR also fixes an issue where no network calls where logged in Flipper when the iOS version was 14, the reason was that the URLSessionResume task was not properly swizzled for 14.
## Changelog
- Do not add a runtime method to the delegate which doesn't implement a responder
- Fix swizzling logic of the URLSession task resume method for ios 14
Pull Request resolved: https://github.com/facebook/flipper/pull/1810
Test Plan:
- I ran the sample app and checked that the network calls are logged.
- I copy pasted the changes in RN project and verified that the issues mentioned in https://github.com/facebook/flipper/issues/1674 doesn't happen and also verified that the network calls being hit from JS and Native code gets logged in Flipper. Verified with IsolatedSwizzles.zip mentioned over [here](https://github.com/facebook/flipper/issues/1674#issuecomment-754726174). Also verified by copy pasting the code in the fresh RN project.
Reviewed By: fabiomassimo
Differential Revision: D25801510
Pulled By: mweststrate
fbshipit-source-id: 53ef574696d2abbdbfc2b6d94769327cdfa8aa2b
Summary:
This diff runs CLANGFORMAT lint on plugins. I have added CLANGFORMAT as the lint engined for objc files in xplat/sonar. Right now the iOS folder is not formatted according to CLANGFORMAT.
Ran `arc lint -a --paths-cmd "find ./iOS/Plugins -type f" --verbose`
Reviewed By: passy
Differential Revision: D19942173
fbshipit-source-id: 8b975b0a344df073b02d69cd1f9ee5629af2799d