blob: e8c21e2aabc8ead2c73b6c168146c999ff0ee858 [file] [log] [blame]
(async function(testRunner) {
var {page, session, dp} = await testRunner.startBlank('Tests frameScheduledNavigation events when navigation is initiated in JS followed by other navigations.');
let isLoading = false;
dp.Page.onFrameStartedLoading(() => isLoading = true);
dp.Page.onFrameStoppedLoading(() => isLoading = false);
dp.Page.enable();
session.evaluate(`
var frame = document.createElement('iframe');
document.body.appendChild(frame);
frame.src = '${testRunner.url('resources/navigation-chain1.html')}';
`);
for (var i = 0; i < 6; i++) {
var msg = await dp.Page.onceFrameScheduledNavigation();
testRunner.log('Scheduled navigation with delay ' + msg.params.delay +
' and reason ' + msg.params.reason + ' to url ' +
msg.params.url.split('/').pop());
// This event should be received before the scheduled navigation is cleared,
// unless the frame was already loading.
if (!isLoading)
await dp.Page.onceFrameStartedLoading();
await dp.Page.onceFrameClearedScheduledNavigation();
testRunner.log('Cleared scheduled navigation');
}
testRunner.completeTest();
})