Skip to content

Commit ac81dda

Browse files
committed
Release v2.11.0
1 parent c8a9404 commit ac81dda

5 files changed

+41
-13
lines changed

Diff for: perf-cascade-file-reader.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! github.com/micmro/PerfCascade Version:2.10.3 (25/08/2021) */
1+
/*! github.com/micmro/PerfCascade Version:2.11.0 (24/11/2021) */
22
/*
33
Copyright (c) 2013 Gildas Lormeau. All rights reserved.
44
@@ -3122,7 +3122,7 @@
31223122
env.Inflater = env._jzlib_Inflater = Inflater;
31233123
})(this);
31243124

3125-
/*! github.com/micmro/PerfCascade Version:2.10.3 (25/08/2021) */
3125+
/*! github.com/micmro/PerfCascade Version:2.11.0 (24/11/2021) */
31263126

31273127
(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.perfCascadeFileReader = 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){
31283128
"use strict";

Diff for: perf-cascade-file-reader.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: perf-cascade.css

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! github.com/micmro/PerfCascade Version:2.10.3 (25/08/2021) */
1+
/*! github.com/micmro/PerfCascade Version:2.11.0 (24/11/2021) */
22
.water-fall-chart {width:100%; overflow: visible; font-size: 12px; line-height: 1em;}
33
.water-fall-chart * {box-sizing: border-box;}
44
.water-fall-chart button {cursor: pointer;}
@@ -133,6 +133,7 @@
133133
.block-send {fill: #b0bec5;}
134134
.block-wait {fill: #1ec659;}
135135
.block-receive {fill: #1eaaf1;}
136+
.block-receive-chunk {fill: #a1c3fa;}
136137
.block-undefined {fill: #0f0;}
137138

138139
/* Info overlay SVG - wrapper */

Diff for: perf-cascade.js

+34-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! github.com/micmro/PerfCascade Version:2.10.3 (25/08/2021) */
1+
/*! github.com/micmro/PerfCascade Version:2.11.0 (24/11/2021) */
22

33
(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){
44
"use strict";
@@ -1678,6 +1678,7 @@ var getUserTimings = function (currPage, options) {
16781678
*/
16791679
var buildDetailTimingBlocks = function (startRelative, harEntry) {
16801680
var t = harEntry.timings;
1681+
var chunks = harEntry._chunks || [];
16811682
var types = ["blocked", "dns", "connect", "send", "wait", "receive"];
16821683
return types.reduce(function (collect, key) {
16831684
var time = getTimePair(key, harEntry, collect, startRelative);
@@ -1694,6 +1695,9 @@ var buildDetailTimingBlocks = function (startRelative, harEntry) {
16941695
.concat([helpers_1.createWaterfallEntryTiming("ssl", Math.round(sslStart), Math.round(sslEnd))])
16951696
.concat([helpers_1.createWaterfallEntryTiming(key, Math.round(connectStart), Math.round(time.end))]);
16961697
}
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+
}
16971701
return collect.concat([helpers_1.createWaterfallEntryTiming(key, Math.round(time.start), Math.round(time.end))]);
16981702
}, []);
16991703
};
@@ -1752,7 +1756,6 @@ var createResponseDetails = function (entry, indicators) {
17521756
"use strict";
17531757
Object.defineProperty(exports, "__esModule", { value: true });
17541758
exports.flattenKvTuple = exports.makeMimeTypeIcon = exports.makeRowCssClasses = exports.createWaterfallEntryTiming = exports.createWaterfallEntry = exports.mimeToRequestType = exports.makeDefinitionList = void 0;
1755-
/** Helpers that are not file-fromat specific */
17561759
var misc_1 = require("../helpers/misc");
17571760
var parse_1 = require("../helpers/parse");
17581761
var svg_indicators_1 = require("../waterfall/row/svg-indicators");
@@ -1840,14 +1843,15 @@ function createWaterfallEntry(url, start, end, segments, responseDetails, tabs)
18401843
}
18411844
exports.createWaterfallEntry = createWaterfallEntry;
18421845
/** helper to create a `WaterfallEntryTiming` */
1843-
function createWaterfallEntryTiming(type, start, end) {
1846+
function createWaterfallEntryTiming(type, start, end, chunks) {
18441847
var total = (typeof start !== "number" || typeof end !== "number") ? NaN : (end - start);
18451848
var typeClean = parse_1.sanitizeAlphaNumeric(type);
18461849
return {
18471850
end: end,
18481851
start: start,
18491852
total: total,
18501853
type: typeClean,
1854+
chunks: chunks,
18511855
};
18521856
}
18531857
exports.createWaterfallEntryTiming = createWaterfallEntryTiming;
@@ -2406,6 +2410,23 @@ function makeBlock(rectData, className) {
24062410
}
24072411
return holder;
24082412
}
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+
}
24092430
/**
24102431
* Converts a segment to RectData
24112432
* @param {WaterfallEntryTiming} segment
@@ -2478,10 +2499,16 @@ function createRect(rectData, entry) {
24782499
if (segments && segments.length > 0) {
24792500
segments.forEach(function (segment) {
24802501
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);
24852512
}
24862513
});
24872514
if (misc.find(entry.responseDetails.indicators, function (indicator) { return indicator.id === "push"; })) {

Diff for: perf-cascade.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)