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 |