Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: third_party/WebKit/LayoutTests/inspector-protocol/worker/worker-console.html

Issue 2003433004: Remove dependency from ConsoleMessage to workers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@1999463002
Patch Set: messageN Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <html>
2 <head>
3 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto r-protocol-test.js"></script>
4 <script>
5
6 var worker;
7 var onMessageCallbacks = {};
8
9 function startWorker(callback)
10 {
11 worker = new Worker("../resources/worker-console-worker.js");
12 worker.onmessage = function(event) {
13 worker.onmessage = onMessageFromWorker;
14 if (callback)
15 callback();
16 };
17 }
18
19 function logInWorkerFromPage(message, callback)
20 {
21 onMessageCallbacks[message] = callback;
22 worker.postMessage(message);
23 }
24
25 function onMessageFromWorker(event)
26 {
27 var callback = onMessageCallbacks[event.data];
28 delete onMessageCallbacks[event.data];
29 if (callback)
30 callback();
31 }
32
33 function stopWorker()
34 {
35 worker.terminate();
36 worker = null;
37 }
38
39 function test()
40 {
41 var workerEventHandler = [];
42 InspectorTest.eventHandler["Console.messageAdded"] = onConsoleMessage.bind(n ull, false);
43 InspectorTest.eventHandler["Worker.workerCreated"] = onWorkerCreated;
44 InspectorTest.eventHandler["Worker.dispatchMessageFromWorker"] = onWorkerMes sage;
45 workerEventHandler["Console.messageAdded"] = onConsoleMessage.bind(null, tru e);
46
47 var workerId;
48
49 function onWorkerCreated(payload)
50 {
51 InspectorTest.log("Worker.created");
52 workerId = payload.params.workerId;
53 }
54
55 var requestId = 0;
56 var dispatchTable = [];
57
58 function sendCommandToWorker(method, params, callback)
59 {
60 dispatchTable[++requestId] = callback;
61 var messageObject = {
62 "method": method,
63 "params": params,
64 "id": requestId
65 };
66 InspectorTest.sendCommandOrDie("Worker.sendMessageToWorker", {
67 workerId: workerId,
68 message: JSON.stringify(messageObject)
69 });
70 }
71
72 function onWorkerMessage(payload)
73 {
74 if (payload.params.workerId !== workerId)
75 InspectorTest.log("workerId mismatch");
76 var messageObject = JSON.parse(payload.params.message);
77 var messageId = messageObject["id"];
78 if (typeof messageId === "number") {
79 var handler = dispatchTable[messageId];
80 dispatchTable[messageId] = null;
81 if (handler && typeof handler === "function")
82 handler(messageObject);
83 } else {
84 var eventName = messageObject["method"];
85 var eventHandler = workerEventHandler[eventName];
86 if (eventHandler)
87 eventHandler(messageObject);
88 }
89 }
90
91 function logInWorker(message, next)
92 {
93 InspectorTest.log("Logging in worker: " + message);
94 if (next)
95 InspectorTest.evaluateInPageAsync("logInWorkerFromPage(\"" + message + "\", %callback)", next);
96 else
97 InspectorTest.evaluateInPage("logInWorkerFromPage(\"" + message + "\ ")");
98 }
99
100 var gotMessages = [];
101 var waitingForMessage;
102 var waitingForMessageCallback;
103
104 function onConsoleMessage(fromWorker, payload)
105 {
106 var message = payload.params.message.text;
107 InspectorTest.log("Got console message from " + (fromWorker ? "worker" : "page") + ": " + message);
108 gotMessages.push(message);
109 if (message === waitingForMessage)
110 waitingForMessageCallback();
111 }
112
113 function waitForMessage(message, next)
114 {
115 if (gotMessages.indexOf(message) !== -1) {
116 next();
117 return;
118 }
119 waitingForMessage = message;
120 waitingForMessageCallback = next;
121 }
122
123 var steps = [
124 function listenToConsole(next)
125 {
126 InspectorTest.sendCommandOrDie("Console.enable", {}, next);
127 },
128
129 function start0(next)
130 {
131 InspectorTest.log("Starting worker");
132 InspectorTest.evaluateInPageAsync("startWorker(%callback)", next);
133 },
134
135 function log0(next)
136 {
137 logInWorker("message0", next);
138 },
139
140 function stop0(next)
141 {
142 InspectorTest.log("Stopping worker");
143 waitForMessage("message0", next);
144 InspectorTest.evaluateInPage("stopWorker()");
145 },
146
147 function start1(next)
148 {
149 InspectorTest.log("Starting worker");
150 InspectorTest.evaluateInPageAsync("startWorker(%callback)", next);
151 },
152
153 function log1(next)
154 {
155 logInWorker("message1", next);
156 },
157
158 function enable1(next)
159 {
160 InspectorTest.log("Sending Worker.enable");
161 InspectorTest.sendCommandOrDie("Worker.enable", {}, next);
162 },
163
164 function consoleEnable1(next)
165 {
166 InspectorTest.log("Sending Console.enable to worker");
167 waitForMessage("message1", next);
168 sendCommandToWorker("Console.enable", {});
169 },
170
171 function log2(next)
172 {
173 waitForMessage("message2", next);
174 logInWorker("message2");
175 },
176
177 function disable1(next)
178 {
179 InspectorTest.log("Sending Worker.disable");
180 InspectorTest.sendCommandOrDie("Worker.disable", {}, next);
181 },
182
183 function log3(next)
184 {
185 logInWorker("message3", next);
186 },
187
188 function stop1(next)
189 {
190 InspectorTest.log("Stopping worker");
191 InspectorTest.evaluateInPage("stopWorker()", next);
192 },
193
194
195 function enable2(next)
196 {
197 InspectorTest.log("Sending Worker.enable");
198 InspectorTest.sendCommandOrDie("Worker.enable", {}, next);
199 },
200
201 function start2(next)
202 {
203 InspectorTest.log("Starting worker");
204 InspectorTest.evaluateInPageAsync("startWorker(%callback)", next);
205 },
206
207 function log4(next)
208 {
209 logInWorker("message4", next);
210 },
211
212 function consoleEnable2(next)
213 {
214 InspectorTest.log("Sending Console.enable to worker");
215 waitForMessage("message4", next);
216 sendCommandToWorker("Console.enable", {});
217 },
218
219 function log5(next)
220 {
221 waitForMessage("message5", next);
222 logInWorker("message5");
223 },
224
225 function stop2(next)
226 {
227 InspectorTest.log("Stopping worker");
228 InspectorTest.evaluateInPage("stopWorker()", next);
229 },
230
231 function start3(next)
232 {
233 InspectorTest.log("Starting worker");
234 InspectorTest.evaluateInPageAsync("startWorker(%callback)", next);
235 },
236
237 function log6(next)
238 {
239 logInWorker("message6", next);
240 },
241
242 function stop3(next)
243 {
244 InspectorTest.log("Stopping worker");
245 waitForMessage("message6", next);
246 InspectorTest.evaluateInPage("stopWorker()");
247 },
248
249 function disable2(next)
250 {
251 InspectorTest.log("Sending Worker.disable");
252 InspectorTest.sendCommandOrDie("Worker.disable", {}, next);
253 }
254 ];
255
256 function runNextStep()
257 {
258 if (!steps.length) {
259 InspectorTest.completeTest();
260 return;
261 }
262 var nextStep = steps.shift();
263 InspectorTest.safeWrap(nextStep)(runNextStep);
264 }
265
266 runNextStep();
267 }
268 </script>
269 </head>
270 <body onload="runTest()">
271 </body>
272 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698