Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / tracing / worker-events.html
1 <html>
2 <head>
3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/timeline-test.js"></script>
5 <script src="../tracing-test.js"></script>
6 <script>
7
8 // Save references to the worker objects to make sure they are not GC'ed.
9 var worker1;
10 var worker2;
11
12 function startWorkerAndRunTest()
13 {
14     worker1 = new Worker("resources/worker.js");
15     worker1.postMessage("");
16
17     if (window.testRunner) {
18         testRunner.dumpAsText();
19         testRunner.waitUntilDone();
20     }
21
22     worker1.onmessage = function(event)
23     {
24         worker1.onmessage = null;
25         runTest();
26     }
27 }
28
29 function startSecondWorker(onActionComplete)
30 {
31     worker2 = new Worker("resources/worker.js");
32     worker2.postMessage("");
33     worker2.onmessage = function(event)
34     {
35         onActionComplete();
36         worker2.onmessage = null;
37     }
38 }
39
40 function test()
41 {
42     InspectorTest.invokeWithTracing("startSecondWorker", processTracingEvents);
43
44     var workerMetadataEventCount = 0;
45     function processTracingEvents()
46     {
47         InspectorTest.tracingModel().sortedProcesses().forEach(function(process) {
48             process.sortedThreads().forEach(function(thread) {
49                 thread.events().forEach(processEvent);
50             });
51         });
52         InspectorTest.assertEquals(2, workerMetadataEventCount);
53         InspectorTest.completeTest();
54     }
55
56     function processEvent(event)
57     {
58         if (event.category !== WebInspector.TracingModel.DevToolsMetadataEventCategory || event.name !== WebInspector.TracingModel.DevToolsMetadataEvent.TracingSessionIdForWorker)
59             return;
60
61         ++workerMetadataEventCount;
62         InspectorTest.assertEquals(InspectorTest.tracingModel().sessionId(), event.args["data"]["sessionId"]);
63         InspectorTest.addResult("Got DevTools worker metadata event(" + workerMetadataEventCount +  "): " + event.name);
64     }
65
66 }
67
68 </script>
69 </head>
70
71 <body onload="startWorkerAndRunTest()">
72 <p>
73 Tests that worker events are recorded with proper devtools metadata events.
74 </p>
75 </body>
76 </html>