|
12 | 12 |
|
13 | 13 | const BlobManager = require('../Blob/BlobManager');
|
14 | 14 | const EventTarget = require('event-target-shim');
|
| 15 | +const GlobalPerformanceLogger = require('react-native/Libraries/Utilities/GlobalPerformanceLogger'); |
15 | 16 | const RCTNetworking = require('./RCTNetworking');
|
16 | 17 |
|
17 | 18 | const base64 = require('base64-js');
|
@@ -132,6 +133,7 @@ class XMLHttpRequest extends (EventTarget(...XHR_EVENTS): any) {
|
132 | 133 | _headers: Object;
|
133 | 134 | _lowerCaseResponseHeaders: Object;
|
134 | 135 | _method: ?string = null;
|
| 136 | + _perfKey: ?string = null; |
135 | 137 | _response: string | ?Object;
|
136 | 138 | _responseType: ResponseType;
|
137 | 139 | _response: string = '';
|
@@ -301,6 +303,8 @@ class XMLHttpRequest extends (EventTarget(...XHR_EVENTS): any) {
|
301 | 303 | responseURL: ?string,
|
302 | 304 | ): void {
|
303 | 305 | if (requestId === this._requestId) {
|
| 306 | + this._perfKey != null && |
| 307 | + GlobalPerformanceLogger.stopTimespan(this._perfKey); |
304 | 308 | this.status = status;
|
305 | 309 | this.setResponseHeaders(responseHeaders);
|
306 | 310 | this.setReadyState(this.HEADERS_RECEIVED);
|
@@ -514,8 +518,20 @@ class XMLHttpRequest extends (EventTarget(...XHR_EVENTS): any) {
|
514 | 518 | }
|
515 | 519 |
|
516 | 520 | const doSend = () => {
|
517 |
| - invariant(this._method, 'Request method needs to be defined.'); |
518 |
| - invariant(this._url, 'Request URL needs to be defined.'); |
| 521 | + const friendlyName = |
| 522 | + this._trackingName !== 'unknown' ? this._trackingName : this._url; |
| 523 | + this._perfKey = 'network_XMLHttpRequest_' + String(friendlyName); |
| 524 | + GlobalPerformanceLogger.startTimespan(this._perfKey); |
| 525 | + invariant( |
| 526 | + this._method, |
| 527 | + 'XMLHttpRequest method needs to be defined (%s).', |
| 528 | + friendlyName, |
| 529 | + ); |
| 530 | + invariant( |
| 531 | + this._url, |
| 532 | + 'XMLHttpRequest URL needs to be defined (%s).', |
| 533 | + friendlyName, |
| 534 | + ); |
519 | 535 | RCTNetworking.sendRequest(
|
520 | 536 | this._method,
|
521 | 537 | this._trackingName,
|
|
0 commit comments