feat(firefox): roll ff to 1350, beta to 1353 (#17006)

This commit is contained in:
Dmitry Gozman 2022-09-02 08:35:29 -07:00 committed by GitHub
parent da19219323
commit 3548f3f898
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 10 deletions

View file

@ -21,15 +21,15 @@
}, },
{ {
"name": "firefox", "name": "firefox",
"revision": "1347", "revision": "1350",
"installByDefault": true, "installByDefault": true,
"browserVersion": "104.0" "browserVersion": "104.0"
}, },
{ {
"name": "firefox-beta", "name": "firefox-beta",
"revision": "1348", "revision": "1353",
"installByDefault": false, "installByDefault": false,
"browserVersion": "104.0b5" "browserVersion": "105.0b2"
}, },
{ {
"name": "webkit", "name": "webkit",

View file

@ -122,6 +122,10 @@ export class FFBrowser extends Browser {
assert(ffPage); assert(ffPage);
if (!ffPage) if (!ffPage)
return; return;
// Abort the navigation that turned into download.
ffPage._page._frameManager.frameAbortedNavigation(payload.frameId, 'Download is starting');
let originPage = ffPage._initializedPage; let originPage = ffPage._initializedPage;
// If it's a new window download, report it on the opener page. // If it's a new window download, report it on the opener page.
if (!originPage) { if (!originPage) {

View file

@ -57,6 +57,7 @@ export module Protocol {
uuid: string; uuid: string;
browserContextId?: string; browserContextId?: string;
pageTargetId: string; pageTargetId: string;
frameId: string;
url: string; url: string;
suggestedFileName: string; suggestedFileName: string;
} }
@ -569,7 +570,7 @@ export module Protocol {
export type reloadReturnValue = void; export type reloadReturnValue = void;
export type adoptNodeParameters = { export type adoptNodeParameters = {
frameId: string; frameId: string;
objectId: string; objectId?: string;
executionContextId: string; executionContextId: string;
}; };
export type adoptNodeReturnValue = { export type adoptNodeReturnValue = {

View file

@ -70,8 +70,8 @@ it.describe('download event', () => {
expect(responseOrError.message).toContain('Download is starting'); expect(responseOrError.message).toContain('Download is starting');
expect(page.url()).toBe('about:blank'); expect(page.url()).toBe('about:blank');
} else { } else {
expect(responseOrError.status()).toBe(200); expect(responseOrError instanceof Error).toBeTruthy();
expect(page.url()).toBe(server.PREFIX + '/download'); expect(responseOrError.message).toContain('Download is starting');
} }
await page.close(); await page.close();
}); });
@ -96,8 +96,8 @@ it.describe('download event', () => {
expect(responseOrError.message).toContain('Download is starting'); expect(responseOrError.message).toContain('Download is starting');
expect(page.url()).toBe('about:blank'); expect(page.url()).toBe('about:blank');
} else { } else {
expect(responseOrError.status()).toBe(200); expect(responseOrError instanceof Error).toBeTruthy();
expect(page.url()).toBe(server.PREFIX + '/downloadWithCOOP'); expect(responseOrError.message).toContain('Download is starting');
} }
await page.close(); await page.close();
}); });

View file

@ -630,19 +630,21 @@ it('should properly wait for load', async ({ page, server, browserName }) => {
}); });
it('should not resolve goto upon window.stop()', async ({ browserName, page, server }) => { it('should not resolve goto upon window.stop()', async ({ browserName, page, server }) => {
it.fixme(browserName === 'firefox', 'load/domcontentloaded events are flaky');
let response; let response;
server.setRoute('/module.js', (req, res) => { server.setRoute('/module.js', (req, res) => {
res.writeHead(200, { 'Content-Type': 'text/javascript' }); res.writeHead(200, { 'Content-Type': 'text/javascript' });
response = res; response = res;
}); });
let done = false; let done = false;
page.goto(server.PREFIX + '/window-stop.html').then(() => done = true).catch(() => {}); const promise = page.goto(server.PREFIX + '/window-stop.html').then(() => done = true).catch(() => {});
await server.waitForRequest('/module.js'); await server.waitForRequest('/module.js');
expect(done).toBe(false); expect(done).toBe(false);
await page.waitForTimeout(1000); // give it some time to erroneously resolve await page.waitForTimeout(1000); // give it some time to erroneously resolve
response.end(''); response.end('');
await page.waitForTimeout(1000); // give it more time to erroneously resolve await page.waitForTimeout(1000); // give it more time to erroneously resolve
expect(done).toBe(browserName === 'firefox'); // Firefox fires DOMContentLoaded and load events in this case. expect(done).toBe(false);
}); });
it('should return from goto if new navigation is started', async ({ page, server, browserName, isAndroid }) => { it('should return from goto if new navigation is started', async ({ page, server, browserName, isAndroid }) => {