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

Side by Side Diff: third_party/WebKit/LayoutTests/inspector-protocol/worker/exception-from-worker-contains-stack.js

Issue 2942573003: [DevTools] New harness for inspector-protocol layout tests (Closed)
Patch Set: Protocol -> dp Created 3 years, 6 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 (async function(testRunner) {
2 let {page, session, dp} = await testRunner.startBlank('Tests that console mess age from worker contains stack trace.');
3
4 var workerRequestId = 1;
5 function sendCommandToWorker(method, params, workerId) {
6 dp.Target.sendMessageToTarget({
7 targetId: workerId,
8 message: JSON.stringify({ method: method, params: params, id: workerReques tId++ })
9 });
10 }
11
12 var waitForWorkers = 2;
13 dp.Target.onAttachedToTarget(messageObject => {
14 var workerId = messageObject['params']['targetInfo']['targetId'];
15 testRunner.log('Worker created');
16 sendCommandToWorker('Runtime.enable', {}, workerId);
17 if (!--waitForWorkers)
18 session.evaluate('worker1.postMessage(239);worker2.postMessage(42);');
19 });
20
21 var workerTerminated = false;
22 var messageReceived = false;
23 dp.Target.onReceivedMessageFromTarget(messageObject => {
24 var message = JSON.parse(messageObject['params']['message']);
25 if (message['method'] === 'Runtime.exceptionThrown') {
26 var callFrames = message.params.exceptionDetails.stackTrace ? message.para ms.exceptionDetails.stackTrace.callFrames : [];
27 testRunner.log(callFrames.length > 0 ? 'Message with stack trace received. ' : '[FAIL] Message contains empty stack trace');
28 messageReceived = true;
29 if (messageReceived && workerTerminated)
30 testRunner.completeTest();
31 }
32 });
33
34 function onDetached(messageObject) {
35 dp.Target.offDetachedFromTarget(onDetached);
36 workerTerminated = true;
37 if (messageReceived && workerTerminated)
38 testRunner.completeTest();
39 }
40 dp.Target.onDetachedFromTarget(onDetached);
41
42 await dp.Target.setAutoAttach({autoAttach: true, waitForDebuggerOnStart: false });
43 session.evaluate(`
44 window.worker1 = new Worker('${testRunner.url('../resources/worker-with-thro w.js')}');
45 window.worker1.onerror = function(e) {
46 e.preventDefault();
47 worker1.terminate();
48 }
49 window.worker2 = new Worker('${testRunner.url('../resources/worker-with-thro w.js')}');
50 `);
51 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698