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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/ui_lazy/FlameChart.js

Issue 1474593002: DevTools: Make tracking flamechart info never go outside the window (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove extra assignments. Created 5 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/ui_lazy/flameChart.css » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /** 1 /**
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 var timeSpan = this._rangeSelectionEnd - this._rangeSelectionStart; 674 var timeSpan = this._rangeSelectionEnd - this._rangeSelectionStart;
675 this._selectedTimeSpanLabel.textContent = Number.preciseMillisToString(t imeSpan, 2); 675 this._selectedTimeSpanLabel.textContent = Number.preciseMillisToString(t imeSpan, 2);
676 }, 676 },
677 677
678 /** 678 /**
679 * @param {!Event} event 679 * @param {!Event} event
680 */ 680 */
681 _onMouseMove: function(event) 681 _onMouseMove: function(event)
682 { 682 {
683 this._lastMouseOffsetX = event.offsetX; 683 this._lastMouseOffsetX = event.offsetX;
684 this._lastMouseOffsetY = event.offsetY;
684 685
685 if (!this._enabled()) 686 if (!this._enabled())
686 return; 687 return;
687 688
688 if (this._isDragging) 689 if (this._isDragging)
689 return; 690 return;
690 691
691 var inDividersBar = event.offsetY < WebInspector.FlameChart.DividersBarH eight; 692 var inDividersBar = event.offsetY < WebInspector.FlameChart.DividersBarH eight;
692 this._highlightedMarkerIndex = inDividersBar ? this._markerIndexAtPositi on(event.offsetX) : -1; 693 this._highlightedMarkerIndex = inDividersBar ? this._markerIndexAtPositi on(event.offsetX) : -1;
693 this._updateMarkerHighlight(); 694 this._updateMarkerHighlight();
694 this._entryInfo.style.left = event.offsetX + "px"; 695 this._showHighlight();
695 this._entryInfo.style.top = event.offsetY + "px";
696
697 this._highlightEntry(this._coordinatesToEntryIndex(event.offsetX, event. offsetY));
698 }, 696 },
699 697
700 _onMouseOut: function() 698 _onMouseOut: function()
701 { 699 {
702 this._highlightEntry(-1); 700 this._hideHighlight();
703 }, 701 },
704 702
705 /** 703 _showHighlight: function()
706 * @param {number} entryIndex
707 */
708 _highlightEntry: function(entryIndex)
709 { 704 {
710 if (this._highlightedEntryIndex === entryIndex) 705 var entryIndex = this._coordinatesToEntryIndex(this._lastMouseOffsetX, t his._lastMouseOffsetY);
706 if (entryIndex === -1) {
707 this._hideHighlight();
711 return; 708 return;
712 709 }
713 if (entryIndex === -1 || !this._dataProvider.canJumpToEntry(entryIndex)) 710 if (entryIndex !== this._highlightedEntryIndex) {
714 this._canvas.style.cursor = "default"; 711 this._entryInfo.removeChildren();
715 else 712 var entryInfo = this._dataProvider.prepareHighlightedEntryInfo(entry Index);
716 this._canvas.style.cursor = "pointer";
717
718 this._highlightedEntryIndex = entryIndex;
719
720 this._updateElementPosition(this._highlightElement, this._highlightedEnt ryIndex);
721 this._entryInfo.removeChildren();
722
723 if (this._highlightedEntryIndex === -1)
724 return;
725
726 if (!this._isDragging) {
727 var entryInfo = this._dataProvider.prepareHighlightedEntryInfo(this. _highlightedEntryIndex);
728 if (entryInfo) 713 if (entryInfo)
729 this._entryInfo.appendChild(this._buildEntryInfo(entryInfo)); 714 this._entryInfo.appendChild(this._buildEntryInfo(entryInfo));
730 } 715 }
716 var mouseX = this._lastMouseOffsetX;
717 var mouseY = this._lastMouseOffsetY;
718 var parentWidth = this._entryInfo.parentElement.clientWidth;
719 var parentHeight = this._entryInfo.parentElement.clientHeight;
720 var infoWidth = this._entryInfo.clientWidth;
721 var infoHeight = this._entryInfo.clientHeight;
722 var /** @const */ offsetX = 10;
723 var /** @const */ offsetY = 6;
724 var x;
725 var y;
726 for (var quadrant = 0; quadrant < 4; ++quadrant) {
727 var dx = quadrant & 2 ? -offsetX - infoWidth : offsetX;
728 var dy = quadrant & 1 ? -offsetY - infoHeight : offsetY;
729 x = Number.constrain(mouseX + dx, 0, parentWidth - infoWidth);
730 y = Number.constrain(mouseY + dy, 0, parentHeight - infoHeight);
731 if (x >= mouseX || mouseX >= x + infoWidth || y >= mouseY || mouseY >= y + infoHeight)
732 break;
733 }
734 this._entryInfo.style.left = x + "px";
735 this._entryInfo.style.top = y + "px";
736 if (this._highlightedEntryIndex === entryIndex)
737 return;
738 this._highlightedEntryIndex = entryIndex;
739 this._canvas.style.cursor = this._dataProvider.canJumpToEntry(entryIndex ) ? "pointer" : "default";
740 this._updateElementPosition(this._highlightElement, this._highlightedEnt ryIndex);
741 },
742
743 _hideHighlight: function()
744 {
745 this._entryInfo.removeChildren();
746 this._canvas.style.cursor = "default";
747 this._highlightedEntryIndex = -1;
748 this._updateElementPosition(this._highlightElement, this._highlightedEnt ryIndex);
731 }, 749 },
732 750
733 _onClick: function() 751 _onClick: function()
734 { 752 {
735 this.focus(); 753 this.focus();
736 // onClick comes after dragStart and dragEnd events. 754 // onClick comes after dragStart and dragEnd events.
737 // So if there was drag (mouse move) in the middle of that events 755 // So if there was drag (mouse move) in the middle of that events
738 // we skip the click. Otherwise we jump to the sources. 756 // we skip the click. Otherwise we jump to the sources.
739 const clickThreshold = 5; 757 const clickThreshold = 5;
740 if (this._maxDragOffset() > clickThreshold) 758 if (this._maxDragOffset() > clickThreshold)
(...skipping 803 matching lines...) Expand 10 before | Expand all | Expand 10 after
1544 this.update(); 1562 this.update();
1545 }, 1563 },
1546 1564
1547 _enabled: function() 1565 _enabled: function()
1548 { 1566 {
1549 return this._rawTimelineDataLength !== 0; 1567 return this._rawTimelineDataLength !== 0;
1550 }, 1568 },
1551 1569
1552 __proto__: WebInspector.HBox.prototype 1570 __proto__: WebInspector.HBox.prototype
1553 } 1571 }
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/devtools/front_end/ui_lazy/flameChart.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698