| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |