There is a newer version of the record available.

Published May 7, 2026 | Version v0.25.5

chain simple forms / surveys into longer runs using the power of R to generate pretty feedback and complex designs https://formr.org

  • 1. Wilhelm Wundt Institute of Psychology, University of Leipzig
  • 2. Georg Elias Müller Institute of Psychology, University of Goettingen

Description

Fixes

  • iOS standalone PWAs: tapping a push notification now reloads the open PWA. The previous iOS-specific reload technique (window.focus(); window.location.href = window.location.href) was a no-op — window.focus() outside a user gesture is dropped, and assigning location.href to a byte-identical URL gets optimised away. Replaced with window.location.reload().
  • Stuck handling-reload flag in PWAInstaller.js is now self-recovering. The flag was only cleared in DOMContentLoaded, so any reload that didn't make it that far (BFCache transition, navigation cancelled, hidden-tab throttling, browser crash mid-reload) left it sticky and silently dropped every subsequent NOTIFICATION_CLICK / STATE_INVALIDATED message. Now stores Date.now() and is treated as stale after 10 s.

Service-worker upgrade plumbing

  • sw_version bump to v7. Required so installed PWAs actually pick up the fix above.
  • install calls self.skipWaiting() so a sw_version bump activates immediately.
  • activate deletes every formr-* cache that isn't the current CACHE_NAME and broadcasts STATE_INVALIDATED to claimed clients so pages running pre-fix PWAInstaller.js reload themselves.
  • fetch scopes caches.match() to CACHE_NAME (defence-in-depth).
  • pwa-register.js calls registration.update() on every page load when an existing registration is found, so future sw_version bumps reach iOS Safari standalone PWAs without relying on the browser's lazy 24 h check.

Tests

  • tests/e2e/pwa-notification-reload.spec.js pins the page-side reload contract on both local-chromium and BrowserStack iPhone 15 Pro Max iOS 17 (npm run test:bs -- pwa-notification-reload).
  • npm run test:bs now sources ../.env.dev so BS credentials reach the SDK without manual export. New top-level browserstack.yml (single-platform iOS target).

See CHANGELOG.md for the full v0.25.5 entry.

PR: #673

Files

rubenarslan/formr.org-v0.25.5.zip

Files (10.5 MB)

Name Size Download all
md5:0ccc2af40b02ddb94e155b03ca7c2709
10.5 MB Preview Download

Additional details

Related works