| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 488 data[0] = index + 1; | 488 data[0] = index + 1; |
| 489 data[1] = callViewElement; | 489 data[1] = callViewElement; |
| 490 data[2] = ""; | 490 data[2] = ""; |
| 491 if (call.sourceURL) { | 491 if (call.sourceURL) { |
| 492 // FIXME(62725): stack trace line/column numbers are one-based. | 492 // FIXME(62725): stack trace line/column numbers are one-based. |
| 493 var lineNumber = Math.max(0, call.lineNumber - 1) || 0; | 493 var lineNumber = Math.max(0, call.lineNumber - 1) || 0; |
| 494 var columnNumber = Math.max(0, call.columnNumber - 1) || 0; | 494 var columnNumber = Math.max(0, call.columnNumber - 1) || 0; |
| 495 data[2] = this._linkifier.linkifyScriptLocation(this._profile.target
(), null, call.sourceURL, lineNumber, columnNumber); | 495 data[2] = this._linkifier.linkifyScriptLocation(this._profile.target
(), null, call.sourceURL, lineNumber, columnNumber); |
| 496 } | 496 } |
| 497 | 497 |
| 498 var node = new WebInspector.DataGridNode(data); |
| 499 node.index = index; |
| 500 node.selectable = true; |
| 501 node.call = call; |
| 502 |
| 498 callViewElement.createChild("span", "canvas-function-name").textContent
= call.functionName || "context." + call.property; | 503 callViewElement.createChild("span", "canvas-function-name").textContent
= call.functionName || "context." + call.property; |
| 504 var target = this._profile.target(); |
| 505 if (!target) |
| 506 return node; |
| 499 | 507 |
| 500 if (call.arguments) { | 508 if (call.arguments) { |
| 501 callViewElement.createTextChild("("); | 509 callViewElement.createTextChild("("); |
| 502 for (var i = 0, n = call.arguments.length; i < n; ++i) { | 510 for (var i = 0, n = call.arguments.length; i < n; ++i) { |
| 503 var argument = /** @type {!CanvasAgent.CallArgument} */ (call.ar
guments[i]); | 511 var argument = /** @type {!CanvasAgent.CallArgument} */ (call.ar
guments[i]); |
| 504 if (i) | 512 if (i) |
| 505 callViewElement.createTextChild(", "); | 513 callViewElement.createTextChild(", "); |
| 506 var element = WebInspector.CanvasProfileDataGridHelper.createCal
lArgumentElement(argument); | 514 var element = WebInspector.CanvasProfileDataGridHelper.createCal
lArgumentElement(target, argument); |
| 507 element.__argumentIndex = i; | 515 element.__argumentIndex = i; |
| 508 callViewElement.appendChild(element); | 516 callViewElement.appendChild(element); |
| 509 } | 517 } |
| 510 callViewElement.createTextChild(")"); | 518 callViewElement.createTextChild(")"); |
| 511 } else if (call.value) { | 519 } else if (call.value) { |
| 512 callViewElement.createTextChild(" = "); | 520 callViewElement.createTextChild(" = "); |
| 513 callViewElement.appendChild(WebInspector.CanvasProfileDataGridHelper
.createCallArgumentElement(call.value)); | 521 callViewElement.appendChild(WebInspector.CanvasProfileDataGridHelper
.createCallArgumentElement(target, call.value)); |
| 514 } | 522 } |
| 515 | 523 |
| 516 if (call.result) { | 524 if (call.result) { |
| 517 callViewElement.createTextChild(" => "); | 525 callViewElement.createTextChild(" => "); |
| 518 callViewElement.appendChild(WebInspector.CanvasProfileDataGridHelper
.createCallArgumentElement(call.result)); | 526 callViewElement.appendChild(WebInspector.CanvasProfileDataGridHelper
.createCallArgumentElement(target, call.result)); |
| 519 } | 527 } |
| 520 | 528 |
| 521 var node = new WebInspector.DataGridNode(data); | |
| 522 node.index = index; | |
| 523 node.selectable = true; | |
| 524 node.call = call; | |
| 525 return node; | 529 return node; |
| 526 }, | 530 }, |
| 527 | 531 |
| 528 /** | 532 /** |
| 529 * @param {!Element} element | 533 * @param {!Element} element |
| 530 * @param {!Event} event | 534 * @param {!Event} event |
| 531 * @return {!Element|!AnchorBox|undefined} | 535 * @return {!Element|!AnchorBox|undefined} |
| 532 */ | 536 */ |
| 533 _popoverAnchor: function(element, event) | 537 _popoverAnchor: function(element, event) |
| 534 { | 538 { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 556 return; | 560 return; |
| 557 | 561 |
| 558 this._popoverAnchorElement = argumentElement.cloneNode(true); | 562 this._popoverAnchorElement = argumentElement.cloneNode(true); |
| 559 this._popoverAnchorElement.classList.add("canvas-popover-anchor"); | 563 this._popoverAnchorElement.classList.add("canvas-popover-anchor"); |
| 560 this._popoverAnchorElement.classList.add("source-frame-eval-expressi
on"); | 564 this._popoverAnchorElement.classList.add("source-frame-eval-expressi
on"); |
| 561 argumentElement.parentElement.appendChild(this._popoverAnchorElement
); | 565 argumentElement.parentElement.appendChild(this._popoverAnchorElement
); |
| 562 | 566 |
| 563 var diffLeft = this._popoverAnchorElement.boxInWindow().x - argument
Element.boxInWindow().x; | 567 var diffLeft = this._popoverAnchorElement.boxInWindow().x - argument
Element.boxInWindow().x; |
| 564 this._popoverAnchorElement.style.left = this._popoverAnchorElement.o
ffsetLeft - diffLeft + "px"; | 568 this._popoverAnchorElement.style.left = this._popoverAnchorElement.o
ffsetLeft - diffLeft + "px"; |
| 565 | 569 |
| 566 showCallback(WebInspector.runtimeModel.createRemoteObject(result), f
alse, this._popoverAnchorElement); | 570 showCallback(this._profile.target().runtimeModel.createRemoteObject(
result), false, this._popoverAnchorElement); |
| 567 } | 571 } |
| 568 | 572 |
| 569 var evalResult = argumentElement.__evalResult; | 573 var evalResult = argumentElement.__evalResult; |
| 570 if (evalResult) | 574 if (evalResult) |
| 571 showObjectPopover.call(this, null, evalResult); | 575 showObjectPopover.call(this, null, evalResult); |
| 572 else { | 576 else { |
| 573 var dataGridNode = this._logGrid.dataGridNodeFromNode(argumentElemen
t); | 577 var dataGridNode = this._logGrid.dataGridNodeFromNode(argumentElemen
t); |
| 574 if (!dataGridNode || typeof dataGridNode.index !== "number") { | 578 if (!dataGridNode || typeof dataGridNode.index !== "number") { |
| 575 this._popoverHelper.hidePopover(); | 579 this._popoverHelper.hidePopover(); |
| 576 return; | 580 return; |
| (...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1138 this._updateCapturingStatus(); | 1142 this._updateCapturingStatus(); |
| 1139 } | 1143 } |
| 1140 this._traceLogPlayer.getTraceLog(0, 0, didReceiveTraceLog.bind(this)); | 1144 this._traceLogPlayer.getTraceLog(0, 0, didReceiveTraceLog.bind(this)); |
| 1141 }, | 1145 }, |
| 1142 | 1146 |
| 1143 __proto__: WebInspector.ProfileHeader.prototype | 1147 __proto__: WebInspector.ProfileHeader.prototype |
| 1144 } | 1148 } |
| 1145 | 1149 |
| 1146 WebInspector.CanvasProfileDataGridHelper = { | 1150 WebInspector.CanvasProfileDataGridHelper = { |
| 1147 /** | 1151 /** |
| 1152 * @param {!WebInspector.Target} target |
| 1148 * @param {!CanvasAgent.CallArgument} callArgument | 1153 * @param {!CanvasAgent.CallArgument} callArgument |
| 1149 * @return {!Element} | 1154 * @return {!Element} |
| 1150 */ | 1155 */ |
| 1151 createCallArgumentElement: function(callArgument) | 1156 createCallArgumentElement: function(target, callArgument) |
| 1152 { | 1157 { |
| 1153 if (callArgument.enumName) | 1158 if (callArgument.enumName) |
| 1154 return WebInspector.CanvasProfileDataGridHelper.createEnumValueEleme
nt(callArgument.enumName, +callArgument.description); | 1159 return WebInspector.CanvasProfileDataGridHelper.createEnumValueEleme
nt(target, callArgument.enumName, +callArgument.description); |
| 1155 var element = createElement("span"); | 1160 var element = createElement("span"); |
| 1156 element.className = "canvas-call-argument"; | 1161 element.className = "canvas-call-argument"; |
| 1157 var description = callArgument.description; | 1162 var description = callArgument.description; |
| 1158 if (callArgument.type === "string") { | 1163 if (callArgument.type === "string") { |
| 1159 const maxStringLength = 150; | 1164 const maxStringLength = 150; |
| 1160 element.createTextChild("\""); | 1165 element.createTextChild("\""); |
| 1161 element.createChild("span", "canvas-formatted-string").textContent =
description.trimMiddle(maxStringLength); | 1166 element.createChild("span", "canvas-formatted-string").textContent =
description.trimMiddle(maxStringLength); |
| 1162 element.createTextChild("\""); | 1167 element.createTextChild("\""); |
| 1163 element.__suppressPopover = (description.length <= maxStringLength &
& !/[\r\n]/.test(description)); | 1168 element.__suppressPopover = (description.length <= maxStringLength &
& !/[\r\n]/.test(description)); |
| 1164 if (!element.__suppressPopover) | 1169 if (!element.__suppressPopover) |
| 1165 element.__evalResult = WebInspector.runtimeModel.createRemoteObj
ectFromPrimitiveValue(description); | 1170 element.__evalResult = target.runtimeModel.createRemoteObjectFro
mPrimitiveValue(description); |
| 1166 } else { | 1171 } else { |
| 1167 var type = callArgument.subtype || callArgument.type; | 1172 var type = callArgument.subtype || callArgument.type; |
| 1168 if (type) { | 1173 if (type) { |
| 1169 element.classList.add("canvas-formatted-" + type); | 1174 element.classList.add("canvas-formatted-" + type); |
| 1170 if (["null", "undefined", "boolean", "number"].indexOf(type) >=
0) | 1175 if (["null", "undefined", "boolean", "number"].indexOf(type) >=
0) |
| 1171 element.__suppressPopover = true; | 1176 element.__suppressPopover = true; |
| 1172 } | 1177 } |
| 1173 element.textContent = description; | 1178 element.textContent = description; |
| 1174 if (callArgument.remoteObject) | 1179 if (callArgument.remoteObject) |
| 1175 element.__evalResult = WebInspector.runtimeModel.createRemoteObj
ect(callArgument.remoteObject); | 1180 element.__evalResult = target.runtimeModel.createRemoteObject(ca
llArgument.remoteObject); |
| 1176 } | 1181 } |
| 1177 if (callArgument.resourceId) { | 1182 if (callArgument.resourceId) { |
| 1178 element.classList.add("canvas-formatted-resource"); | 1183 element.classList.add("canvas-formatted-resource"); |
| 1179 element.__resourceId = callArgument.resourceId; | 1184 element.__resourceId = callArgument.resourceId; |
| 1180 } | 1185 } |
| 1181 return element; | 1186 return element; |
| 1182 }, | 1187 }, |
| 1183 | 1188 |
| 1184 /** | 1189 /** |
| 1190 * @param {!WebInspector.Target} target |
| 1185 * @param {string} enumName | 1191 * @param {string} enumName |
| 1186 * @param {number} enumValue | 1192 * @param {number} enumValue |
| 1187 * @return {!Element} | 1193 * @return {!Element} |
| 1188 */ | 1194 */ |
| 1189 createEnumValueElement: function(enumName, enumValue) | 1195 createEnumValueElement: function(target, enumName, enumValue) |
| 1190 { | 1196 { |
| 1191 var element = createElement("span"); | 1197 var element = createElement("span"); |
| 1192 element.className = "canvas-call-argument canvas-formatted-number"; | 1198 element.className = "canvas-call-argument canvas-formatted-number"; |
| 1193 element.textContent = enumName; | 1199 element.textContent = enumName; |
| 1194 element.__evalResult = WebInspector.runtimeModel.createRemoteObjectFromP
rimitiveValue(enumValue); | 1200 element.__evalResult = target.runtimeModel.createRemoteObjectFromPrimiti
veValue(enumValue); |
| 1195 return element; | 1201 return element; |
| 1196 } | 1202 } |
| 1197 } | 1203 } |
| 1198 | 1204 |
| 1199 /** | 1205 /** |
| 1200 * @extends {WebInspector.SDKObject} | 1206 * @extends {WebInspector.SDKObject} |
| 1201 * @constructor | 1207 * @constructor |
| 1202 * @param {!WebInspector.Target} target | 1208 * @param {!WebInspector.Target} target |
| 1203 * @param {!CanvasAgent.TraceLogId} traceLogId | 1209 * @param {!CanvasAgent.TraceLogId} traceLogId |
| 1204 */ | 1210 */ |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1316 }, | 1322 }, |
| 1317 | 1323 |
| 1318 clearResourceStates: function() | 1324 clearResourceStates: function() |
| 1319 { | 1325 { |
| 1320 this._currentResourceStates = {}; | 1326 this._currentResourceStates = {}; |
| 1321 this.dispatchEventToListeners(WebInspector.CanvasTraceLogPlayerProxy.Eve
nts.CanvasReplayStateChanged); | 1327 this.dispatchEventToListeners(WebInspector.CanvasTraceLogPlayerProxy.Eve
nts.CanvasReplayStateChanged); |
| 1322 }, | 1328 }, |
| 1323 | 1329 |
| 1324 __proto__: WebInspector.SDKObject.prototype | 1330 __proto__: WebInspector.SDKObject.prototype |
| 1325 } | 1331 } |
| OLD | NEW |