OLD | NEW |
| (Empty) |
1 <html> | |
2 <head> | |
3 <script type="text/javascript" src="../../http/tests/inspector-protocol/resource
s/inspector-protocol-test.js"></script> | |
4 <script> | |
5 | |
6 var worker; | |
7 function startWorkerAndRunTest() | |
8 { | |
9 worker = new Worker("resources/dedicated-worker-loop.js"); | |
10 worker.onmessage = function(event) | |
11 { | |
12 if (event.data === "WorkerMessageReceived") | |
13 evaluateInFrontend("InspectorTest.workerMessageReceived()"); | |
14 }; | |
15 log("Started worker"); | |
16 runTest(); | |
17 } | |
18 | |
19 function test() | |
20 { | |
21 var workerId; | |
22 var workerRequestId = 1; | |
23 function sendCommandToWorker(method, params) | |
24 { | |
25 InspectorTest.sendCommand("Target.sendMessageToTarget", | |
26 { | |
27 "targetId": workerId, | |
28 "message": JSON.stringify({ "method": method, | |
29 "params": params, | |
30 "id": workerRequestId }) | |
31 }); | |
32 return workerRequestId++; | |
33 } | |
34 | |
35 function didEnableWorkerDebugging(messageObject) | |
36 { | |
37 if ("error" in messageObject) { | |
38 InspectorTest.log("FAIL: Couldn't enable worker debugger: " + messag
eObject.error.message); | |
39 InspectorTest.completeTest(); | |
40 } | |
41 } | |
42 InspectorTest.sendCommand("Target.setAutoAttach", {autoAttach: true, waitFor
DebuggerOnStart: false}, didEnableWorkerDebugging); | |
43 | |
44 var evaluateRequestId = -1; | |
45 var debuggerEnableRequestId = -1; | |
46 InspectorTest.eventHandler["Target.attachedToTarget"] = function(messageObje
ct) | |
47 { | |
48 workerId = messageObject["params"]["targetInfo"]["targetId"]; | |
49 InspectorTest.log("Worker created"); | |
50 InspectorTest.log("didConnectToWorker"); | |
51 // Enable debugger so that V8 can interrupt and handle inspector command
s while there is a script running in a tight loop. | |
52 debuggerEnableRequestId = sendCommandToWorker("Debugger.enable", {}); | |
53 } | |
54 | |
55 InspectorTest.workerMessageReceived = function() | |
56 { | |
57 evaluateRequestId = sendCommandToWorker("Runtime.evaluate", { "expressio
n": "message_id > 1"}); | |
58 } | |
59 | |
60 InspectorTest.eventHandler["Target.receivedMessageFromTarget"] = function(me
ssageObject) | |
61 { | |
62 var message = JSON.parse(messageObject["params"]["message"]); | |
63 if (message["id"] === debuggerEnableRequestId) { | |
64 InspectorTest.log("Did enable debugger"); | |
65 // Start tight loop in the worker. | |
66 InspectorTest.sendCommand("Runtime.evaluate", { "expression": "worke
r.postMessage(1)" }, didPostMessageToWorker); | |
67 function didPostMessageToWorker() | |
68 { | |
69 InspectorTest.log("Did post message to worker"); | |
70 } | |
71 } | |
72 if (message["id"] === evaluateRequestId) { | |
73 var value = message["result"]["result"]["value"]; | |
74 if (value === true) | |
75 InspectorTest.log("SUCCESS: evaluated, result: " + value); | |
76 else | |
77 InspectorTest.log("FAIL: evaluated, result: " + value); | |
78 InspectorTest.completeTest(); | |
79 } | |
80 } | |
81 } | |
82 </script> | |
83 </head> | |
84 <body onLoad="startWorkerAndRunTest();"> | |
85 </body> | |
86 </html> | |
OLD | NEW |