| OLD | NEW |
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script src="../../http/tests/inspector/inspector-test.js"></script> | 3 <script src="../../http/tests/inspector/inspector-test.js"></script> |
| 4 <script src="../../http/tests/inspector/timeline-test.js"></script> | 4 <script src="../../http/tests/inspector/timeline-test.js"></script> |
| 5 <script src="../tracing-test.js"></script> | 5 <script src="../tracing-test.js"></script> |
| 6 <script> | 6 <script> |
| 7 | 7 |
| 8 // Save references to the worker objects to make sure they are not GC'ed. | 8 // Save references to the worker objects to make sure they are not GC'ed. |
| 9 var worker1; | 9 var worker1; |
| 10 var worker2; | 10 var worker2; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 | 21 |
| 22 worker1.onmessage = function(event) | 22 worker1.onmessage = function(event) |
| 23 { | 23 { |
| 24 worker1.onmessage = null; | 24 worker1.onmessage = null; |
| 25 runTest(); | 25 runTest(); |
| 26 } | 26 } |
| 27 } | 27 } |
| 28 | 28 |
| 29 function startSecondWorker(onActionComplete) | 29 function startSecondWorker(onActionComplete) |
| 30 { | 30 { |
| 31 // FIXME: add a payload to the worker to make it produce a JSFrame. |
| 31 worker2 = new Worker("resources/worker.js"); | 32 worker2 = new Worker("resources/worker.js"); |
| 32 worker2.postMessage(""); | 33 worker2.postMessage(""); |
| 33 worker2.onmessage = function(event) | 34 worker2.onmessage = function(event) |
| 34 { | 35 { |
| 35 onActionComplete(); | 36 onActionComplete(); |
| 36 worker2.onmessage = null; | 37 worker2.onmessage = null; |
| 37 } | 38 } |
| 38 } | 39 } |
| 39 | 40 |
| 40 function test() | 41 function test() |
| 41 { | 42 { |
| 42 InspectorTest.invokeWithTracing("startSecondWorker", processTracingEvents); | 43 InspectorTest.invokeWithTracing("startSecondWorker", processTracingEvents, |
| 44 "disabled-by-default-devtools.timeline.stack", true); |
| 43 | 45 |
| 44 var workerMetadataEventCount = 0; | 46 var seenFunctions = new Set(); |
| 45 function processTracingEvents() | 47 function processTracingEvents() |
| 46 { | 48 { |
| 47 InspectorTest.tracingModel().sortedProcesses().forEach(function(process)
{ | 49 InspectorTest.addResult("Main thread"); |
| 48 process.sortedThreads().forEach(function(thread) { | 50 InspectorTest.tracingTimelineModel()._mainThreadEvents.forEach(processEv
ent); |
| 49 thread.events().forEach(processEvent); | 51 var threads = InspectorTest.tracingTimelineModel()._virtualThreads; |
| 50 }); | 52 for (var i = 0; i < threads.length; ++i) { |
| 51 }); | 53 InspectorTest.addResult(threads[i].name); |
| 52 InspectorTest.assertEquals(2, workerMetadataEventCount); | 54 threads[i].events.forEach(processEvent); |
| 55 } |
| 56 InspectorTest.assertTrue(seenFunctions.has("startSecondWorker")); |
| 57 InspectorTest.assertTrue(seenFunctions.has("worker2.onmessage")); |
| 53 InspectorTest.completeTest(); | 58 InspectorTest.completeTest(); |
| 54 } | 59 } |
| 55 | 60 |
| 56 function processEvent(event) | 61 function processEvent(event) |
| 57 { | 62 { |
| 58 if (event.category !== WebInspector.TracingModel.DevToolsMetadataEventCa
tegory || event.name !== WebInspector.TracingModel.DevToolsMetadataEvent.Tracing
SessionIdForWorker) | 63 if (event.name !== WebInspector.TimelineModel.RecordType.JSFrame) |
| 59 return; | 64 return; |
| 60 | 65 seenFunctions.add(event.args.data.functionName); |
| 61 ++workerMetadataEventCount; | |
| 62 InspectorTest.assertEquals(InspectorTest.tracingModel().sessionId(), eve
nt.args["data"]["sessionId"]); | |
| 63 InspectorTest.addResult("Got DevTools worker metadata event(" + workerMe
tadataEventCount + "): " + event.name); | |
| 64 } | 66 } |
| 65 | |
| 66 } | 67 } |
| 67 | 68 |
| 68 </script> | 69 </script> |
| 69 </head> | 70 </head> |
| 70 | 71 |
| 71 <body onload="startWorkerAndRunTest()"> | 72 <body onload="startWorkerAndRunTest()"> |
| 72 <p> | 73 <p> |
| 73 Tests that worker events are recorded with proper devtools metadata events. | 74 Tests js cpu profile in timeline. |
| 74 </p> | 75 </p> |
| 75 </body> | 76 </body> |
| 76 </html> | 77 </html> |
| OLD | NEW |