Bug 1406312 - Lazy loading of tooltip text on hover in Waterfall Timing boxes. r=gasolin

MozReview-Commit-ID: 5y4EPkpqcBr

--HG--
extra : rebase_source : 174fcf52494b1dc16e85855ee2a0fabbf22e49ea
This commit is contained in:
abhinav 2017-10-09 13:10:47 +05:30
Родитель d8c3cc3c0b
Коммит bc9ef2d072
1 изменённых файлов: 37 добавлений и 11 удалений

Просмотреть файл

@ -39,10 +39,17 @@ const RequestListColumnWaterfall = createClass({
render() {
let { firstRequestStartedMillis, item, onWaterfallMouseDown } = this.props;
const { boxes, tooltip } = timingBoxes(item);
const boxes = timingBoxes(item);
return (
div({ className: "requests-list-column requests-list-waterfall", title: tooltip },
div({
className: "requests-list-column requests-list-waterfall",
onMouseOver: function ({target}) {
if (!target.title) {
target.title = timingTooltip(item);
}
}
},
div({
className: "requests-list-timings",
style: {
@ -57,13 +64,37 @@ const RequestListColumnWaterfall = createClass({
}
});
function timingBoxes(item) {
function timingTooltip(item) {
let { eventTimings, fromCache, fromServiceWorker, totalTime } = item;
let boxes = [];
let tooltip = [];
if (fromCache || fromServiceWorker) {
return { boxes, tooltip };
return tooltip;
}
if (eventTimings) {
for (let key of TIMING_KEYS) {
let width = eventTimings.timings[key];
if (width > 0) {
tooltip.push(L10N.getFormatStr("netmonitor.waterfall.tooltip." + key, width));
}
}
}
if (typeof totalTime === "number") {
tooltip.push(L10N.getFormatStr("netmonitor.waterfall.tooltip.total", totalTime));
}
return tooltip.join(L10N.getStr("netmonitor.waterfall.tooltip.separator"));
}
function timingBoxes(item) {
let { eventTimings, fromCache, fromServiceWorker, totalTime } = item;
let boxes = [];
if (fromCache || fromServiceWorker) {
return boxes;
}
if (eventTimings) {
@ -81,7 +112,6 @@ function timingBoxes(item) {
style: { width },
})
);
tooltip.push(L10N.getFormatStr("netmonitor.waterfall.tooltip." + key, width));
}
}
}
@ -95,13 +125,9 @@ function timingBoxes(item) {
title,
}, title)
);
tooltip.push(L10N.getFormatStr("netmonitor.waterfall.tooltip.total", totalTime));
}
return {
boxes,
tooltip: tooltip.join(L10N.getStr("netmonitor.waterfall.tooltip.separator"))
};
return boxes;
}
module.exports = RequestListColumnWaterfall;