v149 · Performance · Service Worker

Performance Dashboard

A RUM-style dashboard that registers a service worker with Static Routing rules, makes a batch of fetch requests, then reads workerMatchedRouterSourceList and workerFinalRouterSourceList from PerformanceObserver to show which source each request was routed to.

Service Worker Router Timing Fields may not be fully supported in this browser. The dashboard will simulate the data model — enable in Chrome 149+ with a registered service worker for live readings.

routing rules (simulated SW)

/api/* (json requests) network (no cache fallback)
/assets/* (images, fonts) cache (fall back: network)
/pages/* (HTML) cache (fall back: sw → network)
/* (all others) sw (service worker handles)
Total Requests
0
Cache Hits
0
Network
0
Fallbacks
0
Ready
# URL matchedRouterSourceList finalRouterSourceList Fallback? Duration
Click "Run Request Batch" to simulate routing

reading the timing fields

// Chrome 149: read router timing from PerformanceObserver
const obs = new PerformanceObserver(list => {
  for (const entry of list.getEntries()) {
    if (entry.entryType !== 'resource') continue;

    const matched = entry.workerMatchedRouterSourceList; // what the rule said
    const final   = entry.workerFinalRouterSourceList;   // what was actually used

    if (matched.length && final.length) {
      const fellBack = matched[0] !== final[0];
      console.log(entry.name, { matched, final, fellBack });
    }
  }
});
obs.observe({ type: 'resource', buffered: true });

see also