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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/timeline/TimelineUIUtils.js

Issue 2169153002: DevTools: make all timeline trace events use 0-based line numbers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update expectation Created 4 years, 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * Copyright (C) 2012 Intel Inc. All rights reserved. 3 * Copyright (C) 2012 Intel Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 var eventData = event.args["data"]; 397 var eventData = event.args["data"];
398 switch (event.name) { 398 switch (event.name) {
399 case recordType.GCEvent: 399 case recordType.GCEvent:
400 case recordType.MajorGC: 400 case recordType.MajorGC:
401 case recordType.MinorGC: 401 case recordType.MinorGC:
402 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; 402 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"];
403 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (delta)); 403 detailsText = WebInspector.UIString("%s collected", Number.bytesToString (delta));
404 break; 404 break;
405 case recordType.FunctionCall: 405 case recordType.FunctionCall:
406 // Omit internally generated script names. 406 // Omit internally generated script names.
407 if (eventData && eventData["scriptName"]) 407 if (eventData)
408 detailsText = linkifyLocationAsText(eventData["scriptId"], eventData ["scriptLine"], 0); 408 detailsText = linkifyLocationAsText(eventData["scriptId"], eventData ["lineNumber"], 0);
409 break; 409 break;
410 case recordType.JSFrame: 410 case recordType.JSFrame:
411 detailsText = WebInspector.beautifyFunctionName(eventData["functionName" ]); 411 detailsText = WebInspector.beautifyFunctionName(eventData["functionName" ]);
412 break; 412 break;
413 case recordType.EventDispatch: 413 case recordType.EventDispatch:
414 detailsText = eventData ? eventData["type"] : null; 414 detailsText = eventData ? eventData["type"] : null;
415 break; 415 break;
416 case recordType.Paint: 416 case recordType.Paint:
417 var width = WebInspector.TimelineUIUtils.quadWidth(eventData.clip); 417 var width = WebInspector.TimelineUIUtils.quadWidth(eventData.clip);
418 var height = WebInspector.TimelineUIUtils.quadHeight(eventData.clip); 418 var height = WebInspector.TimelineUIUtils.quadHeight(eventData.clip);
419 if (width && height) 419 if (width && height)
420 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width, height); 420 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width, height);
421 break; 421 break;
422 case recordType.ParseHTML: 422 case recordType.ParseHTML:
423 var endLine = event.args["endData"] && event.args["endData"]["endLine"]; 423 var endLine = event.args["endData"] && event.args["endData"]["endLine"];
424 var url = WebInspector.displayNameForURL(event.args["beginData"]["url"]) ; 424 var url = WebInspector.displayNameForURL(event.args["beginData"]["url"]) ;
425 detailsText = WebInspector.UIString("%s [%s\u2026%s]", url, event.args[" beginData"]["startLine"] + 1, endLine >= 0 ? endLine + 1 : ""); 425 detailsText = WebInspector.UIString("%s [%s\u2026%s]", url, event.args[" beginData"]["startLine"] + 1, endLine >= 0 ? endLine + 1 : "");
426 break; 426 break;
427 427
428 case recordType.CompileScript: 428 case recordType.CompileScript:
429 case recordType.EvaluateScript: 429 case recordType.EvaluateScript:
430 var url = eventData["url"]; 430 var url = eventData["url"];
431 if (url) 431 if (url)
432 detailsText = WebInspector.displayNameForURL(url) + ":" + eventData[ "lineNumber"]; 432 detailsText = WebInspector.displayNameForURL(url) + ":" + (eventData ["lineNumber"] + 1);
433 break; 433 break;
434 case recordType.ParseScriptOnBackground: 434 case recordType.ParseScriptOnBackground:
435 case recordType.XHRReadyStateChange: 435 case recordType.XHRReadyStateChange:
436 case recordType.XHRLoad: 436 case recordType.XHRLoad:
437 var url = eventData["url"]; 437 var url = eventData["url"];
438 if (url) 438 if (url)
439 detailsText = WebInspector.displayNameForURL(url); 439 detailsText = WebInspector.displayNameForURL(url);
440 break; 440 break;
441 case recordType.TimeStamp: 441 case recordType.TimeStamp:
442 detailsText = eventData["message"]; 442 detailsText = eventData["message"];
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 else 484 else
485 detailsText = linkifyTopCallFrameAsText(); 485 detailsText = linkifyTopCallFrameAsText();
486 break; 486 break;
487 } 487 }
488 488
489 return detailsText; 489 return detailsText;
490 490
491 /** 491 /**
492 * @param {string} scriptId 492 * @param {string} scriptId
493 * @param {number} lineNumber 493 * @param {number} lineNumber
494 * @param {number=} columnNumber 494 * @param {number} columnNumber
495 * @return {?string} 495 * @return {?string}
496 */ 496 */
497 function linkifyLocationAsText(scriptId, lineNumber, columnNumber) 497 function linkifyLocationAsText(scriptId, lineNumber, columnNumber)
498 { 498 {
499 // FIXME(62725): stack trace line/column numbers are one-based.
500 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); 499 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target);
501 var rawLocation = target && !target.isDetached() && scriptId && debugger Model ? debuggerModel.createRawLocationByScriptId(scriptId, lineNumber - 1, (col umnNumber || 1) - 1) : null; 500 if (!target || target.isDetached() || !scriptId || !debuggerModel)
501 return null;
502 var rawLocation = debuggerModel.createRawLocationByScriptId(scriptId, li neNumber, columnNumber);
502 if (!rawLocation) 503 if (!rawLocation)
503 return null; 504 return null;
504 var uiLocation = WebInspector.debuggerWorkspaceBinding.rawLocationToUILo cation(rawLocation); 505 var uiLocation = WebInspector.debuggerWorkspaceBinding.rawLocationToUILo cation(rawLocation);
505 return uiLocation.linkText(); 506 return uiLocation.linkText();
506 } 507 }
507 508
508 /** 509 /**
509 * @return {?string} 510 * @return {?string}
510 */ 511 */
511 function linkifyTopCallFrameAsText() 512 function linkifyTopCallFrameAsText()
512 { 513 {
513 var frame = WebInspector.TimelineUIUtils.topStackFrame(event); 514 var frame = WebInspector.TimelineUIUtils.topStackFrame(event);
514 var text = frame ? linkifyLocationAsText(frame.scriptId, frame.lineNumbe r, frame.columnNumber) : null; 515 if (!frame)
515 if (frame && !text) { 516 return null;
517 var text = linkifyLocationAsText(frame.scriptId, frame.lineNumber, frame .columnNumber);
518 if (!text) {
516 text = frame.url; 519 text = frame.url;
517 if (typeof frame.lineNumber === "number") 520 if (typeof frame.lineNumber === "number")
518 text += ":" + (frame.lineNumber + 1); 521 text += ":" + (frame.lineNumber + 1);
519 } 522 }
520 return text; 523 return text;
521 } 524 }
522 } 525 }
523 526
524 /** 527 /**
525 * @param {!WebInspector.TracingModel.Event} event 528 * @param {!WebInspector.TracingModel.Event} event
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 case recordType.XHRReadyStateChange: 561 case recordType.XHRReadyStateChange:
559 case recordType.XHRLoad: 562 case recordType.XHRLoad:
560 case recordType.ResourceSendRequest: 563 case recordType.ResourceSendRequest:
561 case recordType.ResourceReceivedData: 564 case recordType.ResourceReceivedData:
562 case recordType.ResourceReceiveResponse: 565 case recordType.ResourceReceiveResponse:
563 case recordType.ResourceFinish: 566 case recordType.ResourceFinish:
564 if (event.url) 567 if (event.url)
565 details = WebInspector.linkifyResourceAsNode(event.url); 568 details = WebInspector.linkifyResourceAsNode(event.url);
566 break; 569 break;
567 case recordType.FunctionCall: 570 case recordType.FunctionCall:
568 details = linkifyLocation(eventData["scriptId"], eventData["scriptName"] , eventData["scriptLine"] - 1, 0);
569 break;
570 case recordType.JSFrame: 571 case recordType.JSFrame:
571 details = createElement("span"); 572 details = createElement("span");
572 details.createTextChild(WebInspector.beautifyFunctionName(eventData["fun ctionName"])); 573 details.createTextChild(WebInspector.beautifyFunctionName(eventData["fun ctionName"]));
573 var location = linkifyLocation(eventData["scriptId"], eventData["url"], eventData["lineNumber"], eventData["columnNumber"]); 574 var location = linkifyLocation(eventData["scriptId"], eventData["url"], eventData["lineNumber"], eventData["columnNumber"]);
574 if (location) { 575 if (location) {
575 details.createTextChild(" @ "); 576 details.createTextChild(" @ ");
576 details.appendChild(location); 577 details.appendChild(location);
577 } 578 }
578 break; 579 break;
579 case recordType.CompileScript: 580 case recordType.CompileScript:
580 case recordType.EvaluateScript: 581 case recordType.EvaluateScript:
581 var url = eventData["url"]; 582 var url = eventData["url"];
582 if (url) 583 if (url)
583 details = linkifyLocation("", url, eventData["lineNumber"] - 1, 0); 584 details = linkifyLocation("", url, eventData["lineNumber"], 0);
584 break; 585 break;
585 case recordType.ParseScriptOnBackground: 586 case recordType.ParseScriptOnBackground:
586 var url = eventData["url"]; 587 var url = eventData["url"];
587 if (url) 588 if (url)
588 details = linkifyLocation("", url, 0, 0); 589 details = linkifyLocation("", url, 0, 0);
589 break; 590 break;
590 default: 591 default:
591 if (event.hasCategory(WebInspector.TimelineModel.Category.Console)) 592 if (event.hasCategory(WebInspector.TimelineModel.Category.Console))
592 detailsText = null; 593 detailsText = null;
593 else 594 else
(...skipping 16 matching lines...) Expand all
610 { 611 {
611 return linkifier.linkifyScriptLocation(target, scriptId, url, lineNumber , columnNumber, "timeline-details"); 612 return linkifier.linkifyScriptLocation(target, scriptId, url, lineNumber , columnNumber, "timeline-details");
612 } 613 }
613 614
614 /** 615 /**
615 * @return {?Element} 616 * @return {?Element}
616 */ 617 */
617 function linkifyTopCallFrame() 618 function linkifyTopCallFrame()
618 { 619 {
619 var frame = WebInspector.TimelineUIUtils.topStackFrame(event); 620 var frame = WebInspector.TimelineUIUtils.topStackFrame(event);
620 return frame ? linkifier.maybeLinkifyConsoleCallFrameForTracing(target, frame, "timeline-details") : null; 621 return frame ? linkifier.maybeLinkifyConsoleCallFrame(target, frame, "ti meline-details") : null;
621 } 622 }
622 } 623 }
623 624
624 /** 625 /**
625 * @param {!WebInspector.TracingModel.Event} event 626 * @param {!WebInspector.TracingModel.Event} event
626 * @param {!WebInspector.TimelineModel} model 627 * @param {!WebInspector.TimelineModel} model
627 * @param {!WebInspector.Linkifier} linkifier 628 * @param {!WebInspector.Linkifier} linkifier
628 * @param {boolean} detailed 629 * @param {boolean} detailed
629 * @param {function(!DocumentFragment)} callback 630 * @param {function(!DocumentFragment)} callback
630 */ 631 */
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 } 714 }
714 715
715 switch (event.name) { 716 switch (event.name) {
716 case recordTypes.GCEvent: 717 case recordTypes.GCEvent:
717 case recordTypes.MajorGC: 718 case recordTypes.MajorGC:
718 case recordTypes.MinorGC: 719 case recordTypes.MinorGC:
719 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"]; 720 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA fter"];
720 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b ytesToString(delta)); 721 contentHelper.appendTextRow(WebInspector.UIString("Collected"), Number.b ytesToString(delta));
721 break; 722 break;
722 case recordTypes.JSFrame: 723 case recordTypes.JSFrame:
724 case recordTypes.FunctionCall:
723 var detailsNode = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceE vent(event, model.targetByEvent(event), linkifier); 725 var detailsNode = WebInspector.TimelineUIUtils.buildDetailsNodeForTraceE vent(event, model.targetByEvent(event), linkifier);
724 if (detailsNode) 726 if (detailsNode)
725 contentHelper.appendElementRow(WebInspector.UIString("Function"), de tailsNode); 727 contentHelper.appendElementRow(WebInspector.UIString("Function"), de tailsNode);
726 break; 728 break;
727 case recordTypes.TimerFire: 729 case recordTypes.TimerFire:
728 case recordTypes.TimerInstall: 730 case recordTypes.TimerInstall:
729 case recordTypes.TimerRemove: 731 case recordTypes.TimerRemove:
730 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData ["timerId"]); 732 contentHelper.appendTextRow(WebInspector.UIString("Timer ID"), eventData ["timerId"]);
731 if (event.name === recordTypes.TimerInstall) { 733 if (event.name === recordTypes.TimerInstall) {
732 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number .millisToString(eventData["timeout"])); 734 contentHelper.appendTextRow(WebInspector.UIString("Timeout"), Number .millisToString(eventData["timeout"]));
733 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event Data["singleShot"]); 735 contentHelper.appendTextRow(WebInspector.UIString("Repeats"), !event Data["singleShot"]);
734 } 736 }
735 break; 737 break;
736 case recordTypes.FireAnimationFrame: 738 case recordTypes.FireAnimationFrame:
737 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD ata["id"]); 739 contentHelper.appendTextRow(WebInspector.UIString("Callback ID"), eventD ata["id"]);
738 break; 740 break;
739 case recordTypes.FunctionCall:
740 if (typeof eventData["functionName"] === "string")
741 contentHelper.appendTextRow(WebInspector.UIString("Function"), WebIn spector.beautifyFunctionName(eventData["functionName"]));
742 if (eventData["scriptName"])
743 contentHelper.appendLocationRow(WebInspector.UIString("Location"), e ventData["scriptName"], eventData["scriptLine"]);
744 break;
745 case recordTypes.ResourceSendRequest: 741 case recordTypes.ResourceSendRequest:
746 case recordTypes.ResourceReceiveResponse: 742 case recordTypes.ResourceReceiveResponse:
747 case recordTypes.ResourceReceivedData: 743 case recordTypes.ResourceReceivedData:
748 case recordTypes.ResourceFinish: 744 case recordTypes.ResourceFinish:
749 var url = (event.name === recordTypes.ResourceSendRequest) ? eventData[" url"] : initiator && initiator.args["data"]["url"]; 745 var url = (event.name === recordTypes.ResourceSendRequest) ? eventData[" url"] : initiator && initiator.args["data"]["url"];
750 if (url) 746 if (url)
751 contentHelper.appendElementRow(WebInspector.UIString("Resource"), We bInspector.linkifyResourceAsNode(url)); 747 contentHelper.appendElementRow(WebInspector.UIString("Resource"), We bInspector.linkifyResourceAsNode(url));
752 if (eventData["requestMethod"]) 748 if (eventData["requestMethod"])
753 contentHelper.appendTextRow(WebInspector.UIString("Request Method"), eventData["requestMethod"]); 749 contentHelper.appendTextRow(WebInspector.UIString("Request Method"), eventData["requestMethod"]);
754 if (typeof eventData["statusCode"] === "number") 750 if (typeof eventData["statusCode"] === "number")
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 case recordTypes.EmbedderCallback: 818 case recordTypes.EmbedderCallback:
823 contentHelper.appendTextRow(WebInspector.UIString("Callback Function"), eventData["callbackName"]); 819 contentHelper.appendTextRow(WebInspector.UIString("Callback Function"), eventData["callbackName"]);
824 break; 820 break;
825 case recordTypes.Animation: 821 case recordTypes.Animation:
826 if (event.phase === WebInspector.TracingModel.Phase.NestableAsyncInstant ) 822 if (event.phase === WebInspector.TracingModel.Phase.NestableAsyncInstant )
827 contentHelper.appendTextRow(WebInspector.UIString("State"), eventDat a["state"]); 823 contentHelper.appendTextRow(WebInspector.UIString("State"), eventDat a["state"]);
828 break; 824 break;
829 case recordTypes.ParseHTML: 825 case recordTypes.ParseHTML:
830 var beginData = event.args["beginData"]; 826 var beginData = event.args["beginData"];
831 var url = beginData["url"]; 827 var url = beginData["url"];
832 var startLine = beginData["startLine"] + 1; 828 var startLine = beginData["startLine"] - 1;
833 var endLine = event.args["endData"] ? event.args["endData"]["endLine"] + 1 : 0; 829 var endLine = event.args["endData"] ? event.args["endData"]["endLine"] - 1 : undefined;
834 if (url) 830 if (url)
835 contentHelper.appendLocationRange(WebInspector.UIString("Range"), ur l, startLine, endLine); 831 contentHelper.appendLocationRange(WebInspector.UIString("Range"), ur l, startLine, endLine);
836 break; 832 break;
837 833
838 case recordTypes.FireIdleCallback: 834 case recordTypes.FireIdleCallback:
839 contentHelper.appendTextRow(WebInspector.UIString("Allotted Time"), Numb er.millisToString(eventData["allottedMilliseconds"])); 835 contentHelper.appendTextRow(WebInspector.UIString("Allotted Time"), Numb er.millisToString(eventData["allottedMilliseconds"]));
840 contentHelper.appendTextRow(WebInspector.UIString("Invoked by Timeout"), eventData["timedOut"]); 836 contentHelper.appendTextRow(WebInspector.UIString("Invoked by Timeout"), eventData["timedOut"]);
841 // Fall-through intended. 837 // Fall-through intended.
842 838
843 case recordTypes.RequestIdleCallback: 839 case recordTypes.RequestIdleCallback:
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 var priority = WebInspector.uiLabelForPriority(/** @type {!NetworkAgent. ResourcePriority} */ (request.priority)); 983 var priority = WebInspector.uiLabelForPriority(/** @type {!NetworkAgent. ResourcePriority} */ (request.priority));
988 contentHelper.appendTextRow(WebInspector.UIString("Priority"), priority) ; 984 contentHelper.appendTextRow(WebInspector.UIString("Priority"), priority) ;
989 } 985 }
990 if (request.mimeType) 986 if (request.mimeType)
991 contentHelper.appendTextRow(WebInspector.UIString("Mime Type"), request. mimeType); 987 contentHelper.appendTextRow(WebInspector.UIString("Mime Type"), request. mimeType);
992 988
993 var title = WebInspector.UIString("Initiator"); 989 var title = WebInspector.UIString("Initiator");
994 var sendRequest = request.children[0]; 990 var sendRequest = request.children[0];
995 var topFrame = WebInspector.TimelineUIUtils.topStackFrame(sendRequest); 991 var topFrame = WebInspector.TimelineUIUtils.topStackFrame(sendRequest);
996 if (topFrame) { 992 if (topFrame) {
997 var link = linkifier.maybeLinkifyConsoleCallFrameForTracing(target, topF rame); 993 var link = linkifier.maybeLinkifyConsoleCallFrame(target, topFrame);
998 if (link) 994 if (link)
999 contentHelper.appendElementRow(title, link); 995 contentHelper.appendElementRow(title, link);
1000 } else if (sendRequest.initiator) { 996 } else if (sendRequest.initiator) {
1001 var initiatorURL = WebInspector.TimelineUIUtils.eventURL(sendRequest.ini tiator); 997 var initiatorURL = WebInspector.TimelineUIUtils.eventURL(sendRequest.ini tiator);
1002 if (initiatorURL) { 998 if (initiatorURL) {
1003 var link = linkifier.maybeLinkifyScriptLocation(target, null, initia torURL, 0); 999 var link = linkifier.maybeLinkifyScriptLocation(target, null, initia torURL, 0);
1004 if (link) 1000 if (link)
1005 contentHelper.appendElementRow(title, link); 1001 contentHelper.appendElementRow(title, link);
1006 } 1002 }
1007 } 1003 }
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
1238 title.createTextChild(WebInspector.UIString("%s for ", reason)); 1234 title.createTextChild(WebInspector.UIString("%s for ", reason));
1239 else 1235 else
1240 title.createTextChild(WebInspector.UIString("Unknown cause for ")); 1236 title.createTextChild(WebInspector.UIString("Unknown cause for "));
1241 1237
1242 this._appendTruncatedNodeList(title, this._invalidations); 1238 this._appendTruncatedNodeList(title, this._invalidations);
1243 1239
1244 if (topFrame && this._contentHelper.linkifier()) { 1240 if (topFrame && this._contentHelper.linkifier()) {
1245 title.createTextChild(WebInspector.UIString(". ")); 1241 title.createTextChild(WebInspector.UIString(". "));
1246 var stack = title.createChild("span", "monospace"); 1242 var stack = title.createChild("span", "monospace");
1247 stack.createChild("span").textContent = WebInspector.beautifyFunctio nName(topFrame.functionName); 1243 stack.createChild("span").textContent = WebInspector.beautifyFunctio nName(topFrame.functionName);
1248 var link = this._contentHelper.linkifier().maybeLinkifyConsoleCallFr ameForTracing(target, topFrame); 1244 var link = this._contentHelper.linkifier().maybeLinkifyConsoleCallFr ame(target, topFrame);
1249 if (link) { 1245 if (link) {
1250 stack.createChild("span").textContent = " @ "; 1246 stack.createChild("span").textContent = " @ ";
1251 stack.createChild("span").appendChild(link); 1247 stack.createChild("span").appendChild(link);
1252 } 1248 }
1253 } 1249 }
1254 1250
1255 return title; 1251 return title;
1256 }, 1252 },
1257 1253
1258 /** 1254 /**
(...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after
2050 /** 2046 /**
2051 * @param {string} title 2047 * @param {string} title
2052 * @param {string} url 2048 * @param {string} url
2053 * @param {number} startLine 2049 * @param {number} startLine
2054 * @param {number=} startColumn 2050 * @param {number=} startColumn
2055 */ 2051 */
2056 appendLocationRow: function(title, url, startLine, startColumn) 2052 appendLocationRow: function(title, url, startLine, startColumn)
2057 { 2053 {
2058 if (!this._linkifier || !this._target) 2054 if (!this._linkifier || !this._target)
2059 return; 2055 return;
2060 if (startColumn) 2056 var link = this._linkifier.maybeLinkifyScriptLocation(this._target, null , url, startLine, startColumn);
2061 --startColumn;
2062 var link = this._linkifier.maybeLinkifyScriptLocation(this._target, null , url, startLine - 1, startColumn);
2063 if (!link) 2057 if (!link)
2064 return; 2058 return;
2065 this.appendElementRow(title, link); 2059 this.appendElementRow(title, link);
2066 }, 2060 },
2067 2061
2068 /** 2062 /**
2069 * @param {string} title 2063 * @param {string} title
2070 * @param {string} url 2064 * @param {string} url
2071 * @param {number} startLine 2065 * @param {number} startLine
2072 * @param {number=} endLine 2066 * @param {number=} endLine
2073 */ 2067 */
2074 appendLocationRange: function(title, url, startLine, endLine) 2068 appendLocationRange: function(title, url, startLine, endLine)
2075 { 2069 {
2076 if (!this._linkifier || !this._target) 2070 if (!this._linkifier || !this._target)
2077 return; 2071 return;
2078 var locationContent = createElement("span"); 2072 var locationContent = createElement("span");
2079 var link = this._linkifier.maybeLinkifyScriptLocation(this._target, null , url, startLine - 1); 2073 var link = this._linkifier.maybeLinkifyScriptLocation(this._target, null , url, startLine);
2080 if (!link) 2074 if (!link)
2081 return; 2075 return;
2082 locationContent.appendChild(link); 2076 locationContent.appendChild(link);
2083 locationContent.createTextChild(String.sprintf(" [%s\u2026%s]", startLin e, endLine || "")); 2077 locationContent.createTextChild(String.sprintf(" [%s\u2026%s]", startLin e + 1, endLine + 1 || ""));
2084 this.appendElementRow(title, locationContent); 2078 this.appendElementRow(title, locationContent);
2085 }, 2079 },
2086 2080
2087 /** 2081 /**
2088 * @param {string} title 2082 * @param {string} title
2089 * @param {!RuntimeAgent.StackTrace} stackTrace 2083 * @param {!RuntimeAgent.StackTrace} stackTrace
2090 */ 2084 */
2091 appendStackTrace: function(title, stackTrace) 2085 appendStackTrace: function(title, stackTrace)
2092 { 2086 {
2093 if (!this._linkifier || !this._target) 2087 if (!this._linkifier || !this._target)
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2152 case warnings.V8Deopt: 2146 case warnings.V8Deopt:
2153 span.appendChild(WebInspector.linkifyURLAsNode("https://github.com/Googl eChrome/devtools-docs/issues/53", 2147 span.appendChild(WebInspector.linkifyURLAsNode("https://github.com/Googl eChrome/devtools-docs/issues/53",
2154 WebInspector.UIString("Not optimized"), undefined, true)); 2148 WebInspector.UIString("Not optimized"), undefined, true));
2155 span.createTextChild(WebInspector.UIString(": %s", eventData["deoptReaso n"])); 2149 span.createTextChild(WebInspector.UIString(": %s", eventData["deoptReaso n"]));
2156 break; 2150 break;
2157 default: 2151 default:
2158 console.assert(false, "Unhandled TimelineModel.WarningType"); 2152 console.assert(false, "Unhandled TimelineModel.WarningType");
2159 } 2153 }
2160 return span; 2154 return span;
2161 } 2155 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698