diff --git a/packages/playwright-core/browsers.json b/packages/playwright-core/browsers.json
index f45291c778..fffa76e788 100644
--- a/packages/playwright-core/browsers.json
+++ b/packages/playwright-core/browsers.json
@@ -21,13 +21,13 @@
},
{
"name": "firefox",
- "revision": "1415",
+ "revision": "1417",
"installByDefault": true,
"browserVersion": "114.0.2"
},
{
"name": "firefox-beta",
- "revision": "1416",
+ "revision": "1418",
"installByDefault": false,
"browserVersion": "115.0b8"
},
diff --git a/tests/page/page-click.spec.ts b/tests/page/page-click.spec.ts
index e3883563cc..c05cb2d00c 100644
--- a/tests/page/page-click.spec.ts
+++ b/tests/page/page-click.spec.ts
@@ -976,6 +976,36 @@ it('should click in a transformed iframe', async ({ page }) => {
expect(await page.evaluate('window._clicked')).toBe(true);
});
+it('should click a button that is overlayed by a permission popup', async ({ page, server }) => {
+ it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/23280' });
+ await page.setViewportSize({ width: 500, height: 500 });
+ await page.goto(server.EMPTY_PAGE);
+ await page.setContent(`
+
+
+ `);
+ // Issue a geolocation request. This should show a browser popup.
+ // NOTE: this is a bit racy since we can't wait for the geolocation
+ // popup to be shown.
+ await page.evaluate(() => {
+ navigator.geolocation.getCurrentPosition(position => { });
+ });
+ // If popup blocks the click, then some of the `page.click` calls below will hang.
+ for (let i = 0; i < 100; ++i)
+ await page.click(`text=${i}`);
+});
+
it('should click in a transformed iframe with force', async ({ page }) => {
await page.setContent(`