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

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

Issue 2523633003: [Devtools] Prepare network log view for grouping support (Closed)
Patch Set: Merge branch 'master' into NETWORK_GROUP_SUPPORT_1 Created 4 years 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
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 Network.NetworkWaterfallColumn = class extends UI.VBox { 7 Network.NetworkWaterfallColumn = class extends UI.VBox {
8 /** 8 /**
9 * @param {number} rowHeight 9 * @param {number} rowHeight
10 * @param {!Network.NetworkTimeCalculator} calculator 10 * @param {!Network.NetworkTimeCalculator} calculator
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 wasShown() { 72 wasShown() {
73 this.update(); 73 this.update();
74 } 74 }
75 75
76 /** 76 /**
77 * @param {!Element} element 77 * @param {!Element} element
78 * @param {!Event} event 78 * @param {!Event} event
79 * @return {!AnchorBox|undefined} 79 * @return {!AnchorBox|undefined}
80 */ 80 */
81 _getPopoverAnchor(element, event) { 81 _getPopoverAnchor(element, event) {
82 if (!this._hoveredLogEntry) 82 var request = this._hoveredLogEntry ? this._hoveredLogEntry.firstRequest() : null;
83 if (!this._hoveredLogEntry || !request || this._hoveredLogEntry.isGroup())
83 return; 84 return;
84 var useTimingBars = !Common.moduleSetting('networkColorCodeResourceTypes').g et() && !this._calculator.startAtZero; 85 var useTimingBars = !Common.moduleSetting('networkColorCodeResourceTypes').g et() && !this._calculator.startAtZero;
85 if (useTimingBars) { 86 if (useTimingBars) {
86 var range = Network.RequestTimingView.calculateRequestTimeRanges(this._hov eredLogEntry.request(), 0) 87 var range = Network.RequestTimingView.calculateRequestTimeRanges(request, 0)
87 .find(data => data.name === Network.RequestTimeRangeNames. Total); 88 .find(data => data.name === Network.RequestTimeRangeNames. Total);
88 var start = this._timeToPosition(range.start); 89 var start = this._timeToPosition(range.start);
89 var end = this._timeToPosition(range.end); 90 var end = this._timeToPosition(range.end);
90 } else { 91 } else {
91 var range = this._getSimplifiedBarRange(this._hoveredLogEntry, 0); 92 var range = this._getSimplifiedBarRange(request, 0);
92 var start = range.start; 93 var start = range.start;
93 var end = range.end; 94 var end = range.end;
94 } 95 }
95 96
96 if (end - start < 50) { 97 if (end - start < 50) {
97 var halfWidth = (end - start) / 2; 98 var halfWidth = (end - start) / 2;
98 start = start + halfWidth - 25; 99 start = start + halfWidth - 25;
99 end = end - halfWidth + 25; 100 end = end - halfWidth + 25;
100 } 101 }
101 102
(...skipping 13 matching lines...) Expand all
115 anchorBox.width = end - start; 116 anchorBox.width = end - start;
116 anchorBox.height = barHeight; 117 anchorBox.height = barHeight;
117 return anchorBox; 118 return anchorBox;
118 } 119 }
119 120
120 /** 121 /**
121 * @param {!Element|!AnchorBox} anchor 122 * @param {!Element|!AnchorBox} anchor
122 * @param {!UI.Popover} popover 123 * @param {!UI.Popover} popover
123 */ 124 */
124 _showPopover(anchor, popover) { 125 _showPopover(anchor, popover) {
125 if (!this._hoveredLogEntry) 126 var request = this._hoveredLogEntry.firstRequest();
127 if (!this._hoveredLogEntry || !request || this._hoveredLogEntry.isGroup())
126 return; 128 return;
127 var content = Network.RequestTimingView.createTimingTable( 129 var content = Network.RequestTimingView.createTimingTable(request, this._cal culator.minimumBoundary());
128 this._hoveredLogEntry.request(), this._calculator.minimumBoundary());
129 popover.showForAnchor(content, anchor); 130 popover.showForAnchor(content, anchor);
130 } 131 }
131 132
132 /** 133 /**
133 * @param {?Network.NetworkLogEntry} logEntry 134 * @param {?Network.NetworkLogEntry} logEntry
134 * @param {boolean} highlightInitiatorChain 135 * @param {boolean} highlightInitiatorChain
135 */ 136 */
136 setHoveredLogEntry(logEntry, highlightInitiatorChain) { 137 setHoveredLogEntry(logEntry, highlightInitiatorChain) {
137 this._hoveredLogEntry = logEntry; 138 this._hoveredLogEntry = logEntry;
138 this._initiatorGraph = (highlightInitiatorChain && logEntry) ? logEntry.requ est().initiatorGraph() : null; 139 this._initiatorGraph = null;
140 if (highlightInitiatorChain && logEntry && !logEntry.isGroup()) {
141 var request = /** @type {!SDK.NetworkRequest} */ (logEntry.firstRequest()) ;
dgozman 2016/11/23 01:57:30 Why do you cast to non-nullable here and check for
allada 2016/11/23 22:39:14 Done.
142 this._initiatorGraph = request.initiatorGraph();
143 }
139 this.update(); 144 this.update();
140 } 145 }
141 146
142 /** 147 /**
143 * @param {number} height 148 * @param {number} height
144 */ 149 */
145 setRowHeight(height) { 150 setRowHeight(height) {
146 this._rowHeight = height; 151 this._rowHeight = height;
147 } 152 }
148 153
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 case types.Blocking: 350 case types.Blocking:
346 case types.Push: 351 case types.Push:
347 case types.Queueing: 352 case types.Queueing:
348 return 7; 353 return 7;
349 default: 354 default:
350 return 13; 355 return 13;
351 } 356 }
352 } 357 }
353 358
354 /** 359 /**
355 * @param {!Network.NetworkLogEntry} logEntry 360 * @param {!SDK.NetworkRequest} request
356 * @return {string} 361 * @return {string}
357 */ 362 */
358 _borderColorForResourceType(logEntry) { 363 _borderColorForResourceType(request) {
359 var resourceType = logEntry.request().resourceType(); 364 // TODO(allada) Move this into NetworkLogEntry.
dgozman 2016/11/23 01:57:30 Not sure this is a good idea.
allada 2016/11/23 22:39:14 Done.
365 var resourceType = request.resourceType();
360 if (this._borderColorsForResourceTypeCache.has(resourceType)) 366 if (this._borderColorsForResourceTypeCache.has(resourceType))
361 return this._borderColorsForResourceTypeCache.get(resourceType); 367 return this._borderColorsForResourceTypeCache.get(resourceType);
362 var colorsForResourceType = Network.NetworkWaterfallColumn._colorsForResourc eType; 368 var colorsForResourceType = Network.NetworkWaterfallColumn._colorsForResourc eType;
363 var color = colorsForResourceType[resourceType] || colorsForResourceType.Oth er; 369 var color = colorsForResourceType[resourceType] || colorsForResourceType.Oth er;
364 var parsedColor = Common.Color.parse(color); 370 var parsedColor = Common.Color.parse(color);
365 var hsla = parsedColor.hsla(); 371 var hsla = parsedColor.hsla();
366 hsla[1] /= 2; 372 hsla[1] /= 2;
367 hsla[2] -= Math.min(hsla[2], 0.2); 373 hsla[2] -= Math.min(hsla[2], 0.2);
368 var resultColor = /** @type {string} */ (parsedColor.asString(null)); 374 var resultColor = /** @type {string} */ (parsedColor.asString(null));
369 this._borderColorsForResourceTypeCache.set(resourceType, resultColor); 375 this._borderColorsForResourceTypeCache.set(resourceType, resultColor);
370 return resultColor; 376 return resultColor;
371 } 377 }
372 378
373 /** 379 /**
374 * @param {!CanvasRenderingContext2D} context 380 * @param {!CanvasRenderingContext2D} context
375 * @param {!Network.NetworkLogEntry} logEntry 381 * @param {!SDK.NetworkRequest} request
376 * @return {string|!CanvasGradient} 382 * @return {string|!CanvasGradient}
377 */ 383 */
378 _colorForResourceType(context, logEntry) { 384 _colorForResourceType(context, request) {
379 var request = logEntry.request(); 385 // TODO(allada) Move this into NetworkLogEntry.
dgozman 2016/11/23 01:57:30 Ditto.
allada 2016/11/23 22:39:15 Done.
380 var colorsForResourceType = Network.NetworkWaterfallColumn._colorsForResourc eType; 386 var colorsForResourceType = Network.NetworkWaterfallColumn._colorsForResourc eType;
381 var resourceType = request.resourceType(); 387 var resourceType = request.resourceType();
382 var color = colorsForResourceType[resourceType] || colorsForResourceType.Oth er; 388 var color = colorsForResourceType[resourceType] || colorsForResourceType.Oth er;
383 if (request.cached()) 389 if (request.cached())
384 return color; 390 return color;
385 391
386 if (this._colorsForResourceTypeCache.has(color)) 392 if (this._colorsForResourceTypeCache.has(color))
387 return this._colorsForResourceTypeCache.get(color); 393 return this._colorsForResourceTypeCache.get(color);
388 var parsedColor = Common.Color.parse(color); 394 var parsedColor = Common.Color.parse(color);
389 var hsla = parsedColor.hsla(); 395 var hsla = parsedColor.hsla();
390 hsla[1] -= Math.min(hsla[1], 0.28); 396 hsla[1] -= Math.min(hsla[1], 0.28);
391 hsla[2] -= Math.min(hsla[2], 0.15); 397 hsla[2] -= Math.min(hsla[2], 0.15);
392 var gradient = context.createLinearGradient(0, 0, 0, this._getBarHeight()); 398 var gradient = context.createLinearGradient(0, 0, 0, this._getBarHeight());
393 gradient.addColorStop(0, color); 399 gradient.addColorStop(0, color);
394 gradient.addColorStop(1, /** @type {string} */ (parsedColor.asString(null))) ; 400 gradient.addColorStop(1, /** @type {string} */ (parsedColor.asString(null))) ;
395 this._colorsForResourceTypeCache.set(color, gradient); 401 this._colorsForResourceTypeCache.set(color, gradient);
396 return gradient; 402 return gradient;
397 } 403 }
398 404
399 /** 405 /**
400 * @param {!Network.NetworkLogEntry} logEntry 406 * @param {!SDK.NetworkRequest} request
401 * @param {number} borderOffset 407 * @param {number} borderOffset
402 * @return {!{start: number, mid: number, end: number}} 408 * @return {!{start: number, mid: number, end: number}}
403 */ 409 */
404 _getSimplifiedBarRange(logEntry, borderOffset) { 410 _getSimplifiedBarRange(request, borderOffset) {
405 var drawWidth = this._offsetWidth - this._leftPadding; 411 var drawWidth = this._offsetWidth - this._leftPadding;
406 var percentages = this._calculator.computeBarGraphPercentages(logEntry.reque st()); 412 var percentages = this._calculator.computeBarGraphPercentages(request);
407 return { 413 return {
408 start: this._leftPadding + Math.floor((percentages.start / 100) * drawWidt h) + borderOffset, 414 start: this._leftPadding + Math.floor((percentages.start / 100) * drawWidt h) + borderOffset,
409 mid: this._leftPadding + Math.floor((percentages.middle / 100) * drawWidth ) + borderOffset, 415 mid: this._leftPadding + Math.floor((percentages.middle / 100) * drawWidth ) + borderOffset,
410 end: this._leftPadding + Math.floor((percentages.end / 100) * drawWidth) + borderOffset 416 end: this._leftPadding + Math.floor((percentages.end / 100) * drawWidth) + borderOffset
411 }; 417 };
412 } 418 }
413 419
414 /** 420 /**
415 * @param {!CanvasRenderingContext2D} context 421 * @param {!CanvasRenderingContext2D} context
416 * @param {!Network.NetworkLogEntry} logEntry 422 * @param {!Network.NetworkLogEntry} logEntry
417 * @param {number} y 423 * @param {number} y
418 */ 424 */
419 _drawSimplifiedBars(context, logEntry, y) { 425 _drawSimplifiedBars(context, logEntry, y) {
420 const borderWidth = 1; 426 const borderWidth = 1;
421 var borderOffset = borderWidth % 2 === 0 ? 0 : 0.5; 427 var borderOffset = borderWidth % 2 === 0 ? 0 : 0.5;
422 428
423 context.save(); 429 context.save();
424 var ranges = this._getSimplifiedBarRange(logEntry, borderOffset); 430 for (var request of logEntry.requests()) {
425 var height = this._getBarHeight(); 431 var ranges = this._getSimplifiedBarRange(request, borderOffset);
426 y += Math.floor(this._rowHeight / 2 - height / 2 + borderWidth) - borderWidt h / 2; 432 var height = this._getBarHeight();
433 y += Math.floor(this._rowHeight / 2 - height / 2 + borderWidth) - borderWi dth / 2;
427 434
428 context.translate(0, y); 435 context.translate(0, y);
429 context.fillStyle = this._colorForResourceType(context, logEntry); 436 context.fillStyle = this._colorForResourceType(context, request);
430 context.strokeStyle = this._borderColorForResourceType(logEntry); 437 context.strokeStyle = this._borderColorForResourceType(request);
431 context.lineWidth = borderWidth; 438 context.lineWidth = borderWidth;
432 439
433 context.beginPath(); 440 context.beginPath();
434 context.globalAlpha = 0.5; 441 context.globalAlpha = 0.5;
435 context.rect(ranges.start, 0, ranges.mid - ranges.start, height - borderWidt h); 442 context.rect(ranges.start, 0, ranges.mid - ranges.start, height - borderWi dth);
436 context.fill(); 443 context.fill();
437 context.stroke(); 444 context.stroke();
438 445
439 var barWidth = Math.max(2, ranges.end - ranges.mid); 446 var barWidth = Math.max(2, ranges.end - ranges.mid);
440 context.beginPath(); 447 context.beginPath();
441 context.globalAlpha = 1; 448 context.globalAlpha = 1;
442 context.rect(ranges.mid, 0, barWidth, height - borderWidth); 449 context.rect(ranges.mid, 0, barWidth, height - borderWidth);
443 context.fill(); 450 context.fill();
444 context.stroke(); 451 context.stroke();
445 452
446 /** @type {?{left: string, right: string, tooltip: (string|undefined)}} */ 453 /** @type {?{left: string, right: string, tooltip: (string|undefined)}} */
447 var labels = null; 454 var labels = null;
448 if (logEntry === this._hoveredLogEntry) { 455 if (!logEntry.isGroup() && logEntry === this._hoveredLogEntry) {
dgozman 2016/11/23 01:57:30 Why checking for group?
allada 2016/11/23 22:39:14 Because this will cause all child grouped items to
449 labels = this._calculator.computeBarGraphLabels(logEntry.request()); 456 labels = this._calculator.computeBarGraphLabels(request);
450 this._drawSimplifiedBarDetails( 457 this._drawSimplifiedBarDetails(
451 context, labels.left, labels.right, ranges.start, ranges.mid, ranges.m id + barWidth + borderOffset); 458 context, labels.left, labels.right, ranges.start, ranges.mid, ranges .mid + barWidth + borderOffset);
452 } 459 }
453 460
454 if (!this._calculator.startAtZero) { 461 if (!this._calculator.startAtZero) {
455 var queueingRange = Network.RequestTimingView.calculateRequestTimeRanges(l ogEntry.request(), 0) 462 var queueingRange = Network.RequestTimingView.calculateRequestTimeRanges (request, 0)
456 .find(data => data.name === Network.RequestTimeRan geNames.Total); 463 .find(data => data.name === Network.RequestTimeR angeNames.Total);
457 var leftLabelWidth = labels ? context.measureText(labels.left).width : 0; 464 var leftLabelWidth = labels ? context.measureText(labels.left).width : 0 ;
458 var leftTextPlacedInBar = leftLabelWidth < ranges.mid - ranges.start; 465 var leftTextPlacedInBar = leftLabelWidth < ranges.mid - ranges.start;
459 const wiskerTextPadding = 13; 466 const wiskerTextPadding = 13;
460 var textOffset = (labels && !leftTextPlacedInBar) ? leftLabelWidth + wiske rTextPadding : 0; 467 var textOffset = (labels && !leftTextPlacedInBar) ? leftLabelWidth + wis kerTextPadding : 0;
461 var queueingStart = this._timeToPosition(queueingRange.start); 468 var queueingStart = this._timeToPosition(queueingRange.start);
462 if (ranges.start - textOffset > queueingStart) { 469 if (ranges.start - textOffset > queueingStart) {
463 context.beginPath(); 470 context.beginPath();
464 context.globalAlpha = 1; 471 context.globalAlpha = 1;
465 context.strokeStyle = UI.themeSupport.patchColor('#a5a5a5', UI.ThemeSupp ort.ColorUsage.Foreground); 472 context.strokeStyle = UI.themeSupport.patchColor('#a5a5a5', UI.ThemeSu pport.ColorUsage.Foreground);
466 context.moveTo(queueingStart, Math.floor(height / 2)); 473 context.moveTo(queueingStart, Math.floor(height / 2));
467 context.lineTo(ranges.start - textOffset, Math.floor(height / 2)); 474 context.lineTo(ranges.start - textOffset, Math.floor(height / 2));
468 475
469 const wiskerHeight = height / 2; 476 const wiskerHeight = height / 2;
470 context.moveTo(queueingStart + borderOffset, wiskerHeight / 2); 477 context.moveTo(queueingStart + borderOffset, wiskerHeight / 2);
471 context.lineTo(queueingStart + borderOffset, height - wiskerHeight / 2 - 1); 478 context.lineTo(queueingStart + borderOffset, height - wiskerHeight / 2 - 1);
472 context.stroke(); 479 context.stroke();
480 }
473 } 481 }
474 } 482 }
475 483
476 context.restore(); 484 context.restore();
477 } 485 }
478 486
479 /** 487 /**
480 * @param {!CanvasRenderingContext2D} context 488 * @param {!CanvasRenderingContext2D} context
481 * @param {string} leftText 489 * @param {string} leftText
482 * @param {string} rightText 490 * @param {string} rightText
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 context.restore(); 534 context.restore();
527 } 535 }
528 536
529 /** 537 /**
530 * @param {!CanvasRenderingContext2D} context 538 * @param {!CanvasRenderingContext2D} context
531 * @param {!Network.NetworkLogEntry} logEntry 539 * @param {!Network.NetworkLogEntry} logEntry
532 * @param {number} y 540 * @param {number} y
533 */ 541 */
534 _drawTimingBars(context, logEntry, y) { 542 _drawTimingBars(context, logEntry, y) {
535 context.save(); 543 context.save();
536 var ranges = Network.RequestTimingView.calculateRequestTimeRanges(logEntry.r equest(), 0); 544 for (var request of logEntry.requests()) {
537 for (var range of ranges) { 545 var ranges = Network.RequestTimingView.calculateRequestTimeRanges(request, 0);
538 if (range.name === Network.RequestTimeRangeNames.Total || range.name === N etwork.RequestTimeRangeNames.Sending || 546 for (var range of ranges) {
539 range.end - range.start === 0) 547 if (range.name === Network.RequestTimeRangeNames.Total ||
540 continue; 548 range.name === Network.RequestTimeRangeNames.Sending || range.end - range.start === 0)
541 context.beginPath(); 549 continue;
542 var lineWidth = 0; 550 context.beginPath();
543 var color = this._colorForType(range.name); 551 var lineWidth = 0;
544 var borderColor = color; 552 var color = this._colorForType(range.name);
545 if (range.name === Network.RequestTimeRangeNames.Queueing) { 553 var borderColor = color;
546 borderColor = 'lightgrey'; 554 if (range.name === Network.RequestTimeRangeNames.Queueing) {
547 lineWidth = 2; 555 borderColor = 'lightgrey';
556 lineWidth = 2;
557 }
558 if (range.name === Network.RequestTimeRangeNames.Receiving)
559 lineWidth = 2;
560 context.fillStyle = color;
561 var height = this._getBarHeight(range.name);
562 var middleBarY = y + Math.floor(this._rowHeight / 2 - height / 2) + line Width / 2;
563 var start = this._timeToPosition(range.start);
564 var end = this._timeToPosition(range.end);
565 context.rect(start, middleBarY, end - start, height - lineWidth);
566 if (lineWidth) {
567 context.lineWidth = lineWidth;
568 context.strokeStyle = borderColor;
569 context.stroke();
570 }
571 context.fill();
548 } 572 }
549 if (range.name === Network.RequestTimeRangeNames.Receiving)
550 lineWidth = 2;
551 context.fillStyle = color;
552 var height = this._getBarHeight(range.name);
553 var middleBarY = y + Math.floor(this._rowHeight / 2 - height / 2) + lineWi dth / 2;
554 var start = this._timeToPosition(range.start);
555 var end = this._timeToPosition(range.end);
556 context.rect(start, middleBarY, end - start, height - lineWidth);
557 if (lineWidth) {
558 context.lineWidth = lineWidth;
559 context.strokeStyle = borderColor;
560 context.stroke();
561 }
562 context.fill();
563 } 573 }
564 context.restore(); 574 context.restore();
565 } 575 }
566 576
567 /** 577 /**
568 * @param {!CanvasRenderingContext2D} context 578 * @param {!CanvasRenderingContext2D} context
569 * @param {!Network.NetworkLogEntry} logEntry 579 * @param {!Network.NetworkLogEntry} logEntry
570 * @param {number} rowNumber 580 * @param {number} rowNumber
571 * @param {number} y 581 * @param {number} y
572 */ 582 */
573 _decorateRow(context, logEntry, rowNumber, y) { 583 _decorateRow(context, logEntry, rowNumber, y) {
574 var isOddRow = rowNumber % 2 === 1; 584 var isOddRow = rowNumber % 2 === 1;
575 if (isOddRow && this._hoveredLogEntry !== logEntry && !logEntry.isNavigation Request() && !this._initiatorGraph) 585 if (isOddRow && this._hoveredLogEntry !== logEntry && !logEntry.hasNavigatio nRequest() && !this._initiatorGraph)
576 return; 586 return;
577 587
578 var color = getRowColor.call(this); 588 var color = getRowColor.call(this);
579 if (color === 'transparent') 589 if (color === 'transparent')
580 return; 590 return;
581 context.save(); 591 context.save();
582 context.beginPath(); 592 context.beginPath();
583 context.fillStyle = color; 593 context.fillStyle = color;
584 context.rect(0, y, this._offsetWidth, this._rowHeight); 594 context.rect(0, y, this._offsetWidth, this._rowHeight);
585 context.fill(); 595 context.fill();
586 context.restore(); 596 context.restore();
587 597
588 /** 598 /**
589 * @return {string} 599 * @return {string}
590 * @this {Network.NetworkWaterfallColumn} 600 * @this {Network.NetworkWaterfallColumn}
591 */ 601 */
592 function getRowColor() { 602 function getRowColor() {
593 var request = logEntry.request(); 603 // TODO(allada) Move this into NetworkLogEntry.
594 if (this._hoveredLogEntry === logEntry) 604 if (this._hoveredLogEntry === logEntry)
595 return this._rowHoverColor; 605 return this._rowHoverColor;
596 if (this._initiatorGraph) { 606 var request = logEntry.firstRequest();
607 if (request && this._initiatorGraph) {
597 if (this._initiatorGraph.initiators.has(request)) 608 if (this._initiatorGraph.initiators.has(request))
598 return this._parentInitiatorColor; 609 return this._parentInitiatorColor;
599 if (this._initiatorGraph.initiated.has(request)) 610 if (this._initiatorGraph.initiated.has(request))
600 return this._initiatedColor; 611 return this._initiatedColor;
601 } 612 }
602 if (logEntry.isNavigationRequest()) 613 if (logEntry.hasNavigationRequest())
603 return this._rowNavigationRequestColor; 614 return this._rowNavigationRequestColor;
604 if (rowNumber % 2 === 1) 615 if (rowNumber % 2 === 1)
605 return 'transparent'; 616 return 'transparent';
606 return this._rowStripeColor; 617 return this._rowStripeColor;
607 } 618 }
608 } 619 }
609 }; 620 };
610 621
611 Network.NetworkWaterfallColumn._colorsForResourceType = { 622 Network.NetworkWaterfallColumn._colorsForResourceType = {
612 document: 'hsl(215, 100%, 80%)', 623 document: 'hsl(215, 100%, 80%)',
613 font: 'hsl(8, 100%, 80%)', 624 font: 'hsl(8, 100%, 80%)',
614 media: 'hsl(90, 50%, 80%)', 625 media: 'hsl(90, 50%, 80%)',
615 image: 'hsl(90, 50%, 80%)', 626 image: 'hsl(90, 50%, 80%)',
616 script: 'hsl(31, 100%, 80%)', 627 script: 'hsl(31, 100%, 80%)',
617 stylesheet: 'hsl(272, 64%, 80%)', 628 stylesheet: 'hsl(272, 64%, 80%)',
618 texttrack: 'hsl(8, 100%, 80%)', 629 texttrack: 'hsl(8, 100%, 80%)',
619 websocket: 'hsl(0, 0%, 95%)', 630 websocket: 'hsl(0, 0%, 95%)',
620 xhr: 'hsl(53, 100%, 80%)', 631 xhr: 'hsl(53, 100%, 80%)',
621 other: 'hsl(0, 0%, 95%)' 632 other: 'hsl(0, 0%, 95%)'
622 }; 633 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698