src/sap.ui.core/src/sap/ui/performance/trace/Interaction.js
function isValidRoundtrip(oRequestTiming) {
		var bComplete, bEmpty, bCached;

		// if the request has been completed it has complete timing figures)
		bComplete = oRequestTiming.startTime > 0 &&
			oRequestTiming.startTime <= oRequestTiming.requestStart &&
			oRequestTiming.requestStart <= oRequestTiming.responseEnd;

		// encodedBodySize and transferSize info are not available in all browsers
		if (oRequestTiming.encodedBodySize !== undefined && oRequestTiming.transferSize !== undefined) {
			// if the body is empty a script tag responded from cache is assumed
			bEmpty = oRequestTiming.encodedBodySize ===  0;
			// if transfer size is smaller than body an xhr responded from cache is assumed
			bCached = oRequestTiming.transferSize < oRequestTiming.encodedBodySize;
		}

		return bComplete && !bEmpty && !bCached;
	}
function isValidRoundtrip(oRequestTiming) {
		var bComplete, bEmpty, bCached;

		// if the request has been completed it has complete timing figures)
		bComplete = oRequestTiming.startTime > 0 &&
			oRequestTiming.startTime <= oRequestTiming.requestStart &&
			oRequestTiming.requestStart <= oRequestTiming.responseEnd;

		// encodedBodySize and transferSize info are not available in all browsers
		if (oRequestTiming.encodedBodySize !== undefined && oRequestTiming.transferSize !== undefined) {
			// if the body is empty a script tag responded from cache is assumed
			bEmpty = oRequestTiming.encodedBodySize ===  0;
			// if transfer size is smaller than body an xhr responded from cache is assumed
			bCached = oRequestTiming.transferSize < oRequestTiming.encodedBodySize;
		}

		return bComplete && !bEmpty && !bCached;
	}
function isValidRoundtrip ( oRequestTiming ) { var bComplete , bEmpty , bCached ; // if the request has been completed it has complete timing figures) bComplete = oRequestTiming . startTime > 0 && oRequestTiming . startTime <= oRequestTiming . requestStart && oRequestTiming . requestStart <= oRequestTiming . responseEnd ; // encodedBodySize and transferSize info are not available in all browsers if ( oRequestTiming . encodedBodySize !== undefined && oRequestTiming . transferSize !== undefined ) { // if the body is empty a script tag responded from cache is assumed bEmpty = oRequestTiming . encodedBodySize === 0 ; // if transfer size is smaller than body an xhr responded from cache is assumed bCached = oRequestTiming . transferSize < oRequestTiming . encodedBodySize ; } return bComplete && ! bEmpty && ! bCached ; }
Valid timings are all timings which are completed, not empty and not responded from browser cache.

Note: Currently only Chrome and FF support size related properties (body size and transfer size),
hence the requests of others not supporting them are counted as complete (in dubio pro reo), as
before.

@param {object} oRequestTiming
@private
Valid timings are all timings which are completed not empty and not responded from browser cache .