An attempt to address the appcache monitor race condition. See comment in source code. I didn't spend a whole lot of time on this but from a cursory review of the Mozilla docs it seems to be that the application cache status interface is insufficient: there's simply not enough granularity in the status messages to determine what has happened to the application cache before our event listeners are registered. My solution is a hack to be sure: add a watchdog timer and manually invoke the callback chain if after registering our event listeners none of them get called for 2-seconds AND the application cache status is IDLE. This will require some watching as I'm not confident this will always work in all cases.