Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/network/NetworkTimelineColumn.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/network/NetworkTimelineColumn.js b/third_party/WebKit/Source/devtools/front_end/network/NetworkTimelineColumn.js |
| index 1137b1dde24b1c67b7559e1124ef1b2100cb25b4..31f21bd17c5b3f34eccb293e49c8e65d79e604b5 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/network/NetworkTimelineColumn.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkTimelineColumn.js |
| @@ -42,6 +42,9 @@ WebInspector.NetworkTimelineColumn = function(rowHeight, calculator) |
| /** @type {?WebInspector.NetworkRequest} */ |
| this._navigationRequest = null; |
| + /** @type {!Map<string, !Array<number>>} */ |
| + this._eventDividers = new Map(); |
| + |
| var colorUsage = WebInspector.ThemeSupport.ColorUsage; |
| this._rowNavigationRequestColor = WebInspector.themeSupport.patchColor("#def", colorUsage.Background); |
| this._rowStripeColor = WebInspector.themeSupport.patchColor("#f5f5f5", colorUsage.Background); |
| @@ -188,9 +191,10 @@ WebInspector.NetworkTimelineColumn.prototype = { |
| /** |
| * @param {number=} scrollTop |
| + * @param {!Map<string, !Array<number>>=} eventDividers |
| * @param {!{requests: !Array<!WebInspector.NetworkRequest>, navigationRequest: ?WebInspector.NetworkRequest}=} requestData |
| */ |
| - update: function(scrollTop, requestData) |
| + update: function(scrollTop, eventDividers, requestData) |
| { |
| if (scrollTop !== undefined) |
| this._scrollTop = scrollTop; |
| @@ -199,6 +203,8 @@ WebInspector.NetworkTimelineColumn.prototype = { |
| this._navigationRequest = requestData.navigationRequest; |
| this._calculateCanvasSize(); |
| } |
| + if (eventDividers !== undefined) |
| + this._eventDividers = eventDividers; |
| this.element.window().cancelAnimationFrame(this._updateRequestID); |
| this._updateRequestID = null; |
| @@ -299,10 +305,35 @@ WebInspector.NetworkTimelineColumn.prototype = { |
| else |
| this._drawSimplifiedBars(context, request, rowOffset - this._scrollTop); |
| } |
| + this._drawEventDividers(context); |
| context.restore(); |
| + // This is outside of the save/restore above because it must draw in header. |
| this._drawDividers(context); |
| }, |
| + /** |
| + * @param {!CanvasRenderingContext2D} context |
| + */ |
| + _drawEventDividers: function(context) |
| + { |
| + context.save(); |
| + context.lineWidth = 1; |
| + for (var color of this._eventDividers.keys()) { |
| + context.strokeStyle = color; |
| + for (var time of this._eventDividers.get(color)) { |
| + context.beginPath(); |
| + var x = this._timeToPosition(time); |
| + context.moveTo(x, 0); |
| + context.lineTo(x, this._offsetHeight); |
| + } |
| + context.stroke(); |
| + } |
| + context.restore(); |
| + }, |
| + |
| + /** |
| + * @param {!CanvasRenderingContext2D} context |
| + */ |
| _drawDividers: function(context) |
| { |
| context.save(); |
| @@ -327,6 +358,7 @@ WebInspector.NetworkTimelineColumn.prototype = { |
| if (gridSliceTime * pixelsPerTime >= 2 * minGridSlicePx) |
| gridSliceTime = gridSliceTime / 2; |
| + context.scale(window.devicePixelRatio, window.devicePixelRatio); |
|
dgozman
2016/10/28 18:35:38
Do this scaling just once at the top of draw.
allada
2016/10/28 21:09:07
Done.
|
| context.lineWidth = 1; |
| context.strokeStyle = "rgba(0, 0, 0, .1)"; |
| context.font = this._fontSize + "px sans-serif"; |