Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/network/NetworkWaterfallColumn.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/network/NetworkWaterfallColumn.js b/third_party/WebKit/Source/devtools/front_end/network/NetworkWaterfallColumn.js |
| index 0acb3b1fd135dcc4c84ddce74970f69f5fd66fae..3045029c978378d173bab2328f7a4590e66ab314 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/network/NetworkWaterfallColumn.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkWaterfallColumn.js |
| @@ -33,8 +33,7 @@ Network.NetworkWaterfallColumn = class extends UI.VBox { |
| this._startTime = this._calculator.minimumBoundary(); |
| this._endTime = this._calculator.maximumBoundary(); |
| - this._popoverHelper = new UI.PopoverHelper(this.element); |
| - this._popoverHelper.initializeCallbacks(this._getPopoverAnchor.bind(this), this._showPopover.bind(this)); |
| + this._popoverHelper = new UI.PopoverHelper(this.element, false, this._getPopoverContent.bind(this)); |
|
lushnikov
2017/03/14 01:44:03
nit: could you please add /* disableOnClick */ com
dgozman
2017/03/14 21:34:01
Turned into a method.
|
| this._popoverHelper.setHasPadding(true); |
| this._popoverHelper.setTimeout(300, 300); |
| @@ -121,16 +120,15 @@ Network.NetworkWaterfallColumn = class extends UI.VBox { |
| } |
| /** |
| - * @param {!Element} element |
| * @param {!Event} event |
| - * @return {!AnchorBox|undefined} |
| + * @return {?UI.PopoverContent} |
| */ |
| - _getPopoverAnchor(element, event) { |
| + _getPopoverContent(event) { |
| if (!this._hoveredNode) |
| - return; |
| + return null; |
| var request = this._hoveredNode.request(); |
| if (!request) |
| - return; |
| + return null; |
| var useTimingBars = !Common.moduleSetting('networkColorCodeResourceTypes').get() && !this._calculator.startAtZero; |
| if (useTimingBars) { |
| var range = Network.RequestTimingView.calculateRequestTimeRanges(request, 0) |
| @@ -150,37 +148,30 @@ Network.NetworkWaterfallColumn = class extends UI.VBox { |
| } |
| if (event.clientX < this._canvasPosition.left + start || event.clientX > this._canvasPosition.left + end) |
| - return; |
| + return null; |
| var rowIndex = this._nodes.findIndex(node => node.hovered()); |
| var barHeight = this._getBarHeight(range.name); |
| var y = this._headerHeight + (this._rowHeight * rowIndex - this._scrollTop) + ((this._rowHeight - barHeight) / 2); |
| if (event.clientY < this._canvasPosition.top + y || event.clientY > this._canvasPosition.top + y + barHeight) |
| - return; |
| + return null; |
| var anchorBox = this.element.boxInWindow(); |
| anchorBox.x += start; |
| anchorBox.y += y; |
| anchorBox.width = end - start; |
| anchorBox.height = barHeight; |
| - return anchorBox; |
| - } |
| - /** |
| - * @param {!Element|!AnchorBox} anchor |
| - * @param {!UI.GlassPane} popover |
| - * @return {!Promise<boolean>} |
| - */ |
| - _showPopover(anchor, popover) { |
| - if (!this._hoveredNode) |
| - return Promise.resolve(false); |
| - var request = this._hoveredNode.request(); |
| - if (!request) |
| - return Promise.resolve(false); |
| - var content = Network.RequestTimingView.createTimingTable(request, this._calculator); |
| - popover.contentElement.appendChild(content); |
| - return Promise.resolve(true); |
| + return { |
| + box: anchorBox, |
| + show: popover => { |
| + var content = |
| + Network.RequestTimingView.createTimingTable(/** @type {!SDK.NetworkRequest} */ (request), this._calculator); |
| + popover.contentElement.appendChild(content); |
| + return Promise.resolve(true); |
| + } |
| + }; |
| } |
| /** |