1
- /*! github.com/micmro/PerfCascade Version:2.10.3 (25/08 /2021) */
1
+ /*! github.com/micmro/PerfCascade Version:2.11.0 (24/11 /2021) */
2
2
3
3
( function ( f ) { if ( typeof exports === "object" && typeof module !== "undefined" ) { module . exports = f ( ) } else if ( typeof define === "function" && define . amd ) { define ( [ ] , f ) } else { var g ; if ( typeof window !== "undefined" ) { g = window } else if ( typeof global !== "undefined" ) { g = global } else if ( typeof self !== "undefined" ) { g = self } else { g = this } g . perfCascade = f ( ) } } ) ( function ( ) { var define , module , exports ; return ( function ( ) { function r ( e , n , t ) { function o ( i , f ) { if ( ! n [ i ] ) { if ( ! e [ i ] ) { var c = "function" == typeof require && require ; if ( ! f && c ) return c ( i , ! 0 ) ; if ( u ) return u ( i , ! 0 ) ; var a = new Error ( "Cannot find module '" + i + "'" ) ; throw a . code = "MODULE_NOT_FOUND" , a } var p = n [ i ] = { exports :{ } } ; e [ i ] [ 0 ] . call ( p . exports , function ( r ) { var n = e [ i ] [ 1 ] [ r ] ; return o ( n || r ) } , p , p . exports , r , e , n , t ) } return n [ i ] . exports } for ( var u = "function" == typeof require && require , i = 0 ; i < t . length ; i ++ ) o ( t [ i ] ) ; return o } return r } ) ( ) ( { 1 :[ function ( require , module , exports ) {
4
4
"use strict" ;
@@ -1678,6 +1678,7 @@ var getUserTimings = function (currPage, options) {
1678
1678
*/
1679
1679
var buildDetailTimingBlocks = function ( startRelative , harEntry ) {
1680
1680
var t = harEntry . timings ;
1681
+ var chunks = harEntry . _chunks || [ ] ;
1681
1682
var types = [ "blocked" , "dns" , "connect" , "send" , "wait" , "receive" ] ;
1682
1683
return types . reduce ( function ( collect , key ) {
1683
1684
var time = getTimePair ( key , harEntry , collect , startRelative ) ;
@@ -1694,6 +1695,9 @@ var buildDetailTimingBlocks = function (startRelative, harEntry) {
1694
1695
. concat ( [ helpers_1 . createWaterfallEntryTiming ( "ssl" , Math . round ( sslStart ) , Math . round ( sslEnd ) ) ] )
1695
1696
. concat ( [ helpers_1 . createWaterfallEntryTiming ( key , Math . round ( connectStart ) , Math . round ( time . end ) ) ] ) ;
1696
1697
}
1698
+ if ( key === "receive" && chunks && chunks . length > 0 ) {
1699
+ return collect . concat ( [ helpers_1 . createWaterfallEntryTiming ( key , Math . round ( time . start ) , Math . round ( time . end ) , chunks ) ] ) ;
1700
+ }
1697
1701
return collect . concat ( [ helpers_1 . createWaterfallEntryTiming ( key , Math . round ( time . start ) , Math . round ( time . end ) ) ] ) ;
1698
1702
} , [ ] ) ;
1699
1703
} ;
@@ -1752,7 +1756,6 @@ var createResponseDetails = function (entry, indicators) {
1752
1756
"use strict" ;
1753
1757
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
1754
1758
exports . flattenKvTuple = exports . makeMimeTypeIcon = exports . makeRowCssClasses = exports . createWaterfallEntryTiming = exports . createWaterfallEntry = exports . mimeToRequestType = exports . makeDefinitionList = void 0 ;
1755
- /** Helpers that are not file-fromat specific */
1756
1759
var misc_1 = require ( "../helpers/misc" ) ;
1757
1760
var parse_1 = require ( "../helpers/parse" ) ;
1758
1761
var svg_indicators_1 = require ( "../waterfall/row/svg-indicators" ) ;
@@ -1840,14 +1843,15 @@ function createWaterfallEntry(url, start, end, segments, responseDetails, tabs)
1840
1843
}
1841
1844
exports . createWaterfallEntry = createWaterfallEntry ;
1842
1845
/** helper to create a `WaterfallEntryTiming` */
1843
- function createWaterfallEntryTiming ( type , start , end ) {
1846
+ function createWaterfallEntryTiming ( type , start , end , chunks ) {
1844
1847
var total = ( typeof start !== "number" || typeof end !== "number" ) ? NaN : ( end - start ) ;
1845
1848
var typeClean = parse_1 . sanitizeAlphaNumeric ( type ) ;
1846
1849
return {
1847
1850
end : end ,
1848
1851
start : start ,
1849
1852
total : total ,
1850
1853
type : typeClean ,
1854
+ chunks : chunks ,
1851
1855
} ;
1852
1856
}
1853
1857
exports . createWaterfallEntryTiming = createWaterfallEntryTiming ;
@@ -2406,6 +2410,23 @@ function makeBlock(rectData, className) {
2406
2410
}
2407
2411
return holder ;
2408
2412
}
2413
+ function makeChunkBlock ( chunkData , rectData , className ) {
2414
+ var holder = svg . newG ( "" ) ;
2415
+ var blockHeight = rectData . height - 1 ;
2416
+ // TODO: Once we have a way to pass the available bandwidth we can calculate the length for each chunk.
2417
+ // const blockWidth = chunkData.ts - (chunkData.bytes / (5000000 / 8.0));
2418
+ var rectX = misc . roundNumber ( chunkData . ts / rectData . unit ) + "%" ;
2419
+ var rect = svg . newRect ( {
2420
+ height : blockHeight ,
2421
+ width : "1px" ,
2422
+ x : rectX ,
2423
+ y : rectData . y ,
2424
+ } , className , {
2425
+ pointerEvents : "none"
2426
+ } ) ;
2427
+ holder . appendChild ( rect ) ;
2428
+ return holder ;
2429
+ }
2409
2430
/**
2410
2431
* Converts a segment to RectData
2411
2432
* @param {WaterfallEntryTiming } segment
@@ -2478,10 +2499,16 @@ function createRect(rectData, entry) {
2478
2499
if ( segments && segments . length > 0 ) {
2479
2500
segments . forEach ( function ( segment ) {
2480
2501
if ( ! isNaN ( segment . total ) && segment . total > 0 && typeof segment . start === "number" ) {
2481
- var childRectData = segmentToRectData ( segment , rectData ) ;
2482
- var childRect = makeBlock ( childRectData , "segment " + childRectData . cssClass ) ;
2483
- firstX = Math . min ( firstX , childRectData . x ) ;
2484
- rectHolder . appendChild ( childRect ) ;
2502
+ var childRectData_1 = segmentToRectData ( segment , rectData ) ;
2503
+ var childRect_1 = makeBlock ( childRectData_1 , "segment " + childRectData_1 . cssClass ) ;
2504
+ firstX = Math . min ( firstX , childRectData_1 . x ) ;
2505
+ if ( segment . type === 'receive' && segment . chunks && segment . chunks . length > 0 ) {
2506
+ segment . chunks . forEach ( function ( chunk ) {
2507
+ var chunkRect = makeChunkBlock ( chunk , childRectData_1 , childRectData_1 . cssClass + "-chunk" ) ;
2508
+ childRect_1 . appendChild ( chunkRect ) ;
2509
+ } ) ;
2510
+ }
2511
+ rectHolder . appendChild ( childRect_1 ) ;
2485
2512
}
2486
2513
} ) ;
2487
2514
if ( misc . find ( entry . responseDetails . indicators , function ( indicator ) { return indicator . id === "push" ; } ) ) {
0 commit comments