diff --git a/test/defaultbrowsercontext-2.spec.ts b/test/defaultbrowsercontext-2.spec.ts
index f9352ebd25..c0ac08b517 100644
--- a/test/defaultbrowsercontext-2.spec.ts
+++ b/test/defaultbrowsercontext-2.spec.ts
@@ -111,7 +111,7 @@ it.slow()('should restore state from userDataDir', async ({browserType, defaultB
await removeUserDataDir(userDataDir2);
});
-it.slow()('should restore cookies from userDataDir', async ({browserType, defaultBrowserOptions, server, launchPersistent}) => {
+it.slow().flaky(options.CHROMIUM && WIN)('should restore cookies from userDataDir', async ({browserType, defaultBrowserOptions, server, launchPersistent}) => {
const userDataDir = await makeUserDataDir();
const browserContext = await browserType.launchPersistentContext(userDataDir, defaultBrowserOptions);
const page = await browserContext.newPage();
diff --git a/test/page-event-crash.spec.ts b/test/page-event-crash.spec.ts
index 17929f0cca..2c023d368e 100644
--- a/test/page-event-crash.spec.ts
+++ b/test/page-event-crash.spec.ts
@@ -32,7 +32,7 @@ it.fail(options.WIRE)('should emit crash event when page crashes', async ({page,
await new Promise(f => page.on('crash', f));
});
-it.fail(options.WIRE)('should throw on any action after page crashes', async ({page, browserName, toImpl}) => {
+it.fail(options.WIRE).flaky(options.FIREFOX && WIN)('should throw on any action after page crashes', async ({page, browserName, toImpl}) => {
await page.setContent(`
This page should crash
`);
crash(toImpl(page), browserName);
await page.waitForEvent('crash');
@@ -59,7 +59,7 @@ it.fixme(options.WIRE)('should cancel navigation when page crashes', async ({pag
expect(error.message).toContain('Navigation failed because page crashed');
});
-it.fixme(options.WIRE)('should be able to close context when page crashes', async ({page, browserName, toImpl}) => {
+it.fixme(options.WIRE).flaky(options.FIREFOX && WIN)('should be able to close context when page crashes', async ({page, browserName, toImpl}) => {
await page.setContent(`This page should crash
`);
crash(toImpl(page), browserName);
await page.waitForEvent('crash');
diff --git a/test/permissions.spec.ts b/test/permissions.spec.ts
index ba39636daa..b8a4ba72d1 100644
--- a/test/permissions.spec.ts
+++ b/test/permissions.spec.ts
@@ -98,7 +98,7 @@ describe.skip(options.WEBKIT)('permissions', () => {
expect(await getPermission(page, 'geolocation')).toBe('prompt');
});
- it.fail(options.WEBKIT || (options.CHROMIUM && !options.HEADLESS))('should trigger permission onchange', async ({page, server, context}) => {
+ it.fail(options.WEBKIT).fail(options.CHROMIUM && !options.HEADLESS).flaky(options.FIREFOX && LINUX)('should trigger permission onchange', async ({page, server, context}) => {
// TODO: flaky
// - Linux: https://github.com/microsoft/playwright/pull/1790/checks?check_run_id=587327883
// - Win: https://ci.appveyor.com/project/aslushnikov/playwright/builds/32402536
diff --git a/test/screencast.spec.ts b/test/screencast.spec.ts
index 1a9f085426..f667c3bb30 100644
--- a/test/screencast.spec.ts
+++ b/test/screencast.spec.ts
@@ -172,7 +172,7 @@ class VideoPlayer {
}
}
-it.fixme(options.CHROMIUM)('should capture static page', async ({page, tmpDir, videoPlayer, toImpl}) => {
+it.fixme(options.CHROMIUM).flaky(options.FIREFOX && MAC)('should capture static page', async ({page, tmpDir, videoPlayer, toImpl}) => {
if (!toImpl)
return;
const videoFile = path.join(tmpDir, 'v.webm');