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

Unified Diff: third_party/WebKit/Source/devtools/front_end/source_frame/UISourceCodeFrame.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/source_frame/UISourceCodeFrame.js
diff --git a/third_party/WebKit/Source/devtools/front_end/source_frame/UISourceCodeFrame.js b/third_party/WebKit/Source/devtools/front_end/source_frame/UISourceCodeFrame.js
index 33beb72d1fb9b4caf8d25d73cc56c6444a0d798f..38935d669c89e796268ca4a98927ec5a17c70134 100644
--- a/third_party/WebKit/Source/devtools/front_end/source_frame/UISourceCodeFrame.js
+++ b/third_party/WebKit/Source/devtools/front_end/source_frame/UISourceCodeFrame.js
@@ -74,8 +74,7 @@ SourceFrame.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
this._updateStyle();
this._updateDiffUISourceCode();
- this._errorPopoverHelper = new UI.PopoverHelper(this.element);
- this._errorPopoverHelper.initializeCallbacks(this._getErrorAnchor.bind(this), this._showErrorPopover.bind(this));
+ this._errorPopoverHelper = new UI.PopoverHelper(this.element, this._getErrorPopoverContent.bind(this));
this._errorPopoverHelper.setHasPadding(true);
this._errorPopoverHelper.setTimeout(100, 100);
@@ -401,33 +400,26 @@ SourceFrame.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
}
/**
- * @param {!Element} target
* @param {!Event} event
- * @return {(!Element|undefined)}
+ * @return {?UI.PopoverRequest}
*/
- _getErrorAnchor(target, event) {
- var element = target.enclosingNodeOrSelfWithClass('text-editor-line-decoration-icon') ||
- target.enclosingNodeOrSelfWithClass('text-editor-line-decoration-wave');
+ _getErrorPopoverContent(event) {
+ var element = event.target.enclosingNodeOrSelfWithClass('text-editor-line-decoration-icon') ||
+ event.target.enclosingNodeOrSelfWithClass('text-editor-line-decoration-wave');
if (!element)
- return;
- this._errorWavePopoverAnchor = new AnchorBox(event.clientX, event.clientY, 1, 1);
- return element;
- }
-
- /**
- * @param {!Element|!AnchorBox} anchor
- * @param {!UI.GlassPane} popover
- * @return {!Promise<boolean>}
- */
- _showErrorPopover(anchor, popover) {
- var element = /** @type {!Element} */ (anchor);
- var messageBucket = element.enclosingNodeOrSelfWithClass('text-editor-line-decoration')._messageBucket;
- var messagesOutline = messageBucket.messagesDescription();
- popover.setContentAnchorBox(
- element.enclosingNodeOrSelfWithClass('text-editor-line-decoration-icon') ? element.boxInWindow() :
- this._errorWavePopoverAnchor);
- popover.contentElement.appendChild(messagesOutline);
- return Promise.resolve(true);
+ return null;
+ var anchor = element.enclosingNodeOrSelfWithClass('text-editor-line-decoration-icon') ?
+ element.boxInWindow() :
+ new AnchorBox(event.clientX, event.clientY, 1, 1);
+ return {
+ box: anchor,
+ show: popover => {
+ var messageBucket = element.enclosingNodeOrSelfWithClass('text-editor-line-decoration')._messageBucket;
+ var messagesOutline = messageBucket.messagesDescription();
+ popover.contentElement.appendChild(messagesOutline);
+ return Promise.resolve(true);
+ }
+ };
}
_updateBucketDecorations() {

Powered by Google App Engine
This is Rietveld 408576698