function postMessageToTest(msg) { return clients.matchAll({ includeUncontrolled: true }).then(list => { for (var client of list) { if (client.url.endsWith("test_install_event_gc.html")) { client.postMessage(msg); break; } } }); } addEventListener("install", evt => { // This must be a simple promise to trigger the CC failure. evt.waitUntil(new Promise(function () {})); postMessageToTest({ type: "INSTALL_EVENT" }); }); addEventListener("message", evt => { if (evt.data.type === "ping") { postMessageToTest({ type: "pong" }); } });