* @constructor
* @extends {WebInspector.PopoverHelper}
* @param {!Element} panelElement
- * @param {function(!Element, !Event):!Element|undefined} getAnchor
+ * @param {function(!Element, !Event):(!Element|!AnchorBox|undefined)} getAnchor
* @param {function(!Element, function(!WebInspector.RemoteObject, boolean, !Element=):undefined, string):undefined} queryObject
* @param {function()=} onHide
* @param {boolean=} disableOnClick
* @param {!WebInspector.Target} target
* @param {!Element} anchorElement
* @param {!Element} popoverContentElement
- * @param {?DebuggerAgent.FunctionDetails} response
+ * @param {?WebInspector.DebuggerModel.FunctionDetails} response
* @this {WebInspector.ObjectPopoverHelper}
*/
function didGetDetails(target, anchorElement, popoverContentElement, response)
var functionName = title.createChild("span", "function-name");
functionName.textContent = response.functionName || WebInspector.UIString("(anonymous function)");
- this._linkifier = new WebInspector.Linkifier();
- var rawLocation = WebInspector.DebuggerModel.Location.fromPayload(target, response.location);
- var link = this._linkifier.linkifyRawLocation(rawLocation, "function-location-link");
- if (link)
+ var rawLocation = response.location;
+ var sourceURL = response.sourceURL;
+ if (rawLocation && sourceURL) {
+ this._linkifier = new WebInspector.Linkifier();
+ var link = this._linkifier.linkifyRawLocation(rawLocation, sourceURL, "function-location-link");
title.appendChild(link);
+ }
container.appendChild(popoverContentElement);
-
popover.show(container, anchorElement);
}
this.hidePopover();
return;
}
-
+ this._objectTarget = result.target();
var anchorElement = anchorOverride || element;
var description = (this._remoteObjectFormatter && this._remoteObjectFormatter(result)) || result.description;
popoverContentElement = document.createElement("span");
popoverContentElement.className = "monospace console-formatted-" + result.type;
popoverContentElement.style.whiteSpace = "pre";
- popoverContentElement.textContent = description;
+ if (result.type === "string")
+ popoverContentElement.createTextChildren("\"", description, "\"");
+ else
+ popoverContentElement.textContent = description;
if (result.type === "function") {
result.functionDetails(didGetDetails.bind(this, result.target(), anchorElement, popoverContentElement));
return;
}
- if (result.type === "string")
- popoverContentElement.textContent = "\"" + popoverContentElement.textContent + "\"";
popover.show(popoverContentElement, anchorElement);
} else {
if (result.subtype === "node") {
}
if (this._onHideCallback)
this._onHideCallback();
- RuntimeAgent.releaseObjectGroup(this._popoverObjectGroup);
+ if (this._objectTarget) {
+ this._objectTarget.runtimeAgent().releaseObjectGroup(this._popoverObjectGroup);
+ delete this._objectTarget;
+ }
},
_updateHTMLId: function(properties, rootTreeElementConstructor, rootPropertyComparer)