blob: 3f7427827e1ddcfc7c2c6f5941b1aa46b2438555 [file] [log] [blame]
(async function(testRunner) {
var {page, session, dp} = await testRunner.startBlank(
`Tests that closing the page will resume the render process.`);
await dp.Target.setDiscoverTargets({discover: true});
session.evaluate(`
window.myWindow = window.open('../resources/inspector-protocol-page.html'); undefined;
`);
testRunner.log('Opened a second window');
var event = await dp.Target.onceTargetInfoChanged(event => event.params.targetInfo.url.endsWith('inspector-protocol-page.html'));
var targetId = event.params.targetInfo.targetId;
var sessionId = (await dp.Target.attachToTarget({targetId: targetId, flatten: true})).result.sessionId;
const childSession = session.createChild(sessionId);
testRunner.log('Attached to a second window');
await childSession.protocol.Debugger.enable();
childSession.evaluate('debugger;');
await childSession.protocol.Debugger.oncePaused();
testRunner.log('Paused in a second window');
session.evaluate(`
window.myWindow.close(); undefined;
`);
testRunner.log('Closed a second window');
await dp.Target.onceTargetDestroyed(event => event.params.targetId === targetId);
testRunner.log('Received window destroyed notification');
await session.evaluateAsync(`
new Promise(f => setTimeout(f, 0))
`);
testRunner.log('setTimeout worked in first window');
testRunner.completeTest();
})