| Index: Source/devtools/front_end/console/ConsoleViewMessage.js
|
| diff --git a/Source/devtools/front_end/console/ConsoleViewMessage.js b/Source/devtools/front_end/console/ConsoleViewMessage.js
|
| index d902e70cea347810a8abba2a31ecd3aeb2d22482..25e8bd57e14ec1ba6604a4e970a3afbb8e1fb1ed 100644
|
| --- a/Source/devtools/front_end/console/ConsoleViewMessage.js
|
| +++ b/Source/devtools/front_end/console/ConsoleViewMessage.js
|
| @@ -58,7 +58,7 @@ WebInspector.ConsoleViewMessage = function(consoleMessage, linkifier, nestingLev
|
|
|
| WebInspector.ConsoleViewMessage.prototype = {
|
| /**
|
| - * @return {!WebInspector.Target}
|
| + * @return {?WebInspector.Target}
|
| */
|
| _target: function()
|
| {
|
| @@ -247,18 +247,19 @@ WebInspector.ConsoleViewMessage.prototype = {
|
| _linkifyLocation: function(url, lineNumber, columnNumber)
|
| {
|
| console.assert(this._linkifier);
|
| - if (!this._linkifier)
|
| + var target = this._target();
|
| + if (!this._linkifier || !target)
|
| return null;
|
| // FIXME(62725): stack trace line/column numbers are one-based.
|
| lineNumber = lineNumber ? lineNumber - 1 : 0;
|
| columnNumber = columnNumber ? columnNumber - 1 : 0;
|
| if (this._message.source === WebInspector.ConsoleMessage.MessageSource.CSS) {
|
| - var headerIds = this._target().cssModel.styleSheetIdsForURL(url);
|
| - var cssLocation = new WebInspector.CSSLocation(this._target(), url, lineNumber, columnNumber);
|
| + var headerIds = target.cssModel.styleSheetIdsForURL(url);
|
| + var cssLocation = new WebInspector.CSSLocation(target, url, lineNumber, columnNumber);
|
| return this._linkifier.linkifyCSSLocation(headerIds[0] || null, cssLocation, "console-message-url");
|
| }
|
|
|
| - return this._linkifier.linkifyLocation(this._target(), url, lineNumber, columnNumber, "console-message-url");
|
| + return this._linkifier.linkifyLocation(target, url, lineNumber, columnNumber, "console-message-url");
|
| },
|
|
|
| /**
|
| @@ -268,12 +269,13 @@ WebInspector.ConsoleViewMessage.prototype = {
|
| _linkifyCallFrame: function(callFrame)
|
| {
|
| console.assert(this._linkifier);
|
| - if (!this._linkifier)
|
| + var target = this._target();
|
| + if (!this._linkifier || !target)
|
| return null;
|
| // FIXME(62725): stack trace line/column numbers are one-based.
|
| var lineNumber = callFrame.lineNumber ? callFrame.lineNumber - 1 : 0;
|
| var columnNumber = callFrame.columnNumber ? callFrame.columnNumber - 1 : 0;
|
| - var rawLocation = new WebInspector.DebuggerModel.Location(this._target(), callFrame.scriptId, lineNumber, columnNumber);
|
| + var rawLocation = new WebInspector.DebuggerModel.Location(target, callFrame.scriptId, lineNumber, columnNumber);
|
| return this._linkifier.linkifyRawLocation(rawLocation, "console-message-url");
|
| },
|
|
|
| @@ -316,6 +318,8 @@ WebInspector.ConsoleViewMessage.prototype = {
|
| if (!parameters.length)
|
| return formattedResult;
|
|
|
| + var target = this._target();
|
| +
|
| // Formatting code below assumes that parameters are all wrappers whereas frontend console
|
| // API allows passing arbitrary values as messages (strings, numbers, etc.). Wrap them here.
|
| for (var i = 0; i < parameters.length; ++i) {
|
| @@ -323,10 +327,15 @@ WebInspector.ConsoleViewMessage.prototype = {
|
| if (parameters[i] instanceof WebInspector.RemoteObject)
|
| continue;
|
|
|
| + if (!target) {
|
| + parameters[i] = WebInspector.RemoteObject.fromLocalObject(parameters[i]);
|
| + continue;
|
| + }
|
| +
|
| if (typeof parameters[i] === "object")
|
| - parameters[i] = this._target().runtimeModel.createRemoteObject(parameters[i]);
|
| + parameters[i] = target.runtimeModel.createRemoteObject(parameters[i]);
|
| else
|
| - parameters[i] = this._target().runtimeModel.createRemoteObjectFromPrimitiveValue(parameters[i]);
|
| + parameters[i] = target.runtimeModel.createRemoteObjectFromPrimitiveValue(parameters[i]);
|
| }
|
|
|
| // There can be string log and string eval result. We distinguish between them based on message type.
|
|
|