I'm working on a Chrome Extension, and since Chrome's auto-updating system positively sucks, I'm doing my own.
Also, I haven't even publicly released my extension yet, so the design can count on users being more advanced.
When I update the extension, the browser button will change icons. Clicking this updates the extension code. My extension modifies Google Search, so any loaded search tabs will not magically update. Every tab where my extension has done it's work needs to be reloaded for the updated extension to run.
The question is when to reload these tabs
I can either reload all of them straight away, often clogging the browser and network from say, checking your facebook or email. If I don't reload them right away, I could reload them when the user navigates to that tab. That's lame because once you select the tab it reloads on you.
Further, each tab's messaging would typically have some errors because the tab is doing messaging with a new, foreign updated background page.
Either way, I will want to reload all active tab straight away.
As far as the other tabs, seems like I have 3 decent strategies to do:
After all the active tabs finish reloading, reload every other tab one after the next. This way the extension doesn't cram the users network. Possibly the best user experience, but less control is given to the user. -This also gives the user confirmation that the extension is updated, cause extensions download/update instantly. (Same size as a webpage.)
Reload the tab once the user comes back to that tab. Only necessary actions are taken.
Display a notification on each tab that it needs to be reloaded. When the user goes back to a outdated tab, they'll see a red notification that this tab needs to be reloaded for the updated extension to run. User has most control
PS: I can also add some text on the title of tabs. I can turn "foo - Google Search" to "(will reload) foo - Google Search"
