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

Unified Diff: third_party/WebKit/Source/devtools/front_end/perf_ui/TimelineOverviewPane.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/perf_ui/TimelineOverviewPane.js
diff --git a/third_party/WebKit/Source/devtools/front_end/perf_ui/TimelineOverviewPane.js b/third_party/WebKit/Source/devtools/front_end/perf_ui/TimelineOverviewPane.js
index 4a22228868b2d32da6c1cc5115b8b0732b4acfaa..8a52f32e8cc75c760c757aa549a10b132b5375ac 100644
--- a/third_party/WebKit/Source/devtools/front_end/perf_ui/TimelineOverviewPane.js
+++ b/third_party/WebKit/Source/devtools/front_end/perf_ui/TimelineOverviewPane.js
@@ -53,9 +53,7 @@ PerfUI.TimelineOverviewPane = class extends UI.VBox {
this._overviewControls = [];
this._markers = new Map();
- this._popoverHelper = new UI.PopoverHelper(this._cursorArea);
- this._popoverHelper.initializeCallbacks(
- this._getPopoverAnchor.bind(this), this._showPopover.bind(this), this._onHidePopover.bind(this));
+ this._popoverHelper = new UI.PopoverHelper(this._cursorArea, this._getPopoverRequest.bind(this));
this._popoverHelper.setHasPadding(true);
this._popoverHelper.setTimeout(0);
@@ -67,42 +65,27 @@ PerfUI.TimelineOverviewPane = class extends UI.VBox {
}
/**
- * @param {!Element} element
* @param {!Event} event
- * @return {!Element|!AnchorBox|undefined}
- */
- _getPopoverAnchor(element, event) {
- return this._cursorArea;
- }
-
- /**
- * @param {!Element|!AnchorBox} anchor
- * @param {!UI.GlassPane} popover
- * @return {!Promise<boolean>}
- */
- _showPopover(anchor, popover) {
- return this._buildPopoverContents().then(maybeShowPopover.bind(this));
-
- /**
- * @this {PerfUI.TimelineOverviewPane}
- * @param {!DocumentFragment} fragment
- * @return {boolean}
- */
- function maybeShowPopover(fragment) {
- if (!fragment.firstChild)
- return false;
- var content = new PerfUI.TimelineOverviewPane.PopoverContents();
- this._popoverContents = content.contentElement.createChild('div');
- this._popoverContents.appendChild(fragment);
- this._popover = popover;
- content.show(popover.contentElement);
- return true;
- }
- }
-
- _onHidePopover() {
- this._popover = null;
- this._popoverContents = null;
+ * @return {?UI.PopoverRequest}
+ */
+ _getPopoverRequest(event) {
+ return {
+ box: this._cursorElement.boxInWindow(),
+ show: popover => this._buildPopoverContents().then(fragment => {
+ if (!fragment.firstChild)
+ return false;
+ var content = new PerfUI.TimelineOverviewPane.PopoverContents();
+ this._popoverContents = content.contentElement.createChild('div');
+ this._popoverContents.appendChild(fragment);
+ this._popover = popover;
+ content.show(popover.contentElement);
+ return true;
+ }),
+ hide: () => {
+ this._popover = null;
+ this._popoverContents = null;
+ }
+ };
}
/**

Powered by Google App Engine
This is Rietveld 408576698