Crashes
- iOS: the document menus (
open.file,open.chooser,open.optionsMenu) present from the view controller on top. With the UIScene life cycle that React Native 0.88's template uses, the first menu crashed the app; over a modal screen a menu did nothing (#498, #311) - iOS: an empty multipart form, or one whose last field has no
nameordata, no longer crashes the app (#197) - Android:
android.downloadManagerwithoutuseDownloadManagerno longer crashes the app when listing the file in the Downloads app; the entry is named after the file when no title is given (#390) - Android:
fs.lstaton a folder that cannot be read rejectsEACCESinstead of crashing the app;fs.lsrejectsEACCEStoo (#425)
Requests
- Android: a request that fails after the server may already have received it is no longer sent a second time. A read timeout, a connection the server dropped and a
503withRetry-After: 0each made a POST go out twice. OkHttp's silent retry now stays on only forGETandHEAD, idle connections are dropped after 4 s so a POST does not go out on one the server already closed, andRetry-Afteris removed from a503to other methods (#505, #504) - A header value that is not a string (an object, an array, a number, a boolean) rejects with
EINVALbefore the request starts. Android crashed on it, iOS dropped it and Windows sent it as text;0andfalsewere sent as"".nullandundefinedare still sent as""(#499, #472) headersthat are not an object (a body passed in their place) reject withEINVAL; a long string threw fromfetchon Hermes (#334)- A file given as a
file://URL (wrap('file:///…'),{file: 'file:///…'}) is sent as its decoded path. iOS multipart failed with "failed to create request body", Windows sent an empty part and Android kept%20in the name (#411, #256) - Android:
timeoutbounds writing the request body too; an upload the server stopped reading never ended (#384) - Android: a response header sent more than once (
Set-Cookie) keeps every value, joined with,as on iOS; only the last reached JS (#377)
Files and apps
- Android:
open.chooseropens the chooser; it rejectedEUNSPECIFIEDon every call (#486) - iOS:
fs.createFile(path, data, 'base64')rejectsEINVALfor data that is not base64, as Android and Windows do; it left an empty file (#501)
Build
- Swift Package Manager autolinking works on React Native 0.88:
package.jsonnames the product the manifest declares (#507) - Every file with Flow syntax says
@flow, so transformers that parse only marked files as Flow, such asbabel-plugin-syntax-hermes-parserwithparseLangTypes: 'flow', can read the package (#503)