Expose ServiceWorkerContainer.getRegistrations() and implement the
Service Workers algorithm for collecting registrations matching the
current client's storage key. Resolve the promise with a frozen array
of ServiceWorkerRegistration objects, matching the Web-exposed return
type.
Use OrderedHashMap for the temporary LibWeb registration map, since the
Service Workers spec defines the registration map as ordered and
getRegistrations() exposes that iteration order.
Add text coverage for the no-registration case used by TradingView's
startup path. Without this method, the page threw while calling
navigator.serviceWorker.getRegistrations() and aborted before rendering
its chart.
This patch implements the ready attribute on ServiceWorkerContainer,
a Promise that resolves when there's a ServiceWorkerRegistration
with an active worker for the current page. The promise never rejects
and stays pending if no active service worker exists.
This makes https://instagram.com/ load once again :^)