Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Side by Side Diff: Source/devtools/front_end/profiler/CanvasProfileView.js

Issue 881263002: DevTools: use target-based model accessors only. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/network/NetworkLogView.js ('k') | Source/devtools/front_end/profiler/CanvasReplayStateView.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698