diff --git a/package-lock.json b/package-lock.json index 1775edeeed384..bac19ffad3721 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9656,7 +9656,7 @@ }, "packages/extension": { "name": "@playwright/extension", - "version": "0.3.0", + "version": "0.4.0", "license": "Apache-2.0", "engines": { "node": ">=20" diff --git a/packages/extension/manifest.json b/packages/extension/manifest.json index 59c9234aae1ad..eef4283bb513e 100644 --- a/packages/extension/manifest.json +++ b/packages/extension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Playwright Extension", - "version": "0.3.0", + "version": "0.4.0", "description": "Connect your browser to AI agents through Playwright MCP server and CLI. Enables AI-driven web testing, debugging, and automation.", "permissions": [ "debugger", diff --git a/packages/extension/package.json b/packages/extension/package.json index 562cff9277ae2..cc19ef0c142f5 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -1,6 +1,6 @@ { "name": "@playwright/extension", - "version": "0.3.0", + "version": "0.4.0", "description": "Playwright Browser Extension", "private": true, "repository": { diff --git a/tests/extension/scheme-detach.spec.ts b/tests/extension/scheme-detach.spec.ts index f541afad84a62..5099a5d4587d4 100644 --- a/tests/extension/scheme-detach.spec.ts +++ b/tests/extension/scheme-detach.spec.ts @@ -61,20 +61,7 @@ test('recovers and can screenshot after the debugger is detached', { const browserContext = await browserWithExtension.launch(); const { client } = await connectWithToken(browserContext, startClient, browserWithExtension.userDataDir); - server.setContent('/signin', ` - SignIn -
QR CODE HERE
- - `, 'text/html'); + server.setContent('/signin', `SignIn
QR CODE HERE
`, 'text/html'); const getDetach = await watchDetach(browserContext); expect(await client.callTool({ @@ -82,6 +69,13 @@ test('recovers and can screenshot after the debugger is detached', { arguments: { url: server.PREFIX + '/signin' }, })).toHaveResponse({ snapshot: expect.stringContaining('QR CODE HERE') }); + const page = browserContext.pages().find(p => p.url().endsWith('/signin'))!; + await page.evaluate(() => { + const iframe = document.createElement('iframe'); + iframe.src = 'customscheme://cc/'; + document.body.appendChild(iframe); + }).catch(() => {}); + await expect.poll(async () => (await getDetach()).length, { timeout: 5000 }).toBeGreaterThan(0); expect((await getDetach())[0].reason).toBe('target_closed');