From HTML5: ...the user agent must queue a task to fire an event with the name storage, which does not bubble and is not cancelable, and which uses the StorageEvent interface, at each Window object whose Document object has a Storage object that is affected. This includes Document objects that are not fully active, but events fired on those are ignored by the event loop until the Document becomes fully active again. We only fire the storage event on documents that are fully active (not in b/f cache), and do not queue the event. This obviously means that documents that come back from b/f cache will not update themselves for changed local storage data.