chromium/third_party/blink/web_tests/http/tests/inspector-protocol/service-worker/deliver-push-message.js

(async function(/** @type {import('test_runner').TestRunner} */ testRunner) {
  var {page, session, dp} = await testRunner.startURL(
      'resources/push-message-service-worker.html',
      `Tests delivery of a push message to the service worker.`);

  async function waitForServiceWorkerActivation() {
    let versions;
    do {
      const result = await dp.ServiceWorker.onceWorkerVersionUpdated();
      versions = result.params.versions;
    } while (!versions.length || versions[0].status !== "activated");
    return versions[0].registrationId;
  }

  var registrationIdPromise = waitForServiceWorkerActivation();

  await dp.Runtime.enable();
  await dp.ServiceWorker.enable();
  const registrationId = await registrationIdPromise;

  dp.ServiceWorker.deliverPushMessage({origin: 'http://127.0.0.1:8000', registrationId: registrationId, data: 'push message'});
  const message = await session.evaluateAsync('window.__messagePromise');
  testRunner.log(`Got message: ${message}`);

  testRunner.completeTest();
});