Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/network/NetworkTimelineColumn.js

Issue 2474233002: [Devtools] Added "wiskers" to new network timeline for colored mode (Closed)
Patch Set: wq Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 /** 4 /**
5 * @unrestricted 5 * @unrestricted
6 */ 6 */
7 WebInspector.NetworkTimelineColumn = class extends WebInspector.VBox { 7 WebInspector.NetworkTimelineColumn = class extends WebInspector.VBox {
8 /** 8 /**
9 * @param {number} rowHeight 9 * @param {number} rowHeight
10 * @param {!WebInspector.NetworkTimeCalculator} calculator 10 * @param {!WebInspector.NetworkTimeCalculator} calculator
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 * @param {!Event} event 82 * @param {!Event} event
83 * @return {!AnchorBox|undefined} 83 * @return {!AnchorBox|undefined}
84 */ 84 */
85 _getPopoverAnchor(element, event) { 85 _getPopoverAnchor(element, event) {
86 if (!this._hoveredRequest) 86 if (!this._hoveredRequest)
87 return; 87 return;
88 var useTimingBars = 88 var useTimingBars =
89 !WebInspector.moduleSetting('networkColorCodeResourceTypes').get() && !t his._calculator.startAtZero; 89 !WebInspector.moduleSetting('networkColorCodeResourceTypes').get() && !t his._calculator.startAtZero;
90 if (useTimingBars) { 90 if (useTimingBars) {
91 var range = WebInspector.RequestTimingView.calculateRequestTimeRanges(this ._hoveredRequest, 0) 91 var range = WebInspector.RequestTimingView.calculateRequestTimeRanges(this ._hoveredRequest, 0)
92 .find(data => data.name === 'total'); 92 .find(data => data.name === WebInspector.RequestTimeRangeNames.Total);
93 var start = this._timeToPosition(range.start); 93 var start = this._timeToPosition(range.start);
94 var end = this._timeToPosition(range.end); 94 var end = this._timeToPosition(range.end);
95 } else { 95 } else {
96 var range = this._getSimplifiedBarRange(this._hoveredRequest, 0); 96 var range = this._getSimplifiedBarRange(this._hoveredRequest, 0);
97 var start = range.start; 97 var start = range.start;
98 var end = range.end; 98 var end = range.end;
99 } 99 }
100 100
101 if (event.clientX < this._canvasPosition.left + start || event.clientX > thi s._canvasPosition.left + end) 101 if (event.clientX < this._canvasPosition.left + start || event.clientX > thi s._canvasPosition.left + end)
102 return; 102 return;
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 178
179 scheduleDraw() { 179 scheduleDraw() {
180 if (this._updateRequestID) 180 if (this._updateRequestID)
181 return; 181 return;
182 this._updateRequestID = this.element.window().requestAnimationFrame(() => th is.update()); 182 this._updateRequestID = this.element.window().requestAnimationFrame(() => th is.update());
183 } 183 }
184 184
185 /** 185 /**
186 * @param {number=} scrollTop 186 * @param {number=} scrollTop
187 * @param {!Map<string, !Array<number>>=} eventDividers 187 * @param {!Map<string, !Array<number>>=} eventDividers
188 * @param {!{requests: !Array<!WebInspector.NetworkRequest>, navigationRequest : ?WebInspector.NetworkRequest}=} requestData 188 * @param {!WebInspector.NetworkTimelineColumn.RequestData=} requestData
189 */ 189 */
190 update(scrollTop, eventDividers, requestData) { 190 update(scrollTop, eventDividers, requestData) {
191 if (scrollTop !== undefined) 191 if (scrollTop !== undefined)
192 this._scrollTop = scrollTop; 192 this._scrollTop = scrollTop;
193 if (requestData) { 193 if (requestData) {
194 this._requestData = requestData.requests; 194 this._requestData = requestData.requests;
195 this._navigationRequest = requestData.navigationRequest; 195 this._navigationRequest = requestData.navigationRequest;
196 this._calculateCanvasSize(); 196 this._calculateCanvasSize();
197 } 197 }
198 if (eventDividers !== undefined) 198 if (eventDividers !== undefined)
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 context.fill(); 432 context.fill();
433 context.stroke(); 433 context.stroke();
434 434
435 var barWidth = Math.max(2, ranges.end - ranges.mid); 435 var barWidth = Math.max(2, ranges.end - ranges.mid);
436 context.beginPath(); 436 context.beginPath();
437 context.globalAlpha = 1; 437 context.globalAlpha = 1;
438 context.rect(ranges.mid, 0, barWidth, height - borderWidth); 438 context.rect(ranges.mid, 0, barWidth, height - borderWidth);
439 context.fill(); 439 context.fill();
440 context.stroke(); 440 context.stroke();
441 441
442 /** @type {?{left: string, right: string, tooltip: (string|undefined)}} */
443 var labels = null;
442 if (request === this._hoveredRequest) { 444 if (request === this._hoveredRequest) {
443 var labels = this._calculator.computeBarGraphLabels(request); 445 labels = this._calculator.computeBarGraphLabels(request);
444 this._drawSimplifiedBarDetails(context, labels.left, labels.right, ranges. start, ranges.mid, ranges.mid + barWidth + borderOffset); 446 this._drawSimplifiedBarDetails(
447 context, labels.left, labels.right, ranges.start, ranges.mid, ranges.m id + barWidth + borderOffset);
448 }
449
450 if (!this._calculator.startAtZero) {
451 var queueingRange = WebInspector.RequestTimingView.calculateRequestTimeRan ges(request, 0)
452 .find(data => data.name === WebInspector.RequestTimeRangeNames.Total);
453 var leftLabelWidth = labels ? context.measureText(labels.left).width : 0;
454 var leftTextPlacedInBar = leftLabelWidth < ranges.mid - ranges.start;
455 const wiskerTextPadding = 13;
456 var textOffset = (labels && !leftTextPlacedInBar) ? leftLabelWidth + wiske rTextPadding : 0;
457 var queueingStart = this._timeToPosition(queueingRange.start);
458 if (ranges.start - textOffset > queueingStart) {
459 context.beginPath();
460 context.globalAlpha = 1;
461 context.strokeStyle = WebInspector.themeSupport.patchColor(
462 '#a5a5a5', WebInspector.ThemeSupport.ColorUsage.Foreground);
463 context.moveTo(queueingStart, Math.floor(height / 2));
464 context.lineTo(ranges.start - textOffset, Math.floor(height / 2));
465
466 const wiskerHeight = height / 2;
467 context.moveTo(queueingStart + borderOffset, wiskerHeight / 2);
468 context.lineTo(queueingStart + borderOffset, height - wiskerHeight / 2 - 1);
469 context.stroke();
470 }
445 } 471 }
446 472
447 context.restore(); 473 context.restore();
448 } 474 }
449 475
450 /** 476 /**
451 * @param {!CanvasRenderingContext2D} context 477 * @param {!CanvasRenderingContext2D} context
452 * @param {string} leftText 478 * @param {string} leftText
453 * @param {string} rightText 479 * @param {string} rightText
454 * @param {number} startX 480 * @param {number} startX
455 * @param {number} midX 481 * @param {number} midX
456 * @param {number} endX 482 * @param {number} endX
457 */ 483 */
458 _drawSimplifiedBarDetails(context, leftText, rightText, startX, midX, endX) { 484 _drawSimplifiedBarDetails(context, leftText, rightText, startX, midX, endX) {
459 /** @const */ 485 /** @const */
460 var barDotLineLength = 10; 486 var barDotLineLength = 10;
461 487
462 context.save(); 488 context.save();
463 var height = this._getBarHeight(); 489 var height = this._getBarHeight();
464 var leftLabelWidth = context.measureText(leftText).width; 490 var leftLabelWidth = context.measureText(leftText).width;
465 var rightLabelWidth = context.measureText(rightText).width; 491 var rightLabelWidth = context.measureText(rightText).width;
466 context.fillStyle = '#444'; 492 context.fillStyle = WebInspector.themeSupport.patchColor('#444', WebInspecto r.ThemeSupport.ColorUsage.Foreground);
467 context.strokeStyle = '#444'; 493 context.strokeStyle = WebInspector.themeSupport.patchColor('#444', WebInspec tor.ThemeSupport.ColorUsage.Foreground);
468 if (leftLabelWidth < midX - startX) { 494 if (leftLabelWidth < midX - startX) {
469 var midBarX = startX + (midX - startX) / 2 - leftLabelWidth / 2; 495 var midBarX = startX + (midX - startX) / 2 - leftLabelWidth / 2;
470 context.fillText(leftText, midBarX, this._fontSize); 496 context.fillText(leftText, midBarX, this._fontSize);
471 } else if (barDotLineLength + leftLabelWidth + this._leftPadding < startX) { 497 } else if (barDotLineLength + leftLabelWidth + this._leftPadding < startX) {
472 context.beginPath(); 498 context.beginPath();
473 context.arc(startX, Math.floor(height / 2), 2, 0, 2 * Math.PI); 499 context.arc(startX, Math.floor(height / 2), 2, 0, 2 * Math.PI);
474 context.fill(); 500 context.fill();
475 context.fillText(leftText, startX - leftLabelWidth - barDotLineLength - 1, this._fontSize); 501 context.fillText(leftText, startX - leftLabelWidth - barDotLineLength - 1, this._fontSize);
476 context.beginPath(); 502 context.beginPath();
477 context.lineWidth = 1; 503 context.lineWidth = 1;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 } 597 }
572 if (this._navigationRequest === request) 598 if (this._navigationRequest === request)
573 return this._rowNavigationRequestColor; 599 return this._rowNavigationRequestColor;
574 if (rowNumber % 2 === 1) 600 if (rowNumber % 2 === 1)
575 return 'transparent'; 601 return 'transparent';
576 return this._rowStripeColor; 602 return this._rowStripeColor;
577 } 603 }
578 } 604 }
579 }; 605 };
580 606
607 /**
608 * @typedef {{requests: !Array<!WebInspector.NetworkRequest>, navigationRequest: ?WebInspector.NetworkRequest}}
609 */
610 WebInspector.NetworkTimelineColumn.RequestData;
611
581 WebInspector.NetworkTimelineColumn._colorsForResourceType = { 612 WebInspector.NetworkTimelineColumn._colorsForResourceType = {
582 document: 'hsl(215, 100%, 80%)', 613 document: 'hsl(215, 100%, 80%)',
583 font: 'hsl(8, 100%, 80%)', 614 font: 'hsl(8, 100%, 80%)',
584 media: 'hsl(272, 64%, 80%)', 615 media: 'hsl(272, 64%, 80%)',
585 image: 'hsl(272, 64%, 80%)', 616 image: 'hsl(272, 64%, 80%)',
586 script: 'hsl(31, 100%, 80%)', 617 script: 'hsl(31, 100%, 80%)',
587 stylesheet: 'hsl(90, 50%, 80%)', 618 stylesheet: 'hsl(90, 50%, 80%)',
588 texttrack: 'hsl(8, 100%, 80%)', 619 texttrack: 'hsl(8, 100%, 80%)',
589 websocket: 'hsl(0, 0%, 95%)', 620 websocket: 'hsl(0, 0%, 95%)',
590 xhr: 'hsl(53, 100%, 80%)', 621 xhr: 'hsl(53, 100%, 80%)',
591 other: 'hsl(0, 0%, 95%)' 622 other: 'hsl(0, 0%, 95%)'
592 }; 623 };
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698