- Revision
- 240867
- Author
- joep...@webkit.org
- Date
- 2019-02-01 13:24:12 -0800 (Fri, 01 Feb 2019)
Log Message
Web Inspector: Timeline graphs have drawing issues with multiple discontinuities
https://bugs.webkit.org/show_bug.cgi?id=194110
<rdar://problem/47714356>
Reviewed by Devin Rousso.
* UserInterface/Views/CPUTimelineView.js:
(WI.CPUTimelineView):
(WI.CPUTimelineView.prototype.layout.xScale): Deleted.
* UserInterface/Views/MemoryTimelineOverviewGraph.js:
(WI.MemoryTimelineOverviewGraph.prototype.layout.insertDiscontinuity):
(WI.MemoryTimelineOverviewGraph.prototype.layout):
* UserInterface/Views/MemoryTimelineView.js:
(WI.MemoryTimelineView.prototype.layout.xScale):
(WI.MemoryTimelineView.prototype.layout.yScale):
(WI.MemoryTimelineView.prototype.layout):
Handle if multiple discontinuities exist between records.
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (240866 => 240867)
--- trunk/Source/WebInspectorUI/ChangeLog 2019-02-01 21:24:09 UTC (rev 240866)
+++ trunk/Source/WebInspectorUI/ChangeLog 2019-02-01 21:24:12 UTC (rev 240867)
@@ -1,5 +1,25 @@
2019-02-01 Joseph Pecoraro <pecor...@apple.com>
+ Web Inspector: Timeline graphs have drawing issues with multiple discontinuities
+ https://bugs.webkit.org/show_bug.cgi?id=194110
+ <rdar://problem/47714356>
+
+ Reviewed by Devin Rousso.
+
+ * UserInterface/Views/CPUTimelineView.js:
+ (WI.CPUTimelineView):
+ (WI.CPUTimelineView.prototype.layout.xScale): Deleted.
+ * UserInterface/Views/MemoryTimelineOverviewGraph.js:
+ (WI.MemoryTimelineOverviewGraph.prototype.layout.insertDiscontinuity):
+ (WI.MemoryTimelineOverviewGraph.prototype.layout):
+ * UserInterface/Views/MemoryTimelineView.js:
+ (WI.MemoryTimelineView.prototype.layout.xScale):
+ (WI.MemoryTimelineView.prototype.layout.yScale):
+ (WI.MemoryTimelineView.prototype.layout):
+ Handle if multiple discontinuities exist between records.
+
+2019-02-01 Joseph Pecoraro <pecor...@apple.com>
+
Web Inspector: Timeline time range selection should show duration alongside start and end
https://bugs.webkit.org/show_bug.cgi?id=194109
<rdar://problem/47714279>
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/CPUTimelineView.js (240866 => 240867)
--- trunk/Source/WebInspectorUI/UserInterface/Views/CPUTimelineView.js 2019-02-01 21:24:09 UTC (rev 240866)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/CPUTimelineView.js 2019-02-01 21:24:12 UTC (rev 240867)
@@ -133,10 +133,13 @@
let usage = record.usage;
if (discontinuities.length && discontinuities[0].endTime < time) {
- let discontinuity = discontinuities.shift();
- dataPoints.push({time: discontinuity.startTime, size: 0});
- dataPoints.push({time: discontinuity.endTime, size: 0});
- dataPoints.push({time: discontinuity.endTime, size: usage});
+ let startDiscontinuity = discontinuities.shift();
+ let endDiscontinuity = startDiscontinuity;
+ while (discontinuities.length && discontinuities[0].endTime < time)
+ endDiscontinuity = discontinuities.shift();
+ dataPoints.push({time: startDiscontinuity.startTime, size: 0});
+ dataPoints.push({time: endDiscontinuity.endTime, size: 0});
+ dataPoints.push({time: endDiscontinuity.endTime, size: usage});
}
dataPoints.push({time, size: usage});
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/MemoryTimelineOverviewGraph.js (240866 => 240867)
--- trunk/Source/WebInspectorUI/UserInterface/Views/MemoryTimelineOverviewGraph.js 2019-02-01 21:24:09 UTC (rev 240866)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/MemoryTimelineOverviewGraph.js 2019-02-01 21:24:12 UTC (rev 240867)
@@ -156,14 +156,14 @@
if (visibleRecords[0] === this._memoryTimeline.records[0] && (!discontinuities.length || discontinuities[0].startTime > visibleRecords[0].startTime))
this._chart.addPointSet(0, pointSetForRecord(visibleRecords[0]));
- function insertDiscontinuity(previousRecord, discontinuity, nextRecord)
+ function insertDiscontinuity(previousRecord, startDiscontinuity, endDiscontinuity, nextRecord)
{
console.assert(previousRecord || nextRecord);
if (!(previousRecord || nextRecord))
return;
- let xStart = xScale(discontinuity.startTime);
- let xEnd = xScale(discontinuity.endTime);
+ let xStart = xScale(startDiscontinuity.startTime);
+ let xEnd = xScale(endDiscontinuity.endTime);
// Extend the previous record to the start of the discontinuity.
if (previousRecord)
@@ -186,8 +186,11 @@
let previousRecord = null;
for (let record of visibleRecords) {
if (discontinuities.length && discontinuities[0].endTime < record.startTime) {
- let discontinuity = discontinuities.shift();
- insertDiscontinuity.call(this, previousRecord, discontinuity, record);
+ let startDiscontinuity = discontinuities.shift();
+ let endDiscontinuity = startDiscontinuity;
+ while (discontinuities.length && discontinuities[0].endTime < record.startTime)
+ endDiscontinuity = discontinuities.shift();
+ insertDiscontinuity.call(this, previousRecord, startDiscontinuity, endDiscontinuity, record);
}
let x = xScale(record.startTime);
@@ -197,7 +200,7 @@
}
if (discontinuities.length)
- insertDiscontinuity.call(this, previousRecord, discontinuities[0], null);
+ insertDiscontinuity.call(this, previousRecord, discontinuities[0], discontinuities[0], null);
else {
// Extend the last value to current / end time.
let lastRecord = visibleRecords.lastValue;
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/MemoryTimelineView.js (240866 => 240867)
--- trunk/Source/WebInspectorUI/UserInterface/Views/MemoryTimelineView.js 2019-02-01 21:24:09 UTC (rev 240866)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/MemoryTimelineView.js 2019-02-01 21:24:12 UTC (rev 240867)
@@ -206,22 +206,27 @@
for (let record of visibleRecords) {
let time = record.startTime;
- let discontinuity = null;
- if (discontinuities.length && discontinuities[0].endTime < time)
- discontinuity = discontinuities.shift();
+ let startDiscontinuity = null;
+ let endDiscontinuity = null;
+ if (discontinuities.length && discontinuities[0].endTime < time) {
+ startDiscontinuity = discontinuities.shift();
+ endDiscontinuity = startDiscontinuity;
+ while (discontinuities.length && discontinuities[0].endTime < time)
+ endDiscontinuity = discontinuities.shift();
+ }
for (let category of record.categories) {
let categoryData = categoryDataMap[category.type];
- if (discontinuity) {
+ if (startDiscontinuity) {
if (categoryData.dataPoints.length) {
let previousDataPoint = categoryData.dataPoints.lastValue;
- categoryData.dataPoints.push({time: discontinuity.startTime, size: previousDataPoint.size});
+ categoryData.dataPoints.push({time: startDiscontinuity.startTime, size: previousDataPoint.size});
}
- categoryData.dataPoints.push({time: discontinuity.startTime, size: 0});
- categoryData.dataPoints.push({time: discontinuity.endTime, size: 0});
- categoryData.dataPoints.push({time: discontinuity.endTime, size: category.size});
+ categoryData.dataPoints.push({time: startDiscontinuity.startTime, size: 0});
+ categoryData.dataPoints.push({time: endDiscontinuity.endTime, size: 0});
+ categoryData.dataPoints.push({time: endDiscontinuity.endTime, size: category.size});
}
categoryData.dataPoints.push({time, size: category.size});