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 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 var recordType = WebInspector.TimelineModel.RecordType; | 284 var recordType = WebInspector.TimelineModel.RecordType; |
285 var detailsText; | 285 var detailsText; |
286 var eventData = event.args["data"]; | 286 var eventData = event.args["data"]; |
287 switch (event.name) { | 287 switch (event.name) { |
288 case recordType.GCEvent: | 288 case recordType.GCEvent: |
289 case recordType.MajorGC: | 289 case recordType.MajorGC: |
290 case recordType.MinorGC: | 290 case recordType.MinorGC: |
291 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA
fter"]; | 291 var delta = event.args["usedHeapSizeBefore"] - event.args["usedHeapSizeA
fter"]; |
292 detailsText = WebInspector.UIString("%s collected", Number.bytesToString
(delta)); | 292 detailsText = WebInspector.UIString("%s collected", Number.bytesToString
(delta)); |
293 break; | 293 break; |
294 case recordType.TimerFire: | |
295 detailsText = eventData["timerId"]; | |
296 break; | |
297 case recordType.FunctionCall: | 294 case recordType.FunctionCall: |
298 detailsText = linkifyLocationAsText(eventData["scriptId"], eventData["sc
riptLine"], 0); | 295 detailsText = linkifyLocationAsText(eventData["scriptId"], eventData["sc
riptLine"], 0); |
299 break; | 296 break; |
300 case recordType.JSFrame: | 297 case recordType.JSFrame: |
301 detailsText = WebInspector.beautifyFunctionName(eventData["functionName"
]); | 298 detailsText = WebInspector.beautifyFunctionName(eventData["functionName"
]); |
302 break; | 299 break; |
303 case recordType.FireAnimationFrame: | |
304 detailsText = eventData["id"]; | |
305 break; | |
306 case recordType.EventDispatch: | 300 case recordType.EventDispatch: |
307 detailsText = eventData ? eventData["type"] : null; | 301 detailsText = eventData ? eventData["type"] : null; |
308 break; | 302 break; |
309 case recordType.Paint: | 303 case recordType.Paint: |
310 var width = WebInspector.TimelineUIUtils.quadWidth(eventData.clip); | 304 var width = WebInspector.TimelineUIUtils.quadWidth(eventData.clip); |
311 var height = WebInspector.TimelineUIUtils.quadHeight(eventData.clip); | 305 var height = WebInspector.TimelineUIUtils.quadHeight(eventData.clip); |
312 if (width && height) | 306 if (width && height) |
313 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width,
height); | 307 detailsText = WebInspector.UIString("%d\u2009\u00d7\u2009%d", width,
height); |
314 break; | 308 break; |
315 case recordType.TimerInstall: | |
316 case recordType.TimerRemove: | |
317 detailsText = linkifyTopCallFrameAsText() || eventData["timerId"]; | |
318 break; | |
319 case recordType.RequestAnimationFrame: | |
320 case recordType.CancelAnimationFrame: | |
321 detailsText = linkifyTopCallFrameAsText() || eventData["id"]; | |
322 break; | |
323 case recordType.ParseHTML: | 309 case recordType.ParseHTML: |
324 var endLine = event.args["endData"] && event.args["endData"]["endLine"]; | 310 var endLine = event.args["endData"] && event.args["endData"]["endLine"]; |
325 var url = event.args["beginData"]["url"]; | 311 var url = WebInspector.displayNameForURL(event.args["beginData"]["url"])
; |
326 detailsText = endLine ? WebInspector.UIString("%s [%d\u2009\u2013\u2009%
d]", url, event.args["beginData"]["startLine"] + 1, endLine + 1) : url; | 312 detailsText = endLine ? WebInspector.UIString("%s [%d\u2009\u2013\u2009%
d]", url, event.args["beginData"]["startLine"] + 1, endLine + 1) : url; |
327 break; | 313 break; |
328 case recordType.UpdateLayoutTree: | 314 |
329 case recordType.RecalculateStyles: | |
330 detailsText = linkifyTopCallFrameAsText(); | |
331 break; | |
332 case recordType.EvaluateScript: | 315 case recordType.EvaluateScript: |
333 var url = eventData["url"]; | 316 var url = eventData["url"]; |
334 if (url) | 317 if (url) |
335 detailsText = url + ":" + eventData["lineNumber"]; | 318 detailsText = detailsText = WebInspector.displayNameForURL(url) + ":
" + eventData["lineNumber"]; |
336 break; | 319 break; |
337 case recordType.XHRReadyStateChange: | 320 case recordType.XHRReadyStateChange: |
338 case recordType.XHRLoad: | 321 case recordType.XHRLoad: |
339 case recordType.ResourceSendRequest: | |
340 var url = eventData["url"]; | 322 var url = eventData["url"]; |
341 if (url) | 323 if (url) |
342 detailsText = WebInspector.displayNameForURL(url); | 324 detailsText = detailsText = WebInspector.displayNameForURL(url); |
343 break; | 325 break; |
| 326 |
| 327 case recordType.WebSocketCreate: |
| 328 case recordType.WebSocketSendHandshakeRequest: |
| 329 case recordType.WebSocketReceiveHandshakeResponse: |
| 330 case recordType.WebSocketDestroy: |
| 331 case recordType.ResourceSendRequest: |
344 case recordType.ResourceReceivedData: | 332 case recordType.ResourceReceivedData: |
345 case recordType.ResourceReceiveResponse: | 333 case recordType.ResourceReceiveResponse: |
346 case recordType.ResourceFinish: | 334 case recordType.ResourceFinish: |
347 var initiator = event.initiator; | 335 case recordType.PaintImage: |
348 if (initiator) { | 336 case recordType.DecodeImage: |
349 var url = initiator.args["data"]["url"]; | 337 case recordType.ResizeImage: |
350 if (url) | 338 case recordType.DecodeLazyPixelRef: |
351 detailsText = WebInspector.displayNameForURL(url); | 339 if (event.url) |
352 } | 340 detailsText = WebInspector.displayNameForURL(event.url); |
353 break; | 341 break; |
| 342 |
354 case recordType.EmbedderCallback: | 343 case recordType.EmbedderCallback: |
355 detailsText = eventData["callbackName"]; | 344 detailsText = eventData["callbackName"]; |
356 break; | 345 break; |
357 | 346 |
358 case recordType.PaintImage: | |
359 case recordType.DecodeImage: | |
360 case recordType.ResizeImage: | |
361 case recordType.DecodeLazyPixelRef: | |
362 var url = event.url; | |
363 if (url) | |
364 detailsText = WebInspector.displayNameForURL(url); | |
365 break; | |
366 | |
367 case recordType.Animation: | 347 case recordType.Animation: |
368 detailsText = eventData && eventData["name"]; | 348 detailsText = eventData && eventData["name"]; |
369 break; | 349 break; |
370 | 350 |
371 default: | 351 default: |
372 if (event.hasCategory(WebInspector.TracingModel.ConsoleEventCategory)) | 352 if (event.hasCategory(WebInspector.TracingModel.ConsoleEventCategory)) |
373 detailsText = null; | 353 detailsText = null; |
374 else | 354 else |
375 detailsText = linkifyTopCallFrameAsText(); | 355 detailsText = linkifyTopCallFrameAsText(); |
376 break; | 356 break; |
377 } | 357 } |
378 | 358 |
379 return detailsText; | 359 return detailsText; |
380 | 360 |
381 /** | 361 /** |
382 * @param {string} scriptId | 362 * @param {string} scriptId |
383 * @param {number} lineNumber | 363 * @param {number} lineNumber |
384 * @param {number=} columnNumber | 364 * @param {number=} columnNumber |
385 * @return {?string} | 365 * @return {?string} |
386 */ | 366 */ |
387 function linkifyLocationAsText(scriptId, lineNumber, columnNumber) | 367 function linkifyLocationAsText(scriptId, lineNumber, columnNumber) |
388 { | 368 { |
389 // FIXME(62725): stack trace line/column numbers are one-based. | 369 // FIXME(62725): stack trace line/column numbers are one-based. |
390 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); | 370 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
391 var rawLocation = target && !target.isDetached() && scriptId && debugger
Model ? debuggerModel.createRawLocationByScriptId(scriptId, lineNumber - 1, (col
umnNumber || 1) - 1) : null; | 371 var rawLocation = target && !target.isDetached() && scriptId && debugger
Model ? debuggerModel.createRawLocationByScriptId(scriptId, lineNumber - 1, (col
umnNumber || 1) - 1) : null; |
392 if (!rawLocation) | 372 if (!rawLocation) |
393 return null; | 373 return null; |
394 var uiLocation = WebInspector.debuggerWorkspaceBinding.rawLocationToUILo
cation(rawLocation); | 374 var uiLocation = WebInspector.debuggerWorkspaceBinding.rawLocationToUILo
cation(rawLocation); |
395 return uiLocation.toUIString(); | 375 return uiLocation.linkText(); |
396 } | 376 } |
397 | 377 |
398 /** | 378 /** |
399 * @return {?string} | 379 * @return {?string} |
400 */ | 380 */ |
401 function linkifyTopCallFrameAsText() | 381 function linkifyTopCallFrameAsText() |
402 { | 382 { |
403 var stackTrace = event.stackTrace; | 383 var stackTrace = event.stackTrace; |
404 if (!stackTrace) { | 384 if (!stackTrace) { |
405 var initiator = event.initiator; | 385 var initiator = event.initiator; |
(...skipping 16 matching lines...) Expand all Loading... |
422 WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, tar
get, linkifier) | 402 WebInspector.TimelineUIUtils.buildDetailsNodeForTraceEvent = function(event, tar
get, linkifier) |
423 { | 403 { |
424 var recordType = WebInspector.TimelineModel.RecordType; | 404 var recordType = WebInspector.TimelineModel.RecordType; |
425 var details; | 405 var details; |
426 var detailsText; | 406 var detailsText; |
427 var eventData = event.args["data"]; | 407 var eventData = event.args["data"]; |
428 switch (event.name) { | 408 switch (event.name) { |
429 case recordType.GCEvent: | 409 case recordType.GCEvent: |
430 case recordType.MajorGC: | 410 case recordType.MajorGC: |
431 case recordType.MinorGC: | 411 case recordType.MinorGC: |
432 case recordType.TimerFire: | |
433 case recordType.FireAnimationFrame: | |
434 case recordType.EventDispatch: | 412 case recordType.EventDispatch: |
435 case recordType.Paint: | 413 case recordType.Paint: |
| 414 case recordType.Animation: |
| 415 case recordType.EmbedderCallback: |
| 416 case recordType.ParseHTML: |
| 417 case recordType.WebSocketCreate: |
| 418 case recordType.WebSocketSendHandshakeRequest: |
| 419 case recordType.WebSocketReceiveHandshakeResponse: |
| 420 case recordType.WebSocketDestroy: |
| 421 detailsText = WebInspector.TimelineUIUtils.buildDetailsTextForTraceEvent
(event, target); |
| 422 break; |
436 case recordType.PaintImage: | 423 case recordType.PaintImage: |
437 case recordType.DecodeImage: | 424 case recordType.DecodeImage: |
438 case recordType.ResizeImage: | 425 case recordType.ResizeImage: |
439 case recordType.DecodeLazyPixelRef: | 426 case recordType.DecodeLazyPixelRef: |
440 case recordType.Animation: | |
441 case recordType.XHRReadyStateChange: | 427 case recordType.XHRReadyStateChange: |
442 case recordType.XHRLoad: | 428 case recordType.XHRLoad: |
443 case recordType.ResourceSendRequest: | 429 case recordType.ResourceSendRequest: |
444 case recordType.ResourceReceivedData: | 430 case recordType.ResourceReceivedData: |
445 case recordType.ResourceReceiveResponse: | 431 case recordType.ResourceReceiveResponse: |
446 case recordType.ResourceFinish: | 432 case recordType.ResourceFinish: |
447 case recordType.EmbedderCallback: | 433 if (event.url) |
448 case recordType.ParseHTML: | 434 details = WebInspector.linkifyResourceAsNode(event.url); |
449 detailsText = WebInspector.TimelineUIUtils.buildDetailsTextForTraceEvent
(event, target); | |
450 break; | 435 break; |
451 case recordType.FunctionCall: | 436 case recordType.FunctionCall: |
452 details = linkifyLocation(eventData["scriptId"], eventData["scriptName"]
, eventData["scriptLine"], 0); | 437 details = linkifyLocation(eventData["scriptId"], eventData["scriptName"]
, eventData["scriptLine"], 0); |
453 break; | 438 break; |
454 case recordType.JSFrame: | 439 case recordType.JSFrame: |
455 details = createElement("span"); | 440 details = createElement("span"); |
456 details.createTextChild(WebInspector.beautifyFunctionName(eventData["fun
ctionName"])); | 441 details.createTextChild(WebInspector.beautifyFunctionName(eventData["fun
ctionName"])); |
457 var location = linkifyLocation(eventData["scriptId"], eventData["url"],
eventData["lineNumber"], eventData["columnNumber"]); | 442 var location = linkifyLocation(eventData["scriptId"], eventData["url"],
eventData["lineNumber"], eventData["columnNumber"]); |
458 if (location) { | 443 if (location) { |
459 details.createTextChild(" @ "); | 444 details.createTextChild(" @ "); |
460 details.appendChild(location); | 445 details.appendChild(location); |
461 } | 446 } |
462 break; | 447 break; |
463 case recordType.TimerInstall: | |
464 case recordType.TimerRemove: | |
465 details = linkifyTopCallFrame(); | |
466 detailsText = eventData["timerId"]; | |
467 break; | |
468 case recordType.RequestAnimationFrame: | |
469 case recordType.CancelAnimationFrame: | |
470 details = linkifyTopCallFrame(); | |
471 detailsText = eventData["id"]; | |
472 break; | |
473 case recordType.UpdateLayoutTree: | |
474 case recordType.RecalculateStyles: | |
475 details = linkifyTopCallFrame(); | |
476 break; | |
477 case recordType.EvaluateScript: | 448 case recordType.EvaluateScript: |
478 var url = eventData["url"]; | 449 var url = eventData["url"]; |
479 if (url) | 450 if (url) |
480 details = linkifyLocation("", url, eventData["lineNumber"], 0); | 451 details = linkifyLocation("", url, eventData["lineNumber"], 0); |
481 break; | 452 break; |
482 default: | 453 default: |
483 if (event.hasCategory(WebInspector.TracingModel.ConsoleEventCategory)) | 454 if (event.hasCategory(WebInspector.TracingModel.ConsoleEventCategory)) |
484 detailsText = null; | 455 detailsText = null; |
485 else | 456 else |
486 details = linkifyTopCallFrame(); | 457 details = linkifyTopCallFrame(); |
(...skipping 1441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1928 if (!this._linkifier || !this._target) | 1899 if (!this._linkifier || !this._target) |
1929 return; | 1900 return; |
1930 | 1901 |
1931 var stackTraceElement = parentElement.createChild("div", "timeline-detai
ls-view-row-value timeline-details-view-row-stack-trace monospace"); | 1902 var stackTraceElement = parentElement.createChild("div", "timeline-detai
ls-view-row-value timeline-details-view-row-stack-trace monospace"); |
1932 | 1903 |
1933 var callFrameElem = WebInspector.DOMPresentationUtils.buildStackTracePre
viewContents(this._target, this._linkifier, stackTrace); | 1904 var callFrameElem = WebInspector.DOMPresentationUtils.buildStackTracePre
viewContents(this._target, this._linkifier, stackTrace); |
1934 | 1905 |
1935 stackTraceElement.appendChild(callFrameElem); | 1906 stackTraceElement.appendChild(callFrameElem); |
1936 } | 1907 } |
1937 } | 1908 } |
OLD | NEW |