Chromium Code Reviews| 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() { |