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

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

Issue 2747553002: [DevTools] Rework Popover API (Closed)
Patch Set: rebased Created 3 years, 9 months 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 side-by-side diff with in-line comments
Download patch
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 1f36a3504754558b257e66b07d1254642d765221..ed370ad2ffdc789873f2476cd28a0b63b3373b94 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, this._getPopoverRequest.bind(this));
this._popoverHelper.setHasPadding(true);
this._popoverHelper.setTimeout(300, 300);
@@ -187,16 +186,15 @@ Network.NetworkWaterfallColumn = class extends UI.VBox {
}
/**
- * @param {!Element} element
* @param {!Event} event
- * @return {!AnchorBox|undefined}
+ * @return {?UI.PopoverRequest}
*/
- _getPopoverAnchor(element, event) {
+ _getPopoverRequest(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)
@@ -216,37 +214,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);
+ }
+ };
}
/**

Powered by Google App Engine
This is Rietveld 408576698