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

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

Issue 2951913002: [DevTools] Support multiple sessions in Target domain (Closed)
Patch Set: simplify Created 3 years, 5 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
1 (async function(testRunner) { 1 (async function(testRunner) {
2 let {page, session, dp} = await testRunner.startBlank(''); 2 let {page, session, dp} = await testRunner.startBlank('');
3 3
4 await session.evaluate(` 4 await session.evaluate(`
5 var worker = null; 5 var worker = null;
6 var onMessageCallbacks = {}; 6 var onMessageCallbacks = {};
7 7
8 function startWorker() { 8 function startWorker() {
9 var callback; 9 var callback;
10 var promise = new Promise((fulfill) => callback = fulfill); 10 var promise = new Promise((fulfill) => callback = fulfill);
(...skipping 21 matching lines...) Expand all
32 worker.terminate(); 32 worker.terminate();
33 worker = null; 33 worker = null;
34 } 34 }
35 `); 35 `);
36 36
37 var workerEventHandler = {}; 37 var workerEventHandler = {};
38 dp.Target.onAttachedToTarget(onWorkerCreated); 38 dp.Target.onAttachedToTarget(onWorkerCreated);
39 dp.Target.onReceivedMessageFromTarget(onWorkerMessage); 39 dp.Target.onReceivedMessageFromTarget(onWorkerMessage);
40 workerEventHandler['Runtime.consoleAPICalled'] = onConsoleAPICalledFromWorker; 40 workerEventHandler['Runtime.consoleAPICalled'] = onConsoleAPICalledFromWorker;
41 41
42 var workerId; 42 var workerSessionId;
43 43
44 function onWorkerCreated(payload) { 44 function onWorkerCreated(payload) {
45 testRunner.log('Worker.created'); 45 testRunner.log('Worker.created');
46 workerId = payload.params.targetInfo.targetId; 46 workerSessionId = payload.params.sessionId;
47 } 47 }
48 48
49 var requestId = 0; 49 var requestId = 0;
50 var dispatchTable = []; 50 var dispatchTable = [];
51 51
52 function sendCommandToWorker(method, params, callback) { 52 function sendCommandToWorker(method, params, callback) {
53 dispatchTable[++requestId] = callback; 53 dispatchTable[++requestId] = callback;
54 var messageObject = { 54 var messageObject = {
55 'method': method, 55 'method': method,
56 'params': params, 56 'params': params,
57 'id': requestId 57 'id': requestId
58 }; 58 };
59 dp.Target.sendMessageToTarget({ 59 dp.Target.sendMessageToTarget({
60 targetId: workerId, 60 sessionId: workerSessionId,
61 message: JSON.stringify(messageObject) 61 message: JSON.stringify(messageObject)
62 }); 62 });
63 } 63 }
64 64
65 function onWorkerMessage(payload) { 65 function onWorkerMessage(payload) {
66 if (payload.params.targetId !== workerId) 66 if (payload.params.sessionId !== workerSessionId)
67 testRunner.log('targetId mismatch'); 67 testRunner.log('targetId mismatch');
68 var messageObject = JSON.parse(payload.params.message); 68 var messageObject = JSON.parse(payload.params.message);
69 var messageId = messageObject['id']; 69 var messageId = messageObject['id'];
70 if (typeof messageId === 'number') { 70 if (typeof messageId === 'number') {
71 var handler = dispatchTable[messageId]; 71 var handler = dispatchTable[messageId];
72 dispatchTable[messageId] = null; 72 dispatchTable[messageId] = null;
73 if (handler && typeof handler === 'function') 73 if (handler && typeof handler === 'function')
74 handler(messageObject); 74 handler(messageObject);
75 } else { 75 } else {
76 var eventName = messageObject['method']; 76 var eventName = messageObject['method'];
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 if (!steps.length) { 235 if (!steps.length) {
236 testRunner.completeTest(); 236 testRunner.completeTest();
237 return; 237 return;
238 } 238 }
239 var nextStep = steps.shift(); 239 var nextStep = steps.shift();
240 nextStep(runNextStep); 240 nextStep(runNextStep);
241 } 241 }
242 242
243 runNextStep(); 243 runNextStep();
244 }) 244 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698