Change:
They used to finish in 3m24s before - […]-5f82-0dbc-&t=-371d-5daa-d7a2-
I can confirm that tests started timing out after this commit - The first commit that is started happening is Checking what commits in between would have caused it. FYI
Assigning to as one of his commits has caused this timeout.
Mac seems to be passing pretty reliably now but now windows fails consistently on two tests Been adding a bunch of logging to investigate this. Here's the relevant new error: The service worker should be intercepting this request so it should never be going to the network at all here. Taking a look to see if I can figure out what is going on
Actually it's not windows specific: its Firefox specific. The windows browser tests just happen to be the only ones using Firefox Can reproduce on Mac too

Discussion:
const testDocument = workspaceFile('bower.json'); <del> // Disable webview tests on web (vscode.env.uiKind === vscode.UIKind.Web ? suite.skip : suite)('vscode API - webview', () => { </del> <ins> suite('vscode API - webview', () => { </ins> const disposables: vscode.Disposable[] = []; function _register<T extends vscode.Disposable>(disposable: T) {

document.body.appendChild(img); }); <del> vscode.postMessage({ type: 'ready' }); </del> <ins> vscode.postMessage({ type: 'ready', userAgent: window.navigator.userAgent }); </ins> </script>`); const ready = getMessage(webview); <del> await ready; </del> <ins> if ((await ready).userAgent.indexOf('Firefox') >= 0) { // Skip on firefox web for now. // Firefox service workers never seem to get any 'fetch' requests here. Other browsers work fine return; } </ins> { const imagePath = webview.webview.asWebviewUri(workspaceFile('image.png')); <del> console.log(imagePath); </del> const response = await sendRecieveMessage(webview, { src: imagePath.toString() }); assert.strictEqual(response.value, true); }

<img src="${imagePath}"> <script> const vscode = acquireVsCodeApi(); <ins> vscode.postMessage({ type: 'ready', userAgent: window.navigator.userAgent }); </ins> const img = document.getElementsByTagName('img')[0]; img.addEventListener('load', () => { vscode.postMessage({ value: true }); }); img.addEventListener('error', () => { vscode.postMessage({ value: false }); }); </script>`); <del> const firstResponse = getMessage(webview); </del> <ins> const ready = getMessage(webview); if ((await ready).userAgent.indexOf('Firefox') >= 0) { // Skip on firefox web for now. // Firefox service workers never seem to get any 'fetch' requests here. Other browsers work fine return; } const firstResponse = await sendRecieveMessage(webview, { src: imagePath.toString() }); </ins> <del> assert.strictEqual((await firstResponse).value, true); </del> <ins> assert.strictEqual(firstResponse.value, true); </ins> }); test('webviews should have real view column after they are created, #56097', async () => {

} /** @type {Promise<void>} */ <del> const workerReady = new Promise(async (resolve, reject) => { </del> <ins> const workerReady = new Promise((resolve, reject) => { </ins> if (!areServiceWorkersEnabled()) { return reject(new Error('Service Workers are not enabled. Webviews will not work. Try disabling private/incognito mode.')); }

let updateId = 0; hostMessaging.onMessage('content', async (_event, /** @type {ContentUpdateData} */ data) => { const currentUpdateId = ++updateId; try { await workerReady; } catch (e) {

console.error(`Playwright ERROR: HTTP status ${response.status()} for ${response.url()}`); } }); <ins> page.on('console', async msg => { try { consoleLogFn(msg)(msg.text(), await Promise.all(msg.args().map(async arg => await arg.jsonValue()))); } catch (err) { console.error('Error logging console', err); } }); page.on('requestfailed', e => { console.error('Request Failed', e.url(), e.failure()?.errorText); }); </ins> const host = endpoint.host; const protocol = 'vscode-remote';

}); } <ins> function consoleLogFn(msg) { const type = msg.type(); const candidate = console[type]; if (candidate) { return candidate; } if (type === 'warning') { return console.warn; } return console.log; } </ins> function pkill(pid: number): Promise<void> { return new Promise((c, e) => { kill(pid, error => error ? e(error) : c());