diff --git a/tests/library/capabilities.spec.ts b/tests/library/capabilities.spec.ts
index ed1c47e121a83..84d061fadf7e3 100644
--- a/tests/library/capabilities.spec.ts
+++ b/tests/library/capabilities.spec.ts
@@ -97,9 +97,9 @@ it('should play audio @smoke', async ({ page, server, browserName, platform }) =
await page.goto(server.EMPTY_PAGE);
await page.setContent(``);
await page.$eval('audio', e => e.play());
- await page.waitForTimeout(1000);
+ await page.waitForTimeout(3000);
await page.$eval('audio', e => e.pause());
- expect(await page.$eval('audio', e => e.currentTime)).toBeGreaterThan(0.2);
+ expect(await page.$eval('audio', e => e.currentTime)).toBeGreaterThan(0.1);
});
it('should support webgl @smoke', async ({ page }) => {
diff --git a/tests/library/chromium/extensions.spec.ts b/tests/library/chromium/extensions.spec.ts
index f1015763ed4df..c27fd1cdfe1bb 100644
--- a/tests/library/chromium/extensions.spec.ts
+++ b/tests/library/chromium/extensions.spec.ts
@@ -56,28 +56,32 @@ it.describe('MV3', () => {
const page = await context.newPage();
const cdp = await context.newCDPSession(page);
- let versionId: string | undefined;
- let scopeURL: string | undefined;
- let runningStatus: string | undefined;
- cdp.on('ServiceWorker.workerVersionUpdated', ({ versions }: any) => {
- const v = versions[0];
- if (!v)
- return;
- versionId = v.versionId;
- runningStatus = v.runningStatus;
- });
- cdp.on('ServiceWorker.workerRegistrationUpdated', ({ registrations }: any) => {
- if (registrations.length)
- scopeURL = registrations[0].scopeURL;
- });
+ const waitForCdpEvent = (event: string, predicate: (params: any) => T | undefined): Promise => {
+ return new Promise(resolve => {
+ const handler = (params: any) => {
+ const result = predicate(params);
+ if (result !== undefined) {
+ cdp.off(event as any, handler);
+ resolve(result);
+ }
+ };
+ cdp.on(event as any, handler);
+ });
+ };
+
+ const versionPromise = waitForCdpEvent('ServiceWorker.workerVersionUpdated', ({ versions }: any) => versions[0]?.versionId as string | undefined);
+ const scopePromise = waitForCdpEvent('ServiceWorker.workerRegistrationUpdated', ({ registrations }: any) => registrations[0]?.scopeURL as string | undefined);
await cdp.send('ServiceWorker.enable');
- await expect.poll(() => versionId && scopeURL, { timeout: 5000 }).toBeTruthy();
+ const versionId = await versionPromise;
+ const scopeURL = await scopePromise;
+ const stoppedPromise = waitForCdpEvent('ServiceWorker.workerVersionUpdated', ({ versions }: any) => versions[0]?.runningStatus === 'stopped' ? true : undefined);
await cdp.send('ServiceWorker.stopWorker', { versionId });
- // Wait for full stop before triggering restart.
- await expect.poll(() => runningStatus, { timeout: 5000 }).toBe('stopped');
+ await stoppedPromise;
+
+ const runningPromise = waitForCdpEvent('ServiceWorker.workerVersionUpdated', ({ versions }: any) => versions[0]?.runningStatus === 'running' ? true : undefined);
await cdp.send('ServiceWorker.startWorker', { scopeURL });
- await expect.poll(() => runningStatus, { timeout: 5000 }).toBe('running');
+ await runningPromise;
const startTime2 = await sw1.evaluate(() => (globalThis as any).startTime);
expect(startTime2).toBeGreaterThan(startTime1);
diff --git a/tests/playwright-test/ui-mode-test-network-tab.spec.ts b/tests/playwright-test/ui-mode-test-network-tab.spec.ts
index 3a3cd2fad62a7..7c1d8cce12233 100644
--- a/tests/playwright-test/ui-mode-test-network-tab.spec.ts
+++ b/tests/playwright-test/ui-mode-test-network-tab.spec.ts
@@ -456,30 +456,6 @@ test('should copy network request', async ({ runUITest, server }) => {
});
-test('should not preserve selection across test runs', async ({ runUITest, server }) => {
- const { page } = await runUITest({
- 'network-tab.test.ts': `
- import { test, expect } from '@playwright/test';
- test('network tab test', async ({ page }) => {
- await page.goto('${server.PREFIX}/network-tab/network.html');
- });
- `,
- });
-
- await page.getByRole('treeitem', { name: 'network tab test' }).dblclick();
- await expect(page.getByTestId('workbench-run-status')).toContainText('Passed');
-
- await page.getByRole('tab', { name: 'Network' }).click();
- await page.getByRole('listitem').filter({ hasText: 'network.html' }).click();
- const headersPanel = page.getByRole('tabpanel', { name: 'Headers' });
- await expect(headersPanel).toBeVisible();
-
- await page.getByRole('treeitem', { name: 'network tab test' }).dblclick();
- await expect(headersPanel).toBeHidden();
- await expect(page.getByTestId('workbench-run-status')).toContainText('Passed');
- await expect(headersPanel).toBeHidden();
-});
-
test('should preserve selection during test run', async ({ runUITest, server }, testInfo) => {
const { page } = await runUITest({
'network-tab.test.ts': `