Skip to content

Commit

Permalink
fix: do not auto wait for downloads (#1921)
Browse files Browse the repository at this point in the history
  • Loading branch information
yury-s authored Apr 22, 2020
1 parent fa6f738 commit 00e8d88
Show file tree
Hide file tree
Showing 4 changed files with 1 addition and 32 deletions.
2 changes: 0 additions & 2 deletions src/download.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@ export class Download {
this._url = url;
this._finishedCallback = () => {};
this._finishedPromise = new Promise(f => this._finishedCallback = f);
for (const barrier of this._page._frameManager._signalBarriers)
barrier.addDownload();
this._page.emit(Events.Page.Download, this);
page._browserContext._downloads.add(this);
this._acceptDownloads = !!this._page._browserContext._options.acceptDownloads;
Expand Down
4 changes: 0 additions & 4 deletions src/firefox/ffPage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,10 +147,6 @@ export class FFPage implements PageDelegate {

_onNavigationAborted(params: Protocol.Page.navigationAbortedPayload) {
const frame = this._page._frameManager.frame(params.frameId)!;
if (params.errorText === 'Will download to file') {
for (const barrier of this._page._frameManager._signalBarriers)
barrier.expectDownload();
}
for (const task of frame._frameTasks)
task.onNewDocument(params.navigationId, new Error(params.errorText));
}
Expand Down
13 changes: 1 addition & 12 deletions src/frames.ts
Original file line number Diff line number Diff line change
Expand Up @@ -948,7 +948,6 @@ export class SignalBarrier {
private _options: types.NavigatingActionWaitOptions;
private _protectCount = 0;
private _expectedPopups = 0;
private _expectedDownloads = 0;
private _promise: Promise<void>;
private _promiseCallback = () => {};
private _deadline: number;
Expand Down Expand Up @@ -989,16 +988,6 @@ export class SignalBarrier {
this.release();
}

async expectDownload() {
++this._expectedDownloads;
}

async addDownload() {
if (this._expectedDownloads)
--this._expectedDownloads;
this._maybeResolve();
}

retain() {
++this._protectCount;
}
Expand All @@ -1009,7 +998,7 @@ export class SignalBarrier {
}

private async _maybeResolve() {
if (!this._protectCount && !this._expectedPopups && !this._expectedDownloads && !this._frameIds.size)
if (!this._protectCount && !this._expectedPopups && !this._frameIds.size)
this._promiseCallback();
}
}
Expand Down
14 changes: 0 additions & 14 deletions test/autowaiting.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,20 +54,6 @@ describe('Auto waiting', () => {
]);
expect(messages.join('|')).toBe('popup|click');
});
it.fail(CHROMIUM)('should await download when clicking anchor', async function({page, server}) {
server.setRoute('/download', (req, res) => {
res.setHeader('Content-Type', 'application/octet-stream');
res.setHeader('Content-Disposition', 'attachment');
res.end(`Hello world`);
});
await page.setContent(`<a download=true href="${server.PREFIX}/download">download</a>`);
const messages = [];
await Promise.all([
page.waitForEvent('download').then(() => messages.push('download')),
page.click('a').then(() => messages.push('click')),
]);
expect(messages.join('|')).toBe('download|click');
});
it('should await cross-process navigation when clicking anchor', async({page, server}) => {
const messages = [];
server.setRoute('/empty.html', async (req, res) => {
Expand Down

0 comments on commit 00e8d88

Please sign in to comment.