From 870edd1aae2f42668b333d37326ad3020e8e73c8 Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Fri, 10 Mar 2023 09:25:54 -0800 Subject: [PATCH] feat(firefox): roll Firefox to 1387 (#21542) Fixes #21109 Fixes #21430 --- packages/playwright-core/browsers.json | 4 ++-- .../playwright-core/src/server/firefox/ffPage.ts | 15 +-------------- tests/page/frame-goto.spec.ts | 6 +++--- tests/page/page-evaluate.spec.ts | 3 +-- tests/page/page-history.spec.ts | 3 +-- tests/page/page-wait-for-navigation.spec.ts | 5 +++-- 6 files changed, 11 insertions(+), 25 deletions(-) diff --git a/packages/playwright-core/browsers.json b/packages/playwright-core/browsers.json index 356c47cf56..42500f1ac4 100644 --- a/packages/playwright-core/browsers.json +++ b/packages/playwright-core/browsers.json @@ -21,13 +21,13 @@ }, { "name": "firefox", - "revision": "1384", + "revision": "1387", "installByDefault": true, "browserVersion": "109.0" }, { "name": "firefox-beta", - "revision": "1386", + "revision": "1389", "installByDefault": false, "browserVersion": "110.0b7" }, diff --git a/packages/playwright-core/src/server/firefox/ffPage.ts b/packages/playwright-core/src/server/firefox/ffPage.ts index a279f7c4a3..47be1684d6 100644 --- a/packages/playwright-core/src/server/firefox/ffPage.ts +++ b/packages/playwright-core/src/server/firefox/ffPage.ts @@ -393,20 +393,7 @@ export class FFPage implements PageDelegate { } async reload(): Promise { - const mainFrame = this._page._frameManager.mainFrame(); - // This is a workaround for https://github.com/microsoft/playwright/issues/21145 - let hash = ''; - try { - hash = (new URL(mainFrame.url())).hash; - } catch (e) { - // Ignore URL parsing error, if any. - } - if (hash.length) { - const context = await mainFrame._utilityContext(); - await context.rawEvaluateJSON(`void window.location.reload();`); - } else { - await this._session.send('Page.reload'); - } + await this._session.send('Page.reload'); } async goBack(): Promise { diff --git a/tests/page/frame-goto.spec.ts b/tests/page/frame-goto.spec.ts index 7434213ac7..7eba57711d 100644 --- a/tests/page/frame-goto.spec.ts +++ b/tests/page/frame-goto.spec.ts @@ -31,9 +31,9 @@ it('should navigate subframes @smoke', async ({ page, server }) => { it('should reject when frame detaches', async ({ page, server, browserName }) => { await page.goto(server.PREFIX + '/frames/one-frame.html'); - server.setRoute('/empty.html', () => {}); - const navigationPromise = page.frames()[1].goto(server.EMPTY_PAGE).catch(e => e); - await server.waitForRequest('/empty.html'); + server.setRoute('/one-style.css', () => {}); + const navigationPromise = page.frames()[1].goto(server.PREFIX + '/one-style.html').catch(e => e); + await server.waitForRequest('/one-style.css'); await page.$eval('iframe', frame => frame.remove()); const error = await navigationPromise; diff --git a/tests/page/page-evaluate.spec.ts b/tests/page/page-evaluate.spec.ts index def8297f01..7ea34a3a3c 100644 --- a/tests/page/page-evaluate.spec.ts +++ b/tests/page/page-evaluate.spec.ts @@ -703,9 +703,8 @@ it('should work with overridden globalThis.Window/Document/Node', async ({ page, } }); -it('should work with overridden URL/Date/RegExp', async ({ page, server, browserName }) => { +it('should work with overridden URL/Date/RegExp', async ({ page, server }) => { it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/21109' }); - it.fixme(browserName === 'firefox'); const testCases = [ // @ts-ignore () => globalThis.URL = 'foo', diff --git a/tests/page/page-history.spec.ts b/tests/page/page-history.spec.ts index a0ae7bb98f..3b83269f91 100644 --- a/tests/page/page-history.spec.ts +++ b/tests/page/page-history.spec.ts @@ -192,9 +192,8 @@ it('page.reload should work on a page with a hash', async ({ page, server }) => await expect(page).toHaveURL(server.EMPTY_PAGE + '#hash'); }); -it('page.reload should work on a page with a hash at the end', async ({ page, server, browserName }) => { +it('page.reload should work on a page with a hash at the end', async ({ page, server }) => { it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/21430' }); - it.fixme(browserName === 'firefox'); await page.goto(server.EMPTY_PAGE + '#'); await page.reload(); await expect(page).toHaveURL(server.EMPTY_PAGE + '#'); diff --git a/tests/page/page-wait-for-navigation.spec.ts b/tests/page/page-wait-for-navigation.spec.ts index 3313a2940b..61b99620c1 100644 --- a/tests/page/page-wait-for-navigation.spec.ts +++ b/tests/page/page-wait-for-navigation.spec.ts @@ -250,11 +250,12 @@ it('should fail when frame detaches', async ({ page, server }) => { await page.goto(server.PREFIX + '/frames/one-frame.html'); const frame = page.frames()[1]; server.setRoute('/empty.html', () => {}); + server.setRoute('/one-style.css', () => {}); const [error] = await Promise.all([ frame.waitForNavigation().catch(e => e), - page.$eval('iframe', frame => { frame.contentWindow.location.href = '/empty.html'; }), + page.$eval('iframe', frame => { frame.contentWindow.location.href = '/one-style.html'; }), // Make sure policy checks pass and navigation actually begins before removing the frame to avoid other errors - server.waitForRequest('/empty.html').then(() => page.$eval('iframe', frame => setTimeout(() => frame.remove(), 0))) + server.waitForRequest('/one-style.css').then(() => page.$eval('iframe', frame => setTimeout(() => frame.remove(), 0))) ]); expect(error.message).toContain('waiting for navigation until "load"'); expect(error.message).toContain('frame was detached');