From 7db1eb7aab0cd5af4023a04b89498c17038f097a Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 11 Apr 2024 17:10:31 +0000 Subject: [PATCH] cherry-pick(#30342): Revert "fix(reuse): reset Origin Private File System API (#29921)" --- packages/playwright-core/src/server/frames.ts | 11 ------ tests/library/browsercontext-reuse.spec.ts | 38 ++----------------- 2 files changed, 4 insertions(+), 45 deletions(-) diff --git a/packages/playwright-core/src/server/frames.ts b/packages/playwright-core/src/server/frames.ts index fb4dcee705110..787fae44feec4 100644 --- a/packages/playwright-core/src/server/frames.ts +++ b/packages/playwright-core/src/server/frames.ts @@ -1692,17 +1692,6 @@ export class Frame extends SdkObject { if (db.name) indexedDB.deleteDatabase(db.name!); } - - // Clean StorageManager - const root = await navigator.storage.getDirectory(); - const entries = await (root as any).entries(); - // Manual loop instead of for await because in Firefox's utility context instanceof AsyncIterable is not working. - let entry = await entries.next(); - while (!entry.done) { - const [name] = entry.value; - await root.removeEntry(name, { recursive: true }); - entry = await entries.next(); - } }, { ls: newStorage?.localStorage }).catch(() => {}); } diff --git a/tests/library/browsercontext-reuse.spec.ts b/tests/library/browsercontext-reuse.spec.ts index 057bc1d223b5b..c25d66d5885db 100644 --- a/tests/library/browsercontext-reuse.spec.ts +++ b/tests/library/browsercontext-reuse.spec.ts @@ -15,16 +15,13 @@ */ import { browserTest, expect } from '../config/browserTest'; -import type { BrowserContext, BrowserContextOptions } from '@playwright/test'; +import type { BrowserContext } from '@playwright/test'; -const test = browserTest.extend<{ reusedContext: (options?: BrowserContextOptions) => Promise }>({ +const test = browserTest.extend<{ reusedContext: () => Promise }>({ reusedContext: async ({ browserType, browser }, use) => { - await use(async (options: BrowserContextOptions = {}) => { + await use(async () => { const defaultContextOptions = (browserType as any)._defaultContextOptions; - const context = await (browser as any)._newContextForReuse({ - ...defaultContextOptions, - ...options, - }); + const context = await (browser as any)._newContextForReuse(defaultContextOptions); return context; }); }, @@ -238,33 +235,6 @@ test('should reset mouse position', async ({ reusedContext, browserName, platfor await expect(page.locator('#two')).toHaveCSS('background-color', 'rgb(0, 0, 255)'); }); -test('should reset Origin Private File System', async ({ reusedContext, httpsServer, browserName }) => { - test.skip(browserName === 'webkit', 'getDirectory is not supported in ephemeral context in WebKit https://github.com/microsoft/playwright/issues/18235#issuecomment-1289792576'); - test.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/29901' }); - - let context = await reusedContext({ ignoreHTTPSErrors: true }); - let page = await context.newPage(); - await page.goto(httpsServer.EMPTY_PAGE); - await page.evaluate(async () => { - const root = await navigator.storage.getDirectory(); - await root.getDirectoryHandle('someDirectoryName', { create: true }); - await root.getFileHandle('foo.txt', { create: true }); - }); - - context = await reusedContext({ ignoreHTTPSErrors: true }); - page = await context.newPage(); - await page.goto(httpsServer.EMPTY_PAGE); - const { directoryExits, fileExits } = await page.evaluate(async () => { - const root = await navigator.storage.getDirectory(); - let directoryExits = true, fileExits = true; - await root.getDirectoryHandle('someDirectoryName').catch(() => { directoryExits = false; }); - await root.getFileHandle('foo.txt').catch(() => { fileExits = false; }); - return { directoryExits, fileExits }; - }); - expect(directoryExits).toBe(false); - expect(fileExits).toBe(false); -}); - test('should reset tracing', async ({ reusedContext, trace }, testInfo) => { test.skip(trace === 'on');