// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function(testRunner) {
const {session, dp} = await testRunner.startWithFrameControl(
`Tests that renderer survives emulation of a very large viewport.`);
const response = await dp.Emulation.setDeviceMetricsOverride({
deviceScaleFactor: 1,
height: 1024,
width: 10000000,
mobile: false,
});
const virtualTimeTicksBase =
(await dp.Emulation.setVirtualTimePolicy({policy: 'pause'}))
.result.virtualTimeTicksBase;
const virtualTimeChunk = 10 * 1000;
const frameTimeTicks = 100;
dp.Emulation.setVirtualTimePolicy({
policy: 'pauseIfNetworkFetchesPending',
budget: virtualTimeChunk});
await dp.Emulation.onceVirtualTimeBudgetExpired();
await dp.HeadlessExperimental.beginFrame({
frameTimeTicks: virtualTimeTicksBase + virtualTimeChunk,
interval: frameTimeTicks,
noDisplayUpdates: false});
dp.Emulation.setVirtualTimePolicy({
policy: 'pauseIfNetworkFetchesPending',
budget: virtualTimeChunk});
await dp.Emulation.onceVirtualTimeBudgetExpired();
await dp.HeadlessExperimental.beginFrame({
frameTimeTicks: virtualTimeTicksBase + 2 * virtualTimeChunk,
interval: frameTimeTicks,
noDisplayUpdates: true});
testRunner.completeTest();
})