| Index: third_party/WebKit/Source/devtools/front_end/profiler/HeapSnapshotView.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/profiler/HeapSnapshotView.js b/third_party/WebKit/Source/devtools/front_end/profiler/HeapSnapshotView.js
|
| index 95e833e5a911a7f0e6c4f9f9b97bc41d9c93e1ec..b3de9dc5e24dbc706357dfdeedeba75e98fef759 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/profiler/HeapSnapshotView.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/profiler/HeapSnapshotView.js
|
| @@ -153,9 +153,7 @@ Profiler.HeapSnapshotView = class extends UI.SimpleView {
|
|
|
| this._selectedSizeText = new UI.ToolbarText();
|
|
|
| - this._popoverHelper = new UI.PopoverHelper(this.element, true);
|
| - this._popoverHelper.initializeCallbacks(
|
| - this._getHoverAnchor.bind(this), this._showObjectPopover.bind(this), this._onHidePopover.bind(this));
|
| + this._popoverHelper = new UI.PopoverHelper(this.element, true, this._getPopoverContent.bind(this));
|
| this._popoverHelper.setHasPadding(true);
|
| this.element.addEventListener('scroll', this._popoverHelper.hidePopover.bind(this._popoverHelper), true);
|
|
|
| @@ -607,58 +605,53 @@ Profiler.HeapSnapshotView = class extends UI.SimpleView {
|
| }
|
| }
|
|
|
| - _getHoverAnchor(target) {
|
| - var span = target.enclosingNodeOrSelfWithNodeName('span');
|
| - if (!span)
|
| - return;
|
| - var row = target.enclosingNodeOrSelfWithNodeName('tr');
|
| - if (!row)
|
| - return;
|
| - span.node = row._dataGridNode;
|
| - return span;
|
| - }
|
| -
|
| /**
|
| - * @param {!Element|!AnchorBox} element
|
| - * @param {!UI.GlassPane} popover
|
| - * @return {!Promise<boolean>}
|
| + * @param {!Event} event
|
| + * @return {?UI.PopoverContent}
|
| */
|
| - _showObjectPopover(element, popover) {
|
| - if (!this._profile.target() || !element.node)
|
| - return Promise.resolve(false);
|
| -
|
| - var fulfill;
|
| - var promise = new Promise(x => fulfill = x);
|
| - element.node.queryObjectContent(this._profile.target(), onObjectResolved.bind(this), 'popover');
|
| - return promise;
|
| -
|
| - /**
|
| - * @param {?SDK.RemoteObject} result
|
| - * @this {Profiler.HeapSnapshotView}
|
| - */
|
| - function onObjectResolved(result) {
|
| - if (!result) {
|
| - fulfill(false);
|
| - return;
|
| - }
|
| - ObjectUI.ObjectPopoverHelper.buildObjectPopover(result, popover).then(objectPopoverHelper => {
|
| - if (!objectPopoverHelper) {
|
| - this._onHidePopover(); // Cleanup object resolving artifacts.
|
| - fulfill(false);
|
| - return;
|
| + _getPopoverContent(event) {
|
| + var span = event.target.enclosingNodeOrSelfWithNodeName('span');
|
| + var row = event.target.enclosingNodeOrSelfWithNodeName('tr');
|
| + if (!row || !span)
|
| + return null;
|
| + var node = row._dataGridNode;
|
| + var objectPopoverHelper;
|
| + return {
|
| + box: span.boxInWindow(),
|
| + show: popover => {
|
| + if (!this._profile.target())
|
| + return Promise.resolve(false);
|
| +
|
| + var fulfill;
|
| + var promise = new Promise(x => fulfill = x);
|
| + node.queryObjectContent(this._profile.target(), onObjectResolved.bind(this), 'popover');
|
| + return promise;
|
| +
|
| + /**
|
| + * @param {?SDK.RemoteObject} result
|
| + * @this {Profiler.HeapSnapshotView}
|
| + */
|
| + function onObjectResolved(result) {
|
| + if (!result) {
|
| + fulfill(false);
|
| + return;
|
| + }
|
| + ObjectUI.ObjectPopoverHelper.buildObjectPopover(result, popover).then(helper => {
|
| + if (!helper) {
|
| + this._profile.target().runtimeModel.releaseObjectGroup('popover');
|
| + fulfill(false);
|
| + return;
|
| + }
|
| + objectPopoverHelper = helper;
|
| + fulfill(true);
|
| + });
|
| }
|
| - this._objectPopoverHelper = objectPopoverHelper;
|
| - fulfill(true);
|
| - });
|
| - }
|
| - }
|
| -
|
| - _onHidePopover() {
|
| - if (this._objectPopoverHelper) {
|
| - this._objectPopoverHelper.dispose();
|
| - delete this._objectPopoverHelper;
|
| - }
|
| - this._profile.target().runtimeModel.releaseObjectGroup('popover');
|
| + },
|
| + hide: () => {
|
| + this._profile.target().runtimeModel.releaseObjectGroup('popover');
|
| + objectPopoverHelper.dispose();
|
| + }
|
| + };
|
| }
|
|
|
| _updatePerspectiveOptions() {
|
|
|