From 8021312c99e242138d7eb0aec1036cd320a93996 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Tue, 16 Jul 2024 09:44:38 -0700 Subject: [PATCH] chore: enable notification permission tests in WebKit (#31699) The Notifications API has been supported in WebKit since 2022, enable related permission and tests. --- packages/playwright-core/src/server/webkit/wkPage.ts | 1 + tests/library/permissions.spec.ts | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/playwright-core/src/server/webkit/wkPage.ts b/packages/playwright-core/src/server/webkit/wkPage.ts index adfd06c05e..ae691f0ea3 100644 --- a/packages/playwright-core/src/server/webkit/wkPage.ts +++ b/packages/playwright-core/src/server/webkit/wkPage.ts @@ -1176,6 +1176,7 @@ export class WKPage implements PageDelegate { async _grantPermissions(origin: string, permissions: string[]) { const webPermissionToProtocol = new Map([ ['geolocation', 'geolocation'], + ['notifications', 'notifications'], ['clipboard-read', 'clipboard-read'], ]); const filtered = permissions.map(permission => { diff --git a/tests/library/permissions.spec.ts b/tests/library/permissions.spec.ts index 7e77bba10f..ad56b418d3 100644 --- a/tests/library/permissions.spec.ts +++ b/tests/library/permissions.spec.ts @@ -22,7 +22,7 @@ function getPermission(page, name) { } it.describe('permissions', () => { - it.skip(({ browserName }) => browserName === 'webkit', 'Permissions API is not implemented in WebKit (see https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API)'); + it.fixme(({ browserName, isWindows }) => browserName === 'webkit' && isWindows, 'Permissions API is disabled on Windows WebKit'); it('should be prompt by default', async ({ page, server }) => { await page.goto(server.EMPTY_PAGE); @@ -49,7 +49,7 @@ it.describe('permissions', () => { }); it('should grant window-management permission when origin is listed', async ({ page, context, server, browserName }) => { - it.fail(browserName === 'firefox'); + it.skip(browserName !== 'chromium', 'Only Chromium supports window management API.'); await page.goto(server.EMPTY_PAGE); await context.grantPermissions(['window-management'], { origin: server.EMPTY_PAGE });