mirror of
https://github.com/status-im/react-native.git
synced 2025-02-24 15:18:10 +00:00
Revert ArrayBuffer support
Summary:The ArrayBuffer support added in https://github.com/facebook/react-native/pull/6156 crashed on iOS7 as Uint8Array is unavailable. This diff removes that feature. We can revisit it again once we drop support for iOS 7. Reviewed By: javache Differential Revision: D2999762 fb-gh-sync-id: b497eac92ca5a0865b308d2a08c9409fcce97156 shipit-source-id: b497eac92ca5a0865b308d2a08c9409fcce97156
This commit is contained in:
parent
e3de994e69
commit
ca67648f03
@ -43,8 +43,8 @@ class XMLHttpRequestBase {
|
|||||||
readyState: number;
|
readyState: number;
|
||||||
responseHeaders: ?Object;
|
responseHeaders: ?Object;
|
||||||
responseText: ?string;
|
responseText: ?string;
|
||||||
response: string | ArrayBuffer | null;
|
response: ?string;
|
||||||
responseType: '' | 'arraybuffer' | 'text';
|
responseType: '' | 'text';
|
||||||
status: number;
|
status: number;
|
||||||
timeout: number;
|
timeout: number;
|
||||||
responseURL: ?string;
|
responseURL: ?string;
|
||||||
@ -143,15 +143,6 @@ class XMLHttpRequestBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_stringToArrayBuffer(str: string): ArrayBuffer {
|
|
||||||
var buffer = new ArrayBuffer(str.length);
|
|
||||||
var bufferView = new Uint8Array(buffer);
|
|
||||||
for (var i = 0, l = str.length; i < l; i++) {
|
|
||||||
bufferView[i] = str.charCodeAt(i);
|
|
||||||
}
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
_didReceiveData(requestId: number, responseText: string): void {
|
_didReceiveData(requestId: number, responseText: string): void {
|
||||||
if (requestId === this._requestId) {
|
if (requestId === this._requestId) {
|
||||||
if (!this.responseText) {
|
if (!this.responseText) {
|
||||||
@ -164,10 +155,7 @@ class XMLHttpRequestBase {
|
|||||||
case 'text':
|
case 'text':
|
||||||
this.response = this.responseText;
|
this.response = this.responseText;
|
||||||
break;
|
break;
|
||||||
case 'arraybuffer': // NOTE: not supported by fetch
|
default: //TODO: Support other types, eg: document, arraybuffer, json, blob
|
||||||
this.response = this._stringToArrayBuffer(this.responseText);
|
|
||||||
break;
|
|
||||||
default: //TODO: Support the other response type as well (eg:- document, json, blob)
|
|
||||||
this.response = null;
|
this.response = null;
|
||||||
}
|
}
|
||||||
this.setReadyState(this.LOADING);
|
this.setReadyState(this.LOADING);
|
||||||
@ -238,12 +226,6 @@ class XMLHttpRequestBase {
|
|||||||
throw new Error('Subclass must define sendImpl method');
|
throw new Error('Subclass must define sendImpl method');
|
||||||
}
|
}
|
||||||
|
|
||||||
_uintToString(uintArray: Int8Array): string {
|
|
||||||
// $FlowFixMe - Function.apply accepts Int8Array, but Flow thinks it doesn't
|
|
||||||
var encodedString = String.fromCharCode.apply(null, uintArray);
|
|
||||||
return decodeURIComponent(encodedString);
|
|
||||||
}
|
|
||||||
|
|
||||||
send(data: any): void {
|
send(data: any): void {
|
||||||
if (this.readyState !== this.OPENED) {
|
if (this.readyState !== this.OPENED) {
|
||||||
throw new Error('Request has not been opened');
|
throw new Error('Request has not been opened');
|
||||||
@ -252,9 +234,6 @@ class XMLHttpRequestBase {
|
|||||||
throw new Error('Request has already been sent');
|
throw new Error('Request has already been sent');
|
||||||
}
|
}
|
||||||
this._sent = true;
|
this._sent = true;
|
||||||
if (data instanceof Int8Array) {
|
|
||||||
data = this._uintToString(data);
|
|
||||||
}
|
|
||||||
this.sendImpl(this._method, this._url, this._headers, data, this.timeout);
|
this.sendImpl(this._method, this._url, this._headers, data, this.timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user