blob: 203eb57a75fbecf44ca11695e5f30b14c43c8ef7 [file] [log] [blame]
(async function(testRunner) {
const {page, session, dp} = await testRunner.startURL(
'/inspector-protocol/resources/empty.html',
`Tests that browser.Target.setAutoAttach() attaches to new service workers.`);
const swHelper = (await testRunner.loadScript('../service-worker/resources/service-worker-helper.js'))(dp, session);
const target = testRunner.browserP().Target;
await Promise.all([
target.setDiscoverTargets({discover: true}),
target.setAutoAttach({autoAttach: true, waitForDebuggerOnStart: true, flatten: true}),
]);
const swTargetPromises = [
target.onceTargetCreated(),
target.onceAttachedToTarget(),
];
const activatedPromise = swHelper.installSWAndWaitForActivated('/inspector-protocol/service-worker/resources/blank-service-worker.js');
const [swTarget, swAttachedEvent] = await Promise.all(swTargetPromises);
const swTargetInfo = swTarget.params.targetInfo;
testRunner.log(`Started and attached to ${swTargetInfo.type} target, waitingForDebugger=${swAttachedEvent.params.waitingForDebugger}`);
const swSession = new TestRunner.Session(testRunner, swAttachedEvent.params.sessionId);
testRunner.log('self.globalVar = ' + await swSession.evaluate('self.globalVar'));
await Promise.all([
swSession.protocol.Runtime.runIfWaitingForDebugger(),
activatedPromise,
]);
testRunner.log('Resumed, self.globalVar = ' + await swSession.evaluate('self.globalVar'));
testRunner.completeTest();
})