From e344c596302268eb354cc970d4d9f9f5c7a90e1f Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Thu, 1 Aug 2024 15:55:14 +0200 Subject: [PATCH] fix(ui): only populate settings on main page before, the init script was executed for every loaded iframe and was resetting `localStorage` everytime. It didn't show because the UI had its own copy of the settings via useState() - but now that it's reading directly from local storage, it shows. The fix is to ensure that the script isn't executed in iframes. --- packages/playwright-core/src/server/launchApp.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/playwright-core/src/server/launchApp.ts b/packages/playwright-core/src/server/launchApp.ts index 12cb343f95..eab457691c 100644 --- a/packages/playwright-core/src/server/launchApp.ts +++ b/packages/playwright-core/src/server/launchApp.ts @@ -90,6 +90,8 @@ export async function syncLocalStorageWithSettings(page: Page, appName: string) // iframes w/ snapshots, etc. if (location && location.protocol === 'data:') return; + if (window.top !== window) + return; Object.entries(settings).map(([k, v]) => localStorage[k] = v); (window as any).saveSettings = () => { (window as any)._saveSerializedSettings(JSON.stringify({ ...localStorage }));