fix(chromium): do not bring page to front before screenshot (#2614)
This commit is contained in:
parent
c544bffee3
commit
971bd88922
|
|
@ -216,7 +216,6 @@ export class CRPage implements PageDelegate {
|
|||
})
|
||||
};
|
||||
}
|
||||
await this._mainFrameSession._client.send('Page.bringToFront', {});
|
||||
// When taking screenshots with documentRect (based on the page content, not viewport),
|
||||
// ignore current page scale.
|
||||
const clip = { ...documentRect, scale: viewportRect ? visualViewport.scale : 1 };
|
||||
|
|
|
|||
|
|
@ -30,13 +30,7 @@ export class Screenshotter {
|
|||
|
||||
constructor(page: Page) {
|
||||
this._page = page;
|
||||
|
||||
const browserContext = page.context();
|
||||
this._queue = (browserContext as any)[taskQueueSymbol];
|
||||
if (!this._queue) {
|
||||
this._queue = new TaskQueue();
|
||||
(browserContext as any)[taskQueueSymbol] = this._queue;
|
||||
}
|
||||
this._queue = new TaskQueue();
|
||||
}
|
||||
|
||||
private async _originalViewportSize(): Promise<{ viewportSize: types.Size, originalViewportSize: types.Size | null }> {
|
||||
|
|
@ -152,8 +146,6 @@ export class Screenshotter {
|
|||
}
|
||||
}
|
||||
|
||||
const taskQueueSymbol = Symbol('TaskQueue');
|
||||
|
||||
class TaskQueue {
|
||||
private _chain: Promise<any>;
|
||||
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ describe.skip(ffheadful)('Page.screenshot', function() {
|
|||
expect(page.viewportSize().height).toBe(500);
|
||||
});
|
||||
it('should run in parallel in multiple pages', async({page, server, context, golden}) => {
|
||||
const N = 2;
|
||||
const N = 5;
|
||||
const pages = await Promise.all(Array(N).fill(0).map(async() => {
|
||||
const page = await context.newPage();
|
||||
await page.goto(server.PREFIX + '/grid.html');
|
||||
|
|
@ -124,10 +124,10 @@ describe.skip(ffheadful)('Page.screenshot', function() {
|
|||
}));
|
||||
const promises = [];
|
||||
for (let i = 0; i < N; ++i)
|
||||
promises.push(pages[i].screenshot({ clip: { x: 50 * i, y: 0, width: 50, height: 50 } }));
|
||||
promises.push(pages[i].screenshot({ clip: { x: 50 * (i % 2), y: 0, width: 50, height: 50 } }));
|
||||
const screenshots = await Promise.all(promises);
|
||||
for (let i = 0; i < N; ++i)
|
||||
expect(screenshots[i]).toBeGolden(golden(`grid-cell-${i}.png`));
|
||||
expect(screenshots[i]).toBeGolden(golden(`grid-cell-${i % 2}.png`));
|
||||
await Promise.all(pages.map(page => page.close()));
|
||||
});
|
||||
it.fail(FFOX)('should allow transparency', async({page, golden}) => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue