Commit 471a7b30 authored by Peter Marshall's avatar Peter Marshall Committed by Commit Bot

DevTools: Fix a potentially flaky test

Awaiting onceAttachedToTarget() directly after the evaluate() call
which creates the new worker is not safe. The event could be fired
after the `await evaluate()` is finished but before the
AttachedToTarget handler is registered.

Listening for the attached event before triggering the creation
of the worker is the only safe way to do this.

Change-Id: I2e9374d42da5a98b18f3c643b9259818620bb2b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1940245
Auto-Submit: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: default avatarMathias Bynens <mathias@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#719920}
parent b41bfc20
......@@ -12,14 +12,17 @@
// Worker Accept Language
await dp.Target.setAutoAttach({autoAttach: true, waitForDebuggerOnStart: false, flatten: true});
const attachedPromise = dp.Target.onceAttachedToTarget();
await session.evaluate(`var w = new Worker('${testRunner.url('resources/worker.js')}')`);
let event = await dp.Target.onceAttachedToTarget();
const event = await attachedPromise;
const workerSession = session.createChild(event.params.sessionId);
await workerSession.protocol.Emulation.setUserAgentOverride({userAgent: '', acceptLanguage: 'ko, en, zh-CN, zh-HK, en-US, en-GB'});
const detachedPromise = dp.Target.onceDetachedFromTarget()
testRunner.log('workerNavigator.language == ' + await session.evaluateAsync(`
w.postMessage('ping!');
new Promise(resolve => w.onmessage = e => resolve(e.data.language))`));
await dp.Target.onceDetachedFromTarget();
await detachedPromise;
await printHeader('Accept-Language');
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment