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