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

Unified Diff: third_party/WebKit/Source/devtools/front_end/source_frame/UISourceCodeFrame.js

Issue 2747553002: [DevTools] Rework Popover API (Closed)
Patch Set: await 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 89fc28131474ed2abbdfe10cb6c64bb3b7b60650..91fe95b615956a21e91558cff277a659060548d7 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
@@ -72,8 +72,7 @@ SourceFrame.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
this._updateStyle();
- 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, false, this._getErrorPopoverContent.bind(this));
this._errorPopoverHelper.setHasPadding(true);
this._errorPopoverHelper.setTimeout(100, 100);
@@ -386,33 +385,26 @@ SourceFrame.UISourceCodeFrame = class extends SourceFrame.SourceFrame {
}
/**
- * @param {!Element} target
* @param {!Event} event
- * @return {(!Element|undefined)}
+ * @return {?UI.PopoverContent}
lushnikov 2017/03/14 01:44:04 It feels like client should create actual popover
dgozman 2017/03/14 21:34:01 Done.
*/
- _getErrorAnchor(target, event) {
- var element = target.enclosingNodeOrSelfWithClass('text-editor-line-decoration-icon') ||
- target.enclosingNodeOrSelfWithClass('text-editor-line-decoration-wave');
+ _getErrorPopoverContent(event) {
lushnikov 2017/03/14 01:44:04 _maybeShowErrorPopover?
+ 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