MANIFEST-FREE TEST SITE

Site-as-app Notification Lab

Compare a normal browser tab with Edge's Install this site as an app. This site has no web app manifest. Both primary tests work without a push subscription, server, or GitHub account.

1. Check the environment

In Edge: Settings and more > More tools > Apps > Install this site as an app. If already installed, the menu may offer Open in app instead. A site-as-app window can report minimal-ui.

If permission is blocked, change this site's Notifications permission in the address-bar site settings, then refresh. No browser flags are needed.

PATH A: PAGE JAVASCRIPT

2. Tab / app-window notification

new Notification() runs in this document. Keep this tab or app window open; minimizing is fine. Closing it stops pending timers. Background throttling or sleeping tabs can delay timers.

No pending timers.

PATH B: SERVICE WORKER, NO PUSH SETUP

3. Service-worker notification

The button sends a message to the service worker, which calls showNotification(). Just allow notifications above and click.

No push subscription is needed.

Keep this page open until the worker confirms the request. The resulting notification is managed by the browser and can outlive the page. This is not network push and does not test delivery after closing the app or quitting the browser.

Optional: real Web Push (advanced)

Skip this section for the two tests above. Use it only to test incoming notifications while the site's documents are closed.

GitHub Actions sends encrypted Web Push to the browser's push service. The browser fires a real push event; the service worker calls showNotification(). This path does not need an open site tab.

Open this section to check the push subscription.

  1. Allow notifications, then subscribe this browser.
  2. Download its private subscription JSON. Treat it as sensitive; do not commit it, attach it to issues, or paste it into Actions inputs.
  3. As the repository owner, save it in the WEB_PUSH_SUBSCRIPTION Actions secret. This replaces the previous target browser.
  4. Open Send Web Push in GitHub Actions, choose Run workflow, and set a delay. Close this site's windows before delivery to test background push.
Register the subscription privately (PowerShell / GitHub CLI)

Sign GitHub CLI into the repository owner's account, then run this in the directory containing the downloaded file:

Alternatively, copy the file contents into the repository's Actions secrets settings. Never enter a GitHub access token or the VAPID private key into this site.

GitHub may queue a workflow; its delay begins when the send step starts. Closing all browser processes or disabling OS background delivery can prevent or delay push. A successful sender run means the push service accepted the message, not that Windows displayed a banner.

4. Inspect the evidence

Events stay in this browser profile, bounded to the latest 500. Page and worker events are included in the report; reopen the site to inspect earlier events. Check Windows Notification Center separately: API success is not proof of a visible banner.

After a failure, download the diagnostic report before clearing data or uninstalling. It includes browser/environment details, worker state, notification IDs, timestamps, and errors, but not subscription credentials. Review it before sharing. Do not send the private subscription JSON as a diagnostic report.

In DevTools Console, enable Preserve log and the Info/Warning/Error levels, then filter for Notification Lab. Use Print saved diagnostics to console to include earlier page and background-worker events. Opening worker DevTools can keep the worker alive; leave it closed during background tests.

Starting...